LimeMini SetFrequencyCGEN() ERRORs

I’m having trouble with the LimeMini I have received. I haven’t been able to actually receive data from the SDR.

SoapySDRUtil and LimeUtil can find it just fine:

$ SoapySDRUtil --find
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Found device 0
  addr = 24607:1027
  driver = lime
  label = LimeSDR Mini [USB 3.0] 1D3AEC399FFA28
  media = USB 3.0
  module = FT601
  name = LimeSDR Mini
  serial = 1D3AEC399FFA28

$ LimeUtil --find
  * [LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D3AEC399FFA28]

But I’m unable to complete the self test/loopback procedure (https://wiki.myriadrf.org/LimeSDR-USB_Quick_Test) because I keep getting SetFrequencyCGEN() failures:

[10:50:51] DEBUG: Claimed Interface
[10:50:51] DEBUG: Estimated reference clock 40.0013 MHz
[10:50:51] INFO: Reference clock 40.00 MHz
[10:50:51] INFO: Connected Control port: LimeSDR-Mini FW:5 HW:0 Protocol:1 GW:1.24 Ref Clk: 40.00 MHz
[10:50:55] ERROR: SetFrequencyCGEN(1.15627 MHz) - cannot deliver requested frequency
[10:51:41] DEBUG: INT 76, FRAC 466014, DIV_OUTCH_CGEN 16
[10:51:41] DEBUG: VCO 2379.09 MHz, RefClk 30.72 MHz
[10:51:41] DEBUG: ICT_VCO_CGEN: 31
[10:51:41] DEBUG: TuneVCO(CGEN) - VCO too high
[10:51:41] ERROR: SetFrequencyCGEN(69.9733 MHz) failed
[10:51:58] ERROR: SetFrequencyCGEN(8.00781e+07 MHz) - cannot deliver requested frequency
...

edit:
I should note that this is with a fresh build from the master branch of https://github.com/myriadrf/LimeSuite today

$ LimeUtil --info
######################################################
## LimeSuite information summary
######################################################

Version information:
  Library version:	v18.03.0-gf41d9855
  Build timestamp:	2018-03-28
  Interface version:	v2017.12.0
  Binary interface:	18.03-1

System resources:
  Installation root:	/usr/local
  User home directory:	/Users/<user>
  App data directory:	/Users/<user>/.local/share/LimeSuite
  Config directory:	/Users/<user>/.limesuite
  Image search paths:
     - /Users/<user>/.local/share/LimeSuite/images
     - /usr/local/share/LimeSuite/images

Supported connections:
   * FT601
   * FX3
   * PCIEXillybus

Update!

I found csete’s bandwidth test tool and it has proved to be useful in narrowing this down. It appears that for some reason on my LimeSDR Mini certain sample rates cause specific frequencies to be set which it completely fails to set:

Setting 10Msps fails:

$ ./limerx 10000000
Found 1 LimeSDR devices
Reference clock 40.00 MHz
LimeSDR opened: LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D3AEC399FFA28
SetFrequencyCGEN(160 MHz) failed
Failed to set sample rate

Setting 11Msps succeeds:

$ ./limerx 11000000
Found 1 LimeSDR devices
Reference clock 40.00 MHz
LimeSDR opened: LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D3AEC399FFA28
Set sample rate 11000000 Hz (oversampling 0)
Stream started
11000.000 ksps
11000.000 ksps
11000.000 ksps
11000.000 ksps
11000.000 ksps
^CCaught signal 2
Stopping stream...
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 4
Read 58300000 samples in 5.300 sec  =>  11000.000 ksps

And you can see that libusb doesn’t shutdown very cleanly. I seem to need to unplug/replug my mini after each set of samples, but I suspect this is an MacOS or a macbook issue. Unfortunately the only machine I have to use at the moment is a new USB-C only macbook.

This is for the LimeSDR-USB, which is the larger board, and not the -Mini.

That explains that problem. Is there a good way to confirm that a LimeSDR Mini is operatingn properly?

Hi @acorn,

Check this post, please: