First Registration
Checklist
Before starting, confirm:
- 1xBTS built successfully (Building from Source)
- BTS and radio configured (Configuration)
- SDR connected and recognized
- Docker services running:
docker compose up -d - CDMA2000 1x capable handset available
Start the BTS
cargo run --release -p cdma-nib -- \
--config-dir config \
--radio-config config/radio_bladerf_micro2.json
On startup the BTS begins transmitting:
| Channel | Walsh | What It Does |
|---|---|---|
| Pilot | W0 | Timing/phase reference — always on |
| Sync | W32 | System time, PN offset |
| Paging | W1 | Overhead messages (SPM, APM, NLM, etc.) |
Add a Subscriber
Before a handset can register, add it to the HLR at http://localhost:3000/subscribers or via the gRPC API directly.
Registration Flow
When the handset powers on within range:
| Step | What Happens |
|---|---|
| 1. Pilot acquisition | Handset searches for and locks onto pilot channel |
| 2. Sync channel | Reads system time, PN offset from sync |
| 3. Paging channel | Receives overhead messages (System Parameters, Access Parameters) |
| 4. Access channel | Handset transmits Registration Message |
| 5. Registration accept | BSC records the sighting, resolves the subscriber through HLR/SMSC-facing state, may enqueue welcome SMS, and the BTS transmits Registration Accepted Order |
Troubleshooting
| Symptom | Check |
|---|---|
| No pilot acquisition | TX frequency, gain, SDR connection |
| Access probes but no registration | Subscriber in HLR, access parameters |
| Registration rejected | ESN/IMSI/MIN match in subscriber database |
| Intermittent access | Power control parameters, RF environment |
Next Steps
- Voice Calls — Make a call
- SMS — Send a text
- Packet Data — Establish a data session