Timing and Logging Tests

While gear cutting of the Calculations Module continues, I’ve started working on the electrical architecture. Celestis Nova will have an electronic supervisor monitoring and adjusting state of wind and timing. And of course key to that is a reliable timing source! The Arduino Uno R4 Wifi being used has an internal clock, but it is not particularly accurate. It can also connect to a Wifi network and could conceivably get timing there…however I’ve learned from the Orrery Table that having Wifi networks going down and change names and passwords quickly becomes a nuisance. I experimented with using a GPS receiver before but ran into many difficulties with the NMEA 0183 sentence format, but I’ve discovered something much simpler that aligns well with my needs. Many GPS receivers (including the GT-U7 I am using) have a pulse per second (PPS) output that is a simple square wave with a frequency of 1 Hz. But hooking this up to an interrupt pin on the Arduino, it can track the internal clock drift and correct for it. Not only that but the system is tolerant of losing GPS signal and will simply continue running on the internal clock until GPS is reestablished and it synchronizes. There is a functional limit to this, however, as I’m finding the clock drift to be on average about 450 ppm so after about 20 minutes it could drift an entire second and end up incorrectly syncing. Including a drift term could extend this to about 3 hours, but in the last day the PPS hasn’t missed a single second and recovers from a power off using the onboard RTC in less than a few minutes, so I am not pursuing that.

I’ve also hooked up an SD card module that the Arduino periodically logs status to, which can be removed and reinstalled while the Arduino is running.



Next
Next

Digital Indexer V2