Replies: 10 comments 113 replies
-
This is VERY interesting! I have just returned some modules with this type of driver fitted. I shall have to try this library out when I get a chance. |
Beta Was this translation helpful? Give feedback.
-
So the ICN2053 generates the Binary Code Modulation (https://hackaday.com/tag/binary-code-modulation/) for each LED? And you don't have to keep sending it data to display anything on screen? That's a fundamental change to what this library was designed for (which was the dumb HUB75 panels that need to be driven with BCM). Can look to include, but I think a seperate codebase is probably the best bet for the moment. |
Beta Was this translation helpful? Give feedback.
-
Yes, once you sent a picture and you only switch the addresses of the lines via DMA. PWM brightness modulation is built into the drivers. |
Beta Was this translation helpful? Give feedback.
-
The driver ICs have 16k memory built in and the GCLK is used to increment the address of memory that is output to the LED drivers. This means that much higher refresh rates are possible as the whole image doesn't need to be sent continously. A major advantage is that slower CPUs can be used to perform the scanning as they only have to change the row data and provide the sync signals to the ICN2053 ICs for scanning to take place, once the image has been sent that is. |
Beta Was this translation helpful? Give feedback.
-
Moved the possibilities of the virtual matrix inside the main matrix (virtual pixel redirection is enabled when there are several panels in the vertical or when the matrix is rotated). Added rotations by 90, 180 and 270 degrees, mirroring. I ordered the names so as not to get confused when expanding the code - therefore I created a new repository https://github.com/LAutour/ESP32-HUB75-MatrixPanel-DMA-ICN2053 |
Beta Was this translation helpful? Give feedback.
-
@LAutour Do you use the SRAM or not? There was another library for the ICN2053, but they did not use the SRAM. They just used it as hardware PWM driver without SRAM. The chain length and/or refresh rate is reduced by this. (Should still be better than BCM for the same color depth. BCM actually wins at low color depth.) |
Beta Was this translation helpful? Give feedback.
-
Ok, but where I could obtain the information to understand this? |
Beta Was this translation helpful? Give feedback.
-
This maybe doesn't fully belong here, but I've got my hands on hundereds of panels using MBI5153 (similar to ICN2053 from what I understand) and am struggling to get them to work. They were about to get binned but took them in just before. |
Beta Was this translation helpful? Give feedback.
-
The price difference between high refresh and legacy modules have vanished very recently. Soon legacy modules will be obsolete and we will have to hunt pawn shops to find a working module. I was sent a module with icnd2153 by "mistake", does anybody have an idea how to make it work? |
Beta Was this translation helpful? Give feedback.
-
Hi @LAutour I am in a Project with ESP32 and Matrix LED with ICND2153, I need help and advice, are you available? i can pay you a fee |
Beta Was this translation helpful? Give feedback.
-
In them, data transfer is divided into: transfer of control data, data of pixels, switching of memory buffers (double buffering) and support for switching lines of the built-in memory when the image does not change (generally, line switching occurs in all buffers). Each transmission has its own DMA buffer. The CPU intervenes in the DMA only when it needs to transfer another buffer, that is, when sending frame data to driver memory.
Of the problems, this is a large amount of memory per DMA line, since the full length of the driver (16 bits) is sent to the color of each pixel. A full screen buffer in DMA RAM may simply not fit. But since the drivers have a built-in double buffer, it is possible to transfer only a few lines through the DMA buffer, if necessary filling the DMA buffer (with the help of the CPU, but for a limited time) with data from the frame buffer located in any non-DMA memory of the microcontroller, and any color depth per pixel .
Of the pluses, we get a very high screen refresh rate of up to several kHz, since it depends only on the number of lines, but not on their length. And the periodic transmission of control commands for drivers through the DMA buffer provides protection against failures of the LED panels themselves.
Implementation (interface compatible with ESP32-HUB75-MatrixPanel-I2S-DMA except initialization, support for shift drivers removed):
https://github.com/LAutour/ESP32-HUB75-MatrixPanel-I2S-DMA-icn2053
Beta Was this translation helpful? Give feedback.
All reactions