im triyng to chain 9 panels (192*192 pixels) hub75 6124 controller with esp32, is possible ? thanks in advance(the panel are P3 192 mm * 192 mm)
I think that’s more than the ESP32 can handle, but maybe it can with some lower quality settings. The Teensy 4 can handle that number of pixels. You can always test even with just one panel in hand, by changing the settings to the dimensions you want to drive and see if the quality is high enough looking at the one panel
thanks louis by now all the gifs of 64x64 are ok but I think memory will run out with 6 gifs
you know how to attach a sd card reader ? to put all load on card not in esp32
ESP32 will only go up to about 128x64. You can store the GIFS in flash and that will not impact the library which needs main DMA memory.
If you want to go higher res, you likely want a rPi: Marc's Blog: arduino - RGB Panels, from 192x80, to 384x192, to 384x256 and maybe not much beyond
although with a teensy 4.0 you can maybe reach 192x192 barely (although it would be slow and look bad due to low refresh rate)
Raspberry Pico board (rp2040) can run up to 16 modules of 64x32 pixels (so 256x128 in total), but with 16bit colour depth (Adafruit format). Refresh rate was about 80 fps.
Theoretically RP2040 can work with two such channels in parallel, so the result can be two times more, but I didn’t try it.
the pico is not that fast, I use the small rpi3 board, it’s bigger than a teensy, but small enough and the same size than the electrodragon board with 3 parallel outputs
I wrote about what I tried myself…
RP2040 has a very important advantage - a built-in PIO machine, allowing it to execute processes independently of the main core.
You can run Pico with two parallel outputs (Pico would run even three, but there are not enough pins for this)
on a teensy 4 I have been happy running with up to 128 x 192 but beyond that, it runs out of memory.
Hi there,
I just found this forum when I was searching this topic.
I am working on driving 16 64x64 panels, and am currently doing this with four Interstate75W (from Pimoroni) which are basically PicoW with nice plugs for the panels. Works nicely.
Now, I am already programming my stuff at C level, so I started looking at the hub75 driver Pimoroni uses - it works a bit differently from the one that come with the Pico SDK, including a slightly different pio code.
The thing is: I can read the code but I have so far not made the effort to read the specs for driving the hub75 panels, and so it’s still a mystery to me how the chaining works. And I want to get my project finished in 4 days, so I do not really have the time to dig into that right now.
But since you wrote that you know that the Pico can drive more than 4 64x64 panels, I guess that this will need a special pio programming and matching C code. Do you have something to share in that regard?
What’s the downside of it? If I understand the other comments correctly, it means a reduction of bit depth for the pixel values, because the data has to be compress more?
Thomas
Hi
My code is available in github:
For RP2040 HUB75 driver see DMD_RGB.h and DMD_RGB.cpp files.
Yes, my library uses 4/4/4 color values, compatible with Adafruit GFX graphic engine.
However, even with such a reduced color space, I doubt that my code would be able to address 16 64x64 panels. The maximum I tried was 16 64x32 panels (a twice less than your size) and this size already reduced the refresh rate to about 60 FPS.
My library supports an even lower color field, such as 1-bit color - convenient for signs and scrolling texts. Your screen will definitely work in single-bit color
The Interstate75 hard- and software currently drives up to 4 64x64 panels. If I can drive 8 of them with one Pico, that would also half the amount of Picos I have to handle. I don’t expect to run all 16 from a single Pico, but your code will help me regardless. Many thanks for sharing.
You are welcome.
The Pico PIO code is in the dmd_out.pio.h file.
If you have any questions, write here or open an issue in the repo on GitHub