Closed Barilium8 closed 5 months ago
This board is not supported by my library.
The generic ARM implementation requires some basic support that is not present with this boards Arduino support. This is common with MBED and SAMD boards support.
Further, this specific chip is dual core, meaning that more than likely the generic bit bang support even if ported would not work well and would require the use of a hardware feature specific to the chip/board.
NOTES: These are the ARDUINOARCH defined for this board when using the Arduin IDE with the Arduino (not SEEED) board support installed. ARDUINO_ARCH_MBED ARDUINO_ARCH_MBED_RP2040 ARDUINO_ARCH_RP2040 Section 3.6.2. in the rp2040-datasheet.pdf contains a section specific to the hardware support for WS2812. https://github.com/raspberrypi/pico-examples/tree/master/pio/ws2812
PIO - a feature of the RP2040 would allow for a bitbang code that is run within up to 8 internal IO CPUs (limited ASM instructions but good enough to do this) and will run these independent of the primary two cores. This is the solution to use.
Python Example:
https://learn.adafruit.com/intro-to-rp2040-pio-with-circuitpython/using-pio-to-drive-a-neopixel
https://learn.adafruit.com/intro-to-rp2040-pio-with-circuitpython/advanced-using-pio-to-drive-neopixels-in-the-background
PIO and Arduino: https://github.com/arduino/ArduinoCore-mbed/issues/184
Modified Adafruit Neopixel using PIO: https://github.com/Bodmer/Adafruit_NeoPixel
DMA can be used with PIO: https://gregchadwick.co.uk/blog/playing-with-the-pico-pt2/ https://github.com/adafruit/Adafruit_NeoPXL8
More advanced Arduino RP2040 board support that includes the pioasm.exe https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json found from https://github.com/LifeWithDavid/Raspberry-Pi-Pico-PIO/blob/7a2236b4c6fcffb71231792e9fab8367e1386c0c/Episode%2013%20Arduino%20IDE%20files.txt
Online PioAsm.exe (probably the best choice for now to make some progress) https://wokwi.com/tools/pioasm
Should have something to show this next week.
DMA driven, with four channels per PIO, so theatrically 8 separate DMA driven channels.
https://github.com/Makuna/NeoPixelBus/pull/779
You can instance the NeoPixelBus four times on each PIO, for a theoretical eight channels. But this will stop any other uses of PIO as there are only two PIO engines.
Defaults to using PIO1 on IRQ 1.
I have tried with just lib NeoPixelBus.h...
include
And then tried...
include
include
include
Either way the VARIANT_MCK (and F_CPU) not declared... errors occur. Any help would be appreciated.
Here is the beginning of the output form the compiler...