LimeSDR Mini v2 - CGEN PLL won't lock (TuneVCO failed)

Hi everyone,

I’m having a persistent issue with my LimeSDR Mini v2 and I’m hoping someone here can help.

The problem:
When I run LimeUtil --timing, I get the following errors:

TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(100 MHz) failed
MCU error 2 (CGEN tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Rx Calibration: MCU error 4 (SXT tune failed)

The CGEN PLL never locks, which prevents any TX operation. Reception works fine (cell_search finds LTE cells), but TX fails completely.

My setup:

  • LimeSDR Mini v2 (HW 2.0, gateware 2.2, S/N: 1DBB45326A87C7)

  • Raspberry Pi 5

  • Ubuntu 22.04 LTS (ARM64)

  • LimeSuite 23.11.0 (compiled from source)

What I’ve already tried:

  • :white_check_mark: Firmware update via LimeUtil --update (says “Programming update complete!”)

  • :white_check_mark: Different USB cables and ports (USB 2.0 and USB 3.0)

  • :white_check_mark: Different USB power sources (direct Pi ports, powered hub)

  • :white_check_mark: LimeUtil --find and SoapySDRUtil --find detect the device correctly

  • :white_check_mark: cell_search works (reception is fine)

Full LimeUtil --timing output:

admin@raspberry5:~/ltesniffer-docker $ LimeUtil --timing
Connected to [LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1DBB45326A87C7]
Creating instance of LMS7002M:

Timing basic operations:
  >>> SPI write register:     202.704 us
  >>> SPI read register:      202.814 us
  >>> TSP NCO setting:        1408.25 us
  >>> RFE gain setting:       401.973 us
  >>> TRF gain setting:       803.464 us

Timing tuning operations:
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(100 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(101 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(102 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(103 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(104 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(105 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(106 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(107 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(108 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(109 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(110 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(111 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(112 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(113 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(117 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(118 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(119 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(120 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(121 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(122 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(129 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(130 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(131 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(132 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(133 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(134 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(135 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(136 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(137 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(146 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(147 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(148 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(149 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(150 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(151 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(152 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(153 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(154 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(155 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(156 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(157 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(158 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(159 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(160 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(166 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(167 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(168 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(169 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(170 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(171 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(172 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(173 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(174 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(175 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(176 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(177 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(178 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(179 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(180 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(181 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(182 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(183 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(194 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(195 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(196 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(197 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(198 MHz) failed
TuneVCO(CGEN) - failed to lock (cmphl!=0)
SetFrequencyCGEN(199 MHz) failed
  >>> CGEN PLL tuning:        12.8585 ms
SetFrequencySXT(100 MHz) - cannot deliver frequency
SetFrequencySXT(101 MHz) - cannot deliver frequency
SetFrequencySXT(102 MHz) - cannot deliver frequency
SetFrequencySXT(103 MHz) - cannot deliver frequency
SetFrequencySXT(104 MHz) - cannot deliver frequency
SetFrequencySXT(105 MHz) - cannot deliver frequency
SetFrequencySXT(106 MHz) - cannot deliver frequency
SetFrequencySXT(107 MHz) - cannot deliver frequency
SetFrequencySXT(108 MHz) - cannot deliver frequency
SetFrequencySXT(109 MHz) - cannot deliver frequency
SetFrequencySXT(110 MHz) - cannot deliver frequency
SetFrequencySXT(111 MHz) - cannot deliver frequency
SetFrequencySXT(112 MHz) - cannot deliver frequency
SetFrequencySXT(113 MHz) - cannot deliver frequency
SetFrequencySXT(114 MHz) - cannot deliver frequency
SetFrequencySXT(115 MHz) - cannot deliver frequency
SetFrequencySXT(116 MHz) - cannot deliver frequency
SetFrequencySXT(117 MHz) - cannot deliver frequency
SetFrequencySXT(118 MHz) - cannot deliver frequency
SetFrequencySXT(119 MHz) - cannot deliver frequency
SetFrequencySXT(120 MHz) - cannot deliver frequency
SetFrequencySXT(188 MHz) - cannot deliver frequency
SetFrequencySXT(189 MHz) - cannot deliver frequency
SetFrequencySXT(190 MHz) - cannot deliver frequency
SetFrequencySXT(191 MHz) - cannot deliver frequency
SetFrequencySXT(192 MHz) - cannot deliver frequency
SetFrequencySXT(193 MHz) - cannot deliver frequency
SetFrequencySXT(194 MHz) - cannot deliver frequency
SetFrequencySXT(195 MHz) - cannot deliver frequency
SetFrequencySXT(196 MHz) - cannot deliver frequency
SetFrequencySXT(197 MHz) - cannot deliver frequency
SetFrequencySXT(198 MHz) - cannot deliver frequency
SetFrequencySXT(199 MHz) - cannot deliver frequency
  >>> RF PLL tuning:          28.5788 ms
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
Tune Tx Filter: MCU error 2 (CGEN tune failed)
  >>> TBB filter tuning:      74.522 ms
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
Tune Rx Filter: MCU error 2 (CGEN tune failed)
  >>> RBB filter tuning:      36.189 ms
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
Tx Calibration: MCU error 3 (SXR tune failed)
  >>> TX corrections:         62.6627 ms
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
Rx calibration: MCU error 4 (SXT tune failed)
  >>> RX corrections:         43.6582 ms

Done timing!

Andrew Back suggested I post here, so any help would be greatly appreciated!

Thanks in advance.

Tagging @ricardas

Has the board been modified, or using external reference clock?
Does the board have active cooling?

CGEN is shared by Rx and Tx, so it does not look like the problem is CGEN, otherwise Rx would not be working either.

If the “cell_search” is working correctly, then reference clock is fine.
My suspicion would be either power delivery or overheating temperature.

after you get these CGEN lock failures, does Rx still work fine after that, or do you need to power cycle the board to recover?
What is the running temperature of the board?

Hi @ricardas,

Thanks a lot for stepping in to help! To answer your questions:

1. Modifications / Reference Clock: I am not using any external reference clock. However, this specific board was actually repaired by Zydrunas recently. Is it possible that a custom VCTCXO DAC value or clock calibration was set during his repair, and that running the standard LimeUtil --update wiped those custom settings?

2. Active Cooling & Temperature: It does feel quite warm to the touch. Is there a specific command I can run to give you the exact running temperature ?

3. Rx recovery & Power Cycle: When the CGEN lock fails, Rx still work for me.

4. Power Delivery: It is currently plugged directly into one of the USB 3.0 ports of the Raspberry Pi 5.

Thanks again for your time and guidance!

I suggest you try compiling from source the latest “master” branch, it has some fixes for LimeSDR Mini v2.

I try it but LimeUtil --timing finished always with errors.

I’m trying to create a private 4g network using srsRan but I think my limesdr is not transmitting the signal because I don’t see the network with my phone.

Is there a way to verify that’s the limesdr is transmitting well ?