- 22 Apr, 2022 3 commits
-
-
Earle F. Philhower, III authored
-
Earle F. Philhower, III authored
-
Earle F. Philhower, III authored
Adjust the 1/2 bit time to match the number of extra cycles in the actual PIO loop. Throw out the entire start bit, which results in sampling the data at the midpoint and not the starting time of a bit (which was causing random failures on read data). Tested at 300bps all the way to 2,000,000bps using a loopback connection. Fixes #360
-
- 17 Apr, 2022 2 commits
-
-
Earle F. Philhower, III authored
-
Earle F. Philhower, III authored
-
- 16 Apr, 2022 1 commit
-
-
Earle F. Philhower, III authored
Fixes #537
-
- 10 Apr, 2022 1 commit
-
-
Jean-Luc Béchennec authored
-
- 09 Apr, 2022 1 commit
-
-
Earle F. Philhower, III authored
-
- 30 Mar, 2022 1 commit
-
-
Earle F. Philhower, III authored
Fixes #524
-
- 29 Mar, 2022 1 commit
-
-
Arya11111 authored
-
- 17 Mar, 2022 1 commit
-
-
Earle F. Philhower, III authored
-
- 16 Mar, 2022 2 commits
-
-
randomllama authored
-
Earle F. Philhower, III authored
* Avoid "chunkiness" of UART FIFO availability The UART FIFO will generate an IRQ to transfer data into the SerialUART FIFOs either every 4 received bytes, or every 4 idle byte times. This causes the ::available count to report "0" until either of those two cases happen, causing a potentially delay in data becoming available to the app. Change the code to pull data from the HW FIFO on a read/available/peek. Use a non-blocking mutex and IRQ disabling to safely empty the FIFO from user space. The mutex added to the IRQ is non-blocking and will be a single CAS the vast majority of the time, so it should not impact the Serial performance. Fixes #464 and others where `setPollingMode()` was needed as a workaround. Make sure we have all mutexes locked before we disable the port and free the queue to avoid evil cases. Only init the mutexes once, on object creation. In polled mode, don't bother acquiring/releasing the fifo mutex. When begin() is called on an already running port, call end() to clean up the old data/etc. before making a new queue/config. This avoids a memory leak and potential write-after-free case.
-
- 14 Mar, 2022 1 commit
-
- 06 Mar, 2022 1 commit
-
-
Earle F. Philhower, III authored
Define ARDUINO_PICO_MAJOR/_MINOR/_REVISION for app use and update the Platform.IO and Arduino files for a new release version. Fixes #309 Fixes #487
-
- 05 Mar, 2022 1 commit
-
-
Earle F. Philhower, III authored
-
- 24 Feb, 2022 3 commits
-
-
Earle F. Philhower, III authored
-
Earle F. Philhower, III authored
-
Arya11111 authored
-
- 23 Feb, 2022 2 commits
-
-
-
Earle F. Philhower, III authored
-
- 22 Feb, 2022 1 commit
-
-
Pontus Oldberg authored
* Added missing SERIAL2 and LoRa module GIO pins. * Added support for enabling UART CTS and RTS pins.
-
- 20 Feb, 2022 4 commits
-
-
Bodmer authored
The PIO and state machine were hard wired, so this caused problems if they were not free. The approach used by the Servo library has been adopted so a free PIO and SM are searched. The DMA_IRQ_0 was grabbed exclusively, but this conflicts with SPI DMA use. The interrupt is now shared, but has been allocated the highest possible priority. Since the PDM PIO use is receive only, the PIO state machine RX FIFO's can be joined to reduce DMA interrupt load.
-
Earle F. Philhower, III authored
Reorder the boards menu to make it easier to find any specific board. Add a note to the script asking manufacturers to keep it that way.
-
Earle F. Philhower, III authored
-
Magnus Nordlander authored
-
- 19 Feb, 2022 2 commits
-
-
Earle F. Philhower, III authored
-
Pontus Oldberg authored
-
- 15 Feb, 2022 1 commit
-
-
Earle F. Philhower, III authored
Fixes #489 Only the PIO0 IRQ handler was ever installed due to a hardcoding bug. Attach the IRQ handler to the PIO being started instead.
-
- 13 Feb, 2022 1 commit
-
-
Earle F. Philhower, III authored
-
- 12 Feb, 2022 2 commits
-
-
Earle F. Philhower, III authored
-
Earle F. Philhower, III authored
GDB for non-Linux systems was built w/o expat which caused odd behavior under Windows and other systems (i.e. breakpoints not working, etc.) New toolchain manually builds cross-compiled libexpat and ensures it is used, fixing the issue. Windows OpenOCD binaries now come from manually built and tested copies (using a real Windows system). Fixes #478 Fixes #457 Fixes #456 and probably others...
-
- 10 Feb, 2022 2 commits
-
-
Earle F. Philhower, III authored
Fixes #472 Instead of using interrupts, explicitly call the IRQ handler dueing Serial read/peek/available calls. Add to keywords.txt for syntax hilighting. Add poll calls in the SerialUART::write-like calls (write, flush, etc.) Really remove division from IRQ routines/
-
Earle F. Philhower, III authored
Microsoft is deprecating WMIC, so fall back to a Powershell call in case of failure to ruin WMIC. Belt and suspenders, set PowerShell non-interactive mode and null STDIN.
-
- 08 Feb, 2022 2 commits
-
-
Earle F. Philhower, III authored
Fixes #468 The FIFO limit was set to 1/2, or 16 bytes on POR and not set by the core, so for low baud this could result in a LONG time without data moving from hardware FIFO to the SW ring buffer and timeouts/etc. Now use the API call which sets it to 1/8, or 4 bytes of data to speed up the transfer 4x. Also avoid using the divider in the IRQ routine because it is not clear from the docs of the Pico SDK IRQ callback routine preserves divider state or not. If not, doing division in an IRQ could result in random data corruption in the main app. Add memory barriers to ensure the order of data into RAM is preserved and that GCC doesn't reorder writes.
-
gsexton authored
Change order of tests to favor /run/media over /media. Parse output of udiskctl mount to find mount path
-
- 07 Feb, 2022 1 commit
-
-
Earle F. Philhower, III authored
Fixes #464 and other incompatibilities Remove the timeout check from ::read and ::peek on the SerialUART/PIO classes (SerialUSB already ignores it). See documentation https://www.arduino.cc/reference/en/language/functions/communication/serial/settimeout/ and thanks to @jandrassy's explanation https://github.com/earlephilhower/arduino-pico/issues/464#issuecomment-1031657044
-
- 05 Feb, 2022 2 commits
-
-
Earle F. Philhower, III authored
Most other boards and the MBED RP2040 support analogReadResolution which just shifts read data around as needed, with a default of only 10b of resolution. The Pico ADC technically supports 12b, but only has about 8b of real data after noise, so you're not really losing anything in the general case. Fixes #460
-
Earle F. Philhower, III authored
Fixes #458
-
- 03 Feb, 2022 1 commit
-
-
Earle F. Philhower, III authored
-