Topics - Ath [ switch to compact view ]

Pages: [1] 2 3 4 5 6 ... 8next
NANY 2022 Entry Information

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)
System Requirements
  • 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
Version History
  • 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 :)

  • 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

Planned Features
Any reasonable request that comes in ;)

A group of displays showing some different content:

Display contents:
  • 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)
Screenshot - 03_07_2021 , 22_17_39.png
(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 :D

Disconnect the device.
Install another firmware on the controller.
Delete all downloaded and extracted files.

Use a decent power supply to power the displays!

Known Issues
Toying with IoT stuff can be addictive ;D

NANY 2021 Entry Information

Application Name Zever2TFT
Version 0.9
Short Description Display Zevercloud solar day-production on a TFT or eInk display
Supported OSes Script: Any OS Supporting Python 3.x, ESPEasy (TFT/eInk/IoT)
Web Page This page (for now)
Download Link (Soon to be) Attached
System Requirements
  • OS Supporting Python 3.x (Windows, Linux/Raspberry Pi, Mac, ...)
  • Additional Python modules: pytz, requests
  • ESP8266 or ESP32 IoT controller unit (Wemos D1, NodeMCU, ESP32 DevkitC, etc.)
  • TFT Display: ILI9341 based tft display (SPI connected)
  • eInk display: IL3897 based e-paper display (SPI connected)
  • Some wires and light soldering skills to connect stuff together
  • (Hardware can be obtained from your local supplier, eBay, Aliexpress, Banggood, etc.)
  • ESPEasy software from
  • A PC (Windows/Linux/Mac) with USB port to flash the firmware onto the ESP controller (I'm using Windows)
Version History
  • v0.9.0: Dec. 2020: Rework to use changed Zevercloud API :(
  • v0.1.0: Aug. 2020: Initial version
Author Link to Author's Profile page

Having installed a solar systems a few years back, using a ZeverSolar inverter and connected to Zevercloud for easy overview of generated power, and an interest in IoT, I found ESPEasy, and the rather affordable ESP controllers, I thought it would be nice to combine these.
The availability of very affordable TFT display (I bought a 4.3", 65k colors unit), and the requirement for the Zevercloud web interface to re-login every 30 minutes or so to be able to view the current production graph, I searched for, and found, an API to retrieve the graph data in json format.
Now to turn that data into a nice graph... enter: Python :tellme:
I've only sniffed a little at python a few years back, but never actually done anything serious with that, so I took this as an challenge opportunity to learn a few things:
- Python programming
- Turning a bunch of data into a graph
Hence this script was crafted :)

NB: Some assembly required! And command-line skills required! (that should fit with the average audience here 8) :P)

Fetch data from the Zevercloud API
Present that on a TFT (or ePaper) display, connected to an ESP controller
Scale the graph, based on the max available value, so the display is nicely filled

Planned Features
Fix the login issue with the revamped API (No thanks, Zevercloud >:()
Support other Solar power aggregation platforms
Any interesting features I, or other potential users, might think of
A, probably 3D printed, housing for the device


Result of a nice day of solar production

Installation: Hardware
See next post

Installation: Script
  • Install Python 3
  • Install required python modules: pip install pytz requests
  • Unpack the script and run it once, this will fail, but create an initial settings file: zever2tft.json
  • Retrieve the API key, APP Key and APP Secret values (more details are in the script documentation)
  • Add the values to the settings file, and set up other, display related, settings like size etc. (more details in the script documentation)
  • Run the script, and it should draw the graph of today, or provide a yyyy-mm-dd date as first argument for displaying the graph for that day
  • When all settings are filled, a second run of the script will only update the extra data, not yet sent to the display, unless the scale has to be adjusted

Using the Application
Run the script on a regular basis, f.e. using a scheduler, like cron on Linux (Raspberry Pi?) or Task Scheduler on Windows.

Stop the scheduler if set
Remove the script
Option ally remove the Python install if no longer needed

Set the scheduler to run every 5 minutes for a regular update
Setup a display timeout and add a button to wake the display, to extend the display's life expectation
As ESPEasy now also supports the XPT2046 touchscreen, mounted on the TFT unit, this can be configured to wake the display on touch (example to be added here)
Best to get an ESP controller unit that supports micro-usb for power supply and has 4 MB of flash memory, so a) it's easy to connect, and b) ESPEasy can be updated OTA (over the air) from it's web interface

Known Issues
Unfortunately, because of the recently changed API url and lacking any documentation, the login for the new API is not fully tested yet, as the new APP key and APP Secret are yet undefined how to fill (to be resolved asap)

Download will be attached ASAP!

N.A.N.Y. 2020 / NANY 2020 Mug-shots
« on: February 11, 2020, 01:25 PM »
Again, it seems like I'm the first to kick-off a thread with NANY-2020 mug-shots.

Please add yours (or other rewards received) too :up:


I got both the regular and the alternative design again, but in the smallest available size (11 oz.), so they're actually usable under European coffee machines ;D

N.A.N.Y. 2020 / NANY 2020: scss-loop-template-processor
« on: December 28, 2019, 08:16 AM »
NANY 2020 Entry Information

Application Name scss-loop-template-processor
Version v1.2.0.0
Short Description Process SCSS (css preprocessing) @for loops to @each loops including only used classes.
Supported OSes Any OS that runs .NET 4.7.2 (only tested on Windows)
Web Page scss-loop-template-processor on Ath's DCMembers site
Download Link from above DCMembers page
System Requirements
  • Command-line or script
  • .NET 4.7.2 or newer
Version History
  • - December 2019 - Cleanup code, added this documentation, prepare for NANY 2020 release
  • - November 2019 - Added enable/disable-lines-start/end processing
  • - October 2019 - Working as intended
  • - October 2019 - Initial development
Author Ath

During development we use many generated classes for 'pixel-perfect' alignment of page elements.
(The proprietary platform used doesn't allow for direct html or css tags to be applied on elements, only classes can be applied, and to override previous, platform-standard, css often !important needs to be added to the css.)
Both the template and the generated output are @include'd in the files proveded to the scss compiler, but those from the templated are disabled by using an @if that is defined in the template-output to be false on second evaluation. During development the template-output is a (nearly) empty file.

Process a template with a set of numeric-postfixed constants to replace @for loops by @each loops intended as scss preprocessing, to reduce the number of generated css classes.

Planned Features
None at the moment, requests accepted.

Command-line tool, so no usable screenshots... :-[

  • Unpack the zip file
  • Provide a list of classes with a numeric postfix
  • Provide a scss template with @for loops

Using the Application
Run from a command-line or use in a script.

Remove the unpacked files (no configuration is saved anywhere).

Use in a script as a step before releasing a web application having scss files included.

Known Issues
None so far.

Living Room / CafePress security incident 2019-02-19
« on: September 25, 2019, 01:43 PM »
Today, September 25th, 2019, I received an e-mail from CafePress, the supplier of, among other stuff, the NANY mugs, stating they have had a security incident on February 19th, 2019, where customer names, addresses, e-mail addresses and account-passwords have been stolen from a database. It appears they first published this story on September 5th, 2019.
I took a screenshot from their website where the whole story is explained for as far as they know.

CafePress security incident 05-09-2019.png

Link to the page at

Pages: [1] 2 3 4 5 6 ... 8next
Go to full version