Home > Linux, Telecoms, Ubuntu > OpenBTS fix: Connect external clock to USRP

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

image_106

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

image_104

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!

Categories: Linux, Telecoms, Ubuntu Tags:
  1. August 16th, 2009 at 04:28 | #1

    That is so awesome that the iPhone can connect to OpenBTS.
    Is there a low cost source for good signal generator?

  2. August 16th, 2009 at 13:32 | #2

    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.

  3. Carel
    August 17th, 2009 at 11:26 | #3

    Goeie werk, now you must just expand the range so I can connect to it from my lab :P

  4. August 17th, 2009 at 11:37 | #4

    Ha ha. Well that is the logical next step. Unfortunately I wont be working on it for a while. :(

  5. September 3rd, 2009 at 21:33 | #5

    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

  6. sto
    December 30th, 2009 at 14:27 | #6

    Hello

    For the most precise clock, i suggest you to use a GPS module with a pps output, and a PLL…

    Sto

  7. markus
    January 14th, 2010 at 15:31 | #7

    Would it be possible to get your script for automated provisioning?
    Thanks in advance,
    Markus

  8. January 14th, 2010 at 20:30 | #8

    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.

  9. January 19th, 2010 at 12:33 | #9

    sorry markus I accidentally deleted your last comment before reading it. (freakin spam, difficult to see the real comments)

  10. January 19th, 2010 at 13:48 | #10

    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.

  1. No trackbacks yet.
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 11 + 10 ?
Please leave these two fields as-is: