
Kalibrate (also known as kal) is a GSM base station scanner that identifies nearby cells and uses their broadcast reference signals to calculate and correct the local oscillator frequency offset of connected SDR hardware. Consumer-grade SDR receivers based on the Realtek RTL2832U chipset use unstabilized crystal oscillators that exhibit frequency drift of 20–150 parts per million (ppm) depending on unit variance and ambient temperature — translating to carrier frequency errors of up to 135 kHz at 900 MHz, which prevents reliable burst synchronization without correction.
Kalibrate scans the target GSM band (GSM-850, GSM-900, GSM-1800, or GSM-1900), identifies the ARFCN with the strongest signal level, and measures the deviation between the observed carrier frequency and the channel center defined by 3GPP TS 45.005 to calculate a precise ppm correction value.
This correction value is supplied to downstream capture systems via the --ppm flag in GR-GSM's grgsm_livemon, --freq-corr in OsmocomBB, or the freq_corr argument in GNU Radio's UHD source block. Compatible transceivers for calibration are profiled in the SDR Capabilities Intelligence database. TCXO-upgraded hardware reduces the required correction to under 1 ppm.
Level 1 certification required. Targeting RAN infrastructure layers.
SDR hardware (USRP/BladeRF) required.
Frequency calibration is not optional for reliable SDR-based cellular security assessments. Consumer SDR hardware without temperature-compensated crystal oscillators (TCXOs) exhibits frequency offsets that shift as the device warms up — meaning a calibration performed at startup may no longer be accurate 20 minutes into a field capture session. An uncalibrated receiver introduces carrier frequency error that prevents the GSM GMSK demodulator from achieving burst synchronization, producing complete decode failure or bit error rates that corrupt control channel content.
This directly affects audit validity: a carrier claiming full A5/3 enforcement might appear to offer no protection simply because an uncalibrated receiver fails to decode the cipher mode information element in SACCH frames, producing a false-negative security finding. Kalibrate provides a repeatable, automated calibration workflow that can be re-run between capture sessions to compensate for thermal drift.
For assessments requiring sub-1 ppm accuracy — UMTS or LTE carrier monitoring where narrow subcarrier spacing demands high clock stability — TCXO-equipped hardware or GPS-disciplined oscillators supplement Kalibrate's correction capability. Compatible calibration targets (visible GSM cells) are available in all geographic markets where any carrier maintains a 2G fallback network.
Kalibrate is an open-source telecom security utility in the RAN category. Kalibrate (also known as kal) scans for nearby GSM base stations and uses their broadcast reference signals to calculate the local oscillator frequency offset of connected SDR hardware. The resulting parts-per-million (ppm) correction value compensates for the 20–150 ppm drift typical of consumer RTL-SDR crystal oscillators, and is applied via the --ppm flag in GR-GSM, the --freq-corr parameter in OsmocomBB, or the freq_corr argument in GNU Radio's UHD hardware source block. Accurate calibration is a prerequisite for reliable GSM burst synchronization in telecom security assessments.
Kalibrate is categorized under RAN in the TelcoSec Tools console. This category covers tools used for auditing Radio Access Network air interfaces, base station broadcasts, and SDR-based signal capture.
Consumer RTL-SDR devices based on the Realtek RTL2832U chipset exhibit oscillator frequency offsets typically in the 20–150 ppm range, depending on the crystal variant, ambient temperature, and individual unit manufacturing tolerance. At 900 MHz, a 100 ppm offset equals 90 kHz of carrier frequency error — sufficient to prevent a GSM GMSK demodulator from achieving burst synchronization. TCXO-upgraded RTL-SDR variants (RTL-SDR Blog V4, Nooelec NESDR Smart) reduce this to approximately 0.5–1 ppm.
Yes. Kalibrate supports any SDR hardware with an available gr-osmosdr driver, including USRP (via UHD), BladeRF, HackRF One, and Airspy. The calibration procedure is most valuable for unstabilized crystal oscillator hardware. USRP devices with optional GPSDO (GPS-Disciplined Oscillator) or OCXO modules typically achieve less than 0.01 ppm accuracy without software correction, but Kalibrate remains a useful sanity-check before critical assessment sessions even on high-precision platforms.
Upgrade your skill set from running automated modules to manual exploit engineering. Learn deep protocol auditing, signaling vulnerabilities, and baseband hardware analysis inside our virtual environments.
Found a bug, have a feature request, or a technical question about Kalibrate? Send it directly to the research team.