Hello,
I’m having consistent issues with Rx calibration on my LimeSDR v1.4s. It is plugged into a Raspberry Pi3 with the provided Y cable (both connectors plugged into the Pi3), yet power is supplied with an external EEZ H24005 providing 9V and up to 2A.
If I try to calibrate for 1420 MHz with the following command line:
LimeUtil --cal --start 1420e6 --stop 1420e6 --chans=ALL --dir=RX 2>&1 | tee cal_1420M_bw30M_chan_ALL_dir_RX.txt
I end up with errors / warnings:
Reference clock 30.720 MHz
LMS7002M cache /home/pi/.limesuite/LMS7002M_cache_values.db
Cal sweep over [1420, 1420, 1] MHz, channels=ALL, dir=RX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ Calibrating for freq = 1420 MHz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Error calibrating (skipping): MCU working too long 114
SetFrequency using cache values vco:1, csw:107
Error calibrating (skipping): MCU working too long 114
SetFrequency using cache values vco:1, csw:107
Error calibrating (skipping): MCU working too long 114
SetFrequency using cache values vco:1, csw:107
Error calibrating (skipping): MCU working too long 114
Cleanup…
After that, unless I remove XXX I get not more errors because it is using the cached values and the output turns into:
Reference clock 30.720 MHz
LMS7002M cache /home/pi/.limesuite/LMS7002M_cache_values.db
Cal sweep over [1420, 1420, 1] MHz, channels=ALL, dir=RX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ Calibrating for freq = 1420 MHz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
SetFrequency using cache values vco:1, csw:107
Rx calibration: using cached values
SetFrequency using cache values vco:1, csw:107
Rx calibration: using cached values
SetFrequency using cache values vco:1, csw:107
Rx calibration: using cached values
SetFrequency using cache values vco:1, csw:107
Rx calibration: using cached values
I also get the exact same error if I try to calibrate with LimeSuiteGui.
I ran into the same issue when using LMS_Calibrate() in an application (C code, using LMS API). I’m confused: is the result of the calibration correct even-though it triggers errors ? Can the errors returned by LMS_Calibrate() by safely ignored ? Should I calibrate for the entire bandwidth and enable cached value into my program ?
Here are the information regarding the version of *ware:
LimeUtil --info
######################################################
LimeSuite information summary
######################################################
Version information:
Library version: v17.12.0-gd352c002
Build timestamp: 2017-12-19
Interface version: v2017.12.0
Binary interface: 17.12-1
System resources:
Installation root: /usr/local
User home directory: /home/pi
App data directory: /home/pi/.local/share/LimeSuite
Config directory: /home/pi/.limesuite
Image search paths:
- /home/pi/.local/share/LimeSuite/images
- /usr/local/share/LimeSuite/images
Supported connections:
- PCIEXillybus
- STREAM
- uLimeSDR
LimeUtil --make
Make device
Reference clock 30.720 MHz
Device name: LimeSDR-USB
Expansion name: UNSUPPORTED
Firmware version: 4
Hardware version: 4
Protocol version: 1
Gateware version: 2
Gateware revision: 12
Gateware target: LimeSDR-USB
Serial number: 0x9060b00491f29
Free connection… OK