Close

First cut at firmware complete

A project log for GPS Talking Clock

Accurate time without a display

nick-sayerNick Sayer 01/08/2018 at 07:540 Comments

I spent most of this evening writing the first cut of the firmware. I don't think I'll be sufficiently inspired to breadboard the whole thing before the boards come back from the fab, and even if I did, I don't have any of the requisite audio files created. I'll have to spend an evening this week sometime dictating those.

The top level directories on the card are ZONE, HOUR, MINUTE and SECOND. Inside of zone will be files named with two letter names (with the exception of just "U" for UTC) with the first letter being one of 6 for the timezone (P, M, C, E, A, H) and the second letter being S or D for standard or daylight savings time.

Inside of the other directories will be numeric filenames for 0-23 hours, 0-59 minutes and 0, 10, 20, 30, 40 and 50 seconds.

All of the audio files will be little endian 16 bit 8 kHz mono raw audio files (though the files are 16 bit, the DAC will truncate them to 12 bits. In the grand scheme of things, this probably won't be noticeable). Each intro file must be no longer than 4 seconds, and each of the other files must be no longer than one second.

The ticks and beeps will have their leading edges synchronized with GPS time via the PPS pin ISR. Given that the frequency is 1 kHz, that implies up to 1 ms of jitter, though exactly how meaningful that is to human hearing is questionable. It still will wind up being far more accurate than any "time talker" telephone line you can use today given the lack of latency and jitter guarantees of the telephone network.

Discussions