SparkFun XRP RP2350 – No USB Serial Connection to XRPCode V2

I recently purchased and assembled a SparkFun XRP with the newer RP2350 controller, but I cannot get it to connect to XRPCode V2. XRPCode continuously displays “Waiting for connection.”

I have done the following troubleshooting:

  • Tested with a known-good USB data cable.

  • Tested on both a MacBook using Chrome and a Chromebook using Chrome — same result on both.

  • The controller powers on normally and the LEDs illuminate.

  • I can successfully enter BOOTSEL mode by holding BOOT and pressing RESET.

  • In BOOTSEL mode, the controller correctly appears as an RP2350 USB drive.

  • I flashed the official Open-STEM RP2350 MicroPython 1.28.0 firmware:
    SPARKFUN_XRP_CONTROLLER-20260406-v1.28.0.uf2

  • The firmware copies successfully and the RP2350 drive disappears/reboots as expected.

  • However, after normal reboot, the controller does not appear as a USB serial device. On macOS, there is no /dev/cu.usbmodem* device.

  • XRPCode V2 therefore continues to display “Waiting for connection.”

Since BOOTSEL USB communication works correctly but USB serial does not appear after booting the official firmware, could you let me know whether this is a known issue with the newer RP2350 XRP Controller or the current MicroPython firmware?

Is there a different firmware version or recovery procedure I should use? If not, could this indicate a defective controller board?

Thank you very much for your help!

Thanks for the detailed writeup — this is a known-ish issue with RP2350 boards, not your firmware version or a bad cable. Here’s what’s likely happening and how to fix it:

On RP2350, simply dragging a new .uf2 onto the BOOTSEL drive doesn’t always fully overwrite what’s in flash. Leftover filesystem data or a stale main.py/boot.py from a previous firmware load can survive the “reflash” and prevent the new firmware from booting far enough to bring up USB serial…even though BOOTSEL mass-storage mode (which is ROM-level) still works fine. That matches your symptoms

Try this:

  1. Enter BOOTSEL mode (hold BOOT, press RESET, as before
  2. Instead of dragging the XRP firmware directly, first flash an RP2350-compatible flash-nuke image to fully erase flash. Use pico-universal-flash-nuke v1.1.0; be sure to not use Raspberry Pi’s original flash_nuke.uf2, which is RP2040-only and won’t work here
  3. Let it complete (LED will indicate it’s done and reboot)
  4. Re-enter BOOTSEL mode again
  5. Drag on the official SPARKFUN_XRP_CONTROLLER-20260406-v1.28.0.uf2 https://micropython.org/resources/firmware/SPARKFUN_XRP_CONTROLLER-20260824-v1.29.0.uf2
  6. After it reboots, check for the serial device (/dev/cu.usbmodem* on Mac) before opening XRPCode to ensure it is communicating

If it still doesn’t enumerate a serial port after a full nuke + clean reflash, that points more toward a hardware fault and we can go from there :slight_smile:

Problem solved!!! Terrific!