You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ZMQ virtual UE-to-UE voice calls via Asterisk/baresip
BladeRF eNB starts on Pi, connects to EPC via S1
S1AP handshake confirmed in Wireshark
SIB1/SIB2 broadcast confirmed in debug logs
RF status clean (O=295, U=0, L=0)
SIM card programmed with matching credentials
Moto G Power (Qualcomm) acquired for COTS UE testing
Eightwood LTE antennas acquired
COTS phone discovers network (RF issue — see Known Issues)
COTS phone attach and data
Voice call between COTS phone and virtual UE
Known Issues
Phone has difficulty finding network
The eNB broadcasts SIB1/SIB2, connects to EPC, reports clean RF status, but no phone (Samsung S8 Exynos, Moto G Power Qualcomm, iPhone 13) can find the cell during manual network search. Root cause is suspected to be BladeRF VCTCXO frequency offset — the internal clock is slightly off from the target frequency, causing phones to fail PSS/SSS synchronization decode at times .
Fixes that I've treid to no avail
Frequency offset sweep using dl_freq/ul_freq parameters
SoapyUHD bridge for tighter TX timing
HackRF One as spectrum analyzer to measure actual TX frequency
Leo Bodnar GPSDO (10MHz reference clock) for the BladeRF REFIN input
Email Nuand support for factory VCTCXO calibration value
Other issues
Surface Pro 7 USB power management corrupts BladeRF IQ → migrated eNB to Raspberry Pi 4
BladeRF native srsRAN driver (rf_blade_imp.c) incompatible with bladeRF 2.0 micro → must use SoapySDR
FPGA v0.14.0 incompatible with firmware v2.6.0 → locked to FPGA v0.16.0
BladeRF TX output is ~+6 dBm (4mW) — very low power, may need BT-100 amplifier
Samsung S8 Duos (Exynos) baseband too picky for SDR clock accuracy → switched to Qualcomm phone
OYEITIMES SIM programming requires Windows + GRSIMWrite (no Linux support)
Pi 4 limited to 6-15 PRBs max (50 PRBs crashes)
BladeRF TX errors are intermittent — sometimes requires multiple power cycles to get clean start