Commit graph

238 commits

Author SHA1 Message Date
Earle F. Philhower, III
2297d61d92 Update version 2024-06-18 09:44:58 -07:00
Earle F. Philhower, III
eb0badd817
Avoid malloc/free while in HCI callbacks (#2219)
Bluetooth operates at IRQ level, so using std::list (which needs to
new and delete objects) is not legal.  Use a fixed, preallocated
vector instead.
2024-06-10 16:38:50 -07:00
Earle F. Philhower, III
f272995536
For consistency, BTHID Joypad->Joystick (#2218)
Matches existing library names and nomenclature
2024-06-10 13:34:59 -07:00
Earle F. Philhower, III
db13d3c1f8
Add basic A2DP BluetoothAudio documentation (#2217) 2024-06-09 17:47:13 -07:00
Earle F. Philhower, III
f8c1ec100f
Add BluetoothHIDMaster documentation (#2216)
Also link in FatFSUSB docs, d'oh!
2024-06-09 16:51:35 -07:00
Earle F. Philhower, III
8bc8c824d3 Update version 2024-06-05 12:03:10 -07:00
Earle F. Philhower, III
f820dc134a Update version 2024-06-04 14:46:13 -07:00
Earle F. Philhower, III
679be8520f Update version 2024-05-29 14:54:32 -07:00
Earle F. Philhower, III
ec5e62e533
Add Bluetooth audio out (A2DP) on the PicoW (#2174)
Adds a library to run classic Bluetooth A2DP source (output) audio from
the PicoW.  Simple example showing operation and callbacks.

Factor out multiple BT lock/unlock and place in the PicoW variant files.
2024-05-26 14:30:40 -07:00
Earle F. Philhower, III
11814823ed
Add asynchronous I2C read and write operations (#2167)
Fixes #1730

Uses DMA operations to avoid the need to bit-bang or busy wait for I2C operations
that might be very slow.  Optional, adds new API calls to enable.  Simple example
included.
2024-05-21 14:32:12 -07:00
Earle F. Philhower, III
e6c7ee7813
Add asynchronous SPI transactions (#2168)
Fixes #1192

Uses DMA operations to avoid the need to bit-bang or busy wait for SPI
operations that might be very slow. Optional, adds new API calls to enable.
Simple example included.
2024-05-21 14:08:36 -07:00
Earle F. Philhower, III
f33df254f1
Add SPI::setMOSI/setMISO, better match pin names (#2166) 2024-05-20 14:43:55 -07:00
Earle F. Philhower, III
d850de15fa Update version 2024-05-13 12:07:12 -07:00
Earle F. Philhower, III
d53d0033fe Update version 2024-04-22 07:58:48 -07:00
Earle F. Philhower, III
c2812e187b
Add more verbosity to multicore docs (#2114) 2024-04-19 12:16:25 -07:00
Earle F. Philhower, III
074b952314
Add FatFS and FatFSUSB - Wear-Leveled FTL based FAT filesystem for onboard flash (#2028)
* Add FatFS for onboard flash use/sharing of FAT

* Move all to "fatfs" namespace

The FatFS library defines commonly used names like WORD which could conflict
with user code otherwise.

* Restyle

* FTL-based, wear-leveling FatFS with USB export

Allow using FAT filesystem with onboard flash in a safer, wear-leveled
way and to export the onboard flash to the host as a USB drive for easy
data transfer.

* Update documentation

* Fix submodule reference

* Don't spellehcek ChaN FatFS files

* Disable FTL debugging

* More codespell skips

* Move to latest SPIFTL library

* Allow using raw flash instead of FTL

* Remove unneeded static FIL 4k allocation

* Expose FAT FS format configuration options

* Update documentation

* Remove USB partial flash rewrites

* Remove unneeded dups of FatFS sources

Leave the LICENSE.md and README.md to point to upstream.

* Clean up comments
2024-04-19 10:52:02 -07:00
Dominic Pearman
fd6941479d
Fixed code block in piouart.rst (#2064) 2024-03-20 03:48:09 -07:00
Dominic Pearman
c90248dc10
Minor corrections to ota.rst (#2053)
Hi,

Just a typo and a couple of wording corrections.
2024-03-13 07:02:29 -07:00
Earle F. Philhower, III
c670f66140 Update version 2024-02-16 13:11:02 -08:00
Earle F. Philhower, III
91c007eb8f Update version 2024-02-12 10:38:24 -08:00
Terry Phillips
874b41f549
Update wire.rst (#1990)
Correct buffer size to match Wire.h
2024-02-06 16:27:08 -08:00
LinusHeu
fcd47fe170
Update ide.rst (#1989)
Remove outdated(?) info
2024-02-06 15:43:14 -08:00
Earle F. Philhower, III
842ec245ac
Add W5100, W5500, and ECN28J60 interrupt-driven mode (#1986)
No polling needed and massively reduces latency by using the GPIO interrupt to
signal the Pico to read a received packet.  Also drops CPU load when no packets
are incoming.
2024-02-06 14:15:37 -08:00
Earle F. Philhower, III
6715e5e6b7 Update version 2024-02-02 09:10:28 -08:00
Earle F. Philhower, III
32e74d024e Update version 2024-01-03 18:02:35 -08:00
Earle F. Philhower, III
326697bbe1
Update Mac Picotool/OpenOCD to use bundled dylibs (#1922)
Fixes #1919 by using binaries from https://github.com/earlephilhower/pico-quick-toolchain/pull/37
2024-01-02 18:51:20 -08:00
Dominic Pearman
0c7454b6f7
Minor typo correction to platformio.rst. (#1889) 2023-12-08 07:42:35 -08:00
Earle F. Philhower, III
500f197c02 Update version 2023-12-06 09:52:23 -08:00
Dominic Pearman
81070a0b3f
Minor documentation corrections in platformio.rst. (#1885)
* Corrected minor typo.

* Removed superfluous newline.

---------

Co-authored-by: Dominic Pearman <dominic@phymorous.de>
2023-12-06 06:20:59 -08:00
Earle F. Philhower, III
762535faf9
Add documentation about MDNS + FreeRTOS = crash (#1880)
See #1875
2023-12-04 08:57:49 -08:00
Taylor Alexander aka Sequoia
c2d60774af
Fix small typo in analog.rst (#1869)
Change "RP20400" to "RP2040"
2023-12-01 15:17:58 -08:00
Earle F. Philhower, III
39a2bbd788 Update version 2023-11-22 07:59:00 -08:00
Krzysztof Heim
319d36531e
Update wifintp.rst (#1798)
, instead of .
2023-11-01 16:09:05 +01:00
rlcamp
f5f7267f44
Add Serial.dtr() and Serial.rts() methods (#1779)
* add Serial.dtr() and Serial.rts() methods

* added documentation for Serial.dtr() and Serial.rts()
2023-10-24 19:02:17 +02:00
Johnny Stene
a4ad8ae0fd
Fix typos in fs.rst (#1781) 2023-10-22 20:10:16 +02:00
Earle F. Philhower, III
ae6847cf78
Allow changing USB HID poll rate (#1771)
Fixes #1769

Add a weak variable that can be overridden by the user to speed up or
slow down the USB HID polling speed.
2023-10-17 04:38:48 -07:00
Earle F. Philhower, III
d42f0ab4b0
Update spi.rst (#1768) 2023-10-12 12:23:10 -07:00
palmerr23
f6a5ef0f85
Update analog.rst (#1756)
Added text about specific dependencies between analogWriteRange and analogWriteFreq
2023-10-07 07:47:20 -07:00
Earle F. Philhower, III
7868ddee42
Allow full 8K stack for both cores, optionally (#1750)
Fixes #1749

Defining a global true `bool core1_separate_stack = true` will separate
the two cores' stacks, with core 0 using the scratch RAM while core 1
will use 8K from the heap.
2023-10-07 07:38:32 -07:00
Earle F. Philhower, III
6a0cc90a4d
Update fs.rst (#1754)
Fix #1753
2023-10-05 17:24:04 -07:00
Earle F. Philhower, III
21d212a2ff
Clarify LittleFS upload documentation (#1752) 2023-10-04 17:20:01 -07:00
Earle F. Philhower, III
3cc68f82a2
Fix minor FS documentation issues (#1738) 2023-09-29 21:10:49 -07:00
Earle F. Philhower, III
f08ef117b5
Point to new IDE2.x LittleFS uploader (#1736) 2023-09-28 17:47:16 -07:00
Earle F. Philhower, III
41b0686aec Update version 2023-09-22 17:45:32 -07:00
Earle F. Philhower, III
39238a505d
Add BOOTSEL documentation (#1722)
Co-authored-by: Earle F. Philhower, III <earle.philhower@kioxia.com>
2023-09-21 08:34:39 -07:00
Earle F. Philhower, III
f60b7831c8
Add SPISlave class (#1717)
Allows the Pico to behave as an SPI slave and allows apps to respond
with appropriate data through callbacks.

Fixes #1680
2023-09-17 15:23:03 -07:00
Earle F. Philhower, III
0ed1f3dce1
Add WIZnet W5100S-EVB-Pico docs (#1713) 2023-09-15 17:36:13 -07:00
Earle F. Philhower, III
1f3d5011b2
Support wired network interfaces (W5500, W5100, ENC28J60) (#1703)
Enable use of wired Ethernet modules as first-class LWIP citizens.  All
networking classes like MDNS, WebServer, HTTPClient, WiFiClient, and OTA
can use a wired Ethernet adapter just like built-in WiFi.

Two examples updated to show proper use.

Uses the Async Context support built into the Pico SDK.  When running on the
Pico  it will use the CYW43 async instance.

Uses modified wired Ethernet drivers, thanks Nicholas Humfrey!

Note, the classic, non-LWIP integrated `Ethernet` and related libraries
should still work fine (but not be able to use WebServer/HTTPS/etc.)

Fixes #775
2023-09-14 19:04:39 -07:00
Earle F. Philhower, III
99b4aac48b Update version 2023-09-13 13:10:54 -07:00
wd5gnr
3c93d14b33
Update rp2040.rst (#1704)
isPicoW was missing the rp2040. qualifier.
2023-09-10 13:54:24 -07:00
Earle F. Philhower, III
5639edefee
Update wifi.rst (#1702) 2023-09-09 08:09:15 -07:00
Earle F. Philhower, III
ef257c32b4 Update version 2023-09-05 14:15:03 -07:00
Earle F. Philhower, III
d0ac7f06b1 Update version 2023-08-30 08:29:26 -07:00
Earle F. Philhower, III
e9daaa3589
Add TDM support to I2S (#1673)
Fixes #1066

Implements a simple TDM mode for the I2S output object.
2023-08-30 08:28:34 -07:00
Matt
8c2901da13
Update license.rst (#1648)
fixed typo in license.rst
2023-08-17 09:33:31 -07:00
Earle F. Philhower, III
313caf406e Update version 2023-08-04 17:09:07 -07:00
Earle F. Philhower, III
cd76f030cb
Update serial.rst 2023-08-03 11:10:01 -07:00
Earle F. Philhower, III
36839cb190
Update serial.rst, add ignoreFlowControl docs (#1626) 2023-08-02 17:06:42 -07:00
Earle F. Philhower, III
4fd8e41db1 Update version 2023-07-28 10:35:47 -07:00
Earle F. Philhower, III
1dc0872818
Remove obsolete refs to ATOMIC_FS_UPDATE (#1597)
See #1590
2023-07-14 14:58:21 -07:00
Jack Burgess
14eb8d3906
Update ota.rst (#1592)
Spelling mistakes and grammatical corrections
2023-07-14 08:10:13 -07:00
palmerr23
cc5d1779a3
Add MCLK support for I2S, optimize clocks for jitter-free playback (#1555)
Fixes #1065
2023-07-07 13:10:32 -07:00
Mohammed Chamma
21d1a285dc
Fix typo in fs.rst regarding info64 (#1551) 2023-06-20 13:00:36 -07:00
Earle F. Philhower, III
20cabe824f Update version 2023-06-17 19:40:40 -07:00
Earle F. Philhower, III
50646b9e70
Update httpclient.rst (#1538) 2023-06-15 07:20:15 -07:00
Earle F. Philhower, III
7b04a033b3
Update rp2040.rst (#1515) 2023-06-08 09:49:57 -07:00
Earle F. Philhower, III
7eb176c0b4 Update version 2023-06-07 18:06:55 -07:00
LinusHeu
fe3af4d98b
Update i2s.rst + typo (#1504) 2023-06-05 13:10:04 -07:00
Earle F. Philhower, III
9aade5bb24
Update adc.rst (#1502) 2023-06-05 02:15:09 -07:00
Earle F. Philhower, III
f57b5bc762
Add I2S::getOverUnderflow() (#1497)
See #1491.  Thanks @LinusHeu
2023-06-04 14:21:02 -07:00
Earle F. Philhower, III
b2b4b2d71d Update version 2023-05-23 17:57:38 -07:00
Earle F. Philhower, III
723c81470a
Update contrib.rst 2023-05-15 10:09:30 -07:00
Alessandro Ranellucci
a7905fba3e
Add Arduino CLI installation instructions (#1447) 2023-05-15 09:29:12 -07:00
Earle F. Philhower, III
6e52b72523
Update macro for detecting this core in contributing docs (#1436) 2023-05-11 09:45:34 -07:00
Earle F. Philhower, III
3dee0a276b Update version 2023-05-05 09:00:07 -07:00
Maximilian Gerhardt
e95248a787
Support and Document pico-debug in PlatformIO (#1427) 2023-05-05 07:32:41 -07:00
Maximilian Gerhardt
4f643d27d9
Enable BlackMagicProbe for PlatformIO (#1378) 2023-04-15 12:35:45 -07:00
Earle F. Philhower, III
c276a36c9b Update version 2023-04-05 13:38:25 -07:00
Earle F. Philhower, III
ff0d794c50
Add MacOS Picotool upload help (#1355)
Fixes #1344
2023-04-04 14:24:15 -07:00
Maximilian Gerhardt
369c878711
Add BTC and BLE docs to PlatformIO (#1354) 2023-04-04 14:20:39 -07:00
Earle F. Philhower, III
e1b881a688
Add Win32 Long Path info to P.IO docs (#1321) 2023-03-20 15:31:39 -07:00
Earle F. Philhower, III
3dbe5cf930
Add I2S::swapClocks() for boards w/reversed pins (#1298)
Allow users of boards like the Pico-Audiom where the LRCLK comes
before the BCLK pin, to swap the BCLK/LRCLK of the I2S interface.

Fixes #1287
2023-03-15 15:23:56 -07:00
Earle F. Philhower, III
7851dc8cb7 Update version 2023-03-10 09:08:28 -08:00
Earle F. Philhower, III
06a1fdac50 Update version 2023-03-01 16:59:38 -08:00
Earle F. Philhower, III
7308ef4117
Update bluetooth.rst 2023-03-01 16:44:35 -08:00
Earle F. Philhower, III
d92c1025ba
Update to SDK 1.5, add alpha-level BT support, use Pico-SDK CYW43 infrastructure (#1167)
* Update to Pico-SDK v1.5
* Hook in pico_rand, use ioctl to set ipv6 allmulti
* Move into PicoSDK LWIP mutex, hack timer sizes
* Utilize much of the PicoSDK infrastructure for WiFi
* Add WiFi::begin(ssid, pass, bssid)
* WiFiMulti to use BSSID, make more robust

WiFiMulti will now be more aggressive and try all matching SSIDs, in order
of RSSI, using the BSSID to identify individual APs in a mesh.

Before, if the highest RSSI AP didn't connect, it would fail immediately.
Now, it will go down the list, ordered by RSSI, to attempt to get a link.

* Add Bluetooth support from Pico-SDK
Able to build and run the HID Keyboard Demo from the Arduino IDE, almost
as-is.

Will probably need to make BT configurable.  Enabling BT on a plain WiFi
sketch uses 50KB of flash and 16KB of RAM even if no BT is used.

* Separate picow libs, BT through menus, example

Build normal Pico.a and 4 different options for PicoW IP/BT configuration.
Use IP=>IP/Bluetooth menu to select between options.

* CMakefile rationalization

* Move BT TLV(pairing) out of last 2 flash sectors

The pairing keys for BT are stored at the end of flash by default, but
we use the last sector of flash for EPROM and the penultimate one for
the filesystem.  Overwriting those in BT could cause some real exciting
crashes down the line.

Move the store to an app-build specific address using a dummy const
array to allocate space in the application image itself.

* PicoBluetoothHID with BT Mouse, Joystick, Keyboard

Add simple Bluetooth Classic HID helper function and port the existing
USB HID devices to it.  Port their examples.

* Protect BT key storage from multicore

* Add short-n-sweet Bluetooth documents

* Add Bluetooth Serial port library

* Turn off BT when the BT libraries exit
2023-02-27 20:09:02 -08:00
Earle F. Philhower, III
de55db12f1
Update rp2040.rst 2023-02-26 18:54:32 -08:00
MisterSilvereagle
a97d5eab22
Fix spelling mistake (#1211)
Co-authored-by: Earle F. Philhower, III <earlephilhower@yahoo.com>
2023-02-20 09:58:50 -08:00
Earle F. Philhower, III
11ac5ed33e Update version 2023-02-18 13:04:53 -08:00
Earle F. Philhower, III
b7912f182b
Add isPicoW call to RP2040 object (#1204)
Use the RPi code to get a best-guess as to whether the board is a Pico or
PicoW.

Fixes #849
2023-02-18 13:00:02 -08:00
Earle F. Philhower, III
974301eaaf
Add rp2040.cpuid() call to get running core (#1190)
Per question received via email.
2023-02-14 16:22:04 -08:00
Earle F. Philhower, III
2acc161ad2
Update contrib.rst 2023-02-14 13:24:02 -08:00
Earle F. Philhower, III
7322bad830 Add docs on adding a new board to the core, too 2023-02-14 08:46:24 -08:00
Earle F. Philhower, III
76e7cca821
Add contributing docs (#1183) 2023-02-13 14:54:52 -08:00
Earle F. Philhower, III
1bfd07c19a Update version 2023-02-11 12:34:40 -08:00
Earle F. Philhower, III
f212720484 Update version 2023-01-14 14:34:45 -08:00
Earle F. Philhower, III
ae386d4308
Redo boards menu, separate out upload method, add picotool upload (#1112)
Instead of listing each board three times (normal upload, picoprobe,
and pico-debug uploads), list each board once and use a menu to select
the actual upload method.

Also add in picotool as an upload method for those folks who have trouble
with automounting.

Fix #1111
2023-01-13 13:04:24 -08:00
Earle F. Philhower, III
ce17a6200b
Update install.rst 2023-01-09 08:08:57 -08:00
AnachronisticPenguin
8289bbd27b
Add additional instructions for Linux Flatpak users (#1105)
Provide instructions for users to override filesystem access restrictions imposed by Flatpak on some installations of the Arduino IDE
2023-01-09 08:03:30 -08:00
Earle F. Philhower, III
da26016edf
DMA-based ADC input (microphone, analog sensor) (#1101)
Mimics the I2S/PWMAudio/Stream interface for ease of use.

* Fix non-32b DMA size transfer calculation in ABM
* Rename wasHolding to isHolding in the I2S/PWM
  It is the **current** number of bits left, not the past number.
* Add commented microphone example
* Add docs
2023-01-05 16:00:34 -08:00