MQTT dot matrix display to show information from MQTT topics

Based on similar problems in google I found several recommendations, try to follow them one by one:

  1. Double-check what type of board you choose in Arduino IDE. It should be the same as you have.
  2. Double-check your passwords in project config.
  3. Uncomment this line and recompile the project.
  4. Check your wifi signal, maybe move your board close to the router.
  5. Grab logs from a serial port of your board. Connect your board to PC and use Arduino IDE --> Tools --> Serial Monitor. And share your logs here.

thank you for the advice

Great project,Big thanks! :slight_smile:

As you know …waf is the most important… I’ll now start programming some nice features

Any thoughts on how to adjust this to include a timer? I love this project and would use it for messages through MQTT, but as mentioned above MQTT would not be good for a count down timer with seconds.

Hello, maybe someone can help me here?
I use the ioBroker with an MQTT adapter and have built the display. My problem is that I don’t get anything on the display.
I can transfer data, but according to the serial console these data points arrive wrong !?
it should be “wled / zone0_text”, instead it becomes “cmnd / status / wled / zone0_text”.
Whats going on here?

Thank you

I now use the MQTT adapter and it works! The data points were also created automatically.

Is someone also facing strange issues where the led panels and dots would flicker ? Soldered all 4 panel and this should avoid any problems with signals between the panels bit I continuously get thises pixel errors … strange thing is that if I don’t send any message to the board it does not flicker at all

Problem solved by soldering all connections

Did you solve your problem?, I have a similar issue, esp constantly rebooting!

ctx: cont 
sp: 3ffffd10 end: 3fffffd0 offset: 01b0

3ffffec0:  c000f820 40241089 3ffef29c 4020816b  
3ffffed0:  00000000 0000006b 3fff0950 00000019  
3ffffee0:  00000000 0000006b 3fff0950 4020860c  
3ffffef0:  00000000 00000000 3ffef047 40203756  
3fffff00:  00000013 00000000 3fff0950 00000016  
3fffff10:  00000000 3fff09a5 3fff0950 40207dbe  
3fffff20:  00000000 3fff09a5 3fff0950 40209e28  
3fffff30:  00000015 4bc6a7f0 000039a1 3ffef29c  
3fffff40:  00000000 00000000 4bc6a7f0 3ffef29c  
3fffff50:  00000000 00000001 3fff0950 4020a707  
3fffff60:  00000000 00462626 3ffef424 3ffef29c  
3fffff70:  00000000 00000001 3fff0950 40208a35  
3fffff80:  3fffdad0 3ffef294 00000000 40208e37  
3fffff90:  4020151a 00000001 00000001 3ffef608  
3fffffa0:  3fffdad0 00000000 3ffef294 40203bcc  
3fffffb0:  3fffdad0 00000000 3ffef601 4020d020  
3fffffc0:  feefeffe feefeffe 3ffe8608 40100739  

 ets Jan  8 2013,rst cause:2, boot mode:(3,2)

load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
Connecting to Whoseway?
WiFi ready
IP address:
IP address:
subscribe objects
New message arrived
set new scrolleffect
New message arrived
31.6 C
zone0 set new Text
New message arrived
zone1 set new Text
welcome message...
subscribe objects
New message arrived
set new scrolleffect
New message arrived
31.6 C
zone0 set new Text
New message arrived
zone1 se

I have the same issue of rebooting, if i comment out the line with “P.displayAnimate()” the rebooting stops, so it has something to do with this line…

running 4 panel MAX7219 and ESP8266

i found my solution to the rebooting, when i cleared the mqtt messages the rebooting stopped. there cant be saved messages in MQTT for this to work.

My MQTT is on a separate pi so “ mosquitto_pub -t wled/zone0_text -r -n” worked to clear any messages saved.

You might have to clear all MQTT items…

Hi everybody,

For people who are interested, an alternative solution is existing.

A super guy released a custom components for matrix led in esphome !
I tested it, and it’s pretty effective as solution !

I made already two display using this script. Absolute amazing and flexible, working really well.
Is there an option to not have any transition? Just a text replacing the existing one, for faster displaying?
Any solution is appreciated!

Is there an easy way to remove the zone1, thus making this just a single zone0 display for the whole matrix?
For example, can I just simply comment out the zone1 and configure zone0 to all 8 panels:

P.setZone(0, 0, 7);

I understand this configuration may be the same as other MAX7219 mqtt parola display projects out there, but I’ve been having trouble getting the others running or I don’t like some components of the other ones out there.


This worked for me:

  P.setZone(0, 0, 7);
  P.setZone(1, 70, 70);
  P.setFont(1, wLedFont);
  P.displayZoneText(0, zone0_Message, scrollAlign, scrollSpeed, scrollPause, PA_FADE, PA_FADE);
  P.displayZoneText(1, zone1_Message, scrollAlign, scrollSpeed, scrollPause, PA_FADE, PA_NO_EFFECT);

Try then to address a message only to the first zone.

  • Go on Developers tools / Services
  • Choose mqtt.publish
    (change “wLed-panel-01” with the name you specified in String TOPIC_PREFIX)
topic: wLed-panel-01/zone0_text
payload: hello world

and call the service.

Just wanted to stop by and say thanks for sharing this.

Was in need of a text notifier/clock. And this project fit the bill nicely.

Many thanks.

Great project, I put two of these together this weekend but have a question.

I’m using 8 panels just like the pictures and I have zone1 occupying the left-most panel, with zone0 occupying the remaining 7. If I use one of the characters in zone1 that uses the right-most column of LEDs in that panel combined with scrolleffect, when the sprite returns to the left, it erases that last column of LEDs until the next refresh redraws it. Has anyone else experienced this?

Thanks in advance.

Hello and congratulations on this project, it is really gorgeous, however I would like to find a way to scroll the longest words for a 4 unit dotmatrix, I am searching on the net but I cannot understand how to do it. Has anyone succeeded in doing it?

This is a new version of firmware, v2.0.1
What’s new:

1. fully rewritten code, fixed WDT errors
2. Web UI for Wifi configuration (all settings in UI)
3. Web UI for configuration
4. 3 work modes: MQTT client, Wall clock, Manual send text

First boot:

  • Device will boot in wifi access point mode and write the wifi name and password on the display.
  • AP wifi name: wled-AP
    AP wifi password: 12345678
  • Connect to this AP and configure your wifi settings (connect to your wifi network)
  • When the device connects to the WIFI network, the device’s IP address will be displayed on the zone0
  • Open the browser and go to the device IP address

Download firmware: Release First release · widapro/wled-pixel-v2 · GitHub

Firmware compiled with next parameters:

// Display pinout
#define DATA_PIN  D7                     // WeMos D1 mini GPIO13
#define CS_PIN    D6                     // WeMos D1 mini GPIO12
#define CLK_PIN   D5                     // WeMos D1 mini GPIO14

Please test the new version and let me know your thoughts on improvements.

P.s. Readme file will come soon.

1 Like