RP2040 Nano Connect crashes on blink.ino.elf.uf2

Hello,

Actually two parts of the same issue.

My two new RP2040 Nano Connects crash when I load blink.ino.elf.uf2. Nothing happens, Crickets ... No flashing LED, No USB connection to my PC. I must connect QSPI_CSn to ground to gain access to the Nano Connect.

My two new RP2040 Nano Connects crash when I load
adafruit-circuitpython-arduino_nano_rp2040_connect-en_US-6.3.0.uf2. Nothing happens. No connections to my PC. More crickets. I must connect QSPI_CSn to ground to gain access to the Nano Connect.

adafruit-circuitpython-arduino_nano_rp2040_connect-en_US-7.0.0-alpha.6.uf2 loads and runs.

6.3.0 and blink.ino.elf.uf2 ran/run fine on the Nano Connect I received from you over 6 months ago. They do not run on the 2 Nano Connects I received a couple days ago. What was changed to cause this? How do I/we/you fix the issue.

Bruce

Hi @blakebr I think the reason for the different results between the two sets of boards is explained here:

Due to the (not so) recent issues with supply chain we're mounting different flash chips depending on availability. While those are mostly compatible with each other, some have slight changes that require fw adjustments. In this specific case the issue can be solved by compiling sketches using the latest core which is of course backwards compatible with all other chips. If you already flashed a board with code compiled with an old core you need to recover by resetting the board while shorting the rec pin with ground.

So the original .uf2 files were compiled specifically for use with the flash chips on the original batch of Nano RP2040 Connect boards. The newer boards have a different flash chip that is not compatible with the old .uf2 files. But the latest release of the "Arduino Mbed OS Nano Boards" platform supports any of the flash chips, so when you compile a sketch in the Arduino IDE, you don't need to worry about it soft-bricking the board.

You could surely make a new blink.ino.elf.uf2, but it doesn't seem like there is much need for one when you can just upload a Blink sketch from the IDE when you want one on the board. It sounds like the latest CircuitPython file works fine with either chip. So it doesn't seem like there is actually anything to fix, but certainly it's a perplexing problem if you don't know about the different flash chips.

Thanks for the info.

I received a board back in June but I haven't gotten to use it until now. It was blinking with the built-in blink program when I received it but ever since I tried to upload a sketch to it from the 1.8.13 IDE with the latest MBED OS RP2040 core I can't get the board to do anything except the GND/REC reset. I've tried both the 1.8.13 and the Beta 2.0 IDE with the new MBED core and also Platform I/O. I can get a program to upload to it but it doesn't work (blink example) and I have to use the GND/REC to reset the board after that. The "factory reset" blink.ino.elf.uf2 doesn't work either as well as the flash_nuke.uf2, I can't seem to get the board to do anything now except reset (load sketch and hang). And ideas of what to try to "fix" this board?

Hi Randy, I'm stuck in the same boat. Tried IDE 2.0 with MBED core 2.4.1, and the board is just dead after uploading a sketch. Factory reset binary doesn't work either.

Arduino changed the Flash Memory chip due to chip shortages. You will need the latest compilers and uf2 files that take into account which Flash Memory chip your board has. Good luck.

Blakebr tried latest tools and no luck with that either. Suppose I could have tried more combinations of different versions but I didn’t have enough patience for that. Maybe someone will be able to respond with exactly what versions of tools are required and the procedure. I tried latest IDE version and the beta 2.0 version and couldn’t get either of them to work.

1 Like

Randy,

This is what I know. The 182k blink.ino.elf.uf2 works with both memory options.
The 191k version only works on the original memory type.

The 25k flash_nuke.uf2 works on both.

The CircuitPython platform specific 7.0.0 alpha.0 version works with both memory options.

Good luck,
Bruce

Hi Bruce,
I can positively confirm that https://content.arduino.cc/assets/Blink.ino.elf.uf2, 186368 bytes, sha1sum f3797717f03d62e5840fade6735b3e9dc97d9585, does NOT boot on my Nano RP2040 Connect.
After copying the file to the mass storage device, the mass storage device disappears, and the Arduino is completely dead until plugged in with the REC pin grounded.

Cheers
Martin

FWIW, my Flash chip is Adesto AT25SF128A.

Stumped!
Possibly a third memory type?

I can confirm that this version fails on my board as well.

Yes, I also have the Adesto AT25SF128A flash chip. :frowning:

Randy,

If you can get to REPL you can try this:

import storage
storage.erase_filesystem()

It will erase all your data and reformat the file system if it is corrupt.

Bruce

Hi Bruce, finally got brave enough to try the flash_nuke.uf2, this resets the board to where the drive always shows up when plugged in. However, there is no COM port present after that. I tried uploaded several different versions of MicroPython but none of them worked. I tried updating everything in my Arduino 1.8.13 desktop IDE but I can't upload anything from there since there is no COM port. I also tried updating everything in my PlatformIO workspace (including a Pico Pi update) and tried to program blink from there (because I can force it to install to the drive instead of a COM port) but it fails as well and I have to force install the flash_nuke.uf2 again to get the board back to being recognized. Not sure what to do at this point.

Thanks,

Randy

So you are saying you don't see a COM port coming and going in 'Control Panel >> Device Manager >> Ports (COM & LPT)'? But a drive shows up in 'This PC'?

flash_nuke.uf2 is my go to when I have lost sanity with an RP2040. The same one works on all RP2040 devices (as far as I know).

There is a wiring diffwrence between the original Raspberry Pi Nano, The AdaFruit devices, and the Arduino devices. Some have only a BOOT button, some only a RESET button, and some both. Discovering which has what can be a steep learning curve. The only reliable source are the schematics. However some don't publish schematics (ARDUNIO!)

As for a solution to your issues, I don't have one without fingers and eyes on. Sorry.

I don't know about "ARDUNIO", but as for Arduino the schematics for the RP2040 Nano Connect are available for download on the product page:

You should still be able to do the upload even if no port appears for the board. Just try an upload and see if it goes through. After that first upload, the USB CDC serial code will be running on the RP2040 and you should then see a port for the board.

I have yet to find a schematic for 'Tiny RP2040'.

That is a Pimoroni product. It seems they don't provide schematics for any of their products:
https://forums.pimoroni.com/t/explorer-hat-pro-schematics/3487/2

We don’t currently publish schematics

It would take time to tidy them up, annotate them properly and consistently and release them. We’re working on it, slowly, but it’s not a priority.

(note that comment was from 2016, so it does indeed seem to be going slowly)

And a more recent discussion:
https://github.com/pimoroni/pimoroni-pico/issues/94