Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/myriadrf/kalibrate-lms
Fork of Kalibrate GSM signal detector and clock frequency offset calculator with support for LimeSDR hardware
https://github.com/myriadrf/kalibrate-lms
Last synced: 13 days ago
JSON representation
Fork of Kalibrate GSM signal detector and clock frequency offset calculator with support for LimeSDR hardware
- Host: GitHub
- URL: https://github.com/myriadrf/kalibrate-lms
- Owner: myriadrf
- License: bsd-2-clause
- Created: 2021-02-11T17:48:42.000Z (almost 4 years ago)
- Default Branch: lime
- Last Pushed: 2021-04-07T06:29:06.000Z (over 3 years ago)
- Last Synced: 2024-11-05T17:49:20.047Z (15 days ago)
- Language: C++
- Size: 88.9 KB
- Stars: 7
- Watchers: 9
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: COPYING
- Authors: AUTHORS
Awesome Lists containing this project
README
About Kalibrate
===============Kalibrate is a GSM signal detector and clock frequency offset calculator.
Clock accuracy and frequency offset is an important aspect of GSM and cellular
networks. Out-of-specification clock accuracy causes a number of network issues
such as inconsistent network detection by the handset, handover failure, and
poor data and voice call performance.LimeSuite Driver (LimeSuite):
* https://github.com/myriadrf/LimeSuiteRelease Notes
Support for LimeSDR and LimeSDR-Mini.
Build
=====```
$ apt-get install pkg-config autoconf libfftw3-dev g++ make
$ ./bootstrap
$ ./configure
$ mkdir /dev/shm
$ make
$ cd src
```Examples
========LimeSDR (USB) with internal reference:
```
$ ./kal -s GSM900 -A LNAL
Devices found: 1
Device info: LimeSDR-USB, media=USB 3.0, module=FX3, addr=1d50:6108, serial=00090726074D2F1B
Reference clock 30.72 MHz
Disabling external reference clock
Sampling Rate Range: Min=100000.000000 Max=61440000.000000 Step=0.000000
Sample rate: 270833.332607
kal: Scanning for GSM-900 base stations.
chan: 2 (935.4MHz - 150Hz) power: 470311.61
chan: 86 (952.2MHz + 60Hz) power: 230830.63$ ./kal -f 935.4e6 -A LNAL
Devices found: 1
Device info: LimeSDR-USB, media=USB 3.0, module=FX3, addr=1d50:6108, serial=00090726074D2F1B
Reference clock 30.72 MHz
Disabling external reference clock
Sampling Rate Range: Min=100000.000000 Max=61440000.000000 Step=0.000000
Sample rate: 270833.332607
kal: Calculating clock frequency offset.
Using GSM-900 channel 2 (935.4MHz)
================================================
VCTCXO DAC value set to: 127.000000
average [min, max] (range, stddev)
- 25Hz [-66, 14] (80, 21.595409)
overruns: 0
not found: 0Test DAC trim value in range [121-133]
================================================
VCTCXO DAC value set to: 121.000000
average [min, max] (range, stddev)
+ 587Hz [547, 639] (92, 25.123407)
overruns: 0
not found: 0
================================================
VCTCXO DAC value set to: 122.000000
average [min, max] (range, stddev)
+ 502Hz [461, 544] (83, 21.423199)
overruns: 0
not found: 3
================================================
VCTCXO DAC value set to: 123.000000
average [min, max] (range, stddev)
+ 393Hz [350, 434] (85, 22.113863)
overruns: 0
not found: 0
================================================
VCTCXO DAC value set to: 124.000000
average [min, max] (range, stddev)
+ 292Hz [243, 333] (90, 23.192686)
overruns: 0
not found: 0
================================================
VCTCXO DAC value set to: 125.000000
average [min, max] (range, stddev)
+ 196Hz [138, 245] (107, 26.214304)
overruns: 0
not found: 0
================================================
VCTCXO DAC value set to: 126.000000
average [min, max] (range, stddev)
+ 79Hz [28, 132] (103, 29.041769)
overruns: 0
not found: 4
================================================
VCTCXO DAC value set to: 127.000000
average [min, max] (range, stddev)
- 22Hz [-78, 27] (105, 28.535673)
overruns: 0
not found: 2
================================================
VCTCXO DAC value set to: 128.000000
average [min, max] (range, stddev)
- 123Hz [-170, -81] (89, 23.122004)
overruns: 0
not found: 1
================================================
VCTCXO DAC value set to: 129.000000
average [min, max] (range, stddev)
- 233Hz [-273, -198] (75, 18.825752)
overruns: 0
not found: 1
================================================
VCTCXO DAC value set to: 130.000000
average [min, max] (range, stddev)
- 336Hz [-370, -295] (75, 17.255051)
overruns: 0
not found: 2
================================================
VCTCXO DAC value set to: 131.000000
average [min, max] (range, stddev)
- 441Hz [-482, -399] (83, 20.968220)
overruns: 0
not found: 0
================================================
VCTCXO DAC value set to: 132.000000
average [min, max] (range, stddev)
- 543Hz [-585, -504] (82, 23.805302)
overruns: 0
not found: 0
Found lowest offset of -21.564095Hz at 935.400000MHz (-0.023053 ppm) using DAC trim 127
VCTCXO DAC value set to: 127.000000
```LimeSDR (USB) with external 10MHz reference - Leo Bodnar GPS reference clock:
```
$ ./kal -s GSM900 -A LNAL -x 10.0e6
Devices found: 1
Device info: LimeSDR-USB, media=USB 3.0, module=FX3, addr=1d50:6108, serial=00090726074D2F1B
Reference clock 30.72 MHz
Disabling external reference clock
Setting external reference clock to 10000000.000000 frequency
Sampling Rate Range: Min=100000.000000 Max=61440000.000000 Step=0.000000
kal: Scanning for GSM-900 base stations.
chan: 1 (935.2MHz + 22.819kHz) power: 295159.52
chan: 2 (935.4MHz + 32Hz) power: 793036.65$ ./kal -f 935.4e6 -A LNAL -x 10.0e6
Devices found: 1
Device info: LimeSDR-USB, media=USB 3.0, module=FX3, addr=1d50:6108, serial=00090726074D2F1B
Reference clock 30.72 MHz
Disabling external reference clock
Setting external reference clock to 10000000.000000 frequency
Sampling Rate Range: Min=100000.000000 Max=61440000.000000 Step=0.000000
kal: Calculating clock frequency offset.
Using GSM-900 channel 2 (935.4MHz)
average [min, max] (range, stddev)
+ 25Hz [8, 44] (36, 9.328476)
overruns: 0
not found: 1
```LimeSDR-Mini with internal reference:
```
$ ./kal -s GSM900 -A LNAW -g 45
Devices found: 1
Device info: LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D588161783274
Reference clock 40.00 MHz
Sampling Rate Range: Min=100000.000000 Max=30720000.000000 Step=0.000000
Sample rate: 270833.330495
kal: Scanning for GSM-900 base stations.
chan: 3 (935.6MHz - 10Hz) power: 230188.16
chan: 4 (935.8MHz + 128Hz) power: 128849.91
chan: 86 (952.2MHz + 51Hz) power: 108510.78
chan: 112 (957.4MHz + 22.956kHz) power: 89879.75
chan: 119 (958.8MHz + 31.935kHz) power: 87845.77$ ./kal -f 935.8e6 -A LNAW -g 45
Devices found: 1
Device info: LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D588161783274
Reference clock 40.00 MHz
Sampling Rate Range: Min=100000.000000 Max=30720000.000000 Step=0.000000
Sample rate: 270833.330495
kal: Calculating clock frequency offset.
Using GSM-900 channel 4 (935.8MHz)
================================================
VCTCXO DAC value set to: 178.000000
average [min, max] (range, stddev)
- 32Hz [-108, 40] (148, 38.195812)
overruns: 0
not found: 24Test DAC trim value in range [172-184]
================================================
VCTCXO DAC value set to: 172.000000
average [min, max] (range, stddev)
+ 473Hz [391, 545] (154, 41.568333)
overruns: 0
not found: 9
================================================
VCTCXO DAC value set to: 173.000000
average [min, max] (range, stddev)
+ 385Hz [314, 456] (143, 37.254765)
overruns: 0
not found: 21
================================================
VCTCXO DAC value set to: 174.000000
average [min, max] (range, stddev)
+ 300Hz [222, 372] (151, 35.989777)
overruns: 0
not found: 7
================================================
VCTCXO DAC value set to: 175.000000
average [min, max] (range, stddev)
+ 221Hz [146, 279] (133, 38.328632)
overruns: 0
not found: 6
================================================
VCTCXO DAC value set to: 176.000000
average [min, max] (range, stddev)
+ 128Hz [57, 184] (127, 36.148319)
overruns: 0
not found: 9
================================================
VCTCXO DAC value set to: 177.000000
average [min, max] (range, stddev)
+ 36Hz [-28, 102] (130, 36.664257)
overruns: 0
not found: 14
================================================
VCTCXO DAC value set to: 178.000000
average [min, max] (range, stddev)
- 48Hz [-109, 19] (128, 31.921885)
overruns: 0
not found: 13
================================================
VCTCXO DAC value set to: 179.000000
average [min, max] (range, stddev)
- 131Hz [-198, -65] (133, 36.958584)
overruns: 0
not found: 15
================================================
VCTCXO DAC value set to: 180.000000
average [min, max] (range, stddev)
- 203Hz [-274, -109] (165, 40.602825)
overruns: 0
not found: 65
================================================
VCTCXO DAC value set to: 181.000000
average [min, max] (range, stddev)
- 295Hz [-377, -224] (153, 39.257061)
overruns: 0
not found: 36
================================================
VCTCXO DAC value set to: 182.000000
average [min, max] (range, stddev)
- 389Hz [-476, -311] (164, 42.100746)
overruns: 0
not found: 49
================================================
VCTCXO DAC value set to: 183.000000
average [min, max] (range, stddev)
- 482Hz [-573, -375] (198, 54.824726)
overruns: 0
not found: 134
Found lowest offset of -31.985970Hz at 935.800000MHz (-0.034180 ppm) using DAC trim 178
VCTCXO DAC value set to: 178.000000
```Authors
=======Kalibrate was originally written by Joshua Lackey in 2010.
Subsequent UHD device support and other changes were added by
Tom Tsou .
Subsequent LimeSDR device support and other changes were added by Supreeth Herle