-
Notifications
You must be signed in to change notification settings - Fork 186
Description
Hello,
I know that a similar problem has already been addressed and that thread is now closed. Unfortunately, it didn't help me and I'm still in the same situation... I can't light up a single diode, not even a fragment of light. The panel is completely "dead."
The communication interface is a classic HUB75, and only the addressing pins A and B are listed on the silk screen—the others are GND. I am using ESP32 DevKit with ESP32 WROOM 32. I have already tried the HUB75-I2S-DMA library, but without success. I then switched to the PxMatrix library, which is supposed to support 1/2 scan. However, even after reading through the entire library and threads dealing with it, I was again unsuccessful. Could someone please advise me where the problem might be? Has anyone encountered a similar problem? I would be very grateful for any advice. I am attaching the data sheets for the LED drivers that are on the panel and the data sheet for the panel itself and test code. Thank you very much for any response.
Datasheet of Led Drivers:
ICND1065_datasheet_CN_2022_V1.0.pdf
Datasheet of Led Panel:
P10-Outdoor-SMD3535-2S-320x160mm-LED-Module-Specification-0413.pdf
`#include <Arduino.h>
#include <SPI.h>
#include <PxMatrix.h>
// --- NASTAVENÍ PINŮ (ESP32) ---
#define P_LAT 22
#define P_OE 16
#define P_A 19
#define P_B 21 // B musí být definováno, i když u 1/2 scanu moc nedělá
// R1 (Data) GPIO 13
// CLK (Clock) GPIO 14
// Definice pro JEDEN panel 32x16
PxMATRIX display(32, 16, P_LAT, P_OE, P_A, P_B);
// Nastavení časovače pro ESP32
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
void IRAM_ATTR display_updater(){
portENTER_CRITICAL_ISR(&timerMux);
display.display(30); // Délka svitu
portEXIT_CRITICAL_ISR(&timerMux);
}
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("--- START: 1 PANEL 32x16 (ICND1065) ---");
// ! DŮLEŽITÉ ! - Tímto přinutíme ESP32 používat piny 13 a 14
// SPI.begin(SCK, MISO, MOSI, SS) -> (14, -1, 13, -1)
SPI.begin(14, -1, 13, -1);
// Nastavení typu čipu (ICND1065 vyžaduje režim FM6124 nebo FM6126)
//display.setDriverChip(FM6124);
// Inicializace panelu - parametr 2 je pro 1/2 scan
display.begin(2);
// Další nastavení
display.setMuxPattern(BINARY);
display.setScanPattern(ZAGGIZ);
display.setBrightness(128); // Střední jas
// Spuštění časovače (pro obnovování obrazu na pozadí)
timer = timerBegin(0, 80, true);
timerAttachInterrupt(timer, &display_updater, true);
timerAlarmWrite(timer, 2000, true); // 2ms refresh
timerAlarmEnable(timer);
Serial.println("Nastaveno. Změř piny 13 a 14.");
}
void loop() {
// 1. Vyčistit displej
display.clearDisplay();
// 2. Nakreslit červený kříž přes celý panel
display.drawLine(0, 0, 31, 15, display.color565(255, 0, 0));
display.drawLine(31, 0, 0, 15, display.color565(255, 0, 0));
// 3. Modrý rámeček okolo
display.drawRect(0, 0, 32, 16, display.color565(0, 0, 255));
// 4. Bílý text
display.setTextColor(display.color565(255, 255, 255));
display.setCursor(2, 4);
display.print("TEST");
delay(500);
}`