-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Add Pico 2 W port and update Pico SDK version #16313
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
Conversation
I've split these changes out from this PR #16057 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #16313 +/- ##
=======================================
Coverage 98.57% 98.57%
=======================================
Files 164 164
Lines 21349 21349
=======================================
Hits 21045 21045
Misses 304 304 ☔ View full report in Codecov by Sentry. |
Code size report:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this, it's a relatively concise PR!
050e031
to
47dd1fe
Compare
ea6014a
to
2d4b02b
Compare
For anyone that wants to test but doesn't want to build the firmware, here is a zipped UF2 file for the ARM build of 2d4b02b. |
I have a project with different topics (webserver, I2C, buttons, asynio, WLAN, MQTT, neo led, logging, ...) and this firmware runs stable for me. I could run the project without any modifications from the Pico W. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These changes look good to me, thanks @peterharperuk . I don't have a 2 W to run this code myself, but I've ordered one.
Do I understand correctly that this pico-sdk version still has a buggy alarm pool, but after we update to 2.2.0 then we'd be able to switch the soft timer implementation back to the alarm pool if we wish? (Thanks to your PR raspberrypi/pico-sdk#2127)
I did a full test of this PR on:
Everything seems to work as it should except the following:
|
Should we include unittest in the list of installed modules? To avoid having to remember to manually install it to run the tests |
I'd rather not do that. The unittest package is pretty large when frozen in to firmware and not all ports have the space for it. Also, it's not a very common package for users to use, so takes up flash space unnecessarily. If you're using a particular board for running the MicroPython test suite, it's relatively easy to do |
Brings in support for Pico 2 W, among other things. Signed-off-by: Peter Harper <peter.harper@raspberrypi.com>
Signed-off-by: Peter Harper <peter.harper@raspberrypi.com>
Signed-off-by: Peter Harper <peter.harper@raspberrypi.com>
The cyw43 pins used to be hardcoded and `CYW43_PIN_WL_HOST_WAKE` and `CYW43_PIN_WL_REG_ON` were in the `pico_w.h` board header. This has been changed so the board header just defines the "default version of the pins, e.g. `CYW43_DEFAULT_PIN_WL_HOST_WAKE`, `CYW43_DEFAULT_PIN_WL_REG_ON` etc. Set the pin values in `cyw43_configport.`h so `cyw43-driver` sees them and allow them to be changed at runtime (dynamic) if required. Signed-off-by: Peter Harper <peter.harper@raspberrypi.com>
As cyw43 pins might be dynamic, add a function that returns if a pin is reserved. This is used by `MICROPY_HW_PIN_RESERVED` to prevent the pin IRQ from being reset across a soft-reset. Signed-off-by: Peter Harper <peter.harper@raspberrypi.com>
Signed-off-by: Peter Harper <peter.harper@raspberrypi.com>
Build with: make BOARD=RPI_PICO2_W BOARD_VARIANT=RISCV Signed-off-by: Peter Harper <peter.harper@raspberrypi.com>
a9c9231
to
a70a90c
Compare
I squashed down the last two changes you made @peterharperuk . This looks good now, it's very clean thank you! |
Summary
Add Pico 2 W port and changes made in pico-sdk 2.1.0. This fixes issues with lightsleep associated with sev handling and alarm pool problems.
Testing
Ran all the micropython tests