This Seven-Segment Display Uses Mechanical Components to Show Digits

With just a servo motor, a cam shaft, and a Raspberry Pi Pico W, this display rotates segments into place rather than toggling lights.

Building a better display

The classic seven-segment display is an ingenious solution to the problem of displaying characters in a compact format, since unlike a grid of pixels, only a small subset of display elements are required to show an image. Even better, they can leverage LEDs, liquid crystals, or even fluorescent tubes in order to show information. But what Jens from the Jens Maker Adventures YouTuber channel really wanted was a display that required zero continuous power after the digits have changed, leading him to take a more mechanical approach.

The mechanism

Internal combustion engines maintain valve timings through the use of a cam shaft that, when rotated, raises or lowers various levers at certain positions. Through a very similar concept, the design Jens went with also contains a far simpler cam shaft that represents digits 0 through 9 as elevations or depressions around a series of rings. A segment's arm can then fit into one of these rings in order to become flush or perpendicular with the digit's face. Moving the cam shaft is a single servo motor, which rotates it to the degree that corresponds with the desired digit.

3D printing and assembly

All of the parts used in this project were 3D-printed from PLA before having their supports carefully removed and being cleaned. The cam shaft and segment levers are held in place with strands of 1.75mm filament while a micro servo near the base spins the shaft via a gear. Once Jens had created a total of four displays, he mounted them onto a custom stand along with a tag denoting his YouTube channel's name.

Moving the segments electronically

Rotating the servo motors is done by sending a pulse of varying widths that correspond to specific angles, and generating this pulse is a Raspberry Pi Pico W due to its built-in Wi-Fi module and fast processor. Before anything could be shown, each display had to undergo a calibration process where the digit-to-servo angle mapping was tuned to produce the best looking segments for each possible number. This ultimately resulted in a sketch running on the Pico that could be given up to a four-digit number and quickly show it.

External integrations

Apart from a clock, this mechanical display has so many other use-cases as Jens demonstrates in his video. First and foremost, it can show the current number of YouTube subscribers thanks to an API call, but everything from a car tachometer to a clunky watch could also be made.

Evan Rust
IoT, web, and embedded systems enthusiast. Contact me for product reviews or custom project requests.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles