64×16 LED MQTT Laundry Display

When you have an MQTT broker receiving messages, you want to be able to see them. [Xose Pérez] already had a system set up that sent him notifications, but he had a pair of 32×16 LED matrices, so he decided to make a big, bright sign to let him know when he got an important message sent to the broker.

[Xose Pérez] had already built a laundry monitor which was sending messages to an MQTT broker so he wouldn’t forget his laundry sitting in the washing machine. To communicate with the broker, he used an ESP-12. He had already ported an Arduino library for the Holtek HT1362C display drivers used by the matrices to work with his driver board.

He wanted to try out SMD soldering so he built a custom PCB to hold the ESP-12, power supply, passive components, and a connector and he describes his methods and results. Instead of hardcoded messages, he wanted the system to be configurable and display messages coming in, not only from his laundry system, but also from other sensors. A web interface, built with jQuery and WebSockets, running on the ESP-12 allows the user to subscribe to a topic on the broker and show a customized name and value on the display when a payload is available.

All-in-all, [Xose Pérez] has posted a great tutorial in which he goes over the hardware he built, the libraries he used, SMD soldering, how he made the enclosure, and even his choice in IDE (PlatformIO). He also posted the software, board designs and enclosure models software and hardware on bitbucket. The end result is a great looking LED matrix that displays not only his laundry’s status, but also anything else he wants to from his MQTT broker.

If you want to try your hand with MQTT, the ESP8266 is a wonderful device for sensor nodes, and any Linux box (like the Raspberry Pi) makes an easy broker. Check out [Elliot Williams’] Minimal MQTT series and you will be up and running in no time.

Did something similar with the ultra cheap dot matrix displays from aliexpress that speak the “HUB12” protocol about a year or so ago.

It was a semi-success, it mostly worked, I even had brightness control working, but unlike the display in this article, the display I used uses shift registers and relies on persistence of vision to allow for “bank switching” the LEDs, which are divided into 4 banks.

Unfortunately I found out that the Esp8266 is too small to both drive this and deal with anything more than an NTP sync at the same time, I’ve tried a lot of fiddling with code to try and get it working reliably with some level of network traffic such as a web interface, but it’s just not happening, I should probably write a stub firmware and offload the actual display driving to an atmega168 or something, but that’s kind of beyond me at the moment.

So instead, I’m now going to build a VFD clock and use some SPI port expanders via darlington source arrays to drive it, because apparently that’ll be easier for me to deal with in software (It’s a direct drive VFD, Futaba, I’ve already reverse engineered the pinout and voltages)

I imagine the design I came up with would still be useful if someone wants to just have a network connected DMD that they can just use netcat or whatever to push messages to, and it supports as much daisy chaining of displays as the DMD2 library for arduino does, I haven’t posted schematics or images yet, I need to re-do my blog since I’m getting back into electronics now.