1xBTS 1xBTS

Technical Overview

A CDMA2000 1x network you can hold in your hands: SDR radio, BTS, BSC, MSC, voice, SMS, and packet data — open source, no proprietary silicon required.

1,228,800 chip/s · SR1
800 Hz power control loop
50+ L3 messages decoded
13 CDMA2000 specs
01

Receiver Pipeline

IQ samples to Layer 3 frames in nine stages

01 IQ Input Complex samples · 1.2288 Msps · batched per PCG (1536 chips)
02 Pilot Search FFT PN correlation · finds active mobiles + timing offsets
03 Frame Alignment Gardner TED · fine timing recovery · 20 ms / 16 PCGs
04 Walsh Despread RC1: 64-ary Walsh demod · RC3: channelized despread
05 RAKE Multi-finger pipelined receiver · FFT + fast-path despread · MRC planned
06 Deinterleave Reverse convolutional interleaving · full 20 ms frame
07 Viterbi Decode Soft-decision · RC1: R=1/2 K=9 · RC3: R=1/4 K=9
08 CRC Check Frame quality indication · feeds FER tracking
09 L2/L3 Output Validated frames to MAC/LAC for ARQ and BSC delivery

Raw RF in, protocol frames out. The receiver pipeline runs continuously — pilot search, timing recovery, Walsh despread, Viterbi decode — processing every active mobile on every PCG, 800 times per second.

02

Closed-Loop Power Control

Three coordinated loops spanning PCG, frame, and pilot measurement timescales

800 Hz Reverse Inner Loop per PCG · 1.25 ms
  1. Measure Eb/Nt from received signal
  2. Compare against outer-loop target
  3. Sigma-delta modulator quantizes error — finer effective control than simple thresholding
  4. Transmit binary PCB on forward traffic channel
  5. Mobile adjusts TX power ±step
50 Hz Reverse Outer Loop per frame · 20 ms
  1. Track CRC pass/fail in sliding window
  2. Estimate FER through IIR filter
  3. FER too high → raise target Eb/Nt
  4. FER too low → lower target Eb/Nt
Forward Outer Loop Mobile sends PMRM (Pilot Measurement Report Message) → BSC parses pilot strength measurements → adjusts per-traffic-channel gain offset
03

MO Call Setup

CDMA2000 message sequence from access probe to EVRC bearer

MS
BTS / BSC
MSC
R-ACH
Origination Message
SO3 · RC pref 3/3 · dialed digits
Abis
Forward L3 to BSC
BTS → BSC over Abis signaling
A1
Complete Layer 3 Info
BSC → MSC: mobile identity + request
A1
Assignment Request
MSC → BSC: A2p bearer parameters
F-PCH
Extended Channel Assignment
ECAM · Walsh 17 · RC3/RC3
MS tunes to traffic channel
F-TCH
Service Connect
SERV_CON_SEQ=7 · SO3 · MUX1/1 · RC3/3
R-TCH
Service Connect Complete
F-TCH
Alert With Info
Ringback Tone
TCH
EVRC voice active
bidirectional 8 kbps vocoder frames

MT calls follow the same channel setup path — triggered by MSC Paging Request → BSC General Page Message → R-ACH Page Response. If the mobile already holds a traffic channel, BSC begins service negotiation in place without a new page cycle.

04

Layer 2 Assured Delivery

MAC/LAC ARQ with sequence tracking, retransmission, and duplicate suppression

Every Layer 3 message rides a LAC PDU with a 3-bit MSG_SEQ (0–7) and a matching ACK_SEQ. When ACK_REQ=1 the transmitter holds a copy and retransmits with the same sequence number until acknowledged or the maximum attempt count is exhausted.

The receiver maintains a sliding window of 4 consecutive sequence numbers for duplicate detection — a retransmission delivers the ACK without re-presenting the payload to Layer 3. Up to 4 regular PDUs can be outstanding simultaneously.

MuxPDU signaling modes
blank-and-burst 1011 168 bits signaling · 0 traffic · full-rate only
dim-and-burst 1000 88 bits signaling · 80 bits traffic
dim-and-burst 1001 128 bits signaling · 40 bits traffic
dim-and-burst 1010 152 bits signaling · 16 bits traffic

Signaling can only be carried at full rate (9600 bps). Sub-rate frames carry primary traffic only.

Timer Value Purpose
T1m 400 ms Regular PDU retransmit timeout
T2m 200 ms Max MS acknowledgment time (regular PDU)
T4m 2.2 s MSG_SEQ reuse cooldown on paging channel
T75m 120 ms Mini PDU retransmit timeout
T76m 60 ms Max MS acknowledgment time (mini PDU)
N1m 13 Max transmissions of a regular PDU
N15m 17 Max transmissions of a mini PDU
05

SIP Gateway & Transcoding

Full EVRC↔G.711 bridge with adaptive jitter buffering and SIP trunk support

Uplink · handset → PSTN
EVRC primary bits EVRC decode PCM G.711 encode RTP
Downlink · PSTN → handset
RTP G.711 decode PCM EVRC encode EVRC primary bits
Adaptive jitter buffer: 40–80 ms for inbound RTP reordering. Silence frames inserted when packets are late. WAV fallback: MSC plays local audio when gateway is unreachable and fallback_to_wav is set.
Implemented
MO → SIP/PSTN outboundEVRC ↔ G.711 (PCMU/PCMA)SIP digest authSIP REGISTERSTUN NAT traversalCaller ID overrideAdaptive jitter buffer
Tested providers
FreeSWITCHFlowrouteTwilio
06

