[time-nuts] IRIG-B audio decoder circuits and ICs sought

Joseph Gwinn joegwinn at comcast.net
Thu May 21 22:22:12 EDT 2015


Multiple answers interspersed below.  Joe

On Wed, 20 May 2015 10:04:19 -0400, time-nuts-request at febo.com wrote:
> Send time-nuts mailing list submissions to
> Message: 5
> Date: Tue, 19 May 2015 22:08:47 +0200
> From: Magnus Danielson <magnus at rubidium.dyndns.org>
> To: time-nuts at febo.com
> Cc: magnus at rubidium.se
> Subject: Re: [time-nuts] IRIG-B audio decoder circuits and ICs sought
> 
> ------------------------------
> Joe,
> 
> On 05/19/2015 03:51 PM, Joseph Gwinn wrote:
>> I'm studying up on how IRIG-B decoder circuits work.  What are the good
>> approaches, the bad approaches, especially in the presence of noise?
>> (I asked on the NTP group, with little result beyond the C/C++ decoder
>> software written for the audio channel of a 1990s Sun workstation,
>> which it ate alive: 50% cpu load.)
>> 
>> Are there decoder ICs available?
>> 
>> The closest to a decoder IC I've found is some FPGA code from a partner
>> of Microsemi (nee Symmetricom):
>> 
>> 
..<http://www.microsemi.com/products/fpga-soc/design-resources/partners/semquest>
>> 
>> All marketing and little technical information.  I'll have to find out
>> the details.
>> 
>> 
>> I find very little, though I did find one intriguing idea using a
>> Costas Loop to lock to the 1 KHz carrier, and a posting suggesting
>> squaring the input signal and phase-locking to the 2 KHz result.  Most
>> recent articles on IRIG decoders come from Chinese sources, mostly in
>> the AC power industry.
> 
> There is a few different approaches for recovering the 1 kHz carrier.
> The AM modulation is naturally a bit of a challenge as it will modulate 
> the slew-rate.
> 
> Once the 100 Hz message is recovered, the break-down is relatively 
> straight-forward.
> 
> The question is really, what is the requirement you have and what type 
> of processing do you think about. A corner of a FPGA will do it.

The definition of "good" here is tenth-microsecond alignment between 
the 1PPS output of the decoder and the incoming IRIG-B12x signal.

 
> I prefer the DC level shifted variant of IRIG-B.

I like and use IRIG-B00x too, but it only reaches a few meters, versus 
the required tens of meters.


> ------------------------------
> 
> Message: 7
> Date: Tue, 19 May 2015 16:37:58 -0400
> From: Tim Shoppa <tshoppa at gmail.com>
> To: Discussion of precise time and frequency measurement
> 	<time-nuts at febo.com>
> Subject: Re: [time-nuts] IRIG-B audio decoder circuits and ICs sought
> 
> See for example the Truetime 820 decoder. Discriminators, One-shots, and
> Flip-Flops with pots to tweak the levels.

Hmm.  Interesting.  URL?


> 
> Tim N3QE
> 
> On Tuesday, May 19, 2015, Joseph Gwinn <joegwinn at comcast.net> wrote:
[snip]
> 
> ------------------------------
> 
> Message: 11
> Date: Tue, 19 May 2015 23:59:13 +0300
> From: Esa Heikkinen <tn1ajb at nic.fi>
> To: Discussion of precise time and frequency measurement
> 	<time-nuts at febo.com>
> Subject: Re: [time-nuts] IRIG-B audio decoder circuits and ICs sought
> 
> Joseph Gwinn kirjoitti:
> 
>> I'm studying up on how IRIG-B decoder circuits work.  What are the good 
>> approaches, the bad approaches, especially in the presence of noise?  
>> (I asked on the NTP group, with little result beyond the C/C++ decoder 
>> software written for the audio channel of a 1990s Sun workstation, 
>> which it ate alive: 50% cpu load.)
> 
> I was also searching chips for IRIG-B decoding lately, but didn't find 
> any. Then I decided to create my own, mostly just for fun but there's 
> also some uses for it. So I ended up to use 8-bit PIC16F873 and do 
> IRIG-B DCLS decoding with it. DCLS means logic level IRIG-B signal from 
> Symmetricom TS2100. So it's not 1 kHz modulated.

