The upcoming ESPHome addressable light display feature will potentially allow you to build your own, DIY LaMetric TIME alternative using addressable LED strips. Building such a device will allow you to customize it however you want, and you have the freedom of deciding how large or small it will be, what colour the case is, its shape in general, and what additional features and sensors you want to fit in it. If you have the necessary tools, a DIY LaMetric will almost certainly be cheaper than the original. But be warned, the amount of work needed will be much larger.
The LaMetric is a rare example of a successful Kickstarter. Its display consists of 296 LEDs, which are diffused to a square surface area of about 7 mm and arranged in a grid. This LED matrix can display a number of different metrics, depending on your liking. It can mirror your phone notifications, tell you what the weather is going to be throughout the day, and display the current time.
I’m not of the opinion that you should avoid the LaMetric TIME, and if you like it, I’m sure you are going to enjoy it. LaMetric has built a very open system, allowing makers to integrate their products and features. It also integrates with Home Assistant and is generally a well regarded product. But it is nice to have the option to use ESPHome to make a comparable product. And the posibilites don’t just end at LaMetric TIME clones, as you will find out further down.
Introducing the ESPHome addressable light display
As you might expect, this new feature can be added to a project’s code as a display. You will need to define the height and width of the matrix (in LEDs) and set its rotation. The rotation is needed because some manufacturers will have the path going from left to right and others from top to bottom.
display: - platform: addressable_light id: led_matrix_display addressable_light_id: led_matrix_light width: 8 height: 8 rotation: 180° update_interval: 16ms lambda: |- // Draw a bulls-eye pattern Color red = Color(0xFF0000); Color green = Color(0x00FF00); Color blue = Color(0x0000FF); it.rectangle(0, 0, 8, 8, red); it.rectangle(1, 1, 6, 6, green); it.rectangle(2, 2, 4, 4, blue); it.rectangle(3, 3, 2, 2, red);
In the example above, which taken from the pull request on GitHub, an 8 * 8 LED matrix is being used to draw a simple bulls-eye pattern consisting of four squares. And if you take a closer look at the code below, you will see that the addressable light display supports multiple colours. The coordinates are the same as with every other display in ESPHome and you can read more about how to address such a display here.
Doesn’t ESPHome already support the MAX7219 Digit Display?
ESPHome does indeed already support a type of LED matrix display, the MAX7219 Digit Display. Though the MAX7219 Digit Display might be easier to use, the addressable light display opens up a whole world of possibilities. For starters, you can use any of the various LED matrices from the likes of BTF-LIGHTING. As some of these matrices are soldered on a flexible PCB, can be gently bent and curved around surfaces. You also have the choice of LED chips, with some featuring the WS2812B and others the SK6812.
Pre-soldered matrices aren’t your only option to build addressable light display with ESPHome. You can turn any addressable LED strip into a display. For example, the YouTuber bitluni used 1920 ping pong balls on top of individual LEDs and an ESP32 to build an impressively large “Ping Pong LED wall“. The new addressable light display will open up endless possibilities for makers using ESPHome, and I’m looking forward to the first project using it.