<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" version="2.0">

<channel>
	<title>RemBl.org</title>
	
	<link>http://rembl.org</link>
	<description>Seductive serendipity / Verleidende serendipiteit</description>
	<pubDate>Sat, 26 Sep 2009 07:23:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<image><url>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</url></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/RemBlorg" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Does the Russian Institute of Metrology for Time and Space (IMVP/VNIIFTRI) read this blog??</title>
		<link>http://rembl.org/index.php/2009/01/01/does-imvp-vniiftri-read-this-blog/</link>
		<comments>http://rembl.org/index.php/2009/01/01/does-imvp-vniiftri-read-this-blog/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 13:22:44 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rembl.org/?p=227</guid>
		<description><![CDATA[Yesterday I published about the insertion of a leapsceond (in Dutch: schrikkelseconde).
About 45 minutes ago I added an update to this post (please scroll down) and discovered that -at that &#8216;time&#8217;- the Russian Institute of Metrology for Time and Space (IMVP/VNIIFTRI) lacked to insert the leapsecond in their public NTP servers.
To my surprise, I discovered [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I <a href="http://rembl.org/index.php/2008/12/31/today-is-leapsecond-day/" target="_blank">published</a> about the insertion of a leapsceond (in Dutch: schrikkelseconde).<br />
About 45 minutes ago I added an update to this post (please scroll down) and discovered that -at that &#8216;time&#8217;- the Russian Institute of Metrology for Time and Space (<a href="http://www.vniiftri.ru/eng" target="_blank">IMVP/VNIIFTRI</a>) lacked to insert the leapsecond in their public NTP servers.</p>
<p>To my surprise, I discovered the following around 13.00 UTC (14.00 LT):<br />
<span style="font-family: courier;"><br />
remco@helium [/home/remco]&gt; ntpdate -q ntp3.imvp.ru<br />
server 62.117.76.138, stratum 1, offset 1.004891, delay 0.08247<br />
1 Jan 13:53:49 ntpdate[21218]: step time server 62.117.76.138 offset 1.004891 sec<br />
remco@helium [/home/remco]&gt; ntpdate -q ntp3.imvp.ru<br />
server 62.117.76.138, stratum 1, offset 0.075734, delay 0.22472<br />
1 Jan 14:07:02 ntpdate[22005]: adjust time server 62.117.76.138 offset 0.075734 sec<br />
remco@helium [/home/remco]&gt; ntpdate -q ntp1.imvp.ru<br />
server 62.117.76.142, stratum 0, offset 0.000000, delay 0.00000<br />
1 Jan 14:07:18 ntpdate[22025]: no server suitable for synchronization found<br />
remco@helium [/home/remco]&gt; ntpdate -q ntp3.imvp.ru<br />
server 62.117.76.138, stratum 1, offset 0.004711, delay 0.08287<br />
1 Jan 14:07:38 ntpdate[22028]: adjust time server 62.117.76.138 offset 0.004711 sec<br />
remco@helium [/home/remco]&gt; ntpdate -q ntp4.imvp.ru<br />
server 62.117.76.140, stratum 1, offset 2.005414, delay 0.08316<br />
1 Jan 14:07:42 ntpdate[22032]: step time server 62.117.76.140 offset 2.005414 sec<br />
remco@helium [/home/remco]&gt; ntpdate -q ntp2.imvp.ru<br />
server 62.117.76.141, stratum 0, offset 0.000000, delay 0.00000<br />
1 Jan 14:08:07 ntpdate[22034]: no server suitable for synchronization found<br />
remco@helium [/home/remco]&gt; ntpdate -q ntp1.imvp.ru<br />
server 62.117.76.142, stratum 1, offset 0.004364, delay 0.08261<br />
1 Jan 14:11:48 ntpdate[22302]: adjust time server 62.117.76.142 offset 0.004364 sec<br />
remco@helium [/home/remco]&gt; ntpdate -q ntp2.imvp.ru<br />
server 62.117.76.141, stratum 1, offset 0.004940, delay 0.08292<br />
1 Jan 14:11:53 ntpdate[22303]: adjust time server 62.117.76.141 offset 0.004940 sec</span></p>
<p>Either it was a (late) planned reboot, insertion of a leapsecond, or . . . . the IMVP is tracking this Blog?!!</p>
<p>However, one machine is forgotten . . .  or is it part of the Russian contribution to the ISS and located in space? ; -) :<span style="font-family: courier;"><br />
remco@helium [/home/remco]&gt; ntpdate -q ntp4.imvp.ru<br />
server 62.117.76.140, stratum 1, offset 2.005239, delay 0.08321<br />
1 Jan 14:26:14 ntpdate[23108]: step time server 62.117.76.140 offset 2.005239 sec</span></p>
<p><span style="font-family: courier;">remco@helium [/home/remco]&gt; ntpq -p ntp4.imvp.ru<br />
remote           refid      st t when poll reach   delay   offset  jitter<br />
==============================================================================<br />
LOCAL(0)        .LCL.            1 l   52   64  377    0.000    0.000   0.000<br />
+GENERIC(0)      .GPS.            0 l   31   64  377    0.000   -0.002   0.004<br />
oPPS(0)          .PPS.            0 l   64   64  377    0.000    0.002   0.004<br />
xntp1.imvp.ru    .IMVP.           1 u  834 1024  377    0.966  -1999.9   0.000</span></p>
<p><span style="font-family: courier;"><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2009/01/01/does-imvp-vniiftri-read-this-blog/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Thermostat for PLL system clock on Time.remco.org</title>
		<link>http://rembl.org/index.php/2008/12/31/thermostat-for-system-clock/</link>
		<comments>http://rembl.org/index.php/2008/12/31/thermostat-for-system-clock/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 14:51:25 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[techniek]]></category>

		<guid isPermaLink="false">http://rembl.org/?p=175</guid>
		<description><![CDATA[Short version of this post: look/click at/on the pictures.
 

Long(er) version of this post: read below ; -)
Recently a friend of mine offered me rack space in his colocation facility. This facility is connected directly to AMSIX, the nr. 1  internet exchange in the World, located in Amsterdam.
He also donated a surplus server, provided that [...]]]></description>
			<content:encoded><![CDATA[<p>Short version of this post: look/click at/on the pictures.</p>
<p><a href="http://rembl.org/wordpress/wp-content/uploads/2008/12/difference1.gif"><img class="size-full wp-image-178 alignnone" title="difference1" src="http://rembl.org/wordpress/wp-content/uploads/2008/12/difference1.gif" alt="difference1" width="495" height="172" /> </a><a href="http://rembl.org/wordpress/wp-content/uploads/2008/12/thermostaat.jpg" target="_blank"><img class="alignnone size-full wp-image-238" title="thermostaat" src="http://rembl.org/wordpress/wp-content/uploads/2008/12/thermostaat.jpg" alt="thermostaat" width="304" height="175" /><br />
</a></p>
<p>Long(er) version of this post: read below ; -)</p>
<p>Recently a friend of mine offered me rack space in his colocation facility. This facility is connected directly to <a href="http://www.ams-ix.net" target="_blank">AMSIX</a>, the nr. 1  internet exchange in the World, located in Amsterdam.<br />
He also donated a surplus server, provided that I prepared the server for precision timekeeping.</p>
<p>First I had &#8216;bad ideas&#8217; of &#8216;beating&#8217; <a href="http://en.wikipedia.org/wiki/Poul-Henning_Kamp" target="_blank">Poul-Henning Kamp</a>&#8217;s gps.dix.dk by using my <a href="http://rembl.org/wordpress/wp-content/uploads/2008/12/fe5680a-small.jpg" target="_blank">FE-5680A</a> Rb-standard, programmed for 14.31818 MHz, as reference for the system clock PLL, in combination with a GPS receiver.<br />
Secondly, I thought that I could never beat the combination of PHK, a <a href="http://www.febo.com/time-freq/ntp/soekris/index.html" target="_blank">Soekris</a>, and -presumably- his own ntp server software <a href="http://phk.freebsd.dk/NTPns/phkrel/" target="_blank">ntpns</a>. So, I defined offering time stamps within +/- 1 us as my goal.<br />
Thirdly, I thought of locking the 14.31818 MHz PLL reference to GPS, but what should I gain, relative to my goal?<br />
Fourthly, I am more into hardware than into (recent) software, remember?</p>
<p>The donated server has an ASUS TUSI-M P1266 motherboard with 1024 MB memory.<br />
I chose FreeBSD (rel-7.0) as OS because LinuxPPS does not support the time_pps_kcbind() option (yet), and compiled a new kernel with PPS_SYNC enabled. My experience is that FreeBSD PPS-implementation reacts more &#8217;smoothly&#8217; on temperature changes than LinuxPPS.</p>
<p>Here, at home, the ntp kernel PLL offset remained within +/- 5 us limits due to the central heating system switching on and off (it is winter now and people are skating ; -).<br />
So, this was not enough, although I knew that my server shall be located in a temperature controlled area.<br />
Before considering &#8216;the GPS-locked system clock option&#8217;, I was curious how the system clock would behave in a more stable temperature environment, i.e. its temperature sensitivity.</p>
<p>I decided to &#8216;thermostatise&#8217; the 14.31818 MHz PLL reference crystal, and built a thermostat around a &#8216;good old&#8217; uA723, a power transistor, and two diodes as temperature sensor. I mounted the power transistor, and diodes on folded copper foil, and soldered the copper foil directly on the 14.31818 MHz crystal near the ICS PLL chip to achieve optimal conduction.<br />
The temperature converged to approx. 45 Celsius and remained stable within ca. 0.1 C.</p>
<p>The difference between &#8216;before&#8217; and &#8216;after&#8217; can be seen in the first picture of this post, acquired by the <a href="http://www.cs.uu.nl/stats/ntp/" target="_blank">Utrecht University</a> (I studied there, and obtained my PhD there), which is monitoring my server out of curiousity. The result of the thermostat is almost a flat line, and the kernel PLL offset stays within +/- 1 us with this setup!</p>
<p><a href="http://rembl.org/wordpress/wp-content/uploads/2008/12/freebsd-standard.png"><img class="alignnone size-full wp-image-189" title="freebsd-standard" src="http://rembl.org/wordpress/wp-content/uploads/2008/12/freebsd-standard.png" alt="freebsd-standard" width="390" height="147" /></a> <a href="http://rembl.org/wordpress/wp-content/uploads/2008/12/freebsd-thermostat.png"><img class="alignnone size-full wp-image-188" title="freebsd-thermostat" src="http://rembl.org/wordpress/wp-content/uploads/2008/12/freebsd-thermostat.png" alt="freebsd-thermostat" width="390" height="147" /></a></p>
<p>Normal performance (left), and performance with &#8216;thermostatised&#8217; system clock PLL reference crystal (right).</p>
<p>Want to look the inside of Time.remco.org?<br />
<a href="http://rembl.org/wordpress/wp-content/uploads/2008/12/timeremcoorg-2.jpg" target="_blank">Here</a> is a picture of its &#8216;thermostat Mk1&#8242;, and <a href="http://rembl.org/wordpress/wp-content/uploads/2008/12/timeremcoorg-1.jpg" target="_blank">this</a> is a picture of its built-in <a href="http://rembl.org/wordpress/wp-content/uploads/2008/02/jupiter-gps-board.pdf" target="_blank">Rockwell Jupiter</a> GPS receiver.</p>
<p>Within the colocation area a special coaxial cable has been routed towards the roof of the building for the Time.remco.org GPS antenna. Therefore, for future expansions and/or experiments I created a DC blocked HF GPS out, to connect more GPS receivers to one antenna, and a 1 PPS output (synchronised to GPS), to offer PPS to other (timing) machines in the colocation area. Ntpd can run perfectly with PPS only, provided that you have a networked time reference.</p>
<p>Pictures of the installation of Time.remco.org will appear later (in a separate posting)!!</p>
<p>Note: the above mentioned server is disconnected, ready to be shipped to the colocation facility. You can use/monitor another &#8216;themostatised&#8217; FreeBSD machine: <a href="http://www.cs.uu.nl/stats/ntp/ntpstats-ntp.remco.org.html" target="_blank">ntp.remco.org</a>, member of the NTP pool. Its behaviour is somewhat less, due to less optimal hardware, but its PLL offset remains within +/- 2 us limits.</p>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2008/12/31/thermostat-for-system-clock/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Today is leapsecond day!</title>
		<link>http://rembl.org/index.php/2008/12/31/today-is-leapsecond-day/</link>
		<comments>http://rembl.org/index.php/2008/12/31/today-is-leapsecond-day/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 10:50:14 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[techniek]]></category>

		<guid isPermaLink="false">http://rembl.org/?p=164</guid>
		<description><![CDATA[Today the 34th leapsecond will be inserted in &#8216;our time&#8217; by adding a 60th second in the last minute of this year.
This was announced by the International Earth Rotation and Reference System Service (IERS) in July this year.
Dr. Daniel Gambis, director of the Earth Orientation Centre, explains precisely why insertion of leapseconds is necessary.
Of course [...]]]></description>
			<content:encoded><![CDATA[<p>Today the 34th leapsecond will be inserted in &#8216;our time&#8217; by adding a 60th second in the last minute of this year.<br />
This was <a href="http://hpiers.obspm.fr/eoppc/bul/bulc/bulletinc.36" target="_blank">announced</a> by the International Earth Rotation and Reference System Service (<a href="http://www.iers.org" target="_blank">IERS</a>) in July this year.</p>
<p>Dr. Daniel Gambis, director of the <a href="http://hpiers.obspm.fr/eop-pc/" target="_blank">Earth Orientation Centre</a>, <a href="ftp://hpiers.obspm.fr/eop-pc/bul/bulc/leap_second.txt" target="_blank">explains precisely</a> why insertion of leapseconds is necessary.</p>
<p>Of course I wanted to see whether my NTP servers followed this procedure. In August I downloaded the official leapsecond file and added it to my ntp.conf. This means that when you do not have a time reference capable of announcing leapseconds, this file informs ntpd accordingly.</p>
<p>Today around 01.00 local time (00.00 UTC) ntpd informed itself about the insertion of a leapsecond:</p>
<p>ntp.remco.org (FreeBSD):<span style="font-family: courier;"><br />
31 Dec 00:59:46 ntpd[778]: crypto: leap epoch 1.0 days<br />
31 Dec 01:00:02 ntpd[778]: kernel time sync status change 2117<br />
31 Dec 01:00:02 ntpd[778]: crypto: leap epoch 1.0 days</span></p>
<p>ntpdc -c kern for this machine yields:<span style="font-family: courier;"><br />
remco@time [/home/remco]&gt; ntpdc -c kern freebsd<br />
pll offset:           -6.7e-08 s<br />
pll frequency:        -50.244 ppm<br />
maximum error:        0.000236 s<br />
estimated error:      1e-06 s<br />
status:               2117  pll ppsfreq ppstime <span style="color: #ff0000;">ins</span> ppssignal nano<br />
pll time constant:    4<br />
precision:            1e-09 s<br />
frequency tolerance:  496 ppm<br />
pps frequency:        -50.244 ppm<br />
pps stability:        0.003 ppm<br />
pps jitter:           1.026e-06 s<br />
calibration interval: 256 s<br />
calibration cycles:   2869<br />
jitter exceeded:      1383<br />
stability exceeded:   0<br />
calibration errors:   3</span></p>
<p>ntp2.remco.org (LinuxPPS):<span style="font-family: courier;"><br />
31 Dec 00:59:53 ntpd[22455]: crypto: leap epoch 1.0 days<br />
31 Dec 01:00:09 ntpd[22455]: kernel time sync status change 2011<br />
31 Dec 01:00:09 ntpd[22455]: crypto: leap epoch 1.0 days</span></p>
<p>where ntpdc -c kern outputs:<span style="font-family: courier;"><br />
remco@time [/home/remco]&gt; ntpdc -c kern ntp2<br />
pll offset:           1.017e-06 s<br />
pll frequency:        5.571 ppm<br />
maximum error:        0.00775 s<br />
estimated error:      7e-06 s<br />
status:               2011  pll <span style="color: #ff0000;">ins</span> nano<br />
pll time constant:    4<br />
precision:            1e-09 s<br />
frequency tolerance:  500 ppm</span></p>
<p>DCF77 transmits leapsecond information, as can be seen in the logfile after restarting ntpd on a machine which has no leapsecond file:<br />
<span style="font-family: courier;"><br />
31 Dec 11:19:45 ntpd[20791]: PARSE receiver #0: interval for following error message class is at least 00:01:00<br />
31 Dec 11:19:45 ntpd[20791]: PARSE receiver #0: no data from device within poll interval (check receiver / wiring)<br />
31 Dec 11:20:03 ntpd[20791]: synchronized to GENERIC(0), stratum 1<br />
31 Dec 11:20:03 ntpd[20791]: kernel time sync status change 0001<br />
31 Dec 11:21:55 ntpd[20791]: kernel time sync status change 0011</span></p>
<p>So at least I now know that &#8216;I am in time&#8217; with my leapseconds! :- )</p>
<p><strong>Update Jan 1st 2009</strong>:</p>
<p>Yesterday friends and family asked me: &#8220;What are the effects of not heeding the leapsecond insertions, anyway, when it is so important, why don&#8217;t we hear about it in the news?&#8221; My answer was: &#8220;Wait until tomorrow, then you&#8217;ll hear and read enough&#8221;.  Some URLs:</p>
<ul>
<li><a href="http://www.nu.nl/internet/1892375/zunes-getroffen-door-millenniumbug.html" target="_blank">http://www.nu.nl/internet/1892375/zunes-getroffen-door-millenniumbug.html</a> (Dutch)</li>
<li><a href="http://forums.zune.net/0/1/404037/ShowPost.aspx#404037" target="_blank">http://forums.zune.net/0/1/404037/ShowPost.aspx#404037</a></li>
<li><a href="http://blog.seattlepi.nwsource.com/microsoft/archives/158289.asp" target="_blank">http://blog.seattlepi.nwsource.com/microsoft/archives/158289.asp</a></li>
</ul>
<p>But the most intriguing discovery I just made was that the Russian  Institute of Metrology for Time and Space <a href="http://www.vniiftri.ru/eng" target="_blank">(IMVP/VNIIFTRI)</a> did not insert the 34th leapsecond yesterday (!):<br />
<span style="font-family: courier;"><br />
remco@lithium [/home/remco]&gt; ntpdate -q ntp1.imvp.ru<br />
server 62.117.76.142, stratum 1, offset 1.002066, delay 0.08249<br />
1 Jan 13:49:14 ntpdate[27913]: step time server 62.117.76.142 offset 1.002066 sec<br />
<span style="font-family: courier;"><br />
remco@lithium [/home/remco]&gt; ntpdate -q ntp2.imvp.ru<br />
server 62.117.76.141, stratum 1, offset 1.001125, delay 0.08253<br />
1 Jan 13:29:45 ntpdate[27803]: step time server 62.117.76.141 offset 1.001125 sec<br />
<span style="font-family: courier;"><br />
remco@lithium [/home/remco]&gt; ntpdate -q ntp3.imvp.ru<br />
server 62.117.76.138, stratum 1, offset 1.001030, delay 0.08250<br />
1 Jan 13:29:50 ntpdate[27804]: step time server 62.117.76.138 offset 1.001030 sec<br />
<span style="font-family: courier;"><br />
remco@lithium [/home/remco]&gt; ntpdate -q ntp4.imvp.ru<br />
server 62.117.76.140, stratum 1, offset 2.001320, delay 0.08302<br />
1 Jan 13:30:04 ntpdate[27808]: step time server 62.117.76.140 offset 2.001320 sec <span style="color: #ff0000;"><strong>&lt;</strong><strong>- 2s ??</strong></span></span></span></span></span></p>
<p>I won&#8217;t draw any conclusions, but I fear the next satellite/space mission or rocket launch on Russian territory ; -)</p>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2008/12/31/today-is-leapsecond-day/feed/</wfw:commentRss>
		<category domain="http://rss.financialcontent.com/stocksymbol">IERS</category></item>
		<item>
		<title>‘DCF77-PPS’ experiments with a DCF77 radio module using ntpd</title>
		<link>http://rembl.org/index.php/2008/06/09/dcf77-pps-experiments-with-a-dcf77-radio-module-using-ntpd/</link>
		<comments>http://rembl.org/index.php/2008/06/09/dcf77-pps-experiments-with-a-dcf77-radio-module-using-ntpd/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:28:45 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[techniek]]></category>

		<guid isPermaLink="false">http://rembl.org/index.php/2008/06/09/dcf77-pps-experiments-with-a-dcf77-radio-module-using-ntpd/</guid>
		<description><![CDATA[UPDATE 9 nov 2008: Currently ntp2.remco.org runs with the configuration mentioned below. Polling time for the PPS peer is 32 seconds (minpoll 5, maxpoll 5). Stats can be viewed here.
UPDATE 8 aug 2008: As I already felt, the idea below is already implemented by Poul-Henning Kamp in his own implementation of a NTP-server, NTPns. I am [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE</strong> 9 nov 2008: Currently ntp2.remco.org runs with the configuration mentioned below. Polling time for the PPS peer is 32 seconds (minpoll 5, maxpoll 5). Stats can be viewed <a href="http://remco.org/ntp" target="_blank">here</a>.</p>
<p><strong>UPDATE</strong> 8 aug 2008: As I already felt, the idea below is already implemented by Poul-Henning Kamp in his own implementation of a NTP-server,<a href="http://phk.freebsd.dk/NTPns/phkrel/" target="_blank"> NTPns</a>. I am trying to figure it out and will report the results here as soon as I got it running.</p>
<p>&#8212;&#8212;&#8212;&#8211;<br />
This post tries to describe an experiment using DCF77 pulses as <em>PPS source</em>. Although seemingly trivial, I could not find any information on the web dealing with this issue, therefore I publish it here. Presumably the following &#8216;discovery&#8217; is already implemented in ntpd and/or its refclock-drivers. I am more into hardware.</p>
<p>Anyway. . . . enough disclaimers!</p>
<p>Today a friend of mine returned one of my DCF77 radio modules because &#8216;it didn&#8217;t work anymore&#8217;. Before he returned the module, he took a <a href="http://rembl.org/wordpress/wp-content/uploads/2008/06/dcf77-ontvanger.jpg">picture</a> of it. Well&#8230; the ferrite antenna rod was missing, presumably &#8216;lost&#8217; during a relocation of the server the module was connected to.</p>
<p>The module was interfaced to RS232 in conjunction with <a href="http://www.jonatkins.com/page/software/radioclkd2">radioclkd2</a>. I use(d) the <a href="http://www.eecis.udel.edu/~mills/ntp/html/drivers/driver8.html">PARSE/GENERIC</a> driver on ntp.remco.org and for this driver the RS232 connector needs to be rewired.<br />
Below the RS232 wiring is explained for a DB9 connector:</p>
<p>radioclkd2: Vcc-pin4/DTR, GND-pin5/GND, DCF-pin1/DCD<br />
parse/generic: Vcc-pin7/RTS, GND-pin5/GND, DCF-pin2/RxD</p>
<p>While rewiring I thought it would be a nice idea to compare Frank&#8217;s parse driver with Jon&#8217;s SHM driver and fed the DCF77 signal to both pin1 (DCD) and pin2 RxD, using a drop of solder. +Vcc was connected to pin7 (RTS).</p>
<p>Using (sudo)  radioclkd2 -s iwait ttyS0:-dcd -d -v yielded DCF pulses and in ntp.conf I entered:</p>
<p>#PARSE Conrad RAW DCF77 (time1 0.2374)<br />
server 127.127.8.0 mode 5<br />
fudge 127.127.8.0 time1 0.2374 stratum 0 refid DCFa</p>
<p>#SHM driver (for use with radioclkd2)<br />
server 127.127.28.0<br />
fudge 127.127.28.0 time1 0.0282 stratum 0 refid DCFb</p>
<p>Putting radioclkd2 into daemon mode (discarding the -d -v options), I restarted ntpd subsequently.  After a while ntpd synchronized to DCFb.  I monitored the behaviour of both &#8216;DCFa&#8217; and &#8216;DCFb&#8217;, and found out that DCFb (i.e. radioclkd2) revealed less jitter.</p>
<p>Anyway, for whatever reason I thought about the &#8216;PPS&#8217; option in conjunction with the parse driver (add 128 to mode number, i.e. server 127.127.8.0 mode 5 -&gt; server 127.127.8.0 mode 133 in ntp.conf) would also be interesting.</p>
<p>Because I use LinuxPPS on ntp.remco.org with an <a href="http://rembl.org/index.php/2008/04/19/motorola-oncore-ut-and-linuxpps">Oncore UT+ timing receiver</a> *and* now had a second PPS-source, i.e. the &#8216;DCF77-PPS&#8217;-signal connected to pin1 (DCD). I was curious how ntpd dealt with this &#8216;new PPS-peer&#8217;.</p>
<p><strong>NB: Yes, yes, yes&#8230;. I know that DCF77 does not transmit data in the 59th second of a minute!</strong></p>
<p>I gave it a try and activated a second PPS interface with: setserial /dev/ttyS1 hardpps or ppsldisc /dev/ttyS1 &amp; (cf. <a href="http://wiki.enneenne.com/index.php/LinuxPPS_support">LinuxPPS wiki</a>, please read!):</p>
<p>remco@helium [/home/remco]&gt; cat /sys/class/pps/pps1/{assert,clear}<br />
1212786628.000324988#43281<br />
1212786628.118746763#43281</p>
<p>The rising (assert) edge of the pulses are synchronized to UTC epochs by the<a href="http://www.ptb.de/index_en.html"> PTB</a> (Germany), and the pulse length (100 vs. 200 ms) is used to transmit information (see PTB site for an explanation of the DCF77 protocol).</p>
<p>The PPS-option for the GENERIC parse driver is activated by creating a /dev/refclockpps-* symlink to /dev/pps*, e.g.<br />
(sudo) ln -s /dev/pps1 /dev/refclockpps-1.</p>
<p>In /etc/ntp.conf the following lines were inserted:</p>
<p>#ATOM <a href="http://www.eecis.udel.edu/~mills/ntp/html/drivers/driver22.html">driver22</a>, rising edge, flag2 0<br />
server 127.127.22.1 minpoll 4 maxpoll 4<br />
fudge 127.127.22.1 flag2 0 flag3 1 stratum 0 refid PPSa</p>
<p>#PARSE <a href="http://www.eecis.udel.edu/~mills/ntp/html/drivers/driver8.html">driver8</a> Conrad RAW DCF77 (time1 0.2374)<br />
server 127.127.8.1 mode 133 prefer<br />
fudge 127.127.8.1 time1 0.2374 flag1 0 time2 0.0282 flag2 0 flag3 1 stratum 0 refid DCFa</p>
<p>I determined the time1 value empirically and took the time2 value from the empirically determined offset for radioclkd2. Perhaps some tweaking is necessary, but I consider it to be a good initial guess.</p>
<p>And&#8230; yes! After a while I obtained a sync for PPS(1), and observed lower jitters of PPS(1) than the &#8216;original&#8217; DCF77-signal (DCFa) using a polling time of 16 seconds (minpoll 4). This means that one second in every 4th sample is missing, generating additional jitter. I did not experiment nor determined whether changing polling times to e.g. 16 or 64 seconds, i.e. [3*16+1*15]/64, is better or worse than 63/64. Although arithmetically identical, perhaps some software loop filters within ntpd have different time constants when using different polling times.</p>
<p>Because the jitter of the &#8216;DCF77-PPS&#8217; is increased by the missing 59th second, perhaps it would be a suggestion that the PARSE driver8 in mode 133 inserts a time stamp in the 59th second of every minute, in the case that the DCF signal is fed to RxD and DCD simultaneously (might this be mode 20 for example? ; -). The omitting 59th time stamp may be derived from the 58th second or, for example, or the average from the last 5 seconds or so. LinuxPPS then &#8217;sees&#8217;  a time stamp every second, and my feeling says that the precision of the PARSE driver in RAWDCF mode (e.g. mode 5+128)  can be increased.</p>
<p>Feedback is highly appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2008/06/09/dcf77-pps-experiments-with-a-dcf77-radio-module-using-ntpd/feed/</wfw:commentRss>
		<category domain="http://rss.financialcontent.com/stocksymbol">DCD</category><category domain="http://rss.financialcontent.com/stocksymbol">RTS</category></item>
		<item>
		<title>Motorola Oncore UT+ and LinuxPPS</title>
		<link>http://rembl.org/index.php/2008/04/19/motorola-oncore-ut-and-linuxpps/</link>
		<comments>http://rembl.org/index.php/2008/04/19/motorola-oncore-ut-and-linuxpps/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 09:28:50 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[techniek]]></category>

		<guid isPermaLink="false">http://rembl.org/index.php/2008/04/19/motorola-oncore-ut-and-linuxpps/</guid>
		<description><![CDATA[Recently I bought a Motorola Oncore UT+ GPS timing receiver on Ebay. I run Debian Linux and it seems that the refclock_oncore driver is not included in ntpd because the LinuxPPSAPI from Rodolfo Giometti is not an official part of the linux kernel (yet? ; -)
I interfaced the module with three inverters (74HC14) to my [...]]]></description>
			<content:encoded><![CDATA[<p><a title="oncore-ut.jpg" href="http://rembl.org/wordpress/wp-content/uploads/2008/04/oncore-ut.jpg"><img src="http://rembl.org/wordpress/wp-content/uploads/2008/04/oncore-ut.jpg" border="0" alt="oncore-ut.jpg" width="424" height="275" align="right" /></a>Recently I bought a <a href="http://www.tapr.org/pdf/UT_Eng_Notes.pdf" target="_blank">Motorola Oncore UT+</a> GPS timing receiver on Ebay. I run Debian Linux and it seems that the refclock_oncore driver is not included in ntpd because the <a href="http://wiki.enneenne.com/index.php/LinuxPPS_support" target="_blank">LinuxPPSAPI</a> from Rodolfo Giometti is not an official part of the linux kernel (yet? ; -)</p>
<p>I interfaced the module with three inverters (74HC14) to my RS232 port. The TX-line was leveled with two resistors and an universal diode (DUS). In my opinion complex interfaces like the TAC2 are not necessary.<br />
(click on image to enlarge and see the details) or <a href="http://rembl.org/wordpress/wp-content/uploads/2008/04/oncore_iface.jpg" target="_blank">click here</a> to download the schematic of my interface interpretation.</p>
<p>To get my UT+ to do work for ntpd, I needed to compile ntpd from source. Normally this is not an issue, but I did not manage to include the oncore refclock in the code and continuously obtained the error:</p>
<p>refclock_newpeer: clock type 30 invalid</p>
<p>in my ntpd logfiles.</p>
<p>With the help of the author of the <a href="http://www.eecis.udel.edu/~mills/ntp/html/drivers/driver30.html" target="_blank">Oncore driver</a>, Reg Clemens, the following cookbook recipe crystallized, <strong>assuming that you have a working LinuxPPS system and a patched kernel(source)</strong>:</p>
<ol>
<li>in /usr/include  ln -s /usr/src/&lt;linux-source&gt;/Documentation/pps/timepps.h . &lt;- &#8216;.&#8217; !</li>
<li>in /usr/include/sys  ln -s /usr/src/&lt;linux-source&gt;/Documentation/pps/timepps.h . &lt;- &#8216;.&#8217; !</li>
<li>verify that you also have the links to asm, asm-generic and linux, according to Rodolfo&#8217;s wiki</li>
<li>in /dev ln -s pps0 oncore.pps.0 (or whatever ppsX you will use)</li>
<li>in /dev ln -s ttyS0 oncore.serial.0 (or whatever interface you&#8217;ll use, ln -s ttyS2 oncore.serial.1 is also allowed e.g.)</li>
<li>download the ntpd source from www.ntp.org and untar it. I use the development version of ntp.</li>
<li>configure with <span style="text-decoration: underline;">at least the options</span>: ./configure &#8211;enable-ONCORE &#8211;enable-SHM</li>
<li>verify from the output that there are &#8216;yesses&#8217; after timepps.h and Motorola Oncore</li>
<li>make</li>
<li>add the following entry in ntp.conf: server 127.127.30.0 (when you used oncore.pps.0 and oncore.serial.0)</li>
<li>edit /etc/ntp.oncore.0:<br />
#<br />
# Oncore UT+ configuration file<br />
#<br />
# &#8212;&#8211; mandatory lines &#8212;&#8212;&#8212;&#8212;&#8212;-<br />
MODE     1<br />
LON     5 11.4548    #insert your own longitude here<br />
LAT      52 14.2342    #insert your own lattitude here<br />
HT       11.0 M      #insert your own GPS height here<br />
# &#8212;&#8211; optional lines &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
DELAY    20 NS #delay is approx 5 ns/m cable (I have 4m cable between my antenna and UT+<br />
CLEAR #negative edge is synced to UTC epochs (due to HC14 inverter, see above)<br />
SHMEM  /var/log/ntpstats/oncore.0<br />
MASK 0<br />
TRAIM YES</li>
<li>kill all ntpd processes, go to the ntpd directory and start ntpd with root privs as ./ntpd</li>
<li>verify in your ntpd logfile that ntpd picks up the Oncore driver:<br />
54571 82587.208 127.127.30.0 ONCORE DRIVER &#8212; CONFIGURING<br />
54571 82587.208 127.127.30.0 state = ONCORE_NO_IDEA<br />
54571 82587.225 127.127.30.0 Input mode = 1<br />
54571 82587.225 127.127.30.0 Initializing timeing to Clear..<br />
54571 82587.226 127.127.30.0 SHMEM (size = 3584) is CONFIGURED and available as /var/log/ntpstats/oncore.0<br />
54571 82587.226 127.127.30.0 state = ONCORE_CHECK_I<br />
*snip* and somewhat later&#8230;..<br />
54571 82588.542 127.127.30.0 This looks like an Oncore UT with version 3.1 firmware.<br />
54571 82588.542 127.127.30.0 Channels = 8, TRAIM = ON<br />
54571 82588.542 127.127.30.0 state = ONCORE_CHECK_CHAN<br />
54571 82593.151 127.127.30.0 Input   says chan = -1<br />
54571 82593.151 127.127.30.0 Model # says chan = 8<br />
54571 82593.151 127.127.30.0 Testing says chan = 8<br />
54571 82593.151 127.127.30.0 Using        chan = 8<br />
54571 82593.151 127.127.30.0 state = ONCORE_HAVE_CHAN<br />
54571 82594.641 127.127.30.0 state = ONCORE_TEST_SENT<br />
54571 82603.241 127.127.30.0 GPS antenna: OK<br />
54571 82603.241 127.127.30.0 state = ONCORE_INIT<br />
54571 82604.701 127.127.30.0 Setting Posn from input data<br />
54571 82604.701 127.127.30.0 state = ONCORE_ALMANAC<br />
*snip* and somewhat later&#8230;&#8230;<br />
54571 82606.941 127.127.30.0 Cable delay is set to 20 ns<br />
54571 82609.291 127.127.30.0 Have now loaded an ALMANAC<br />
54571 82609.291 127.127.30.0 state = ONCORE_RUN<br />
54571 82609.291 127.127.30.0 SSstate = ONCORE_SS_DONE<br />
54571 82610.401 127.127.30.0 ONCORE: Detected TRAIM, TRAIM = ON<br />
54571 82610.401 127.127.30.0 Input   says TRAIM = -1<br />
54571 82610.401 127.127.30.0 Model # says TRAIM = 1<br />
54571 82610.401 127.127.30.0 Testing says TRAIM = 1<br />
54571 82610.401 127.127.30.0 Using        TRAIM = 1<br />
54571 82610.421 127.127.30.0 PPS Offset is set to 0 ns<br />
54571 82610.431 127.127.30.0 Satellite mask angle is 0 degrees</li>
<li>Enjoy and impress your friends with your timing receiver, just like I impressed you ; -)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2008/04/19/motorola-oncore-ut-and-linuxpps/feed/</wfw:commentRss>
		<category domain="http://rss.financialcontent.com/stocksymbol">DUS</category></item>
		<item>
		<title>Remco meets Joe Walsh (The Eagles) …. again !</title>
		<link>http://rembl.org/index.php/2008/04/18/remco-meets-joe-walsh-the-eagles-again/</link>
		<comments>http://rembl.org/index.php/2008/04/18/remco-meets-joe-walsh-the-eagles-again/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 16:44:47 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rembl.org/index.php/2008/04/18/remco-meets-joe-walsh-the-eagles-again/</guid>
		<description><![CDATA[Also this year Joe Walsh invited me, and a few friends, as VIP to his concert of The Eagles. Last time we did not bring a present and we felt a bit guilty. So this time Dick arranged an old Philips tube for Joe and a tile &#8216;Delfts Blauw&#8217; to hang up in Joe&#8217;s shack [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rembl.org/wordpress/wp-content/uploads/2008/04/pa2dw-wb6acu-pg0a-klein.jpg" title="pa2dw-wb6acu-pg0a-klein.jpg"><img src="http://rembl.org/wordpress/wp-content/uploads/2008/04/pa2dw-wb6acu-pg0a-klein.jpg" alt="pa2dw-wb6acu-pg0a-klein.jpg" align="right" border="0" /></a>Also this year Joe Walsh invited me, and a few friends, as VIP to his concert of The Eagles. Last time we did not bring a present and we felt a bit guilty. So this time Dick arranged an old Philips tube for Joe and a tile &#8216;Delfts Blauw&#8217; to hang up in Joe&#8217;s shack to remember us.</p>
<p>Back stage there was tasty food. We were facilitated by Smokey, Joe&#8217;s personal assistant, and we reckon Smokey will find a way to transport the tube into The States : -)</p>
<p>Fltr: Dick, PA2DW, Joe WB6ACU and Remco PG0A/PA3FYM.</p>
<p>Oh yes, I almost forgot. The concert was great, the sound sublime and good old times revived!</p>
<p>73, Joe &amp; Smokey!</p>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2008/04/18/remco-meets-joe-walsh-the-eagles-again/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adding MSF to your ntpd refid list, or MSF (60 kHz) from DCF (77.5 kHz)</title>
		<link>http://rembl.org/index.php/2008/03/24/adding-msf-to-your-ntpd-refid-list-or-msf-60-khz-from-dcf-775-khz/</link>
		<comments>http://rembl.org/index.php/2008/03/24/adding-msf-to-your-ntpd-refid-list-or-msf-60-khz-from-dcf-775-khz/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 18:28:05 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[techniek]]></category>

		<guid isPermaLink="false">http://rembl.org/index.php/2008/03/24/adding-msf-to-your-ntpd-refid-list-or-msf-60-khz-from-dcf-775-khz/</guid>
		<description><![CDATA[Although DCF77 seems to be the &#8216;default&#8217; time reference for the European continent, I want to have a backup because I run a stratum 0 NTP server.
MSF (60 kHz England, UK) is a good candidate. Compared to DCF receivers, MSF receivers are difficult to obtain and expensive on the continent.
So, I modified a Conrad DCF77 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rembl.org/wordpress/wp-content/uploads/2008/03/msf60.jpg" title="msf60.jpg"><img src="http://rembl.org/wordpress/wp-content/uploads/2008/03/msf60.jpg" alt="msf60.jpg" align="right" border="0" height="327" width="378" /></a>Although DCF77 seems to be the &#8216;default&#8217; time reference for the European continent, I want to have a backup because I run a <a href="http://ntp.remco.org" target="_blank">stratum 0 NTP server</a>.</p>
<p><a href="http://www.npl.co.uk/time/msf/">MSF (60 kHz England, UK)</a> is a good candidate. Compared to DCF receivers, MSF receivers are difficult to obtain and expensive on the continent.</p>
<p>So, I modified a Conrad DCF77 module for the reception of MSF, using a 60 kHz watch crystal as filter.<br />
I tuned the antenna/ferrite coil from 77.5 to 60 kHz.</p>
<p>Click on the picture to enlarge v0.1 of the modified radio module.</p>
<p>The coil is from an old transistor radio but later I retuned the original ferrite coil as supplied with the Conrad radio module.</p>
<p>Most radio clock IC&#8217;s want to see a resonated loaded impedance between 50 - 100 kΩ.  I simply multiplied the capacitance of my DCF77 ferrite antenna with 1.67 ( [77.5/60]²), i.e. for my Conrad radioclock module I added 4n7 parallel to the original 6n8 capacitor.</p>
<p>Using ntpd with the SHM refclock enabled and <a href="http://www.jonatkins.com/page/software/radioclkd2">radioclkd2</a> as &#8216;atomic radio clock parser&#8217; the MSF signal from Anthorn is decoded here:</p>
<p>pulse start: at 1206318120.024987<br />
data(60):5,1,1,1,1,1,1,1,1,11,11,11,11,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,2,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,2,1,1,2,2,3,2,3,2,1,<br />
MSF : |0 |5 |10 |15 |20 |25 |30 |35 |40 |45 |50 |55<br />
MSF-A: &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;A&#8230;&#8230;AAA..A&#8230;.A&#8230;&#8230;.A&#8230;A..AAAAAA.<br />
MSF-B: &#8230;&#8230;&#8230;BBBB&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;B.B..<br />
MSF time: 2008-03-24 (day 1) 00:22 GMT<br />
clock: radio time 1206318120.000000, average pctime 1206318120.024964, error +-0.004383<br />
pulse end: length 0.494541 - 0: 5<br />
pulse start: at 1206318121.039543<br />
pulse end: length 0.089901 - 1: 1<br />
pulse start: at 1206318122.025892</p>
<p>Update 1: it seems that there is some (propagation?) interference in the night which causes ntpd to loose lock sometimes. Perhaps I need a better antenna as the ERP of MSF was decreased after the relocation (April 1st 2007) from Rugby (ca. 50 kW ERP) to Anthorn (ca. 15 kW ERP).</p>
<p><a href="http://rembl.org/wordpress/wp-content/uploads/2008/04/msf-new.jpg" title="msf-new.jpg"><img src="http://rembl.org/wordpress/wp-content/uploads/2008/04/msf-new.jpg" alt="msf-new.jpg" align="right" border="0" height="320" width="351" /></a></p>
<p>Update 2: Today (18 april 2008) I received a Meinberg analogous DCF77 antenna module from a collegue.  I tuned it to 60 kHz. First impression is that it works significantly better than the original antenna.</p>
<p>(click on the image to enlarge)</p>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2008/03/24/adding-msf-to-your-ntpd-refid-list-or-msf-60-khz-from-dcf-775-khz/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rb87 experiment with ntp.remco.org</title>
		<link>http://rembl.org/index.php/2008/02/23/rb87-experiment-with-ntpremcoorg/</link>
		<comments>http://rembl.org/index.php/2008/02/23/rb87-experiment-with-ntpremcoorg/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 14:09:24 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[techniek]]></category>

		<guid isPermaLink="false">http://rembl.org/index.php/2008/02/23/rb87-experiment-with-ntpremcoorg/</guid>
		<description><![CDATA[Yesterday I built a 10.000.000 divider with a small cascade of 74LS390&#8217;s to divide the rubidium 87 (Rb87) locked 10,000.000.00000(0) MHz from my Efratom FRS into 1 Pulse Per Second (PPS). I know that there is a another approach available. However, I managed to program a 16F648A PIC, but the contrapsion did not work. Perhaps [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rembl.org/wordpress/wp-content/uploads/2008/02/1e7-divider-1.jpg" title="1e7-divider-1.jpg"><img src="http://rembl.org/wordpress/wp-content/uploads/2008/02/1e7-divider-1.jpg" alt="1e7-divider-1.jpg" align="right" border="0" height="320" width="500" /></a>Yesterday I built a 10.000.000 divider with a small cascade of 74LS390&#8217;s to divide the rubidium 87 (Rb87) locked 10,000.000.00000(0) MHz from my Efratom FRS into 1 Pulse Per Second (PPS). I know that there is a <a href="http://www.leapsecond.com/tools/PPSDIV.ASM" target="_blank">another approach</a> available. However, I managed to program a 16F648A PIC, but the contrapsion did not work. Perhaps the code needs a 16F84.<br />
But&#8230; I am more into hardware anyway.</p>
<p>I built the divider on a small piece of epoxy bread board and combined my frequency standard with an &#8220;is locked, PPS works, and ready to use&#8221;-indicator. Thus, when the standard is switched on, several minutes later the PPS led starts to flicker.</p>
<p>The divider is depicted on the right (click to enlarge).</p>
<p>The PPS is shaped by a one shot generator (LS123) and the PPS width is approx. 75 ms.</p>
<p>A PDF of the -straight forward- schematic diagram can be downloaded <a href="http://rembl.org/wordpress/wp-content/uploads/2008/02/rb-1pps.pdf" target="_blank">here</a>.</p>
<p>An advantage is that the PPS error is reduced by several orders.</p>
<p><a href="http://rembl.org/wordpress/wp-content/uploads/2008/02/rb87-standard1pps.jpg" target="_blank"> This</a> is a picture of the divider built into my Rubidium standard.</p>
<p>So, my Rb standard will now produce a &#8216;rock solid&#8217; 1PPS for <a href="http://ntp.remco.org" target="_blank">ntp.remco.org</a> !<a href="http://rembl.org/wordpress/wp-content/uploads/2008/02/rb87-standard1pps.jpg" target="_blank"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2008/02/23/rb87-experiment-with-ntpremcoorg/feed/</wfw:commentRss>
		<category domain="http://rss.financialcontent.com/stocksymbol">PPS</category></item>
		<item>
		<title>Rockwell Jupiter and LinuxPPS</title>
		<link>http://rembl.org/index.php/2008/02/16/rockwell-jupiter-and-linuxpps/</link>
		<comments>http://rembl.org/index.php/2008/02/16/rockwell-jupiter-and-linuxpps/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 21:50:00 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[techniek]]></category>

		<guid isPermaLink="false">http://rembl.org/index.php/2008/02/16/rockwell-jupiter-and-linuxpps/</guid>
		<description><![CDATA[In my previous post I reported a succesfull try wih LinuxPPS in conjunction with ntpd&#8217;s NMEA, ATOM and SHMPPS drivers. However, as far as I could ascertain, the PPS signal from the CIROCOMM G100/300 (I still have not heard anything from them..) can not be locked to the GPS signal due to the relatively large [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rembl.org/wordpress/wp-content/uploads/2008/02/jupiter-rockwell.jpg" title="jupiter-rockwell.jpg"><img src="http://rembl.org/wordpress/wp-content/uploads/2008/02/jupiter-rockwell.jpg" alt="jupiter-rockwell.jpg" align="right" border="0" height="483" width="466" /></a><a href="http://rembl.org/index.php/2008/02/14/linuxpps-cirocomm-nmea-pps-or-dcf/" target="_blank">In my previous post</a> I reported a succesfull try wih LinuxPPS in conjunction with ntpd&#8217;s NMEA, ATOM and SHMPPS drivers. However, as far as I could ascertain, the PPS signal from the <a href="http://www.cirocomm.com.tw/" target="_blank">CIROCOMM G100/300</a> (I still have not heard anything from them..) can not be locked to the GPS signal due to the relatively large offsets and jitters.<br />
I borrowed a Rockwell Jupiter unit, which Bas PE1JPD bought on a <a href="http://www.radiovlooienmarkt.nl/" target="_blank">HAM-radio flea market</a> a few years ago, to use it with his PDA and TomTom Navigator.</p>
<p>It seems that the Jupiter PPS signal is locked onto the GPS signal and the <a href="http://rembl.org/wordpress/wp-content/uploads/2008/02/jupiter-gps-board.pdf" target="_blank">datasheet</a> mentions that the rising edge of the TMARK pulse (i.e. PPS) is synchronized with the UTC one second epochs to within ± 1 μs. <a href="http://www.eecis.udel.edu/~mills/ntp/html/drivers/driver31.html" target="_blank">Other information</a> states that the TMARK output is 10 - 40 ns accurate.<br />
I interfaced the Jupiter using a 74HC00 to invert the TxD (mandatory) and PPS (not mandatory ; -).</p>
<p>Click on the image right to enlarge.</p>
<p>I placed the Jupiter into &#8216;Zodiac Binary Protocol mode&#8217; (pin 7 HIGH and pin 8 GND, 9600 bps mode) first, and when I connected the receiver I could not see a GPS fix at all. I suspected the small patch antenna from Bas and remembered that I had an &#8216;official&#8217; GPS antenna somewhere. To minimise errors, I placed the Jupiter into 4800 bps NMEA mode (pin 7 GND and pin 8 HIGH), and connected the GPS antenna to the Jupiter. Within a few minutes I could read the UTC time from the NMEA output. A few minutes later the receiver had a fix.</p>
<p>The relevant lines in my ntp.conf are:<br />
<font face="courier"><br />
<font color="#000080"> #NMEA 4800 bps on ttyS0 (falling edge PPS, flag2 1)<br />
server 127.127.20.0 minpoll 4 prefer<br />
fudge 127.127.20.0 stratum 0 flag2 1 flag3 1 refid GPPS</font></font></p>
<p><font face="courier"><font color="#000080">#ATOM (falling edge, flag2 1 )<br />
server 127.127.22.0 minpoll 4 maxpoll 4<br />
fudge 127.127.22.0 flag2 1 flag3 1 stratum 0 refid PPS</font><br />
</font><br />
After six hours:</p>
<p><font color="#000080"><font face="courier"> </font></font></p>
<pre><font color="#000080"><font face="courier">remco@helium [/home/remco]&gt; ntpq -p</font></font><font color="#000080"><font face="courier">

</font></font><font color="#000080"><font face="courier">remote            refid   st t when poll reach   delay   offset  jitter</font></font><font color="#000080"><font face="courier">
=======================================================================</font></font><font color="#000080"><font face="courier">
+GPS_NMEA(0)      .GPPS.   0 l   11   16  377    0.000    0.008   0.001</font></font>

<font color="#000080"><font face="courier">oPPS(0)           .PPS.    0 l   10   16  377    0.000    0.006   0.002</font></font></pre>
<p>I could not run ntpd with the Jupiter in &#8216;Zodiac mode&#8217; because I receive errors in clockstats:</p>
<p><font face="courier"><font color="#333399">54513 26640.110 127.127.31.0 unknown message id 1003<br />
54513 26640.310 127.127.31.0 pulse: jupiter_parse_t: Unknown gweek<br />
54513 26640.874 127.127.31.0 gpos: Navigation solution not valid<br />
54513 26640.982 127.127.31.0 unknown message id 1002</font><br />
</font><br />
However, driver31 is not patched for LinuxPPS yet. Unfortunately I am more into hardware and did not succeed patching refclock_jupiter.c without gcc errors ; -(</p>
<p>You can monitor <strong><a href="http://rembl.org/index.php/ntp/" target="_blank">ntp.remco.org</a></strong> (helium) if you like : -)</p>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2008/02/16/rockwell-jupiter-and-linuxpps/feed/</wfw:commentRss>
		</item>
		<item>
		<title>LinuxPPS, CIROCOMM, NMEA, PPS or DCF?</title>
		<link>http://rembl.org/index.php/2008/02/14/linuxpps-cirocomm-nmea-pps-or-dcf/</link>
		<comments>http://rembl.org/index.php/2008/02/14/linuxpps-cirocomm-nmea-pps-or-dcf/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 11:06:41 +0000</pubDate>
		<dc:creator>Remco</dc:creator>
		
		<category><![CDATA[techniek]]></category>

		<guid isPermaLink="false">http://rembl.org/index.php/2008/02/14/linuxpps-cirocomm-nmea-pps-or-dcf/</guid>
		<description><![CDATA[As many of you know, I run an &#8216;open access&#8217; stratum 1 NTP server (ntp.remco.org) for almost four years now.
In fact, ntp6.remco.org is one of the few open access IPv6 NTP servers worldwide. During this period ntpd was disciplined with a DCF77 radio module, keeping the time within a few milliseconds of CET/UTC.
One of the [...]]]></description>
			<content:encoded><![CDATA[<p>As many of you know, I run an &#8216;open access&#8217; stratum 1 NTP server (<a href="http://ntp.remco.org" target="_blank">ntp.remco.org</a>) for almost four years now.<br />
In fact, <a href="http://ntp6.remco.org" target="_blank">ntp6.remco.org</a> is one of the few open access IPv6 NTP servers worldwide. During this period ntpd was disciplined with a <a href="http://rembl.org/wordpress/wp-content/uploads/2008/03/dcf77.jpg">DCF77 radio module</a>, keeping the time within a few milliseconds of CET/UTC.</p>
<p>One of the problems I encountered was that Linux lacked a for me understandable PPSAPI, and still has no easy nano kernel implementation. Recently <a href="http://wiki.enneenne.com/index.php/LinuxPPS_support" target="_blank">Rodolfo Giometti</a> started writing a PPS implementation for the Linux kernel. He wants it to be inserted into the 2.6 kernel officially. For now patching existing kernels and software is the only way to go. His wiki tempted me to &#8216;try this at home&#8217;. Richard PA7FA, donated a few <a href="http://www.cirocomm.com.tw/" target="_blank">CIROCOMM</a> G100/300 GPS-receivers and found out that besides 4800 bps NMEA, also a PPS signal was present. I mailed CIROCOMM for the datasheet of this OEM module, but I still heard nothing from them. Therefore I don&#8217;t know the accuracy and/or usability of the PPS signal.<br />
The GPS module is fed by the USB port (+5V) and the 4800 bps NMEA data is inverted with a transistor and fed to pin2 of the DB9 of ttyS0 while the PPS signal (active positive) is fed directly into pin1 of the -same- serial port. Thus, no &#8216;level&#8217; converters are required as both pin1 (DCD) and 2 (RxD) are inputs. The modern 16550A-chipsets have no problems detecting TTL input levels. <a href="http://rembl.org/wordpress/wp-content/uploads/2008/02/testpps-nmea.jpg" target="_blank">This picture shows the first VERY experimental setup</a>.<br />
Traffic on the serial port can be monitored with <font face="courier"><font color="#333399"> minicom -s</font> </font>and/or cat /dev/ttyS0:</p>
<p><font face="courier"><font color="#333399">remco@helium [/home/remco]&gt; cat /dev/ttyS0<br />
$GPRMC,083057.198,A,5314.6975,N,00510.7342,E,0.00,,140208,,,A*71<br />
$GPVTG,,T,,M,0.00,N,0.0,K,A*13<br />
$GPGGA,083058.198,5314.6975,N,00510.7342,E,1,08,1.0,48.2,M,,,,0000*39<br />
$GPRMC,083058.198,A,5314.6975,N,00510.7342,E,0.00,,140208,,,A*7E<br />
remco@helium [/home/remco]&gt;</font></font></p>
<p>I encountered some difficulties getting the LinuxPPS contrapsion to work. I will submit these difficulties to the <a href="http://ml.enneenne.com/pipermail/linuxpps/" target="_blank">LinuxPPS mailinglist</a> soon.<br />
Anyway, after some hacking I received the desired &#8216;o&#8217; from ntpd:</p>
<p><font face="courier"><font color="#333399">remco@helium [/home/remco]&gt; ntpq -p remco.org<br />
remote                        refid st t when poll reach   delay   offset  jitter<br />
=======================================================<br />
+GPS_NMEA(0) .GPS.            1  l     22     16    377    0.000     0.060    0.336<br />
oPPS(0)             .PPS.            0  l       5     16    377    0.000 -0.177    0.550<br />
<font face="courier"><font color="#333399">remco@helium [/home/remco]&gt;</font></font></font></font></p>
<p>Initially I did not understand from Rodolfo&#8217;s wiki that the patched NMEA driver also handles PPS requests. Therefore I configured ntpd for the ATOM driver (driver 22) too. Below are some significant ntp.conf lines:</p>
<p><font face="courier"><font color="#333399">#NMEA 4800 bps on ttyS0<br />
server 127.127.20.0 minpoll 4 prefer<br />
fudge 127.127.20.0 stratum 1 flag2 0 <strong>flag3 0</strong> refid GPS</font></font></p>
<p><font face="courier"><font color="#333399">#ATOM __| |___ (rising edge, flag2 0)<br />
server 127.127.22.0 minpoll 4 maxpoll 4<br />
fudge 127.127.22.0 flag2 0 flag3 1 stratum 0 refid PPS</font><br />
</font></p>
<p>I learned from <a href="http://time.qnan.org" target="_blank">Philip</a> that the (patched) NMEA driver handles PPS too (flag3 1).<br />
I will experiment with these several setups, i.e. NMEA + seperate PPS, NMEA + PPS and DCF with separate PPS, e.g.:<br />
<font face="courier"><br />
<font color="#333399"> #NMEA 4800 bps on ttyS0 and use PPS (flag3 1)<br />
server 127.127.20.0 minpoll 4<br />
fudge 127.127.20.0 stratum 15 flag2 0 <strong>flag3 1</strong> refid GPPS</font></font></p>
<p><font color="#333399" face="courier">#ATOM __| |___ (rising edge, flag2 0 )<br />
server 127.127.22.0 minpoll 4 maxpoll 4<br />
fudge 127.127.22.0 flag2 0 flag3 1 stratum 0 refid PPS+</font></p>
<p><font color="#333399" face="courier">#SHMPPS (falling edge)  shm_splc2 -d /dev/ttyS0 -s -l DCD -u 0 -c<br />
server 127.127.28.0 minpoll 4 prefer<br />
fudge 127.127.28.0 flag3 1 refid PPS-</font></p>
<p><font face="courier"><font color="#333399">#PARSE Conrad RAW DCF77 (mode 5) no PPS<br />
server 127.127.8.1 mode 5 minpoll 4<br />
fudge 127.127.8.1 time1 0.0 flag2 0 flag3 0 stratum 14 refid DCF</font><br />
</font><br />
You can track my experiments at <a href="http://ntp.remco.org" target="_blank">ntp.remco.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rembl.org/index.php/2008/02/14/linuxpps-cirocomm-nmea-pps-or-dcf/feed/</wfw:commentRss>
		<category domain="http://rss.financialcontent.com/stocksymbol">DCD</category></item>
	</channel>
</rss><!-- BDPFeed could not open http://blog.netherlabs.nl/xml/rss/feed.xml --><!-- BDPRSS2::update failed to parse http://blog.netherlabs.nl/xml/rss/feed.xml -->
