Feb 212017

Its been all over the news today that Max Quartermain lost his life today when his B200 Super King Air crashed on takeoff after what is suspected to be an engine failure.

Max was well known in the aviation industry, especially around Essendon Airport where the crash occurred. He was a very knowledgeable pilot that was always available to give advice, guidance, or thoughts to any prospective pilot – including those who were struggling to find success in the industry. The aircraft involved in the fatal crash was always well looked after and he took pride in his work.

While I’ve only spoken to him a couple of times, I know many people who knew him well. From those working in support operations, to those who have flown with him over the many years that Max has been doing what he loved. He always left an impression of genuine love for what he did, and the aviation industry as a whole.

You will be missed.

Dec 252016

So it’s now been 16 years since the end of TITR (This Is True, Really) News. I still occasionally listen to the old recordings of what we now know as ‘podcasts’ and have a giggle.

Scott, Tony, wherever you guys are, hope all is going well.

If you want to share in on the laughs, I’ve put up the small archive I have on soundcloud.

Sep 242016

So I recently got given a Symmetricom TimeProvider 100 to have a bit of a play with – and was excited to see an ethernet port marked “NTP” on the front.

After firing it up and having no luck at all talking to it on this port other than ICMP ping packets, I trawled online to try and find the manual. That’s a challenge!

So, as a favour to Google and all others that try to find the manual for this damn thing, I’ve uploaded it here.

Symmetricom TimeProvider 100 User Manual

One thing that struck me is this little note:

Note: The NTP feature in the NTP port is currently not implemented.

Ok, so no NTP server running on it. A little bit of a shame, but we still have a PPS port. But its BNC?!

Linux has an entire API for PPS sources, but the main one seems to be using the DCD lines on a physical serial port. But how to convert a 50 ohm BNC connection to a RS232 serial port?!


It turns out that the PPS signal is compatible with the logic levels of the DCD line.

Now all that’s left is to set it up software wise. I’m using Scientific Linux 7 – so this should work across CentOS and RedHat Enterprise Linux.

$ yum install pps-tools
$ modprobe pps_ldisc
$ ldattach 18 /dev/ttyS0
$ $ ppstest /dev/pps0
trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
ok, found 1 source(s), now start fetching data...
source 0 - assert 1474704714.000005460, sequence: 4828 - clear 1474702748.000922784, sequence: 3229
source 0 - assert 1474704715.000005644, sequence: 4829 - clear 1474702748.000922784, sequence: 3229
source 0 - assert 1474704716.000002819, sequence: 4830 - clear 1474702748.000922784, sequence: 3229
source 0 - assert 1474704717.000002645, sequence: 4831 - clear 1474702748.000922784, sequence: 3229

If all of the above works, congratulations. Your PPS source works. Now you get to finalise the configuration.

Firstly, we need to set up udev to properly configure the serial port on boot, add the following to: /etc/udev/rules.d/pps-sources.rules:
KERNEL=="pps0", OWNER="root", GROUP="ntp", MODE="0660"
KERNEL=="ttyS0", RUN+="/bin/setserial -v /dev/%k low_latency irq 4"

Now we need to automatically load the pps_ldisc module on boot. Create /etc/modules-load.d/pps-source.conf and throw this in there:
## Load the PPS module on boot.

Next we need to configure systemd to attach the serial port to the PPS driver on boot. Create /etc/systemd/system/ldattach@.service and use this:
Description=Line Discipline for GPS Timekeeping for %i
ExecStart=/sbin/ldattach 18 /dev/%i

Enable this on boot and specify your serial port:
$ systemctl enable ldattach@ttyS0.service

The last step is to configure /etc/ntp.conf to use your PPS source. One thing to keep in mind is that the PPS source doesn’t contain an actual time – so you MUST have an NTP server set to a preferred time source. I use:
server minpoll 4 maxpoll 4
server 0.au.pool.ntp.org iburst prefer
server 1.au.pool.ntp.org iburst
server 2.au.pool.ntp.org iburst

Restart ntpd now, and you should be done:
$ systemctl restart ntpd

After a while, you should see some good accuracy:
$ ntpstat -q
synchronised to atomic clock at stratum 1
time correct to within 1 ms
polling server every 16 s
$ ntptime
ntp_gettime() returns code 0 (OK)
time db90b5e4.76394f80 Sat, Sep 24 2016 18:20:52.461, (.461812146),
maximum error 5500 us, estimated error 1 us, TAI offset 0
ntp_adjtime() returns code 0 (OK)
modes 0x0 (),
offset -1.654 us, frequency -5.593 ppm, interval 1 s,
maximum error 5500 us, estimated error 1 us,
status 0x2001 (PLL,NANO),
time constant 4, precision 0.001 us, tolerance 500 ppm,

Jun 012016

Recently I’ve moved the builds for the WD MyNet systems to LEDE.

I’ve also started building for more than just the MyNet N750 – and now *all* ar71xx systems will get a nightly build.

The build directories now follow the date of the build, not the revision number. The new builds are available at: http://openwrt.crc.id.au/