diff --git a/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp b/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp index 17a4562..129996c 100644 --- a/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp +++ b/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp @@ -651,7 +651,7 @@ void MatrixPanel_I2S_DMA::updateMatrixDMABuffer(uint8_t red, uint8_t green, uint */ void MatrixPanel_I2S_DMA::shiftDriver(const shift_driver _drv, const int dma_r1_pin, const int dma_g1_pin, const int dma_b1_pin, const int dma_r2_pin, const int dma_g2_pin, const int dma_b2_pin, const int dma_a_pin, const int dma_b_pin, const int dma_c_pin, const int dma_d_pin, const int dma_e_pin, const int dma_lat_pin, const int dma_oe_pin, const int dma_clk_pin){ switch (_drv){ - case ICN2038S: + case ICN2038S: case FM6124: case FM6126A: { diff --git a/ESP32-HUB75-MatrixPanel-I2S-DMA.h b/ESP32-HUB75-MatrixPanel-I2S-DMA.h index 1147368..3ed7c01 100644 --- a/ESP32-HUB75-MatrixPanel-I2S-DMA.h +++ b/ESP32-HUB75-MatrixPanel-I2S-DMA.h @@ -25,11 +25,12 @@ * */ #ifndef MATRIX_WIDTH - #define MATRIX_WIDTH 64 // CHANGE THIS VALUE IF CHAINING + #define MATRIX_WIDTH 64 // Single panel of 64 pixel width + // #define MATRIX_WIDTH 64*4 // Example of chaining four (4) panels. Need to multiply the width. #endif #ifndef MATRIX_HEIGHT - #define MATRIX_HEIGHT 32 // CHANGE THIS VALUE ONLY IF USING 64px HIGH panel with E PIN + #define MATRIX_HEIGHT 32 // CHANGE THIS VALUE to 64 IF USING 64px HIGH panel(s) with E PIN #endif /* Best to keep these values as is. */ @@ -497,4 +498,4 @@ inline void MatrixPanel_I2S_DMA::drawIcon (int *ico, int16_t x, int16_t y, int16 } -#endif \ No newline at end of file +#endif diff --git a/README.md b/README.md index d9b7f3d..1956d12 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ As a result, this library can theoretically provide ~16-24 bit colour, at variou ## Panels Supported * 64x32 pixel 1/16 Scan LED Matrix 'Indoor' Panel, such as this [typical RGB panel available for purchase](https://www.aliexpress.com/item/256-128mm-64-32-pixels-1-16-Scan-Indoor-3in1-SMD2121-RGB-full-color-P4-led/32810362851.html). * 64x64 pixel 1/32 Scan LED Matrix 'Indoor' Panel. -* [FM6126](FM6126A.md) panels based on [this example](/examples/FM6126Panel) will also work with the correct initialisation. +* [FM6126](FM6126A.md) / ICN2038S panels based on [this example](/examples/FM6126Panel) will also work with the correct initialisation. ## Panels Not Supported * 1/8 Scan LED Matrix Panels are not supported, please use an alternative library if you bought one of these. diff --git a/examples/ChainedPanels/ChainedPanels.ino b/examples/ChainedPanels/ChainedPanels.ino index 55c4b02..a45f9c1 100644 --- a/examples/ChainedPanels/ChainedPanels.ino +++ b/examples/ChainedPanels/ChainedPanels.ino @@ -5,10 +5,13 @@ 1) In ESP32-HUB75-MatrixPanel-I2S-DMA.h: - - Set the MATRIX_HEIGHT to be the y resolution of the physical chained - panels in a line (if the panels are 32 x 16, set it to be 16) + - Set the MATRIX_HEIGHT to be the y resolution of a physical chained + panels in the line (as panels each must be of the same dimensions). + i.e. If you are chaining 32px 'high' panels, then set MATRIX_HEIGHT to 32. + - Set the MATRIX_WIDTH to be the sum of the x resolution of all the physical - chained panels (i.e. If you have 4 x (32px w x 16px h) panels, 32x4 = 128) + chained panels (i.e. If you have 4 (four) x (64px w x 32px h) panels, then 64x4 = 256) + i.e. The total pixel 'width' of all the chained panels. 2) In the sketch (i.e. this example): @@ -241,4 +244,4 @@ void setup() { void loop() { -} // end loop \ No newline at end of file +} // end loop