1xBTS

CDMA2000 1x and EV-DO from Base Station to Core Network.

A software-defined radio on one end, real handsets and data devices on the other.

Quick start
$ git clone https://github.com/chrismoos/1xbts.git
$ cd 1xbts
$ sudo modprobe fou ipip
$ docker compose up -d --build
$ cargo run --release -p cdma-nib \
    --no-default-features --features uhd-backend -- \
    --config-dir config \
    --radio-config config/radio_uhd_b210_native.json
When it boots, open the dashboard at localhost:3000. Swap the backend flag for your radio — see hardware.

Capabilities

Voice

QCELP and EVRC calls over RC1/RC2/RC3 traffic channels, with a SIP gateway to the PSTN.

Messaging

Mobile-originated and mobile-terminated SMS through the SMSC.

Packet data

1x IP connectivity via Service Option 33 (and SO7) with PPP/RLP and optional F-SCH.

EV-DO Rev 0/Rev A

Dedicated HRPD data carrier with UATI sessions, A8/A9 to PCF, and tested Rev A data at 2.6 Mbps down / 1.4 Mbps up.

Air interface

SR1 at 1.2288 Mcps over a 1.25 MHz channel — Walsh spreading, Viterbi decode, 800 Hz closed-loop power control.

Provisioning

Over-the-air NAM, PRL, and MMS via OTASP *228, straight from the handset.

Deployment

Run the full stack in one process, or split BTS and BSC over the included Abis transport.

Architecture

Built around the 3GPP2 1x and HRPD reference points (Abis, A1, A8/A9, A10/A11, A21)

1x radio access
HandsetCDMA2000 1x
1x air
cdma-btsBTS1x PHY/MAC · SDR radio
Abis
cdma-bscBSCVoice, SMS, SO7/SO33
EV-DO radio access
AT / modemEV-DO Rev 0/Rev A
HRPD air
cdma-btsHRPD PHYPilot, Control, FTC/RTC
air service
cdma-anANUATI, streams, traffic
1x circuit services
cdma-bsc1x control edgeA1/A2p call control
A1/A2p
cdma-mscMSCCircuit-switched core
cdma-hlrHLRSubscriber + HRPD identity DB
cdma-smscSMSCShort messages
SIP
cdma-voice-gwvoice-gwPSTN
1x packet path
cdma-bsc1x data edgeSO7/SO33 over 1x TCH
packet client
cdma-pcfPCFShared 1x + EV-DO control
A10/A11
cdma-pdsnPDSNShared PPP/IP service
EV-DO packet path
cdma-anHRPD edgeDefault Packet Application
A8/A9
cdma-pcfPCFShared 1x + EV-DO control
A10/A11
cdma-pdsnPDSNShared PPP/IP service
IPInternet
The entire stack can run mostly in a single process (cdma-nib), with the help of a few sidecar containers for support services like Postgres and the dashboard.

Implemented

Voice — QCELP and EVRC, mobile-originated & -terminated calls
SMS — MO & MT through the SMSC
1x packet data — SO33 / SO7, PPP, RLP, F-SCH
EV-DO / HRPD Rev 0/Rev A — UATI sessions and packet data
RC1, RC2 & RC3 traffic channels
800 Hz closed-loop power control
OTASP *228 — NAM, PRL, MMS
Node split over Abis, A1, A8/A9, A10/A11
SIP voice gateway to the PSTN
HLR & SMSC persistence (PostgreSQL)
Web dashboard over management gRPC

The core CDMA2000 1x feature set is implemented end to end, and EV-DO Rev 0/Rev A now carries packet data on a dedicated HRPD carrier. Work continues on production hardening, wider radio coverage, and broader handset compatibility.

Contribute

1xBTS is open source under Apache-2.0. Contributions are welcome.