OpenBTS fix: Connect external clock to USRP
As most of you who have used OpenBTS knows, registering a mobile phone with your network isn’t a smooth as it could be. You have to try and try again. This problem has the do with the USRP’s clock (drifting).
I decided to use an external clock.
The following changes must be done on the USRP to connect a external clock (from GnuRadio):
- Solder SMA connector to J2001
- Move R2029 to R2030 (or just remove R2029 and solder a 0 ohm resistor)
- Move C925 tot C926 (0.01uF)
- Remove C924

Connect a signal generator at -3dBm (~700mV) and 64MHz:

Now any phone (HTC, iPhone,Nokia,Sony Ericsson) can connect and register to my network without hassle.
I wrote a small script that automatically registers a new subscriber and sends a welcome message “Welcome to OpenBTS. Your number: 20XX”.
Fun!
That is so awesome that the iPhone can connect to OpenBTS.
Is there a low cost source for good signal generator?
Luckily I have a few signal generators lying here at the university. But it’s not the final solution for the clocking problems.
It’s better to get a small, cheaper and more mobile oscillator and connect it to the USRP. From the openBTS mailing list:
Joshua Lackey:
I am using the kit “FA-SY 1″ from Funkamateur with good results. It is
not perfekt but it works. But you have to calibrate the device after
assembling it. Calibration can be done via USB.
The FA-SY 1 is 45 Euro. But I haven’t tried it myself.
Goeie werk, now you must just expand the range so I can connect to it from my lab
Ha ha. Well that is the logical next step. Unfortunately I wont be working on it for a while.
Try an Efratom/Datum/Symmetricom L-PRO Rubidium Atomic Frequency Standard (~$99 on ebay). It requires a 24 VDC power supply, but should connect directly to the USRP (10 MHz).
-glenn
Hello
For the most precise clock, i suggest you to use a GPS module with a pps output, and a PLL…
Sto
Would it be possible to get your script for automated provisioning?
Thanks in advance,
Markus
Hi Markus,
It less of a script and more integration in OpenBTS and Asterisk.
The big issue is that it is, in my opinion, a very very silly python script.
And because OpenBTS changes everytime the script (The python , bash scripts and openbts integration) has to as well.
Maybe I’ll fix it.
When it’s working I’ll share it gladly.
sorry markus I accidentally deleted your last comment before reading it. (freakin spam, difficult to see the real comments)
Here is markus’s comment I accidentally deleted:
Hi all
I just wrote a simple auto provisioning script myself. You may download it from here: http://netti.ch/downloads/community/OpenBTS/auto_provisioning.py
What it does: Reads periodically IMSI numbers from the test.out OpenBTS logfile (loglevel should be set to “INFO” at least). Checks, whether the numbers are registered in the asterisk extension.conf and sip.conf configuration files. If not, makes new entry with appropriate caller-id. The user may then request it’s assigned caller number by sending a not-empty SMS message to number 411 (which is a feature of smqueue).
If you have any comments, use the contact information inside the python script.