Featured on All3DP!
This 7 Segment LED clock was designed to be almost entirely 3D printed, with the exception of a few fasteners... and of course, the electronic components, which are all neatly encased inside of the clock itself. It relies on the translucent properties of thin layers of white PLA to achieve the light diffusing necessary to light up individual segments. I created this project to get more experience in modelling for 3D printing using Fusion 360, practice my soldering skills, and get a chance to do a little ESP8266/Arduino programming.
*Features*
- hang it from the wall using the built in hole(s) or print 2 optional stand pieces for a desktop configuration
- avoids clock drift by syncing with NTP periodically
- automatic time zone detection (uses IP to approximate your location, which should work for most scenarios; this can be overridden with a more accurate location if this is getting the wrong location)
- automatic daylight saving time adjustment - no need to spring forward or fall back manually
- 12-hour or 24-hour format
- custom LED colors - over 16 million colors possible
- choose from hour:minute (HH:MM) or hour:minute:second (HH:MM:SS)
- over-the-air firmware updates
Print Settings
Printer Brand:
Ultimaker
Printer:
Ultimaker 2
Rafts:
No
Supports:
No
Resolution:
0.15 mm layer height; 0.4 mm nozzle
Notes:
the colon cover pieces should be printed with at least 5 top and 5 bottom layers to ensure that the infill pattern cannot be seen
Post-Printing
Supplies
Without considering the consumables and tools (wire, PLA, printer, soldering equipment, etc.), the supplies required for a clock come out to about $30. The list below contains links to the specific components that I purchased. Some of these items could take a while to arrive, so I would recommend ordering as early as possible.
NOTE: The diameter of the fastener holes are 4.5mm. If you must/want to use metric hardware, you could probably substitute the #8-32 x 3/8 in screws with M4 screws (6 to 9 mm length).
assembly animation
Assembly
- Upload the sketch and data files from https://github.com/leoclee/7-segment-clock to the D1 Mini (see detailed instructions on the github README). (Alternatively, you can check out a fork of the code that allows for a photoresistor by @RJFeddeler https://github.com/RJFeddeler/7-segment-clock)
- Join the back pieces using the nuts and screws
- Solder the SN74AHCT125N level shifting chip to the clock shield PCB
- Solder the included 8 pin female headers from the D1 Mini to the clock shield PCB
- Solder the power and LED wires to the clock shield PCB
- Slide the clock shield PCB onto the pegs of back_hour_minute piece
- Solder the power barrel connector to the power wires (keep in mind the polarity of your power supply)
- Solder the LED wires to single LEDs in the colon positions of the back_hour_minute piece (keep in mind the direction of the LEDs, usually indicated by arrow(s) on the strip itself)
- Attach the D1 Mini to the PCB, sliding its male pins into the PCB's female header -- the circuit can be tested periodically from this point forward
- Continue soldering LEDs through the wire guides around the digits until all the LEDs have been soldered together in basically 2 strips, 1 going to the left of the controller (hours) and 1 going to the right of the controller (minutes and seconds)
- Cover all of the different segments or gaps with the appropriate 3D printed pieces
- (OPTIONAL) Attach stand pieces if not wall mounting
API Keys
- For IP-based geolocation, you will require an ipstack.com API key. Their free tier allows for 10000 requests per month, which is way more than this clock will ever require. Note for Pi-hole users: ipstack.com and api.ipstack.com are blocked by default, so you will need to whitelist these domains.
- For determining UTC offset which takes into account DST rules, you will require a Time Zone API key on Google Cloud Platform, where you get $200 credit per month to spend on usage for free. The clock's usage of the API will be so little, it should keep you well within this free tier.
- For runtime configuration of an override location, your Google Cloud Platform API key will also need to have the Maps JavaScript API enabled.
Category: DIY