|Application Name|| Dotmatrix display support for ESPEasy |
|Version|| 2021-10 |
|Short Description|| Use 8x8 dotmatrix displays to build a tickertape display |
|Supported OSes|| ESP8266/ESP32 microcontrollers |
|Web Page|| ESPEasy documentation for the plugin |
|Download Link|| Github releases page for ESPEasy (use the DISPLAY build) |
- ESP8266 or ESP32 microcontroller (best get one with min. 4MB and USB support on board for easy connection)
- Dotmatrix displays based on MAX7219 chip
- Level converter 3v3 - 5V
- Proper power supply
- Included in the ESPEasy release build since October 2021
|Author|| Ath |
I've been helping with some development on the ESPEasy platform, a firmware for ESP8266/ESP8285 and ESP32 WiFi enabled microcontrollers, for some time. (See also my entry for NANY 2021
By request on the ESPEasy Github issue tracker, there was a desire to add support for dotmatrix display using the MAX7219 chip.
I found an open source Arduino library that has quite extensive support for these chips/displays, called Parola
, that offers some fancy features for displaying all kinds of information on such displays.
After some investigation, I found that, with some work, I could add that as a feature to ESPEasy.
The hard parts were in a) getting the library to work with ESPEasy without triggering watchdog resets, and b) designing and building a usable UI for configuration.
a) was solved by adding some 'yield()' calls, allowing for background tasks and the watchdog to process as needed.
b) was solved by getting feedback from other developers on the project Features
- Display text, with several effects including a tickertape style, on groups (zones) of such display modules
- User defined zones from 1 to 254 of display modules
- Use of variable content, like date/time, or measured values like temperature etc.
- Brightness control per zone
- Draw bar-graphs on groups (zones) of displays
- Address separate pixels of each display
- Repeating content display
Any reasonable request that comes in Screenshots
A group of displays showing some different content:
- Date (DD-MM) with animation
- Date (YYYY-MM-DD) with animation (scroll left, in progress)
- Clock (24h), updated every minute, no animation, no flashing colon
- Date/Time (YYYY-MM-DD HH:mm) with animation (scroll left, in progress)
- Bar-graph with 3 bars, type 2 (single line) mimicking temperatures (-14, +4, +26) on a +40 to -20 (left to right) scale and a zero-point around 1/3rd from the right (the left module reflected weirdly in the photo, but it does work)
- Text (ESPEasy is great fun!) with animation (scroll left, in progress)
Top-right is a 'proper power supply', as these displays can use quite some current when many LEDs are lit.
Bottom-left is the ESP8266 controller (a Wemos D1 mini clone)
Between the controller and the bottom display is a level converter for 3V3 to 5V.
The configuration of the zones: (from the documentation page, linked above)
(For details best visit the official documentation page
- Download the latest ESPEasy release from the Github releases page.
- Extract the entire .zip file in an empty folder
- Start the ESP.Easy.Flasher.exe (Windows) or get the esptool flash tool for other OS-es)
- Select the .bin file with 'DISPLAY' in the name (either ESP8266 or ESP32, depending on the controller used) or 'MAX' when using an ESP32 with 16 MB Flash
- Upload the .bin file (for ESP32 initially the '-factory.bin' should be used) to the controller.
- After successful completion, reset the controller
- Connect to the WiFi Accesspoint exposed by the unit (ESP-Easy, ESP32 or MAX-ESP32), password 'configesp'
- Enter the credentials for your WiFi network the ESP controller can connect to (2.4GHz only)
- Find the ip-address of the using, either by looking at the log available via the USB serial link, your WiFi router or network scanning tool
- Open a webbrowser with the ip-address to the unit to configure the device
- On the Devices page add the 'Display - MAX7219 dot matrix' plugin to the task list, give it a name, and configure using the documentation
- Connect the hardware as suggested in the documentation
- Enable the plugin, and enjoy the display
Disconnect the device.
Install another firmware on the controller.
Delete all downloaded and extracted files.Tips
Use a decent power supply to power the displays!Known Issues
Toying with IoT stuff can be addictive