@naivekook
I remembered that I have a few '7219 boards, so I pulled one out and soldered the pins to it and checked it out with the Arduino UNO.
That went OK (except how I reckon where Row 0 and Col 0 are vs. the sketch & the boards implementation/s).
I made some pins changes and uploaded to a NodeMCU and. . . it tanked.
I noticed the 'D4' LED blinking periodically → Not Good.
Enabling the SerialMonitor I saw that a Crash Log gets knocked out (wdt reset) and, further, determined that it never gets into setup().
LedControl.h may not be "ESP Ready".
#include <LedControl.h>
//#include <Arduino.h>
const byte din = 14;
const byte cs = 13;
const byte clk = 12;
int col;
int row;
LedControl lc=LedControl(12,10,11,1); // din, clk, load_cs
/* we always wait a bit between updates of the display */
unsigned long delaytime = 1000;
unsigned long delaytime2 = 50;
byte a[5]={B01111110,B00010001,B00010001,B00010001,B01111110};
byte r[5]={B01111100,B00001000,B00000100,B00000100,B00001000};
byte d[5]={B00111000,B01000100,B01000100,B01001000,B01111111};
byte u[5]={B00111100,B01000000,B01000000,B00100000,B01111100};
byte i[5]={B00000000,B01000100,B01111101,B01000000,B00000000};
byte n[5]={B01111100,B00001000,B00000100,B00000100,B01111000};
byte o[5]={B00111000,B01000100,B01000100,B01000100,B00111000};
void setup()
{
//Serial.begin(115200);
//delay(2000);
//Serial.println("ok ok");
lc.shutdown(0,false); // wake-up
/* Set the brightness to a medium values */
lc.setIntensity(0,2);
/* and clear the display */
lc.clearDisplay(0);
//Serial.println("lv setup");
}
void writeArduinoOnMatrix()
{
//Serial.println("wAOM");
/* now display them one by one with a small delay */
lc.setRow(0,4,a[4]);
lc.setRow(0,3,a[3]);
lc.setRow(0,2,a[2]);
lc.setRow(0,1,a[1]);
lc.setRow(0,0,a[0]);
delay(delaytime);
lc.setRow(0,4,r[4]);
lc.setRow(0,3,r[3]);
lc.setRow(0,2,r[2]);
lc.setRow(0,1,r[1]);
lc.setRow(0,0,r[0]);
delay(delaytime);
lc.setRow(0,4,d[4]);
lc.setRow(0,3,d[3]);
lc.setRow(0,2,d[2]);
lc.setRow(0,1,d[1]);
lc.setRow(0,0,d[0]);
delay(delaytime);
lc.setRow(0,4,u[4]);
lc.setRow(0,3,u[3]);
lc.setRow(0,2,u[2]);
lc.setRow(0,1,u[1]);
lc.setRow(0,0,u[0]);
delay(delaytime);
lc.setRow(0,4,i[4]);
lc.setRow(0,3,i[3]);
lc.setRow(0,2,i[2]);
lc.setRow(0,1,i[1]);
lc.setRow(0,0,i[0]);
delay(delaytime);
lc.setRow(0,4,n[4]);
lc.setRow(0,3,n[3]);
lc.setRow(0,2,n[2]);
lc.setRow(0,1,n[1]);
lc.setRow(0,0,n[0]);
delay(delaytime);
lc.setRow(0,4,o[4]);
lc.setRow(0,3,o[3]);
lc.setRow(0,2,o[2]);
lc.setRow(0,1,o[1]);
lc.setRow(0,0,o[0]);
delay(delaytime);
lc.setRow(0,4,0);
lc.setRow(0,3,0);
lc.setRow(0,2,0);
lc.setRow(0,1,0);
lc.setRow(0,0,0);
delay(delaytime);
}
void rows()
{
for(row=0;row<8;row++)
{
delay(delaytime2);
lc.setRow(0,row,B10100000);
delay(delaytime2);
lc.setRow(0,row,(byte)0);
for(int i=0;i<row;i++)
{
delay(delaytime2);
lc.setRow(0,row,B10100000);
delay(delaytime2);
lc.setRow(0,row,(byte)0);
}
}
}
void columns()
{
for(col=0;col<8;col++)
{
delay(delaytime2);
lc.setColumn(0,col,B10100000);
delay(delaytime2);
lc.setColumn(0,col,(byte)0);
for(int i=0;i<col;i++)
{
delay(delaytime2);
lc.setColumn(0,col,B10100000);
delay(delaytime2);
lc.setColumn(0,col,(byte)0);
}
}
}
void single()
{
for(row=0;row<8;row++)
{
for(col=0;col<8;col++)
{
delay(delaytime2);
lc.setLed(0,row,col,true);
delay(delaytime2);
for(int i=0;i<col;i++)
{
lc.setLed(0,row,col,false);
delay(delaytime2);
lc.setLed(0,row,col,true);
delay(delaytime2);
}
}
}
}
void eachdot ()
{
//Serial.println("eachdot");
for (row = 0; row < 8; row ++)
{
for(col = 0; col < 8; col ++)
{
lc.setLed(0,row,col,true);
delay(delaytime2);
lc.setLed(0,row,col,false);
}
}
}
void loop()
{
lc.setIntensity(0,2);
writeArduinoOnMatrix();
}