1xBTS 1xBTS
 ██╗██╗  ██╗██████╗ ████████╗███████╗
███║╚██╗██╔╝██╔══██╗╚══██╔══╝██╔════╝
╚██║ ╚███╔╝ ██████╔╝   ██║   ███████╗
 ██║ ██╔██╗ ██╔══██╗   ██║   ╚════██║
 ██║██╔╝ ██╗██████╔╝   ██║   ███████║
 ╚═╝╚═╝  ╚═╝╚═════╝    ╚═╝   ╚══════╝

open-source cellular network

CDMA2000 1x from RF to core.

A full cellular stack in Rust — SDR air interface, BTS/BSC split, MSC, SMSC, HLR, packet data, and a dashboard.

01
SR11.25 MHzSDRWalshViterbi

Radio

The air interface is built on CDMA2000 Spread Rate 1, driven by a software-defined radio. Phones connect over a real 1.25 MHz channel — pilot, sync, paging, and traffic channels — using Walsh code spreading and Viterbi decoding. Closed-loop power control runs at 800 Hz to keep signal quality stable as the phone moves.

Air interface →
02
BTSBSCAbisRC1/RC3

Base Station

The BTS handles the physical radio layer and hands off decoded frames to the BSC over an internal Abis interface. The BSC manages channel assignment, radio configurations (RC1/RC3), and the state machines that take a phone from idle to active. Together they form the radio access network.

System overview →
03
MSCA2pEVRCSIP

Switching

The MSC is where calls get made. It handles call origination and termination, routes audio between parties via an internal bridge, and connects outbound calls to SIP trunks. Voice is carried as EVRC over the A2p interface from the BSC, then transcoded or passed through to the far end.

Voice calls →
04
HLRIMSIpagingPostgreSQL

Subscribers

The HLR keeps track of who is on the network — each phone's IMSI, its current registration, and its history. When a phone powers on and registers, the HLR records the binding. That record is what lets the network page the phone for an incoming call or message.

Identity & registration →
05
SMSCdata burstsMO+MT

Messaging

The SMSC handles SMS end-to-end. Messages are carried as data bursts over the traffic channel, tracked for delivery state, and can be sent to a phone at any time while it's registered. A configurable welcome SMS goes out automatically on first registration.

SMS guide →
06
SO33RLPPPPTUN/FOU

Packet Data

Phones can get an IP address and route real traffic. Data calls use Service Option 33 with RLP framing and PPP negotiation. The packet core uses a TUN interface with FOU encapsulation to carry IP to and from the phone — enough to browse, ping, or run whatever fits on a 1x data connection.

Packet data guide →