#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// Uncomment according to your hardware type
//#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW

// Defining size, and output pins
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 16 // Define the number of displays connected
#define CLK_PIN    18 // CLK or SCK
#define DATA_PIN   23 // DATA or MOSI
#define CS_PIN     15 // CS or SS
#define SPEED_TIME 70 // Speed of the transition
#define PAUSE_TIME  0
#define MAX_MESG   100

// Create a new instance of the MD_Parola class with hardware SPI connection
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

void setup() {
	// Intialize the object
	myDisplay.begin();

	// Set the intensity (brightness) of the display (0-15)
	myDisplay.setIntensity(15);

	// Clear the display
	myDisplay.displayClear();
	myDisplay.displayScroll ("Happy Engineer's Day to all Engineers", PA_CENTER, PA_SCROLL_LEFT, 30);
}

void loop() {
	if (myDisplay.displayAnimate()) {
    myDisplay.displayReset();
	}	
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
matrix1:V+
matrix1:GND
matrix1:DIN
matrix1:CS
matrix1:CLK
matrix1:V+.2
matrix1:GND.2
matrix1:DOUT
matrix1:CS.2
matrix1:CLK.2
matrix2:V+
matrix2:GND
matrix2:DIN
matrix2:CS
matrix2:CLK
matrix2:V+.2
matrix2:GND.2
matrix2:DOUT
matrix2:CS.2
matrix2:CLK.2
matrix3:V+
matrix3:GND
matrix3:DIN
matrix3:CS
matrix3:CLK
matrix3:V+.2
matrix3:GND.2
matrix3:DOUT
matrix3:CS.2
matrix3:CLK.2
matrix4:V+
matrix4:GND
matrix4:DIN
matrix4:CS
matrix4:CLK
matrix4:V+.2
matrix4:GND.2
matrix4:DOUT
matrix4:CS.2
matrix4:CLK.2