Skip to content
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

Add support for Pico W and handle discrepancies between the boards #57

Open
webhdx opened this issue Nov 15, 2022 · 3 comments
Open

Add support for Pico W and handle discrepancies between the boards #57

webhdx opened this issue Nov 15, 2022 · 3 comments

Comments

@webhdx
Copy link
Owner

webhdx commented Nov 15, 2022

Pico W debuted the day PicoBoot was released. It gave me no time to prepare codebase for Pico W. This is why I never advertised PicoBoot as fully compatible with Pico W. As for now it's working correctly without the support for status LED which is not a big deal.

My plan for Pico W:

  • release single *.uf2 firmware file compatible with both boards
  • distinguish between the boards based on the presence of WiFi module (I've already done it in my tests)
  • keep core functionality the same
  • expose WiFi module over EXI bus so homebrew can communicate with the internet through PicoBoot (blocked by: Make PicoBoot fully addressable and controllable via homebrew #59, Finalize pinout and release flex cable #62)
  • make Pico W "the go to" platform for PicoBoot and advertise WiFi capabilities as the main selling point and a pillar for modernized homebrew ecosystem on GameCube

Some loose thoughts:

  • single firmware unfortunately has one drawback for normal Pico users - network stack will take up some space even though it won't be used, this makes less space available for payload or LFS
@webhdx webhdx added the feature request New feature or request label Nov 15, 2022
@webhdx webhdx added this to the PicoBoot v2.0 milestone Nov 15, 2022
@webhdx webhdx self-assigned this Nov 15, 2022
@webhdx webhdx added planned feature and removed feature request New feature or request labels Nov 15, 2022
@sli
Copy link

sli commented Jan 30, 2023

I would really like to suggest making the Tiny2040 a first class citizen in this project due to its physical size relative to the Pico and Pico W. Beyond just being very small, it also has an RGB LED which can be handy for debugging and is pretty easy to support in a single codebase.

https://shop.pimoroni.com/products/tiny-2040?variant=39560012234835

@webhdx
Copy link
Owner Author

webhdx commented Jan 30, 2023

Unfortunately as I stated many times I'm not planning to extend support to other RP2040 boards. This is simply because I don't have enough time to test different boards to make sure new firmware is going to work for everybody. I heavily overclock Pico in order to pull off IPL injection and for this you need very repeatable hardware. With official boards I can be assured every batch uses components that follow the specification. WIth 3rd party boards it's not always the case.
PicoBoot adopt Pico W as the main platform and heavily utilize CYW43439 WiFi chip. Tiny2040 and other Pico boards don't have that specific chip.

@webhdx
Copy link
Owner Author

webhdx commented Aug 5, 2024

I've learned about WaveShare RP2040-Tiny board:

Image

I've been against supporting unofficial boards but this one is particularly interesting because it externalizes USB port (it's also USB-C!) and buttons via flat flex cable. Many people have been asking about putting USB extender for easier updates. This perfectly addresses this issue. The biggest issue I see is Nanopixel LED which requires PIO. We can afford it at the moment but we might run out of PIO resources when more advanced features are implemented in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

2 participants