I breathed some new life into my old LED- matrix using a NodeMCU with

I breathed some new life into my old LED- matrix using a NodeMCU with an ESP8266 and a bit of stolen & self written code.

You can see the result on github:

It features a small webinterface, with which you can control the brightness, animation speed, mood light color and light alarm clock settings.

Hi Mark, just a quick question. in your code, the matrix is set to 10x 20… yet looking at your images its looks like 8 x 30…, can you verify which one is is… thanks

Hi mark again, ive put together the matrix, 30 x 8. uploaded the code without any issues, and can happily connect to the wifi…greeted with the smiley, … particle trail and other animations work fine. Its the time font thats wrong. i get a single line font that only uses the top 6 line of the strips as can be seen in the next image… any ideas?

missing/deleted image from Google+

Ah, I see:
I have different versions of that code. For the 8x30 matrix another font (which I also edited a bit to make the numbers as big as possible) is provided:
#include <Font6x8_meins_nodemcu_v.h>”

Also: Yay, somebody uses my plan :slight_smile:
If other problems arise from the different matrix configurations, feel free to contact me again.
I will also include your question into the git’s readme.

Also, if you want the blinking colon between hours and minutes, as there is enough space for that with a 30x8 matrix, you can set the definition of drawColon to true (Line 37):
#define drawColon true”

Hey Mark thanks for your reply. I did try another font and it did throw a few errors about font not being declared. It was quite late last night so walked away. I will look into it again later. It’s a cool design. When finished I do post a build video with code on my YouTube channel. Obviously I give all credit to the builder… if that’s ok ?

Ah… yes it’s not a clock without the colons lol…

That would be more than okay - just link to the git :slight_smile:

I will. I changed the font and now everyhting works as shown. Is there anyway to speed up the flashing colons near to seconds at the moment it takes about 4 seconds from illumination to fade out. also can i ask where is recieves its time from ?, as mine seems to be an hour out. ps… love the font style.

Just a quick update, ive sorted out the time after reading through the timezone library, so its showing uk time. i have made a little edit to the fire effect, The firework effect seemed a little buggy, so changed it out for another rainbow effect, for the time being. im still stuck on the colon - i can not find where its taking its delay / fade readings from. any help in speeding it up would be great.

Glad you sorted that problem out for yourself.
As you propably already saw it takes the time from NTP-servers and first looks for those in your home network and if nut successful, take the NIST ntp server http://time.nist.gov. And for the conversion from UTC to whatever not CET you have to change the rules.

Regarding the dots: You can always change the speed with the second slider in the WebUI, but these changes are non-permanent.

The default refresh rate is set here so you could change that (lns. 316):

webserver.on("/0", HTTP_GET, {
LEDRefreshInterval = 50; // <- this setting
wallMode = 0;
manualBrightness = 1;
Serial.println("(Sunrise) Clock");

You could make the fading stronger oder replace it with FastLED.clear() (lns. 123):

else {
fadeToBlackBy( leds, NUM_LEDS, 16); // < here
if (manualBrightness < 0 || manualBrightness > 255) {

Maybe you then want to change the time the colon is displayed (LEDMatrixThings.h, lns. 117):

if (colon) {
if (second(t) % 6 == 0) { // <- make that “true” in any way you like
drawLetter(x - 1, y, ‘:’, color);
x += 4;

Hm, interestingly G+ always wants to strike out parts of my post.

Hey Mark, thanks for your detailed reply. I Did change the ledrefreshinterval i got as low as 5 and it seemed to stop working.

The slider in the gui does indeed work, but on the fastest setting it still seems to slow. im trying to get it close to a seconds indicator.

i did find the fade rate and reduced that a little…,

im looking at some diffusion to complete the build at least today. will have a little play again later with the settings…

thanks again mark

Yes, indeed: With too short time delays between calling the refresh function via the interrupt this program breaks. That’s why the minimum time delay you can set with the slider is 10 ms.

Something about watchdogs starting to bite, if too much time is spent in an interrupt routine.

I repaired some things (fire, upload, etc) and added a text input functionality