-
Notifications
You must be signed in to change notification settings - Fork 6.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TaskList for Supporting RaspberryPi Pico peripherals #53810
Comments
@yonsch @andrei-edward-popa @burumaj @petejohanson |
And this PR I opened last night: #53811 for reboot support into bootloader. |
I've been working on adding support for |
Hi, @ajf58
Thank you for your interest. The best way is creating PR as draft and add the the number of it to this list. |
I created a PR to fix the issue. |
@soburi Thank you for this list. I've edited this list to add a few items, but mainly to remove entries that seemed redundant. Here are the ones removed with the reasons for the removal:
|
Possibilities to add:
I found pico_base, not sure if it is really useful. |
As far as I can tell this is a pure software implementation (the RP2040 does not have and RNG). The only thing about it that is "optimized" to the Pico is that it uses the flash's unique ID for generating numbers (as far as I can tell). So in that case I think we would better stick to Zephyr's implementation.
No, but I agree that it might be useful so I'll add it |
@yonsch The pico version seems to make use of the ROSC as an entropy source as well as the Bus Performance Counter. I'm not certain if the latter is pico-specific or an M0+ feature. I agree that the Zephyr implementation is probably best, but I do wonder if there is a way to input additional sources of entropy to the Zephyr methods. At a quick glance, it doesn't seem like the Zephyr version has a way to make use of that as a source of entropy (this was a very surface level check). I can look into this more later if there is interest. |
Thank you for updating this list. We got many functions are now available. |
Are there any plans to support bluetooth functionality on the pi pico wireless? |
@rp1231 Once the interface to the cyw43 (SPI over PIO) is supported, support for both wifi and Bluetooth will be possible. |
Hey everyone, I'm also interested in both Zephyr and Pico W support. I jumped over a few steps in creating proper support and wrote a small wifi driver using the cyw43-driver library from pico sdk (via the hal module). I say jumped over since I mostly ported the SPI over PIO from pico sdk. This is all working, at least in some sense. Running the I would be happy to contribute to this in any way for proper support. I'm completely new to Zephyr, my main experience is not mainly embedded but I have a few years of professional embedded on FreeRTOS and many years C programming. Can anyone point me in a good direction forward? Should I push my early driver as a draft PR, or begin switching to @ThreeEights SPI over PIO implementation? Thanks |
Hi, @PatrickE94 - Of course, I'd be most pleased if you work with my SPI via PIO implementation. :-) You should know that it currently doesn't support the 3-wire SPI configuration needed to access the WiFi chip on the Pico W. I'm trying to debug that today. We also have a project in our team to complete a Zephyr driver for the CYW43439 chip, though that's still some weeks away from being ready. Meanwhile ... welcome to Zephyr! |
Neat, then perhaps I will start at the other end :-)
I found that out a few hours ago. Since that's the Infineon guys doing a more generic implementation (with more features, AMDPU etc) than the one in pico sdk, I agree that's the right way! Quickly checking their wifi-host-driver concept, it doesn't look to intimidating to implement a SPI HAL layer which should enable their driver on the pico.
Many thanks! |
Hi @ThreeEights, @PatrickE94, I'm also interested in WiFi support on Pico W. What's the current state of play? |
@JohnConnett - I have a PIO SPI driver that works on everything except the Pico W, for some reason I'm trying to debug, and a pull request is pending for the CYW43xxx WiFi driver. We're trying to pull it all together. |
@JohnConnett I have just put together some glue for the cyw driver and the PIO SPI. It looks like it should work, given that @ThreeEights gets three wire SPI to work. But I haven't tested anything since I have no communication... I have an old branch where I've mashed in the official pico sdk driver which works, but it's not very neat. I've been pretty busy with life recently, but I might just take a slow evening to see if I can support @ThreeEights. Let me know if there's anything you'd like me to take a peek at. I have access to Salae logic analysers and some other fine equipment at work. |
I currently have a single Pico W (no headers), with a Pico WH and Pi Debug Probe on order. The plan is to use a Pico W with a PicoADC16 and Photo Transistor Light Sensors to monitor the state of LEDs on an underfloor heating controller and report them using MQTT to OpenEnergyMonitor. The LEDs indicate if the electrothermal actuators and circulation pump are energized. We will probably use MicroPython initially. I was interested in Zephyr as a possible alternative. Thanks for the comments. I might be interested in exploring Zephyr on Pico W for other things when WiFi is available. |
any evolving of Zephyr driver for the CYW43439 chip? I can't wait for btstack to support bluetooth le audio. |
Something to potentially add to the list: PIO-based Ethernet MAC |
The "binary info" feature was I think completed through here: #54464 (can be checked off). |
A task list for hardware support for the RaspberryPi Pico. (Inspired by #38657.)
Peripherals
drivers: adc: Add support for RaspberryPi Pico ADC #45363
drivers: sensors: Add support for RaspberryPi Pico CPU temperature #53591
drivers: dma: rpi_pico: add support for RaspberryPi Pico DMA #53892
rpi_pico: Added flash support #47806
rpi_pico: Fix DTC warnings #53431
boards: Add support for the raspberrypi pico #34835
drivers: grio: Pull ups and disabling interrupts. #42495
Designware (DW) I2C Slave Support and Raspberry Pi Pico I2C Support #42513
boards: arm: rpi_pico: Fix I2C compatible in docs #44046
drivers: i2c: i2c_dw: Add capability for handling reset device. #62445
rp2040: Added PIO support #44316
docs: Raspberry Pi Pico board page document fix for pwm #47578
drivers: pwm: Channel > 1 not working on rp2040 (Raspberry Pi Pico) #50876
drivers: pwm: Use a common initialization priority #50877
The blinky_pwm sample does not work on raspberry pi pico #51546
rp2040: Bugfix UART initialisation: Mixup of Zephyr constants and rpi-hal constants #52348
PWM related fixes for rpi_pico board #52692
Raspberry Pi Pico RTC Driver #52312
drivers: rtc: rpi_pico: Add support for the Raspberry Pi Pico RTC #64939
drivers: spi: Add basic support rpi-pico SPI (PrimeCell SSP PL022) #45131
drivers: spi: pl022: Add support DMA transfer #54195
drivers: counter: Add support for rpi_pico timer #57134
boards: Add support for the raspberrypi pico #34835
drivers: serial: added UART interrupts for Raspberry Pi Pico board #42421
drivers: serial: rpi_pico: added functions for runtime uart configuration #49883
drivers: watchdog: Add Raspberry Pi Pico watchdog driver #43393
drivers: usb: Add RP2040 USB device support. #42506
drivers: usb: create thread and connect IRQ during init #49772
drivers: usb_dc_rpi_pico: fixed buffer status handling #52145
Peripherals RP2350
Support for pins 32 and above
Adding new support
Adding new support
Adding new support
Adding new support
Adding new support
Adding new support
PIO
rpi_pico: Added Generic PIO support and a PIO based UART driver #56678
drivers: spi: spi_pico_pio: Add basic support for SPI via PIO #60395
rpi_pico: Add PIO based WS2812 LED strip driver #55226
System
soc: rpi_pico: Add restart to bootloader support. #53811
Raspberry Pi Pico Clock Control Driver #52901
clock_control: Added clock controller driver for Raspberry Pi Pico #62186
rpi_pico: Add hwinfo support #42558
Reset Controller Driver #43073
Reset controller bug #46057
drivers: reset: Update Kconfig #48969
drivers: regulator: add support for RaspberryPi Pico regulator. #54456
soc: arm: rpi_pico: Add basic support for binary info feature #54290
Cortex-M SMP support for Raspberry Pi Pico #59826
System: RP2040
rpi_pico: Add support for ROM math functions #52896
System: RP2350
Adding new supports
Adding new supports
Adding new supports
Boards: RP2040
boards: Add support for the raspberrypi pico #34835
boards: arm: rpi_pico: add openocd runner configuration #45137
boards: arm: rpi_pico: add jlink runner conf #49563
boards: arm: rpi_pico: add blackmagicprobe runner configuration #49944
rpi_pico: Added v3.2 release notes and improved docs #50772
boards: arm: Add adafruit_kb2040 board #51098
boards: arm: sparkfun_pro_micro_rp2040: rename board directory #53600
boards: Adding board definition for rpi_pico_w #57437
boards: add support for QT Py RP2040 #63554
board: Adding Adafruit QT PY RP2040 Support #66603
board: Adding support for W5500 Eval Board. #66523
Boards: RP2350
Add initial support for the Raspberry Pi Pico 2 #77368
Supporting Pimoroni Pico Plus2 #77859
Wifi/Bluetooth support
drivers: wifi: add Infineon AIROC WIFI driver #63721
drivers: wifi: infineon: Add SPI support to AIROC WiFi driver #78773
drivers: spi: spi_pico_pio: Add basic support for SPI via PIO #60395
The text was updated successfully, but these errors were encountered: