vgottselig / esp32-rgb-matrix-display Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Hi,
Have you testing with many 32x32 panels because I don't see in program where we can setup number of it ?
Sincerely
Eric
Hi, i started a proyect where i send data to esp over wifi, but when i reveive date into my esp the display freeze, Can Run a "on-demand" complete matrix update an wait for new data and re-update the matrix, because i dont kno who meke it because the refresh function is into the loop and i cant detect finish send all screen matrix data to finish
Hello,
I tried your demo and it works except that only red LEDs are working, no other colors. I has changed the pin assignments as I use a different wiring PCB from this project.(https://hackaday.io/project/28945-iot-rgb-led-matrix-controller-esp32). I'm using a standard HUB75 32x64 RGB pixel display. I'm not sure if it is a wiring, software or hardware (display defective?) issue.
Any ideas?
Hope this is simple.
I have the driver working with the 64x32 P3 panel HUB75E 6124 chipset.
This works great thanks VGottselig :-)
I am trying to display an array as follows
#define batt_icon_w 16
#define batt_icon_h 16
static uint8_t batt_icon_bits[] = PROGMEM {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x60, 0x06, 0x20, 0x04,
0x20, 0x04, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07,
0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
I have tried this line to display the bitmap
matrix.drawBitmap(0, 0, batt_icon_bits, batt_icon_h , batt_icon_w , matrix.AdafruitColor(1, 1, 1));
but not working. I assume the format of the line is incorrect but cannot work it out.
Can anyone help with the correct lineage should be?
Does the following work if so has anyone got examples please.
drawXBitmap
drawRGBBitmap
drawGrayscaleBitmap
Thanks
I downloaded and the Demo sketch work pretty good, but I still don't understand how the library works, I mean, there's a lot of code on the demo sketch and I tried to remove and test, but at some point it didn't work anymore. I just want to show some values on the display, adjusting the brightness, color and size of it. There's any simple way to do it or it's already simple and I don't understood ?
Hello,
did anyone tried to use this library and attaching I2C sensors to the ESP32? I assume that there will be timing issues on the I2C bus.
Thanks,
Ronny
Hi Vitali,
excellent work again with this library, thanks a lot for sharing.
I got the four led panel for 64x64, I was layout it for 128x128(Row : 64, Col : 255).
I got the flicker for the test result.
https://youtu.be/9yT2LGfrr5w
Is it possible to work without flicker for 4096 colors?
I have checked the issue for a whole week, hope you can help on figuring out the problem, thanks.
Best Regards,
YY
I found this in the ESP32RGBmatrixPanel.h:
#define COLUMNS 64
#define ROWS 32
How can I overwrite this before initializing (ESP32RGBmatrixPanel matrix;) in my script (for 32x32)?
Or can I only set this in the ESP32RGBmatrixPanel.h?
My top left is x=32 y=0.
The lower half of the screen is bugged through all the demos (looks like random memory?)
I've only changed
#define COLUMNS 32
#define ROWS 16
Interestingly enough, changing ROWS to 32 fills the whole display - but of course cuts/renders graphics out side of screen
Here's a video:
video_2018-08-20_00-02-16.zip
The connector is as follows:
R1 | G1
B1 | GND
R2 | G2
B2 | GND
A | B
C | NC
CLK | STB/LAT
OE | GND
I purchased it from here:
https://www.aliexpress.com/item/Free-shipping-2016-Coreman-192X96mm-32X16-pixels-p6-led-display-module-Whole-seller-Factory-Price-p6/1000001365724.html
Originally posted by @paccerdk in #4 (comment)
Hi Vitali, excellent work again with this library, thanks a lot for sharing.
I got it to work on a 32x32 panel with 1:8 scan rate, after a few modifications.
However, when i use the max brightness (10), the panel draws less power than expected, about 1/3 of what i got with a modified version of your older ESP8266 library.
I think this may be related to the timing of the displayUpdateTimer; your demo has it at 2 (as in the ESP8266 example also) but i seem to understand this interval is defined in microseconds rather than milliseconds, so 2us is much too fast i guess. When i change it to 10, the power more than doubles.
timerAlarmWrite(displayUpdateTimer, 10, true);
I have also added a counter to check how long a full refresh takes, and with the original 2us(?) i get 132Hz, and with 10us i get 65Hz. Any higher interval gives flicker; although the power still increases.
I'm trying to understand how the update part of the library works; could you explain what the purpose is of the loops/loopNr/on()?
Thanks a lot
can u add a start and stop function in this library?, like matrix.begin and matrix.end function to stop displaying
Hello !
I am looking for a library capable of driving four different 64x32 1/8 scan P5 SMD 2727 Panels. That means 8192 LEDs.
I have tried using SmartMatrix but I couldn't drive those four panels because it used up to much RAM.
What the line "#include "D:\OneDrive\Projekte\Hardware\Arduino\wifisettings\wifisettings.h"" is supposed to be?
Also having "/esp32/esp32-hal-gpio.h: No such file or directory" if the "wifisettings.h" is commented.
Can you explain how to fix?
i did not get the example to run together with wifi, OTA etc.. timerAttachInterrupt blocks wifi.
My solution:
TaskHandle_t xHandleA; //for Stop Task
TaskHandle_t xHandleB; //for Stop Task
void setup() {
//other Stuff
//..
//http://esp-idf.readthedocs.io/en/latest/api-reference/system/freertos.html
//https://techtutorialsx.com/2017/05/09/esp32-running-code-on-a-specific-core/
//http://hit-karlsruhe.de/hit-info/info-ws17/Drehteller_Revisited/0403Softwaredoku.html
//start task on CPU 1
xTaskCreatePinnedToCore(renderTask,"renderTask", 10000,NULL,2 | portPRIVILEGE_BIT,&xHandleA, 1);
xTaskCreatePinnedToCore(drawTask,"drawTask", 10000,NULL,2 | portPRIVILEGE_BIT,&xHandleB, 0);
}
void drawTask( void * pvParameters ){
while(true){
String s="Hello";
matrix.setBrightness(10);//0..10
matrix.setTextWrap(false);
matrix.setTextSize(1);
matrix.black();
matrix.setCursor(0, 0);
matrix.setTextColor(matrix.AdafruitColor(0,0,255));
matrix.println(s);
matrix.setTextColor(matrix.AdafruitColor(255,0,0));
matrix.setCursor(16, 10);
matrix.println(s);
delay(40);//25fps
}
void renderTask( void * pvParameters ){
while(true){ //10x pro 1ms
matrix.update();
matrix.update();
matrix.update();
matrix.update();
matrix.update();
matrix.update();
matrix.update();
matrix.update();
matrix.update();
matrix.update();
delay(1);//1 ms
// yield(); //block wifi :-/
}
}
void loop() {//other things
handleSerial();
if(wifiaktiv){
ArduinoOTA.handle();
server.handleClient();
handleTime();
}
}
...
stop Task when upload OTA:
void stoptasks(){
vTaskDelete(xHandleB);
vTaskDelete(xHandleA);
Serial.println("Task stopped");
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.