I was able to narrow the gateware-problem which in my case gives me a gateware mismatch every 2nd initialisation of libLimesuite. For example if I want to run the Limesuite example-program “singleRX”
I extracted the core USB-calls out of Limesuite which are called to get the gateware-version.
The following two LMS-Commands are sent to the USB-Driver (of course with the corresponding read-backs):
I wrote a simple C++ program which calls those commands, surrounded with a proper initialisation and closing of the USB-port.
With the CMD_USB_FIFO_RST-Command, every 2nd run of the program, the call to CMD_BDRSPI_RD ends in a timeout (independent of the timeout value)
NOW, if I omit the CMD_USB_FIFO_RST-Command, everything works as expected and the gateware can be read on every program run.
BTW: All the Python examples from pyLMS7002M are working fine and they do no include a CMD_USB_FIFO_RST-Command
Any ideas what the CMD_USB_FIFO_RST-command does exactly and why it is called in Limesuite, but not in pyLMS7002M?