-
Notifications
You must be signed in to change notification settings - Fork 190
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
Problem with 32x32 RGB #591
Comments
You first want to get the pixel mapping correct. |
I managed to sequentially fill the led matrix horizontally and then vertically. But for this I used the remap function for X and Y. Link my video: https://youtu.be/yloUcVTsIZk `#include <Arduino.h> #ifdef IDF_BUILD #ifdef VIRTUAL_PANE /* Default library pin configuration for the reference // Configure for your panel(s) as appropriate! #define PANE_WIDTH PANEL_WIDTH * PANELS_NUMBER MatrixPanel_I2S_DMA *dma_display = nullptr; int remap_x(int x1){ // 0 pixel <= x < 32 pixel // 32 pixel <=x < 63 pixel } //_______________________________________________ Serial.begin(115200); HUB75_I2S_CFG::i2s_pins _pins={R1, G1, B1, R2, G2, B2, CH_A, CH_B, CH_C, CH_D, CH_E, LAT, OE, CLK}; dma_display = new MatrixPanel_I2S_DMA(mxconfig); //======================================================================================== dma_display->clearScreen(); //draw pixel to pixel vertical Serial.println("draw line "); dma_display->clearScreen(); delay(2000); |
I have a 32x32 RGB matrix model "P6(3535)32x32-8S-V1.6" HUB75 interface, made on 24 ICN5020B chips, one 74N138 decoder whose output goes to 16 chips 4953 (2 pieces of P-Channel MOSFET in one package).
It was not possible to draw a test line diagonally or pixel to pixel fill the matrix. By searching, I realized that the matrix is addressed as 64x16.
In order to fill the matrix point by point, I wrote a program that selects coordinates according to the picture.
In the picture, arrows show the electrical connection of the ICN5020B chips blocks (UB1, UR1, UG1, marking of chip on the matrix board)
The configuration I used is below:
`
// Configure for your panel(s) as appropriate!
#define PIN_E 32
#define PANEL_WIDTH 64
#define PANEL_HEIGHT 16 // Panel height of 64 will required PIN_E to be defined.
#ifdef VIRTUAL_PANE
#define PANELS_NUMBER 1 // Number of chained panels, if just a single panel, obviously set to 1
#else
#define PANELS_NUMBER 1 //2 // Number of chained panels, if just a single panel, obviously set to 1
#endif
#define PANE_WIDTH PANEL_WIDTH * PANELS_NUMBER
#define PANE_HEIGHT PANEL_HEIGHT
#define NUM_LEDS PANE_WIDTH*PANE_HEIGHT
MatrixPanel_I2S_DMA *dma_display = nullptr;
uint8_t color1 = 0;
void setup(){
Serial.begin(115200);
// Serial.println("Starting pattern test...");
HUB75_I2S_CFG::i2s_pins _pins={R1, G1, B1, R2, G2, B2, CH_A, CH_B, CH_C, CH_D, CH_E, LAT, OE, CLK};
HUB75_I2S_CFG mxconfig(
PANE_WIDTH,
PANE_HEIGHT,
PANELS_NUMBER,
_pins
);
mxconfig.latch_blanking=1;
mxconfig.clkphase = false; // Change this if you see pixels showing up shifted wrongly by one column the left or right.
// OK, now we can create our matrix object
mxconfig.i2sspeed =HUB75_I2S_CFG::HZ_10M;
dma_display = new MatrixPanel_I2S_DMA(mxconfig);
dma_display->begin();
dma_display ->setBrightness8(100);`
How do I configure it so that I can fully use the library?
The text was updated successfully, but these errors were encountered: