-
Notifications
You must be signed in to change notification settings - Fork 476
Need new pico-sdk with fixed configuration for Adafruit Feather, custom boot2 and libpico #42
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
Comments
So the PR did not actually fix this. It turns out that the Pico has 2 different and incompatible ROM versions. The ones on the Raspberry Pi foundation devices, like the Pico, are B0 and Adafruit and others are running B1. Normally when you rev a ROM the interfaces stay the same, but in this case they don't so you actually need different code to run on B0 vs. B1, and I think that's the issue. I think just rebuilding libpico.a with a proper config option will help here. |
@yoramrotbach Please give #42 a try and report back. |
@earlephilhower, should there be a new version available for update? I'm running 0.9.12 |
@yoramrotbach are you sure your board is not busted in some way? Watch this video where ladyada at Adafruit shows a demo running the same board you have, without any changes to the core (i.e. this was just after I fixed the I2C 0-byte probe stuff). - https://www.youtube.com/watch?v=fKDeqZiIwHg She also runs a QT Py RP2040 pre-release and it runs fine. too. So I'm inclined to think this may be something specific to your setup and not the core. As I don't have anything but the official Picos on-hand I can't really do any testing. If there are other users w/the Feather they can chime in, too. |
Update: @earlephilhower, I don't know how it could be busted if it working perfectly with CircuitPython. I saw ladyada videos and it is strange that she got it running, however she doesn't explain what she did or if it worked out of the box. Yoram |
I didn't make a new release w/the change because it's not been validated yet. Why not get the 0.9.13 release, just put out, and then
If that doesn't help, then your issue is not related to the ROM version and the PR should be dropped, anyway, as not useful... |
Ah...looks like the pico-sdk may have issues w/your board! I was just checking on a PR I had there and saw this: raspberrypi/pico-sdk#279 The clock divider 2 vs 4 would cause flash to just not work (it'd be too fast at /2 which is what is in the SDK). There's also something going on w/the boot2 stage, but I don't understand his comments there. Guess that's what we get for bring on the bleeding edge! |
Thanks Earl for your support. |
I've done these steps, and still find that the 'Adafruit Feather RP2040' definition has issues. Compiling and loading the Bootsel example completes as expected (uf2 method), but after rebooting the board shows no serial device. I note that the new libpico.a is smaller than the one it replaces, is that expected? |
@blurfl see #42 (comment) . There are some issues w/the pico-sdk currently. Adafruit has patched their fork, but the upstream (which is what I'm using) has not yet been updated. |
The SDK supports the Flash chip on the Feather perfectly fine, but you have to compile your code using the generic03 (slow!) flash profile rather than the default winbond profile (used on Pico), see raspberrypi/pico-sdk#275. |
Build all 4 different boot_stage2 objects with SPI/2 and SPI/4 options. Add a menu to the generic board to allow selecting between them. Use the potato/4 boot2 for the Adafruit Feather until we have a better version verified. Fixes #42
@aallan Thanks very much for the pointer! I've been able to build and ship all 8 possible boot sectors (/2 and /4 for each of the 4) with the pointer where to look you gave. I'm a maintainer on the ESP8266 Arduino core, and we also have issues with different/incompatible flash chips.... @yoramrotbach @blurfl if you can use GIT, can you try #67 out? I have put the Feather at the slowest, most compatible setting (potato SPI/4). That should come up no matter what. If so, then we can figure out the "right" one that's not a potato (aka 3sx faster flash read) Then select the Generic board, select 8MB, and the go through the 8 possible options in the new Boot Stage 2. I think the "w25q080 /4" is equivalent to what Adafruit is running (but they actually wrote their own custom boot stage 2 so it's not exactly the same), but there is no harm in trying everything and seeing what works. |
No worries. This wasn't an issue we were really thinking about until the Feather shipped. |
Build all 4 different boot_stage2 objects with SPI/2 and SPI/4 options. Add a menu to the generic board to allow selecting between them. Use the potato/4 boot2 for the Adafruit Feather until we have a better version verified. Fixes #42
Try release 0.9.15, just put up. I merged after more testing as it didn't seem to break anything on the genuine Pico side. |
Release 0.9.15 seems to work correctly with the Feather in the example sketches 'Fade', 'Temperature' and 'Bootsel' 👍 |
Awesome, @blurfl . Can you try this experiment and see which bs2 works best for you? Right now you are running something that is much slower (but more compatible) than other boards when reading the flash.
|
Happy to run and report, but what is a good sketch to test reading the flash? |
Any of them. It reads the flash to run your code, and there's a lot of code in just the USB serial port. I used BOOTSEL which is small and fast. Change the boot stage, reflash, see if the serial port still lives and if it reacts to button presses; then repeat. |
Here's what I see using 'bootsel.ino': |
Thanks for the feedback. That |
Thanks @earlephilhower Yoram |
Hi,
I would appreciate if you'll support Adafruit Feather RP2040 which has 8MB flash.
I've found in the code where it says that the pico has only 2048k flash, but I don't know if changing this to 8096k will make it work.
Thanks
Yoram
The text was updated successfully, but these errors were encountered: