-
Notifications
You must be signed in to change notification settings - Fork 2k
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
boards/rpi-pico: add support #15822
Comments
See #16609 |
Maybe we can keep the issue open a bit to sync who's working on which feature |
|
I have tried to flash RPI-pico using uf2conv programmer, using the command:
Unfortunately, nothing happened after a successful compilation, linking, and coping UF2 file. After some inspection, I found that UF2 file generated by uf2conv program is incompatible with RPI-pico UF2 bootloader. Everything worked fine when I converted the generated elf file using elf2uf2 tool from pico-SDK and manually copied it to the flash. After some investigation, I detect minor changes in the each UF2 block header between images generated by uf2conv and elf2uf2. If details are needed, I could provide them. Currently, after some hardcoded changes in RIOT makefiles, I could program the board using elf2uf2 conversion tool (instead of uf2conv) without any problems. My RPI-pico is using an older RP2-B1 chip. If this problem appears in the most recent RP2-B2 chip version (unfortunately, I have no access to this version) I could add elf2uf2 tool to RIOT code. |
Is anybody working on enhancing this? there seem to be some missing peripherals … |
Any unassigned peripheral is probably waiting to be implemented. Right now, I have more important work to do, than to continue to implement PIO support. Do you require any particular peripheral, or are you asking in general? |
Besides PIO, ADC support would be nice to have, at least for my current project. |
19071: boards/rpi-pico-w: initial support for rpi pico W board r=maribu a=krzysztof-cabaj ### Contribution description This PR adds initial RIOT OS support for the Raspberry Pico W - the Raspberry Pico with a Wifi/Bluetooth Infineon CYW 43439 module (*). The code is based on PR #15822 and contains changes associated with small differences between RPi Pico and Pico W. The most important is that LED0 is connected to the CYW 43439 module and without PIO (PR #17425) cannot be used (RP2040 and CYW 43439 are connected together using SPI and Pico SDK utilize PIO to program SPI). Current LED0 implementation is similar to one for `native` board and prints appropriate texts on STDIO. (*) Currently network connectivity not implemented. ### Testing procedure Flash sample program and look at doc: ``` make doc xdg-open doc/doxygen/html/group__boards__rpi__pico__w.html ``` ### Issues/PRs references Based on PR #15822. Needs PR #17425. Additional doc: [Raspberry Pi Pico and Pico W](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html) Co-authored-by: krzysztof-cabaj <[email protected]>
I am working on SPI support right now. I can maybe add some more, it seems not that difficult. |
I've started to work on an ADC driver for this MCU. |
|
I'm new here. Can I add i2c? |
Sure, go ahead! |
yes there is :-) And @fabian18 already has already created the stubs where it would call to either PIO or native I2C implementation. Thanks for picking this up :-) |
Can I ask questions here or should I ask in forum? How and from what I create branch or pull request? |
If you have a question about something related to RP2040 (hardware or software). You can ask it here. I strongly suggest you to have a look at a few entries in our wiki regarding RIOT development and contribution: Feel free to join us on Matrix, we might also help you there. |
I'm currently doing a bachelors degree level project and intend to check some items off this list - looking at starting with pwm or i2c, then pm, usb and pio if there's no existing implementation for that. Posting here to ask what the current state of these features are so I don't try and do something that someone else is already doing :) |
I have the |
Hi, I'm back from little break. Should I add an option to use I2C as a slave and where I can find info about I2C drive strength? |
Hi @MacT900, |
|
I will give |
That's nice ! I have some experience with this, so don't hesitate to ask if you need help or have any questions. |
I have my Maybe I could push my code as a WIP Pull Request to clarify? The code is compiling but not working at all. I just ordered a Black Magic Probe for debugging just in case 😄 |
Please go ahead. |
@tanneberger There is an open PR for hardware I2C opened by @studiosoftdev at #20677 but they didn't answer to review yet. |
@dylad I tried using I2C and I think it uses the PIO under the hood, but that crashes the kernel when calling I will also try out that PR thank you. |
@tanneberger If you encountered an issue with I2C/PIO on RP2040, please open an issue to describe it. It should works at out of the box (at least that was the case last time I played with it). |
Description
Add the support for the mcu RP2040 as weel as the Raspberry-Pi Pico board.
Raspberry Pi Pico is a low-cost, high-performance microcontroller board with flexible digital interfaces. Key features include:
Useful links
https://www.raspberrypi.org/blog/raspberry-pi-silicon-pico-now-on-sale
https://www.raspberrypi.org/documentation/pico/getting-started/
https://raspberrypi.github.io/pico-sdk-doxygen/index.html
The text was updated successfully, but these errors were encountered: