GithubHelp home page GithubHelp logo

time_circuits_final's Introduction

Arduino Time Circuits

Time Circuits Image

This is a project I've been working on for.... far too long. There've been [previous iterations] (https://www.youtube.com/watch?v=cxGm47E_y9M) of this doodad, but [there were issues]. (https://www.youtube.com/watch?v=KKTgsbm41c8)

There was certainly an inspiration from the Back to Future series, but the idea of building a replica of the device in that series bored me. I like clocks, but I like FUNCTIONAL devices, and "Where you are, where you're going, and where you've been" isn't very functional to anyone who hasn't built themselves a real time machine.

What IS useful is a real clock. I frequently work with servers that run on Universal Coordinated Time (UTC), so having a clock that displays UTC and local time is useful to me. As long as I was building a two-line clock.... why not three? ("...do it with a little style!") The question of what to put on the third line languished for a while until it dawned on me what you'd see in a clock showing SOLAR time while DRIVING.

Think of it this way: If it takes you ten hours to drive East to the next time zone, it'll be ELEVEN hours later when you get there. Normally, you just reset your watch when you get there, but what if we instead had a clock that tracked "Wild West" time. Before time standards, everyone set their clocks to local noon - they'd use the moment that the sun was highest in the sky as their standard of time. Why bother? Well, if I'm driving east at about 100kph (at my latitude), solar time advances by 1.1 times faster than real-time. You can see this difference if you watch the clock while moving. (Please don't do this if you're the one driving. Duh.)

This clock computes your local solar time every 100ms, taking into account your longitudinal position, as well as the Earth's position in its orbit. In writing the firmware, I was shocked to learn that the effect of the orbit on local solar noon varies by something like +- 15 minutes through the year! There are still some debug modes languishing in the firmware that should be polished a bit. I'm sure people will want more features, and I'll do my best to oblige. What I will absolutely NOT do is make the adjustment for time zones automatic. I did the legwork to make this happen and came to the conclusion that it simply isn't realistic without giving the clock an SD card and a way to constantly update its time zone database. To be honest, the largest reason to avoid this step was because I didn't want to maintain that database. (Time zone definitions change all the time.) The actual arduino-side processing would have been easy.

Resources

The project consists of an Arduino .ino file, two Eagle CAD circuit board designs (one for the displays and one for the Arduino/GPS controller). I'll see if I can work out a way to manage the Fusion 360 model of the box in GitHub, but in the meantime it's just shared [on Autodesk's servers].(https://a360.co/2rUt2ZP)

TODO

  • I need to figure out what to do with leap seconds. When there are 61 seconds in a minute, I have to handle it properly. At the moment, the clock will display the same time (on the local and solar lines) for 2 seconds.
  • Since I've gotten the thing boxed up, I've occasionally bumped the settings buttons. This causes local time to change by 15 minutes. I think we need to require that you hit the mode button to get to the time-change state, where you can alter local time. After n seconds, it should return to the main display.
  • Make the LED test the last of the display modes.
  • Add a histogram that tells you the distribution of inter-sentence reports from the GPS.

time_circuits_final's People

Contributors

foodini avatar

Stargazers

Shawn avatar  avatar

Watchers

 avatar Shawn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.