Watch How This Clock Uses Heat to Show the Time

Moritz v. Sivers' framed display has a series of thermochromic panels that change color based on the temperature to tell the current time.

Thermochromatic displays

There currently exists a plethora of different display technologies on the market, including LCD, LED, and OLED. But none are perhaps as unique as thermochromatic liquid crystals. They work by taking advantage of the response given by applying varying temperatures to a collection of suspended crystals. As the level of heat transferred changes, the crystals will reorient themselves to reflect different wavelengths of light, and thus, change their color.

Due to this color shifting property, Moritz v. Sivers wanted to incorporate several of these segmented panels into a large-format digital clock.


Sivers' design houses a series of four digits that each contain a set of seven segments, just like a typical seven-segment display. To control the digits, he went with a WEMOS D1 mini ESP8266 microcontroller module for automatic timekeeping with the network time protocol (NTP). There is also a DS18B20 temperature sensor that is used to monitor the external air temperature for better control of the liquid crystals.

Designing the PCBs

Each segment was designed as a 2-layer PCB with copper traces running throughout that act as a heating element. Underneath is an SMD pad for attaching a JST, which delivers current to the pad. Finally, 28 individual tiles were cut from a sheet of thermochromic material and secured to the top. The controller's PCB had a header for the ESP8266 module along with four 74HC595 shift registers connected to N-channel MOSFETs for driving the heaters. Both sides of the PCB were flanked by a pair of header banks that allowed for the quick connection of the wires going to the segments.

Building and assembling the frame

The clock's base started off as a 280mm by 350mm aluminum frame with mounting holes that were custom-milled. After screwing in each thermochromic segment with machine screws and running wires to the control board, Sivers then routed the DC power cable through the bottom-right corner and encased the entire assembly with a back plane.

Showing the time

When the ESP8266 first boots, it connects to a local WiFi access point and grabs the current time over the network time protocol. From there, every minute causes new data to be clocked into the shift registers and sent to the segments for a new digit to appear. In order to reduce power consumption, Sivers implemented a rudimentary form of PWM, which resulted in a current draw of around 3A.

For more information about this project, you can read its write-up here on Instructables or watch its demonstration video below.

Arduino “having11” Guy
20 year-old IoT and embedded systems enthusiast. Also produce content for and love working on projects and sharing knowledge.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles