This is a project I’ve been wanting to do for a long time, but there was always one big limitation, how to build the enclosure. Having just built a Prusa i3 MK3 3d printer, I thought maybe I could print the front panel.
So I began doing some research in to how to drive the LED displays. I’ve used the Holtek HT16K33 in the past as part of LED matrix and it seemed like a good candidate for driving the LED displays for the clock.
It can drive up to 128 LEDs with just two wires and is controlled via I2C. When I used it previously, I was using it with Arduino libraries that took care of the details on how to drive it. Since this would be a custom display, I’d have to write my own code.
While looking for info on how to drive the HT16K33, I came a cross a page titled “Controlling an LED Matrix with the HT16K33“, this is sounds like exactly what I’m looking for… While skimming the text, I noticed the display names were Destination Time, Present Time, and Last Time Departed. At first I assumed it was just a BTTF fan using those as examples names for the display. It turns out, someone had the same idea and was building one as well. Full details here on the Parts Not Included web site.
This site provided quite a bit of needed information and ideas, most importantly, the dimensions for the displays. I had already planed to use the HT16K33 and make my own PCBs, but this site also provide many more ideas and confirmed the HT16K33 would work.
Here are some other similar projects using HT16K33s for the time circuits displays:
This one uses a Raspberry Pi for control and HT16K33 backpack boards on custom display boards. It’s unclear if this one was ever completed.
This one uses pre-made LED display board modules with HT16K33s. It does not use alphanumeric displays or any custom boards. The idea to use an Xyron sticker maker for the labels was found here. Many seem to think the old plastic Dymo labels were used, but in the movie, they’re clearly printed labels, the Dymo style ones are used on the Flux Capacitor.
This one is a little different. It’s using shift registers to drive the displays. It’s also using alphanumeric displays for all displays. At this time it’s still in progress. It’s a much more complex design.
Features and Goals
Below are the minimal features and functionality the clock should have:
- High accuracy real-time clock with battery backup for the Present Time display.
- User settable times for the Destination time and Last Time Departed displays.
- Controlled by an an Arduino Nano.
- Buttons for Set, Up, and Down for adjusting times.
- Low drift real time clock.
- 3d printed enclosure should resemble the original as best as possible.
- 3d printed enclosure must be painted and to scale.
Later the following featured would be added:
- Preset Destination Last Time Departed times that change at a user settable rate.
- Adjustable brightness for each display.
- Eliminate the Arduino Nano and use an ATmega328p-au directly.
Other possible, but not impediment at this time, features:
- Ambient light sensor to adjust brightness based on room brightness.
- Temperature display.
- Time setting via I2C connected keypad.
- Time setting via radio/GPS or NTP.