Show the Time Using Bright LED Filaments and an ESP32
This special clock forgoes the typical round LED and even addressable strips for the much less common LED filament.
What makes LED filaments special?
When imagining an LED, most people most likely picture a small round bulb or tiny surface-mount component that emits a bit of light when power is applied. On the other hand, LED strips have larger surface-mount components laid out on a flexible substrate. However, their larger size can make them unwieldy in many applications. LED filaments can marry both of these ideas into a single package by containing several tiny LEDs on a rigid copper plate so that they can emit a diffused, bright, and smooth glow. After purchasing several of these neat components, YouTuber atomic14 decided to make a supersized seven-segment display with them for a wide variety of applications.
Voltage boosting
One of the main differences between the LED filaments and the typical NeoPixel strip is that they rely on relatively high voltages to achieve their peak brightness- even past 50V. But rather than buying some fancy voltage boosting module, atomic14 decided to build his own that could raise a 5V USB input up to a theoretical 120V. This feat was accomplished by combining an inductor, capacitor, diode, into a circuit and using a PWM-driven MOSFET to control the voltage level. With a simulated load of 4700 ohms, similar to the LED filament, the LED could be fed 47V while drawing 10mA.
The ESP32
A big drawback to this approach was that the voltage across the capacitor would reach 120V when no load was connected, and then change when adding each additional filament. Therefore, atomic14 replaced his manually-set PWM signal generator with an ESP32 for making automatic changes and maintaining a stable voltage level. The brightness is set with a trim potentiometer, and once the ESP32's analog-to-digital converter (ADC) has converted the analog value into a digital one, it can feed into a stripped-down PID function and dynamically adjust the PWM duty cycle.
Assembling the first prototype
With the boost circuit now created, atomic14 moved onto the next step: designing and fabricating a PCB. This first iteration involved placing the ESP32, boost module, and a series of four TPIC6595 shift registers that take incoming serial data from the ESP32, output a signal to their attached LED filament segment, and send the remaining data downstream. The PCB not only houses these components, but also a few capacitive touch pads that allow users to select from a clock or stopwatch.
Making it modular
Once the monolithic PCB had been assembled and tested, atomic14 quickly discovered that his design was not able to be easily expanded, so he decided to create a second prototype that broke up each segment into its own dedicated PCB. This would let multiple segments be chained together for even bigger displays while reducing the cost of a larger PCB.
Going further
At last, this unique seven-segment display was finished. Through the integration of LED filaments, capacitive touchpads, and WiFi connectivity, this clock/stopwatch has the potential to be expanded even further for a wide variety of possibilities. You can see how atomic14 built this modular system here in this YouTube video.