How to fix the error: Tx Calibration: MCU error 4 (SXT tune failed)

I have the same problem, 1.30gateway

1 Like

Same error.

[ERROR] Tx Calibration: MCU error 4 (SXT tune failed)

Anyone been able to fix this reliably? cooling and low power issues haven’t resolved this.

1 Like

Can you try building Lime Suite from source using the master branch.

https://wiki.myriadrf.org/Lime_Suite#Building_from_source

(omit the step that checks out the stable branch)

@andrewback, I tried to build LimeSuite from source as you said but it does not change the error.

@andrewback
I built LimeSuite from source using the latest commit as you advised, but still get the same error "Tx calibration:MCU error 4 (SXT tune failed) when I run srsenb.

External supply solved this problem ?

1 Like

Any update on this error?

i get this error every time i try to calibrate. i always have to go into stx and do the settings there first then calibrate.

why cant they fix this. you would think it would be simple.

What version of Lime Suite are you using? And could you try building from git master.

Looks from your post from October 2019 that your board is failing LimeQuickTest?

@en1gma @BlackF @Bourascom could you please run LimeQuickTest and post the results if these contain any failures.

No Fails for me when running LimeQuickTest

Thanks, if you could post the output when running the eNodeB, showing the error.

Freshly compiled from master

$ ./build/srsenb/src/srsenb --rf.device_name soapy
linux; GNU C++ version 7.3.0; Boost_106501; UHD_003.010.003.000-0-unknown

---  Software Radio Systems LTE eNodeB  ---

Reading configuration file /etc/srslte/enb.conf...

Built in Release mode using commit 0ec49a7b1 on branch master.

Opening 1 channels in RF device=soapy with args=default
Soapy has found device #0: addr=24607:1027, driver=lime, label=LimeSDR Mini [USB 3.0] 1D588F01B6A2F2, media=USB 3.0, module=FT601, name=LimeSDR Mini, serial=1D588F01B6A2F2, 
Selecting Soapy device: 0
[INFO] Make connection: 'LimeSDR Mini [USB 3.0] 1D588F01B6A2F2'
[INFO] Reference clock 40.00 MHz
[INFO] Device name: LimeSDR-Mini
[INFO] Reference: 40 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Available device sensors: 
 - clock_locked
 - lms7_temp
Available sensors for Rx channel 0: 
 - lo_locked
[ERROR] Tx Calibration: MCU error 4 (SXT tune failed)
[INFO] Rx calibration finished
State of gain elements for Rx channel 0 (AGC not supported):
 - TIA: 9.00 dB
 - LNA: 30.00 dB
 - PGA: -4.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
 - PAD: 45.00 dB
 - IAMP: 0.00 dB
Rx antenna set to LNAH
Tx antenna set to BAND1
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory

==== eNodeB started ===
Type <t> to view trace
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11.52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Setting frequency: DL=2685.0 Mhz, UL=2565.0 MHz for cc_idx=0

Tested with latest LimeSuite version from Master too (20.07.2-gccb39226).
OS: Ubuntu 18.04

This is a result of my investigation and subsequent workaround implemented two years ago in stream management. With my application (which has an additional layer through gr-osmosdr wrapping SoapySDR) I can reproduce this error or lack of reliably by adding or removing the workaround.

Steps to reproduce and generated console output below:

Workaround is in place, RX stream stopped prior to creation of TX stream:

  1. Create and start SoapySDR RX stream
    ===================

gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.8.2.0
built-in source types: file fcd rtl rtl_tcp uhd hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
[INFO] Make connection: ‘LimeNET-Micro [USB 2.0] 583A25BFD101’
[INFO] Reference clock 30.72 MHz
[INFO] Device name: LimeNET-Micro
[INFO] Reference: 30.72 MHz
[INFO] LMS7002M register cache: Disabled
[INFO] Selected RX path: LNAL
[INFO] RX LPF configured
[INFO] Rx calibration finished

  1. RX stream stopped (not destroyed), TX stream created and started
    ===================
    gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.8.2.0
    built-in sink types: uhd hackrf bladerf soapy redpitaya freesrp file
    [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
    [INFO] TX LPF configured
    [WARNING] TXLPF set to 5.000 MHz (requested 1.000 MHz [out of range])
    [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
    [INFO] TX LPF configured
    [INFO] Selected TX path: Band 2
    [WARNING] TXLPF set to 5.000 MHz (requested 1.500 MHz [out of range])
    [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
    [INFO] TX LPF configured
    [INFO] Tx calibration finished

After TX stream started, RX stream is resumed (part of workaround)

No workaround in place, RX stream is not stopped prior to start of TX stream.

gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.8.2.0
built-in source types: file fcd rtl rtl_tcp uhd hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
[INFO] Make connection: ‘LimeNET-Micro [USB 2.0] 583A25BFD101’
[INFO] Reference clock 30.72 MHz
[INFO] Device name: LimeNET-Micro
[INFO] Reference: 30.72 MHz
[INFO] LMS7002M register cache: Disabled
[INFO] Selected RX path: LNAL
[INFO] RX LPF configured
[INFO] Rx calibration finished

At this point samples are flowing through the RX stream

TX stream start

gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.8.2.0
built-in sink types: uhd hackrf bladerf soapy redpitaya freesrp file
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
[ERROR] Tx Calibration: MCU error 4 (SXT tune failed)
[WARNING] TXLPF set to 5.000 MHz (requested 1.000 MHz [out of range])
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
[INFO] Selected TX path: Band 2
[WARNING] TXLPF set to 5.000 MHz (requested 1.500 MHz [out of range])
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
[INFO] Tx calibration finished

Observe error at line 5 at final step above.
And apologies for the formatting.

Regards,
Adrian

1 Like

I did the LimeQuickTest with two different Gatewares:

en1gma@M4800:~$ LimeQuickTest
[ TESTING STARTED ]
->Start time: Wed Oct 14 17:03:32 2020

->Device: LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D3BD0C4F0CDFF, HW=1, GW=1.28
Serial Number: 1D3BD0C4F0CDFF
Chip temperature: 45 C

[ Clock Network Test ]
->REF clock test
Test results: 2563; 15760; 28957 - PASSED
->VCTCXO test
Results : 6710985 (min); 6711150 (max) - PASSED
->Clock Network Test PASSED

[ FPGA EEPROM Test ]
->Read EEPROM
->Read data: 12 03 10 12 03 10 02
->FPGA EEPROM Test PASSED

[ LMS7002M Test ]
->Perform Registers Test
->External Reset line test
Reg 0x20: Write value 0xFFFD, Read value 0xFFFD
Reg 0x20: value after reset 0x0FFFF
->LMS7002M Test PASSED

[ RF Loopback Test ]
->Configure LMS
->Run Tests (TX_2 → LNA_W):
CH0 (SXR=1000.0MHz, SXT=1005.0MHz): Result:(-28.6 dBFS, 5.00 MHz) - FAILED
->Run Tests (TX_1 → LNA_H):
CH0 (SXR=2100.0MHz, SXT=2105.0MHz): Result:(-11.7 dBFS, 5.00 MHz) - PASSED
->RF Loopback Test FAILED

=> Board tests FAILED <=

Elapsed time: 2.47 seconds

en1gma@M4800:~$ LimeQuickTest
[ TESTING STARTED ]
->Start time: Wed Oct 14 17:05:24 2020

->Device: LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D3BD0C4F0CDFF, HW=1, GW=1.30
Serial Number: 1D3BD0C4F0CDFF
Chip temperature: 45 C

[ Clock Network Test ]
->REF clock test
Test results: 2318; 15515; 28712 - PASSED
->VCTCXO test
Results : 6710985 (min); 6711151 (max) - PASSED
->Clock Network Test PASSED

[ FPGA EEPROM Test ]
->Read EEPROM
->Read data: 12 03 10 12 03 10 02
->FPGA EEPROM Test PASSED

[ LMS7002M Test ]
->Perform Registers Test
->External Reset line test
Reg 0x20: Write value 0xFFFD, Read value 0xFFFD
Reg 0x20: value after reset 0x0FFFF
->LMS7002M Test PASSED

[ RF Loopback Test ]
->Configure LMS
->Run Tests (TX_2 → LNA_W):
CH0 (SXR=1000.0MHz, SXT=1005.0MHz): Result:(-28.7 dBFS, 5.00 MHz) - FAILED
->Run Tests (TX_1 → LNA_H):
CH0 (SXR=2100.0MHz, SXT=2105.0MHz): Result:(-11.7 dBFS, 5.00 MHz) - PASSED
->RF Loopback Test FAILED

=> Board tests FAILED <=

Elapsed time: 2.45 seconds

en1gma@M4800:~$

Hi @BlackF,

Could you try to tune SXT using LimeSuiteGUI and check if it can deliver the LO frequency of
2685.0 Mhz. Perform these steps:

  1. Connect to the board;
  2. Push “Default” button;
  3. Go to SXT tab, set “Frequency” to 2685 MHz and push “Calculate” button;
  4. Check “VCO Comparators” values. High should be 1; Low should be 0;
  5. Copy and share log output here, please.

HI @Zack,

[10:18:40] INFO: Disconnected control port
[10:19:00] INFO: Reference clock 40.00 MHz
[10:19:00] INFO: Connected Control port: LimeSDR-Mini FW:6 HW:3 Protocol:1 GW:1.30 Ref Clk: 40.00 MHz
[10:19:06] INFO: SXT frequency set to 2685.000000 MHz

As you said, the “VCO Comparators” values are: High 1; Low 0;

Here is the same test with DEBUG enabled

[10:21:49] INFO: Disconnected control port
[10:21:58] DEBUG: Claimed Interface
[10:21:58] DEBUG: Estimated reference clock 40.0016 MHz
[10:21:58] INFO: Reference clock 40.00 MHz
[10:21:58] INFO: Connected Control port: LimeSDR-Mini FW:6 HW:3 Protocol:1 GW:1.30 Ref Clk: 40.00 MHz
[10:22:03] DEBUG: INT 57, FRAC 385875, DIV_OUTCH_CGEN 18
[10:22:03] DEBUG: VCO 2334.72 MHz, RefClk 40.00 MHz
[10:22:03] DEBUG: csw 153; interval [150, 156]
[10:22:03] DEBUG: INT 57, FRAC 385875, DIV_OUTCH_CGEN 18
[10:22:03] DEBUG: VCO 2334.72 MHz, RefClk 40.00 MHz
[10:22:03] DEBUG: csw 153; interval [150, 156]
[10:22:03] DEBUG: M=160, N=4, Fvco=614.400 MHz
[10:22:03] DEBUG: M=160, N=4, Fvco=614.400 MHz
[10:22:20] DEBUG: INT 130, FRAC 262144, DIV_LOCH 0, EN_DIV2_DIVPROG 0
[10:22:20] DEBUG: VCO 5370.00 MHz, RefClk 40.00 MHz
[10:22:20] DEBUG: ICT_VCO: 192
[10:22:20] DEBUG: TuneVCO(SXT) - VCO too low
[10:22:20] DEBUG: VCOL : csw=0 tune fail
[10:22:20] DEBUG: ICT_VCO: 192
[10:22:20] DEBUG: csw=64	cmphl=3
[10:22:20] DEBUG: csw=32	cmphl=0
[10:22:20] DEBUG: csw=48	cmphl=0
[10:22:20] DEBUG: csw=56	cmphl=2
[10:22:20] DEBUG: csw=60	cmphl=2
[10:22:20] DEBUG: csw=62	cmphl=2
[10:22:20] DEBUG: csw=63	cmphl=2
[10:22:20] DEBUG: CSW: lowest=55, highest=63, selected=59
[10:22:20] DEBUG: csw=192	cmphl=3
[10:22:20] DEBUG: csw=160	cmphl=3
[10:22:20] DEBUG: csw=144	cmphl=3
[10:22:20] DEBUG: csw=136	cmphl=3
[10:22:20] DEBUG: csw=132	cmphl=3
[10:22:20] DEBUG: csw=130	cmphl=3
[10:22:20] DEBUG: csw=129	cmphl=3
[10:22:20] DEBUG: Failed to lock
[10:22:20] DEBUG: cmphl=2
[10:22:20] DEBUG: VCOM : csw=59 tune ok
[10:22:20] DEBUG: ICT_VCO: 192
[10:22:20] DEBUG: TuneVCO(SXT) - VCO too high
[10:22:20] DEBUG: VCOH : csw=0 tune fail
[10:22:20] DEBUG: Selected: VCOM
[10:22:20] INFO: SXT frequency set to 2685.000000 MHz

Hi @BlackF,

Thanks for information. Let me check.

Thank you @Zack. Today (23/10) I took the liberty to recompile LimeSuite (20.07.2-gf2d96ff0) since I saw various changes around calibration.
Please find the srsenb output bellow

$ ./build/srsenb/src/srsenb --rf.device_name soapy
linux; GNU C++ version 7.3.0; Boost_106501; UHD_003.010.003.000-0-unknown

---  Software Radio Systems LTE eNodeB  ---

Reading configuration file /etc/srslte/enb.conf...

Built in Release mode using commit 0ec49a7b1 on branch master.

Opening 1 channels in RF device=soapy with args=default
Soapy has found device #0: addr=24607:1027, driver=lime, label=LimeSDR Mini [USB 3.0] 1D588F01B6A2F2, media=USB 3.0, module=FT601, name=LimeSDR Mini, serial=1D588F01B6A2F2, 
Selecting Soapy device: 0
[INFO] Make connection: 'LimeSDR Mini [USB 3.0] 1D588F01B6A2F2'
[INFO] Reference clock 40.00 MHz
[INFO] Device name: LimeSDR-Mini
[INFO] Reference: 40 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Available device sensors: 
 - clock_locked
 - lms7_temp
Available sensors for Rx channel 0: 
 - lo_locked
[INFO] Tx calibration finished
[INFO] Rx calibration finished
State of gain elements for Rx channel 0 (AGC not supported):
 - TIA: 9.00 dB
 - LNA: 30.00 dB
 - PGA: -4.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
 - PAD: 45.00 dB
 - IAMP: 0.00 dB
Rx antenna set to LNAH
Tx antenna set to BAND1
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Cannot allocate memory
connect(): Connection refused
Failed to initiate SCTP socket. Attempting reconnection in 10 seconds

==== eNodeB started ===
Type <t> to view trace
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11.52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Setting frequency: DL=2685.0 Mhz, UL=2565.0 MHz for cc_idx=0

I don’t see the error now :slight_smile:
Thank you all

3 Likes