Beta FTDI driver breaks Mini v2

Hi! I’m a software developer that sometimes plays with IoT and radio bits in my spare time. I’m also a licensed ham looking to do a little more with my license, and I got a LimeSDR Mini v2 to try.

Since I wanted to try my LimeSDR on my ARM64 Windows device (Lenovo X13s), I reached out to FTDI for a driver and they were kind enough to give me a beta driver. Under the hood, the new driver is actually WinUSB and requires a re-link if not a recompile of LimeSuite. Since it turns out it’s different for x64 too, I’m sticking to x64 to get things working before making the architecture jump.

I now have a working x64 build of LimeSuite on an x64 machine. When I swap in the new driver lib and INF, it still enumerates but fails all reads and writes to the device. Even temperature reads, which appear to be fairly simple, fail.

FTDI assures me that many other customers are happy with the new driver, so I figured I’d come ask here:

  1. Has anyone else tried the beta WinUSB-based FTDI 3XX driver with LimeSuite?
  2. I’m happy to troubleshoot on my own, but would love help. Any thoughts on what I should be looking at first? There are a few layers of abstraction

Example failures:

C:\Temp\lime> limesuite-x64-newdriver\bin\LimeUtil.exe --find
  * [LimeSDR Mini, media=USB 3, module=FT601, serial=1D90F61B43CFC7, index=0]

C:\Temp\lime> limesuite-x64-newdriver\bin\LimeUtil.exe --update
Connected to [LimeSDR Mini [USB 3] 1D90F61B43CFC7]
TransferPacket: Write failed (ret=-1)
Update not supported: UNKNOWN[HW=0]

Programming update failed!

C:\Temp\lime> limesuite-x64-newdriver\bin\LimeQuickTest.exe
[ TESTING STARTED ]
->Start time: Thu Jul  4 22:13:52 2024
->LimeSuite version: 23.11.0-g9dce3b6a

TransferPacket: Write failed (ret=-1)
TransferPacket: Write failed (ret=-1)
TransferPacket: Write failed (ret=-1)
TransferPacket: Write failed (ret=-1)
TransferPacket: Write failed (ret=-1)
TransferPacket: Write failed (ret=-1)
Board not supported
Failed to connect

I haven’t tried the driver. But your log says the failure is happening somewhere here: LimeSuite/src/ConnectionFTDI/ConnectionFT601.cpp at master · myriadrf/LimeSuite · GitHub

Huh, failing overlapped I/O writes. I can pull a better error message out of that, and I can debug through it with both drivers. Heck, I might drag TTD out since some of the tasks are short. Thanks!