Can't flash/run nano RP2040 connect while on board

I just got my Jumperless today!!! I’ve been trying to get it working with an arduino nano RP2040 connect but I am not being able to flash the nano while it’s mounted to the jumperless.

Ports

I noticed that the jumperless shows up as two ports /dev/cu.usbmodem01, and /dev/cu.usbmodem03, and the nano connected by itself shows up as /dev/cu.usbmodem1201.

If I connect the two at the same time to my computer all three ports are discoverable, however as soon as I mount the nano to the jumperless, the nano’s port disappears.

Flashing

For flashing the nano I’m using the arduino cli

arduino-cli upload -i ./dist/src.ino.bin -b arduino:mbed_nano:nanorp2040connect -p /dev/cu.usbmodem1201

Debugging

Here’s what I’ve (unsuccessfully) tried so far:

  • Flash the nano before connecting it to the Jumperless: the flashing part works, but the nano stops running as soon as it’s mounted to the jumperless
  • Mount the nano to the jumperless, then flash with only the nano connected: doesn’t work, the nano’s port is not visible
  • Mount the nano to the jumperless, then flash with both the nano and jumperless connected:
    • Using the nano’s port: doesn’t work, the nano’s port is not visible
    • Using the jumperless ports: I get an error Failed uploading: uploading error: exit status 1
  • Mount the nano to the jumperless, then flash with only the jumperless connected: same error as above Failed uploading: uploading error: exit status 1

What I haven’t tried yet:

  • Using a regular arduino nano: I know this might be specific to the nano RP2040 connect, but I don’t have a regular nano to try this on yet. I just ordered one, but I’ll have to wait until tomorrow to try it out.
  • Shorting the protection resistors: I’m to scared to try this right away lol. I might try it at a later point when I feel more confident that it’ll help

Questions

  • Has anyone experienced something similar?
  • Is there a piece of documentation that I’m missing?
  • Could this be an issue specific to the nano connect?

Hey Diego,

I actually haven’t tested with the RP2040 Connect, so I’ll order one and test it myself. But that’s actually very interesting. My first guess is that the RP2040 Connect has the REC pin (which seems to act like pressing the BOOT button on a Pico or the Jumperless) in the place where on a regular Nano, it would be a the second RESET pin. The header on the Jumperless connects them together, so that might be doing something that’s either holding the Connect in reset or not allowing it to assert CSn on the flash chip.

But luckily, there’s a solder jumper on the Jumperless you can cut (RESET 0) that will disconnect the 2 RST pins from each other that might help. It shouldn’t affect anything on a regular Arduino Nano. (Don’t worry about permanently fucking up your Jumperless, if you do, I’ll send you a replacement for free)

That second USB device (cu.usbmodem03) acts as the routable USB-Serial device that can be connected with the logic analyzer part in Wokwi

It’s pretty crude, it just reads anything it gets over serial and sends it out over UART, and I’m not entirely sure the RP2040 has a bootloader that just accepts a .hex file over UART after a reset. When my RP2040 Connect gets here, I’ll try it out and let you know.
Another possible issue is that with a regular Arduino Nano, the RP2040 built into the Jumperless is just sooo much faster (20MHz vs 133MHz) that any timing issues shouldn’t matter.

Also, the Jumperless you have already has the protection resistors shorted, I had them reworked at the factory. Not like it matters in this particular case, because the Connect is a 3.3V board anyway.

Anyways, let me know if any of that helps. We’ll get this figured out.

-Kevin

Thank you for your reply!

I received my regular nano today and can confirm it runs properly while connected to the Jumperless :tada: So this issue is definitely specific to the RP2040 Connect.

I’ll disconnect the RESET 0 jumper over the weekend and then I’ll let you know how it goes with the RP2040 Connect.

Man, I’m gonna have so much fun with this

1 Like

Sick!
My RP2040 Connect will get here tomorrow morning so I’ll test it out first and let you know.

If you run into any issues, I’m in the process of refactoring the routing code to be readable be understandable to humans, so it’s possible that issues you have are on my end. So make sure to update the firmware and let me know if something isn’t working the way you expect.

And yes, you will have fun with this

1 Like

I’m also looking to use an rp2040. I’m curious what cutting that jumper would effect (say, if I’m also planning on using Arduino nano)? Would cutting a pin on the rp2040 connect be a less permanent option?

Cutting the jumper should make zero difference for the regular Arduino Nano, because they’re also connected on the board itself.

I probably didn’t even need to connect them together on the Jumperless.

And the way those solder jumpers work, you can always put a glob of solder to reconnect them.

I’ll try it out now that I have one of those RP2040 connect boards. I don’t think flashing directly from the Wokwi sketch will work because it’s hardcoded to compile the code for a regular ATMega328 based Nano, at some point I’ll add a selection for that.

Not sure about flashing it over one wire via the UART pins, I’ll try it and let you know.