LimeSDR needs rescue

I pulled my Lime out of the closet and plugged it into Ubuntu 26.04.

LimeUtil told me I need to update so I did the auto update
LimeUtil --update

It ran two updates. The first failed. The second succeeded. Now I have this:

root@galactica:/home/jason# LimeQuickTest; echo =====; LimeUtil --find ; echo =====; LimeUtil --fw=LimeSDR-USB_fx3_fw.img
[ TESTING STARTED ]
->Start time: Mon Jun 29 22:50:45 2026
->LimeSuite version: 23.11.0+dfsg-4

TransferPacket: Write failed (ret=-9)

TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
Board not supported
Failed to connect
libusb: warning [libusb_exit] device 9.48 still referenced
libusb: warning [libusb_exit] device 9.46 still referenced
libusb: warning [libusb_exit] device 9.45 still referenced
libusb: warning [libusb_exit] device 9.2 still referenced
libusb: warning [libusb_exit] device 9.1 still referenced
libusb: warning [libusb_exit] application left some devices open

  • [WestBridge , media=USB 2.0, module=FX3, addr=04b4:00f3, serial=0000000004BE]

=====
Connected to [WestBridge [USB 2.0] 4BE]
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
TransferPacket: Write failed (ret=-9)
Programming failed! Write operation faileded! Write operation failed

Programming failed!

Is there some fix or is this some sort of flash error?

WestBridge, means the FX3 USB controller firmware is not loaded. Check if there is a jumper on “FX3 Boot” pins near the USB connector. If jumper is on, then the firmware is corrupted, reprogram FX3: LimeSDR Firmware Management - Myriad-RF Wiki

“USB 2.0”, are you plugged into USB 2.0 port? If not then it indicates USB connectivity problem (or USB power), check cables, plug into USB 3.0 port. LimeSDR-USB can draw quite a lot of power from the USB, if the port cannot provide enough power, it can cause a brownout and device would end up in undefined state.

Yes, it doesnt seem to link up to USB3.0 even though it is in a 3.0 port. Which would indicate that it has sufficient power even if the link speed is degraded.

As you can see in the original post, attempting to load the LimeSDR-USB_fx3_fw.img fails.

So I am still stuck. I am concerned these TransferPacket: Write failed indicates a NVRAM failure.

Is there a way to flash the fx3 firmware via JTAG?

JTAG is not required. The FX3 firmware is flashed through USB vendor commands. “WestBridge” means the controller has booted to it’s default bootloader, and can flash new firmware.
Check the J17 jumper “FX3 Boot” near the USB connector. The jumper must be shorted, for flashing to work.

Thanks for the reply. I have been down this road. The jumper is in place and closed. It fails to flash and returns TransferPacket: Write failed (ret=-9)

If I understand this correctly, inside libusb, -9 is LIBUSB_ERROR_PIPE, which means the USB endpoint has stalled or is not behaving as expected.

That usually points to one of:

  • FX3 firmware/bootloader isn’t responding correctly
  • USB transaction errors
  • FX3 hardware fault
  • Clock or memory problem inside the FX3 subsystem

I have tried two usb3 cables (one active), two computers one Linux, one Windows 10. I ordered an external power supply which should be here tomorrow so I can eliminate power as a variable. I would really like to see a test of the FX3 RAM.

welp, here is a hint.

I used the Cypress USB Control Center to program the fw image to memory. Windows then sees the device as LimeSDR in device manager. If I power cycle the Lime it falls back to Cypress boot loader.

That should eliminate USB pathway, FX3, FX3 RAM, FX3 clock.

I now suspect the SPI flash, but I am still just guessing. Is there someone who repairs these boards?

Okay, here is a hail mary. Here is what I am trying now.

on windows, load fw into ram from control center, the board becomes a Lime. Yay. Loaded windows Lime drivers and the board sort of comes alive - most things don’t work but I can connect to it as a Lime.

Modules → programming → automatic
This took time. Says “Programming Completed”

A this point, the Lime seems to “reboot” and we are back at the Cypress boot loader.

These are the logs from LimeUtil

[14:54:31] INFO: Disconnected control port
[14:54:43] ERROR: TransferPacket: Read failed (ret=4)
[14:54:43] WARNING: Gateware version mismatch!
Expected gateware version 2, revision 23
But found version 0, revision 0
Follow the FW and FPGA upgrade instructions:

Or run update on the command line: LimeUtil --update

[14:54:43] ERROR: TransferPacket: Read failed (ret=4)


[14:54:58] ERROR: TransferPacket: Read failed (ret=0)
[14:54:58] INFO: Connected Control port: LimeSDR-USB FW:4 HW:4 Protocol:1 GW:0.0 Ref Clk: -0.00 MHz

So, I see the GW:0.0 Clk: -0.00Mhz is troubling. I flashed FPGA separately and it is still broken. So now I am thinking the problem is in FPGA. I flashed FPGA separately, it says “Programming Complete” but then the board disconnects and comes back to Westbridge like it did after the automatic update failed.

this could still be power, but maybe FPGA configuration flash or interface failure.

Let’s focus on the main issue here, the FX3 not booting the flashed firmware.
At this stage FPGA is not relevant.

You’ve verified that FX3 is working correctly and can be programmed to RAM.
So the problem could be either flash memory, or the “FX3 boot” jumper.
It might sound stupid but there was a case when somebody once had a problem like this, where the jumper’s metal part had fallen out and only plastic remained, therefore not making contact on the boot pins.
Basically if there is no contact on boot pins, FX3 will always boot into default bootloader “WestBridge”, and flash memory cannot be written.

The J17 pins are firmly attached. Pins are straight up and down and in the closed position. Thanks for the suggestion. I put a clamp from the fluke on those two pins and saw ground.

I also put a fluke on the 3.3v rail and set it for min/max and then did automatic update. The rail dropped as low as 2.84v. That might be low enough to cause problems, like corrupting the image as it writes to flash. LimeUtil nor Control Center seem to offer a way to verify the checksum of an image on flash which would be helpful because “Programming complete!” is less than deterministic.

I ordered a power 12v 3a supply but some how came with the wrong barrel diameter. The replacement arrives tomorrow. To be continued. Thanks for your help.

Okay, the new power supply seemed to do the trick. Best guess, the USB port didnt supply enough power for flashing and corrupted the boot image due to voltage drops as low as 2.84v

The fix was:

power supply → control center → program fx3 ram → LimeSuite → connect → modules → programming → automatic

Done. Thanks for all your input and insight into the problem.