|
KiCad 9.0 |
Seven-Segment Display-Display
It's a display made out of 7-segment displays! This project was inspired by a similar project (https://hackaday.io/project/169632-7-segment-display-array-clock) from Hackaday user Frugha. They published their code and PCB design but I wanted to create my own version from scratch (otherwise where's the fun?!). Notably there were a few things I wanted to do differently:
- I used the TM1640 (https://www.lcsc.com/product-detail/C46683634.html) instead of the much more expensive MAX7219. Each TM1640 costs $0.15 and can drive 16 7-segment displays, versus the $1.50 MAX7219 which can each drive only 8 7-segment displays. With PCBWay's minimum PCB quantity of 5 that's a difference of $6.75 vs $135.
- The crystal, RTC, and MCU are soldered directly to the PCB instead of using bulky daughterboard modules, and I used a bare ATtiny861 instead of an Arduino Nano daughterboard.
- Hardware buttons for setting the time
- 3D printable enclosure
Font
The digits are generated by a C program which reads a .ttf font file, renders it to a bitmap, and calculates the appropriate 7-segment display segments to enable by considering the number of illuminated bitmap pixels that would lie within a given display segment. With this information it outputs a C header file containing an array that describes the font and is used by the firmware to render the clock digits. I've found that the display looks best using a bold+italic font. I used JetBrains Mono ExtraBoldItalic (https://www.jetbrains.com/lp/mono) but the font conversion program will work with any font. In fact it can render *any* glyph, it's not limited to digits. So you could make it display text too if you wanted. See the linked Codeberg repo for the font generation program.
BOM
- 3D printed parts from `mech/enclosure.FCStd` in the linked repo (created with FreeCAD: https://www.freecad.org)
- 6x M3x15 machine screws
- 6x M3x4x4mm heat-set threaded inserts (you can substitute another size and adjust the enclosure accordingly; see the `VarSet.threaded_insert_hole_diameter` variable in the FreeCAD file.
- 144x 12.6x19mm common anode 7 segment displays. Search eBay for "common anode 7 segment display" and sort by lowest price - you can get these in packs of 10 for less than $1.
- 1x DS1307 RTC (SOIC-8 package) + crystal. If you search eBay for "DS1307 module" you can find boards containing the DS1307 and a crystal for much cheaper than you can buy a single genuine DS1307. I used these and desoldered the crystal + RTC.
- LCSC parts from attached BOM.
Seven-Segment Display-Display
Project images are for reference only. Actual production is based on the manufacturing files on the project page.
Please review the designer's notes (e.g., PCB thickness) and select the appropriate options.
PCBWay is not responsible
for issues caused by unsuitable parameter selections.
For more important ordering information, please refer to
Read More
Raspberry Pi 5 7 Inch Touch Screen IPS 1024x600 HD LCD HDMI-compatible Display for RPI 4B 3B+ OPI 5 AIDA64 PC Secondary Screen(Without Speaker)
BUY NOW- Comments(0)
- Likes(1)
-
sedattunc
Mar 30,2026
- 1 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
10design
-
10usability
-
10creativity
-
8content
More by Flying Toast
-
Programmable Mist Maker - XIAO / QT PY Extension
1822 2 2 -
RadioHAT - Raspberry Pi radio development platform
1557 0 3 -
QWIIC-VL53L4CD Time-of-Flight Distance Sensor Module
1770 0 2 -
-
-
ARPS-2 – Arduino-Compatible Robot Project Shield for Arduino UNO
3787 0 6 -
-
A Compact Charging Breakout Board For Waveshare ESP32-C3
4536 3 8 -
AI-driven LoRa & LLM-enabled Kiosk & Food Delivery System
5341 2 2 -







