Board definition for Pico 2 clones with GD25Q127C 16MB flash (fixes "no USB / never boots") #19809
MobileFF
started this conversation in
Show and tell
Replies: 1 comment 11 replies
|
This issue was driving me crazy. Thank you. We have a "Cytron MOTION 2350 Pro REV 2.0" https://www.cytron.io/amp-p-motion-2350-pro board experiancing these symptoms. Works perfectly with circuitpython, but fails to boot after flashing to micropython and power cycling. Would you mind posting the firmware "uf2 file" with the changes. Well be happy to test it and report back. |
11 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Some third-party RP2350 boards copy the Pico 2 pinout but use a 16MB GigaDevice GD25Q127C flash (marking
25q127cs16). On these boards the officialRPI_PICO2UF2 never boots: the BOOTSEL drive goes away, but no USB CDC port ever appears. CircuitPython runs fine on the same board.Cause:
RPI_PICO2runs the flash at 75MHz (PICO_FLASH_SPI_CLKDIV 2). Both boot2 andrp2_flash_set_timing()use that value, and this chip is not reliable at that speed. With 37.5MHz (PICO_FLASH_SPI_CLKDIV 4) it boots. I tried three different boot2 variants at 75MHz (w25q080, a GD25Q-specific one, generic_03h) and all failed, so the clock is what matters.I've published an out-of-tree board definition (build with
BOARD_DIR=, no changes to the MicroPython tree):https://github.com/MobileFF/micropython-pico2-gd25q127c
boot2_w25q080.S, with QE set via0x31(Write Status Register-2), as in the GD25Q127C datasheetVerified on real hardware: boots, USB CDC works, 14MB filesystem, and flash reads at 4/8/12MB do not wrap.
Not yet tested: the RISC-V variant, and faster clocks such as 50MHz.
Since I only have one of these boards, any reports (works / doesn't work, with the flash marking) are welcome. It might also be worth discussing whether the rp2 port should make it easier to override the flash clock for boards like this.
All reactions