Closed marianomd closed 1 year ago
Good question. I never wrote support for ESP32-HUB75-MatrixPanel-DMA, mostly because I was using SmartMatrix and it worked well enough for me. At the time, ESP32-HUB75-MatrixPanel-DMA wan't as good and didn't support 3 chained panels, which I needed (it probably works today though) Could you let me know if ESP32-HUB75-MatrixPanel-DMA is actually better than SmartMatrix for you, and if so how?
Next, if using https://github.com/marcmerlin/SmartMatrix_GFX does not do the trick for you, and you need a ESP32-HUB75-MatrixPanel-DMA on top of Framebuffer_GFX, it wouldn't be very hard to write a wrapper for it.
If so, look at the README in https://github.com/marcmerlin/Framebuffer_GFX and the multiple glue drivers I've already written. I would pick either FastLED_ArduinoGFX_TFT or SmartMatrix::GFX and modify the 2 files to support ESP32-HUB75-MatrixPanel-DMA instead.
have a look at either https://github.com/marcmerlin/FastLED_ArduinoGFX_TFT/blob/a4d4909df127fffc8924c001a05564a1d05dc401/FastLED_ArduinoGFX_TFT.cpp#L40 or maybe https://github.com/marcmerlin/SmartMatrix_GFX/blob/3fe127f267b3b85b8a5b3c02335d584516c94d55/SmartMatrix_GFX.cpp#L14 which does nothing but pass a showprtr function pointer to framebuffer_gfx which gets defined by the caller, as per this example: https://github.com/marcmerlin/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos/blob/e97beb41a2b129ec0205a2bf689b4e63c30cec36/neomatrix_config.h#L451
Hi Marc, thanks a lot for the responses.
I wanted to use ESP32-HUB75-MatrixPanel-DMA because the SmartMatrix ESP32 port isn't complete and they recommend using the former to 'dramatically reduce the amount of ram needed'.
Finally I didn't need to write the adapter. I just removed the FastLED_NeoMatrix dependency and replaced it with MatrixPanel_I2S_DMA, enabling GFX_Root, and implemented or replaced the missing methods, for example XY(). Here is the code if you want to check it out.
Also made it work with esphome using https://github.com/TillFleisch/ESPHome-HUB75-MatrixDisplayWrapper and https://github.com/marianomd/EspHoMaTriXv2
Cheers Mariano
Cool, glad you got your setup working, and thanks for that ESP32 page that was written after I was running smartmatrix on ESP32 at 96x64 which indeed was more or less the max resolution you could get before running out of RAM Sounds like you are all set and indeed I did write FastLED_NeoMatrix to bring Adafruit::GFX support to FastLED (but I also included more APIs and support, like XY that you noticed), and ESP32-HUB75-MatrixPanel-DMA also added basic Adafruit::GFX support. It doesn't support as much as I do, but enough of the basics that I'm not surprised you got it working quickly enough
Hi!
I'm trying to port awtrix-light (https://github.com/Blueforcer/awtrix-light) to HUB75 panels, using https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA.
Awtrix-light uses FastLED_NeoMatrix, which in turn uses Framebuffer_GFX.
Does it make sense I add support for ESP32-HUB75-MatrixPanel-DMA to Framebuffer_GFX?
Thank you!