Democratising Wireless Innovation
Jump to navigation Jump to search


Calibration is a procedure which helps you to maintain the frequency stability of your ClockTamer within specified bounds. It is performed by measuring the actual frequency of the ClockTamer's internal TCXO and specifying it in the ClockTamer settings. E.g. internal TCXO specified as 20 MHz may actually have frequency 20'000'005 Hz. This 5 Hz offset at 20 MHz correspond to 5/20e6=0.25 ppm (parts per million) and will translate to (5Hz/20MHz)`*`900MHz = 225Hz at 900 MHz (low GSM band).

The GSM Standard specifies 50ppb = 0.05ppm frequency accuracy for a macro-BTS reference clock and 100ppb = 0.1ppm for femtocells. In our experience, offsets up to 500 Hz at 900MHz are ok for most 90% of phones to work without any problems, but we still recommend you to calibrate ClockTamer to 100ppb to ensure everything goes smooth.

Note, that you need to recalibrate ClockTamer after significant temperature changes and every few months. We also recommend you calibrate it prior to first use.

Calibration with Kalibrate

Disclaimer: Fairwaves is not the author of Kalibrate and cannot offer assistance if you experience issues with it.

Use Kalibrate or Kalibrate-UHD to measure frequency offset (read Kalibrate documentation for command line options syntax):

[root@openBTS kal-0.2]# ./kal -f 946600000 -u
USRP side: B
FPGA clock: 52000000
Decimation: 192
Antenna: RX2
Sample rate: 270833.343750
average [min, max] (range, stddev)
501.351685 [461, 546] (85, 19.314581)
overruns: 0
not found: 0

The nominal frequency in MHz of the oscillator installed in a ClockTamer is a value of `FOSC` in `HWI` output. This can be checked with the GUI:

Or with HWI command manually:

LMX=2080 LMK=1010 OSC=20

In this example oscillator frequency is 20MHz, so you should introduce calibration offset of about -500Hz/946MHz*20MHz=-10Hz. 19999990Hz looks like a good approximation of real oscillator frequency here. Set it with the GUI (Fosc input field):

Or manually with the SET,,OSC command:


Check frequency offset with Kalibrate again. Resulting average offset should now be no more than 20-30Hz.

Do not forget to store the calibrated value to EEPROM. This can be done with "Set" button in the GUI:

Or with STE command manually:


See also