Identity & Registration

IMSI encoding, paging slot computation, and six registration trigger types

TypeTriggerParameter
Power-up Mobile turns on POWER_UP_REG
Power-down Mobile turns off POWER_DOWN_REG
Timer-based Periodic interval expires REG_PRD
Zone-based Mobile enters new SID/NID/zone TOTAL_ZONES, ZONE_TIMER
Parameter-change System parameters changed since last reg PARAMETER_REG
Distance-based Mobile moved beyond threshold REG_DIST
IMSI_S composition
24 bits IMSI_M_S1
+
10 bits IMSI_M_S2
=
34 bits IMSI_S
Paging slot assignment
PGSLOT = hash(IMSI_M_S1, IMSI_M_S2) mod 2048

Hash defined in C.S0005-E §2.6.7.1. Result: slot 0–2047. Slot cycle index (SCI) controls wake-up frequency — higher SCI means longer sleep, lower paging latency at the cost of battery life.

07

Management Plane

Eight gRPC services exposing full protocol visibility and operator control

Service Endpoint Role
ManagementFacadeService :17016 System overview · aggregated event stream
BtsManagementService :17016 Radio metrics · IQ capture · power-control diagnostics
BscManagementService :17016 Mobiles · channels · access/paging/traffic streams
MscManagementService :17017 Initiate/list calls · MSC voice gateway policy
PcfManagementService :17016 Packet-data radio-edge sessions · data-call actions
PdsnManagementService :17016 Packet-core sessions · packet trace capture
HlrService :17016 Subscriber CRUD · identity resolution
SmscService :17016 SMS history · delivery state · submissions
Dashboard path
Browser 1xbts-web :3000 facade :17016 SSE streams

Browser clients receive Server-Sent Event streams from the web server — they do not open raw gRPC connections. The facade aggregates events from BTS, BSC, MSC, and packet-core nodes into a unified stream.

08

Implementation Status

What runs today vs. what's on the roadmap

Done
  • Voice MO/MT (EVRC SO3/17/68/73)
  • SMS MO/MT — PostgreSQL SMSC
  • Packet data SO7/SO33
  • BTS/BSC Abis split architecture
  • MSC A1/A2p fully networked
  • SIP voice gateway (EVRC↔G.711)
  • 800 Hz closed-loop power control
  • RC1 + RC3 traffic channels
  • Web dashboard with SSE streaming
  • F-SCH TX chain
  • HLR / SMSC persistence layer
  • gRPC management plane (8 services)
Planned
  • MRC multi-path combining
  • Inbound SIP → mobile (MT calls)
  • RFC 2833 DTMF relay
  • F-DCCH dedicated control channel
  • RC2 / RC4 / RC5–RC8
  • F-SCH channel allocation
  • R-SCH reverse supplemental
  • Turbo coding for high-rate SCH
  • R-EACH enhanced access channel
  • Separate PCF/PDSN processes
  • A8/A9 UDP socket transport
  • A10/A11 UDP socket transport
09

Activity Log

Live protocol trace — a complete MO call from access to voice

live
time dir channel message detail seq·ack
19:24:13.199 RX R-TCH W16 PMRM errors=0 frames=113 pilots=1 | FER=0.0% 3·2
19:24:21.372 RX R-ACH Registration reg_type=0 · p_rev=6 3
19:24:21.405 TX F-PCH Order Registration Accepted 1·3
19:24:35.435 RX R-ACH Origination SO3 · RC pref 3/3 · digits 0000000000 5
19:24:35.445 TX F-PCH ECAM Walsh 17 · RC3/RC3 2·5
19:24:36.492 RX R-ACH Order Mobile Station Acknowledgment | ACK 6·2
19:24:36.899 TX F-TCH W17 Order Base Station Acknowledgment [Assigned] 0·7
19:24:36.979 TX F-TCH W17 Service Conn SERV_CON_SEQ=7 · SO3 · MUX1/1 · RC3/3 1·0
19:24:37.079 TX F-TCH W17 Alert Alert With Info | Ringback Tone 3·0
19:24:37.080 TX F-TCH W17 Alert Alert With Info | Tones Off 4·7
19:24:38.878 RX R-TCH W17 PMRM errors=1 frames=113 pilots=1 | FER=0.9% 4·4
19:24:45.238 TX F-TCH W17 Order Base Station Acknowledgment [VoiceConnected] 5·1
19:24:45.638 RX R-TCH W17 DTMF Send Burst DTMF(0x07) ack_seq=5 msg_seq=2 2·5
19:24:45.638 TX F-TCH W17 Order Base Station Acknowledgment [VoiceConnected] 6·2
19:24:48.559 RX R-TCH W17 PMRM errors=0 frames=113 pilots=1 | FER=0.0% 2·6
19:24:49.498 RX R-TCH W16 PMRM errors=0 frames=113 pilots=1 | FER=0.0% 2·2
Channels R-ACH Reverse Access — mobile originates F-PCH Forward Paging — network pages/assigns R-TCH / F-TCH Traffic channels · Walsh code shown
Messages Origination MO call setup with service option + digits ECAM Extended Channel Assignment — Walsh + RC PMRM Pilot Measurement Report — FER + Ec/Io
Fields seq·ack MSG_SEQ · ACK_SEQ for LAC ARQ FER Frame Error Rate — amber row = error detected SO3 EVRC service option · RC3 = 9.6 kbps forward