Yes, but I must have IRIG-B12x (Amplitude modulated 1 KHz sine wave), 
and the analog processing complicates things.  I think that one best 
implements the IRIG decoder in a DSP chip.

 
> At a start it was only a time code decoder... Then, maybe because very 
> rainy weather in the Finland, new features was added daily. For now, it 
> calculates local time (calendar date and weekday) for IRIG-B day number 
> and year and supports european daylight saving time. Leap second is also 
> supported, if it's encoded in the IEEE1344 control bits (Tymserve TS2100 
> encodes this, leap seconds are flagged one minute before the actual leap 
> second). IRIG-B timecode is also verified by checking its continuity. 
> If there's momentary errors or total loss of timecode, timing continues 
> in freerun mode. PPS is also generated from IRIG-B with about +-100 ns. 
> maximum jitter (it's one instruction cycle of 'F873, so it cannot be 
> done better with this MCU). If the whole system is rebooted due to long 
> blackout with UPS batteries runout, TS2100 will jump back to January 
> first of current year. And because TS2100 GPS functionality is now dead, 
> it means that it will also continue with wrong time until it's manually 
> set. Because of that, support for TS2100 resets was also added. Now it 
> keeps record of passed dates on the EEPROM... :)

TS2100s are generating a lot of replacement business for GPS vendors.


> Now I have also DCF77 version of this, where PPS signal is replaced with 
> unmodulated DCF77 timecode with same accuracy than PPS has. I'm planning 
> to use this at least to build some kind of IRIG-B wallclock and possibly 
> to synchronize radio controlled clocks locally with close field magnetic 
> coupling, because actual DCF77 does not work here. However, when testing 
> this I was little bit disappointed when noticed that radio controlled 
> clocks doesn't seem to support leap seconds at all. Also their time 
> setting accuracy is not millisecond grade, so the +-100 ns. accurate 
> DCF77 output is little bit overkill when the final setting error can 
> easily seen by eyes...
> 
> Code is 100% assembler and full version with DCF77 encoder included (and 
> of course with debug LCD drivers) takes only about 1,5 kilowords and 
> needs only 66 bytes of RAM when running.

To be modern, one must code in C?  Isn't that true?

(Don't tell anybody, but I was an assembly-language programmer back in 
the 1970s.  In those days, assembly was the only way to get sufficient 
performance given the slow iron of the day.  Out main programs were 
about 70,000 lines each.  The assembler took all night to ingest all 
that.)

 
> And it's still raining in Finland.. Have to see, what features will be 
> added next.. :)
> 
> -- 
> 73s!
> Esa
> OH4KJU
> 

> ------------------------------
> 
> Message: 15
> Date: Tue, 19 May 2015 18:11:07 -0700
> From: Neil Schroeder <gigneil at gmail.com>
> To: Discussion of precise time and frequency measurement
> 	<time-nuts at febo.com>
> Subject: Re: [time-nuts] IRIG-B audio decoder circuits and ICs sought
> 
> A bc635 can be had on eBay for almost nothing. It's not a pleasant piece of
> gear, but this is one task it can help you with greatly.

Another option is to get one of the many PCIe bus cards.


> Tools exist to let you analyze the stream extensively, and the Api is
> trivial to learn -but not super featured at the high level.

Which ones?  URLs?

I recall that there are audio files with real IRIG-B12x signals in 
them, for testing.  Does anyone recall where these files are?


> On Tuesday, May 19, 2015, Tim Shoppa <tshoppa at gmail.com> wrote:
> 
>> See for example the Truetime 820 decoder. Discriminators, One-shots, and
>> Flip-Flops with pots to tweak the levels.
>> 
>> Tim N3QE
>> 
>> On Tuesday, May 19, 2015, Joseph Gwinn <joegwinn at comcast.net
[snip]
> 
> End of time-nuts Digest, Vol 130, Issue 29
> ******************************************


More information about the time-nuts mailing list