First operative test of the RB Stratum 1 Server
Following Poul-Henning Kamp project to modify a 4501 router to build a Stratum 1 NTP server , i’ve decided to build my own using instead a Rubidium Frequency standard source of 10 Mhz to clock the Elan processor inside the Soekris. . It requires some hardware changes on the router and it uses a custom version of NanoBSD inside 512 MB compact flash card. So i will start with HARDWARE needings and then i’ll pass to the SOFTWARE part , where you will find a complete copy of my nanoBSD kernel. The section will end with some perferomance test and some possible future implementations on HW and SW.
So, Why we are using a Soekris 4501 for this project?
The Elan AMD SC520 CPU processor has a timekeeping capability and with the substitution of its original X1 crystal , can accept a square wave of 33,333…. Mhz originating from 10 Mhz sinewave – in this case the Rubidium Frequency Standard FE-5680A ( 10-^11 ) – in conjunction with the FreeBSD API implementation for processing timestimes for external signal ( PPS API ) we can use accurate chip timestamps with the 1PPS from GPS signal directly on the baord’s GPIO pins, to have an accuracy of +-100 nanosecods , with peaks of 60 nanosecods and ever less with good GPS signal.
- Soekris 4501
3. FE-5680A Rubidium Frequency Standard
4. TAPR Clock Block
Ok. The first thing we’ll have to do is to replace the original cristal (X1) on the soekris 4501. The X1 provide clock for the processor while X2 provide ethernet clock .
The TAPR Clock Block will serve to create the 33.333… Mhz square wave from the original 10 Mhz sinewave Rubidium source, The good thing of this little device is that it’s easy to manage. It accepts a reference input frequency in the range of 2 to 50 MHz and can generate output frequencies from 5MHz to 250 MHz. The bad thing is the phase noise but for timing application like this one it’s not essential.
You will have to program the Clock Block using on board swithces. For a 10 Mhz input, to have a square wave of 33.333… Mhz you can use V2, V3 as you see in the picture above.It’s important that before using it on the 4501 to test it with a frequency counter checking that the output it’s correct : otherwise the clock will not be correct and you’ll have a red error led on the Soekris router.The Clock-Block requires an input voltage from 7 volts (5 volts when using 3.3 volt logic levels) to 20 volts DC. I’ve used the pin 16 VCC of the TI HC402OM inside the Clock Block ( http://www.ti.com/lit/ds/symlink/sn54hc4020.pdf ) to connect the + line to the base of the 4501 power line INPUT.
The output frequency (33.333… Mhz) wires from the clock block must be soldered to the X1 crystal base and the ground pin at JP3 . It’s better to use a 100 Ohm resistor to lower the voltage, since the ELAN CPU use 2.5 v logic :
For the Rubidium Frequency Standard i had the option to use the Efratom M-100 and the commercial FE-5680A. I’ve selected this last one since it’s fatser to lock than the M100 (3 minutes) and has a lower phase noise. With Claudio Re few months ago , we’ve done a comparative test wich you can find here : http://air-radiorama.blogspot.it/2014/11/test-preliminare-efratom-m-100-e-fe.html and another one on my blog here : https://deltafabri.wordpress.com/2014/11/22/fe-5680a-and-gps-breakout-1pps-signal-experiments-with-ntp/. This is a basic draw of how it produces the 10 Mhz output .
I’ve used the Garmin GPS 18x LVC OEM that i found on internet. It comes without power supply and no rs 232 or USB : instead there are all the wires you need (RX,TX GND,VC,1PPS) as output.Perfect.
YELLOW--------------> 1PPS WHITE---------------> TX GREEN---------------> RX BLACK(2)------------> GND signal (thin) and GND voltage RED-----------------> VC
Before connecting GPS cable it’s better to do some considerations. You can achieve better performaces with FreeBSD and Soekris modifying the GPS standard configuration with a windows software , SNSRCFG . You can download from my server here or google to find it ( http://www.sidmonitor.net/gallery/SNSRCFG_320.exe ). You should select only $GPRMC sentences in NMEA and have a 1PPS output duration of 200ms . But while i’m writing i’m using it with its standard configuration out- of-the-box without problems. The Garmin 18x will accept power from GPIO pins of the Soekris (5v) , will trasmit TX (white) information directly to the board and 1PPS too. For this last one, we should do another work to use the 1PPS in conjuction with the high resolution timer of the ELAN CPU .A insulated cable shoule be welded from GPIO 0 wich is pin 3 of the JP3 (see pictures below) to the junction of R61 and R62 (in turn connected to the TMR1IN pin of the processor, grid number AA24, but unreachable as it is underneath the Elan chip carrier).
HW hack it’s over, we’ll see in the next part , SOFTWARE : how to build a custom kernel with nanoBSD under FreeBSD and put into a 512 MB flash card, its configuration files and i’ll upload a copy of the kernel to use.