Solar-Oriented, Arduino-Powered Clock

Picture of Solar-Oriented, Arduino-Powered Clock
This is a clock designed to keep accurate time (independent of atomic or GPS), display local sunrise, sunset and solar noon, and also adjust itself for daylight savings time.

I wanted the clock to be easy to use and be flexible. The setting functions are menu-driven, you set each parameter one digit at a time (with live data validation) and you can abandon changes if you want. You can have 12 or 24-hour time. It uses a bright, legible VFD character display - you can choose even more readability with a 2x3 big-character mode.

Finally, VFDs are bright and readable, but sometimes you don't want them lighting up the room. So, you can set a schedule of when the display is bright, dim or off. You can turn the display on or off any time you want, as well.

I hope to go over key elements of the software and hardware design to help you in building a clock just like this one or to give you ideas for anything that needs menus, data validation, timekeeping and so on.

Remove these adsRemove these ads by Signing Up

Step 1: Design Choices

Picture of Design Choices
As stated in the intro, I wanted the clock to be easy to use, accurate, simple but also flexible.

Easy to use:
- menu-driven setting options
- digit-by-digit setting (who wants to go up or down to set something like longitude?)
- data validation to keep the user from inputting impossible time, date, location etc...
- buttons match the way it is used, eg. you want to look at it while setting, so the left button is really the right button
- most common functions on their own button, eg. display on/off, big/small digits, etc...

- must keep time accurately without using radio time; DS3231 RTC is accurate to 2 ppm/year or approximately +/- 1 minute per year

- no buttons visible anywhere except the back

- allow adjustment of DST start and end
- allow 12/24 time
- support display brightness schedule

I suppose you can add to "Simple" that it uses the Arduino platform. There isn't actually an Arduino board inside, though you could use one; I used a Modern Device RBBB Arduino clone and a Wicked Device RBBB shield board. I chose the RBBB because it's cheap, flexible and sports a power jack, which I needed anyway and is a pain to do properly on protoboard. I chose the Wicked Device RBBB shield as it supports the RBBB and because it gave me sufficient protoboard space to mount a 2032 coin cell holder for the DS3231 backup power and have a header for the 14-pin cable to the VFD display.
PICme1 year ago
Its a great project which I would be interested in building unfortunately I couldn't afford the hefty price of a VFD display. Thanks for sharing
uhclem (author)  PICme1 year ago
You can use a regular HD47780-compatible LCD. Other than the brightness command for the VFD it should work with no modifications. You'll have to add a 10k pot for the contrast adjustment and a current-limiting resistor for the backlight.

BTW VFDs are now sold directly in single quantities off the Noritake website. They often have sales that bring displays down to the $20 range.
uhclem (author) 2 years ago
That's how it comes, though I replaced one of the end panels with blue acrylic.
mkuhn292 years ago
Did the enclosure come like that or did you have to modify?

Get More Out of Instructables

Already have an Account?


PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!