#include <Arduino.h>
#include <ESP32-HUB75-MatrixPanel-I2S-DMA.h>
#define R1 25
#define G1 26
#define B1 27
#define R2 14
#define G2 12
#define B2 13
#define A 23
#define B 19
#define C 5
#define D 17
#define E 18
#define LAT 4
#define OE 15
#define CLK 16
MatrixPanel_I2S_DMA *dma_display = nullptr;
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("BOOT");
HUB75_I2S_CFG mxconfig;
mxconfig.mx_width = 128;
mxconfig.mx_height = 64;
mxconfig.chain_length = 1;
mxconfig.gpio.r1 = R1;
mxconfig.gpio.g1 = G1;
mxconfig.gpio.b1 = B1;
mxconfig.gpio.r2 = R2;
mxconfig.gpio.g2 = G2;
mxconfig.gpio.b2 = B2;
mxconfig.gpio.a = A;
mxconfig.gpio.b = B;
mxconfig.gpio.c = C;
mxconfig.gpio.d = D;
mxconfig.gpio.e = E;
mxconfig.gpio.lat = LAT;
mxconfig.gpio.oe = OE;
mxconfig.gpio.clk = CLK;
dma_display = new MatrixPanel_I2S_DMA(mxconfig);
if (!dma_display->begin()) {
Serial.println("MATRIX BEGIN FAILED");
while (true) delay(1000);
}
Serial.println("MATRIX BEGIN OK");
dma_display->setBrightness8(120);
}
void loop() {
Serial.println("RED");
dma_display->fillScreenRGB888(255, 0, 0);
delay(1000);
Serial.println("GREEN");
dma_display->fillScreenRGB888(0, 255, 0);
delay(1000);
Serial.println("BLUE");
dma_display->fillScreenRGB888(0, 0, 255);
delay(1000);
Serial.println("WHITE");
dma_display->fillScreenRGB888(255, 255, 255);
delay(1000);
}