Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help Needed with PxMatrix Library for P10 RGB Panel (32x16 SMD3535 1/4 SCAN) #357

Open
ralf2025 opened this issue Jan 12, 2025 · 0 comments

Comments

@ralf2025
Copy link

Hi, I’ve been trying to use the PxMatrix library with a P10 RGB panel (32x16, SMD3535, 1/4 SCAN), but I haven’t been able to make it work properly.

I’ve attached my code and a video showing the results I’m getting. I’d really appreciate any guidance or suggestions you could provide to help me resolve the issue.

Thank you so much for your time and for creating such a great library!

Best regards,

last version of PxMatrix (1.8.2) and ESP32-WROOM-32
#include <PxMatrix.h>

#ifdef ESP32

#define P_LAT 22
#define P_A 19
#define P_B 23
#define P_C 18
#define P_D 5
#define P_E 15
#define P_OE 16
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;

#endif

#ifdef ESP8266

#include <Ticker.h>
Ticker display_ticker;
#define P_LAT 16
#define P_A 5
#define P_B 4
#define P_C 15
#define P_D 12
#define P_E 0
#define P_OE 2

#endif
// Pins for LED MATRIX

PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B,P_C);
//PxMATRIX display(64,32,P_LAT, P_OE,P_A,P_B,P_C,P_D);
//PxMATRIX display(64,64,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E);

#ifdef ESP8266
// ISR for display refresh
void display_updater()
{
display.displayTestPattern(70);
// display.displayTestPixel(70);
//display.display(70);
}
#endif

#ifdef ESP32
void IRAM_ATTR display_updater(){
// Increment the counter and set the time of ISR
portENTER_CRITICAL_ISR(&timerMux);
//isplay.display(70);
display.displayTestPixel(70);
portEXIT_CRITICAL_ISR(&timerMux);
}
#endif

uint16_t myCYAN = display.color565(0, 255, 255);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
display.begin(4);
display.flushDisplay();
display.setTextColor(myCYAN);
display.setCursor(2,0);
display.print("Pixel");
Serial.println("hello");

#ifdef ESP8266
display_ticker.attach(0.004, display_updater);
#endif

#ifdef ESP32
timer = timerBegin(0, 80, true);
timerAttachInterrupt(timer, &display_updater, true);
timerAlarmWrite(timer, 4000, true);
timerAlarmEnable(timer);
#endif

delay(1000);
}

void loop() {

delay(100);

}

result: https://www.youtube.com/watch?v=K9ygWgYvg-Y

2
1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant