Hello, I have a problem with the xrp controller, when I connect it to the computer and go to the xrp code editor, I am offered to update the firmware to 1.25, I update it then update the libraries, but after that I cannot upload my projects there. I have already completely reset the firmware and installed the latest 1.28 from the micropython website, but after that the libraries were not displayed at all, or when I updated them again they started to load but everything crashed and said update xrp to the latest version 1.25, what to do in such a situation?
The XRP uses a custom firmware, not the standard micropython site’s FW…the good news is you can fix it, but now we need to start over entirely. Save any needed files beforehand:
1. Completely erase the board (factory reset)
Download the Raspberry Pi flash_nuke.uf2 file:
-
Direct link: https://datasheets.raspberrypi.com/soft/flash_nuke.uf2
-
Put the XRP Controller into bootloader mode: hold BOOTSEL, press and release RESET, then release BOOTSEL.
-
The board appears as a USB drive (
RPI-RP2orRP2350). -
Drag
flash_nuke.uf2onto the drive. The board will reboot with completely erased flash.
2. Flash the correct XRP MicroPython firmware
Do NOT use the generic “Raspberry Pi Pico W” firmware. Use one of these XRP-specific builds…which one depends on your XRP version:
| Board | Where to get the firmware |
|---|---|
| XRP Controller (new, RP2350) | MicroPython.org — SparkFun XRP Controller — download the latest .uf2 (currently v1.28.0). |
| XRP Controller — Beta (Pico W) | Open-STEM/XRP_MicroPython Releases — the UF2 is attached to the release notes. |
Flash it the same way: enter bootloader mode and drag the .uf2 onto the drive.
3. Reconnect to the XRP Code Editor
-
Go to xrpcode.wpi.edu in Chrome or Edge (required for Web Serial).
-
Click Connect XRP, select the serial port, and let the editor detect the board.
-
If it prompts you to update firmware or libraries, allow it. Since you now have the correct XRP-specific MicroPython build, the library installation should complete successfully.
I used this firmware XRP Controller (new, RP2350) | MicroPython.org — SparkFun XRP Controller , and I had this error. I already tried 1.25-1.28, but the problem did not go away.
…after nuking?
This is the message I see after updating the software. If I select “cancel”, the library is there, but the “File” menu is empty. If I click “Run” - an error. If I click Ok, it offers to update to the old version. I update. Now “Run” works, the files are saved, but there is no XRPLib.defaults and I get: File “”, line 34, in
File “test1.py”, line 1, in
ImportError: no module named ‘XRPLib.defaults’. Firmware from: MicroPython - Python for microcontrollers
What do you recommend to do?
Ok, I think I have an idea of what is going on…the web editor is trying to downgrade because it is confused; when it does it doesn’t push the full library :-/
So, I think you can try 2 final paths:
Web Editor Path
- Start completely clean:
-
Enter bootloader mode (hold BOOT, press RESET, release BOOT).
-
Copy
flash_nuke.uf2to erase the board fully. -
Re-enter bootloader mode and flash the latest RP2350 firmware from MicroPython.org — SparkFun XRP Controller (the non-Beta page). Use v1.28.0.
- Connect to
xrpcode.wpi.edu.
- When the “Update to 1.25.0 beta06” dialog appears, click OK and let the editor do its thing. It will downgrade the firmware, but we will fix the library next.
- Fix the missing
XRPLib.defaults:
-
Once the board reconnects, look in the file tree under
lib/XRPLib/. -
Right-click
version.pyand delete it. Then unplug the XRP and plug it back in. -
Deleting
version.pytricks the editor into thinking the library is outdated, forcing it to re-push the complete, correct XRPLib bundle (includingdefaults.py). -
Wait for the editor to finish the library update, then run your code.
- If the “not saved to this XRP” error appears:
- Make sure you explicitly save the file to the board before clicking Run. In the editor, use the save action so the file is written to the XRP filesystem, not just the browser cache.
###Bypass Web Editor Path
If the editor keeps fighting you we can disable its attempt to auto-update:
-
Nuke and flash the RP2350 firmware manually as in Step 1 above.
-
Use
mpremoteor Thonny to connect to the board instead of the web editor. -
Manually install XRPLib:
-
Download the library from the Open-STEM/XRP_MicroPython repository.
-
Copy the
XRPLibfolder into/lib/on the board usingmpremote cp -r XRPLib /lib/or Thonny’s file manager.
- Write and run your code directly. You avoid the editor’s firmware-downgrade behavior entirely.
Let me know how things shake out!
A couple corrections:
No, we do use the standard MicroPython firmware from the MicroPython downloads page for both versions. If you want to manually install the firmware, scroll down to the XRP boards, select which one you have, and download and flash the latest firmware.
The current version of XRPCode has hard-coded v1.25.0 beta06 as the latest firmware version, so if any other version is used, XRPCode treats it as outdated and offers to “update” the firmware. An updated version of XRPCode is in the works (try it out here: https://xrpcode.wpi.edu/staging/) that fixes this problem. In the meantime, you can just choose to skip the incorrect “update” and use the actual latest firmware version.
If you see this message, it typically is caused by having created a new file that didn’t save to the XRP for some reason. XRPCode caches all edits in the browser, then should automatically save all changes to the XRP in one go when you click the RUN button or manually save the file. If this message appears, then something went wrong in that process.
Something to try is pressing the reset button on the XRP. This will refresh the entire file system to verify what files are actually present. If your file is not present, then manually save the file to the XRP again. If it is present, then try closing re-opening the file to ensure you’re looking at the version on the XRP instead of the version that’s cached by the browser.



