mrcodetastic / ESP32-HUB75-MatrixPanel-DMA

An Adafruit GFX Compatible Library for the ESP32, ESP32-S2, ESP32-S3 to drive HUB75 LED matrix panels using DMA for high refresh rates. Supports panel chaining.
MIT License
930 stars 205 forks source link

Example of using multiple panels in a non standard layout #26

Closed witnessmenow closed 3 years ago

witnessmenow commented 4 years ago

Hello,

First, thanks a lot of the library, it is working great! Much appreciated.

I have made a shield for using this library with the D1 mini style ESP32 board (if you want one @mrfaptastic , I would be more than happy to donate one) and someone wanted to arrange their panels vertically rather than horizontally and I came up with this fairly hacky, but very simple solution that I wanted to share.

https://github.com/witnessmenow/ESP32-i2s-Matrix-Shield/tree/master/examples/MultiplePanelVirtualScreenPatternPlasma

I'm creating a virtual display using AdafruitGFX where the user configures how their panels are laid out and it will look after the mapping of the pixels for them. A reference to this library is passed into the virtual displays constructor. I've implemented the same virtual calls as this library so you should be able to just swap out the matrix calls with the virtual display.

It should be flexible enough to be used with panels arranged in rows and columns too. There is possibly a better way of doing this, but this was one idea I had that I thought would be really simple for end users to use.

I noticed earlier that you updated to GFX, I haven't got a chance to try that out instead with the virtual display, its still using AdafruitGFX.

The example linked is patternPlasma, but I also tried it out on Aurora and it worked fine too. (I only have two panels though)

Just as a BTW, Aurora was running out of memory for me originally, but I noticed in #23 that you had mentioned that you updated some things to free up some, so I updated to version from about 8 hours ago (I see you have updated since!) and now it's working perfectly.

mrcodetastic commented 3 years ago

Closing this issue as with Kosso's use of the VirtualDisplay library it's clearly proven to be working.

Removed a few comments in this thread which leaked personal details / chat.

mrcodetastic commented 3 years ago

@Galaxy-Man - FYI - As part of testing a new development branch, I have finally chained up the 12 x 64x32 panels of different types and it is working flawlessly. Managed to test this off one lone USB power pack.

IMG_20210208_214900

mrcodetastic commented 3 years ago

@vortigont - The library changes work a treat, only needed to change:

#define NUM_ROWS 3 // Number of rows of chained INDIVIDUAL PANELS
#define NUM_COLS 4 // Number of INDIVIDUAL PANELS per ROW

In the ChainedPanels sketch and upload!! No need to hack the library itself anymore with the runtime memory allocation. Fantastic work.

Galaxy-Man commented 3 years ago

Hey, how are you 😊 Hope you are keeping well?

That is brilliant news getting all 12 working, so obvious question where is the limit, memory or panels? Would you like more panels to try, and may be bigger PSU?

I have ordered late Dec from China more panels but not arrived yet ☹

I have done very little on any Arduino stuff other than look at the Teensy with a mate who programs it in ASM. I wish I had more time, work is priority during Covid.

I read you were venturing into Android, how’s that working out? Have you tried the NDK yet?

Very impressed with your work quality and speed, some where along the way you should make money from this, I hope you are.

vortigont commented 3 years ago

Those 12 looks awesome! Not even a glitch! :) So it makes it what... 32x64x12, right? Gotta go and throw out of the window my old tv panel... ha-ha :))))

mrcodetastic commented 3 years ago

Hey, how are you 😊 Hope you are keeping well? That is brilliant news getting all 12 working, so obvious question where is the limit, memory or panels? Would you like more panels to try, and may be bigger PSU?

Hi @Galaxy-Man. I am good thanks, thanks for asking - keeping as sane as one can during Covid. Luckily there's always a bug to fix or something to code to keep one entertained. Glad to hear you're well, if not busy.

Ideally I'd like to try and get this to work as a 4x4 grid (256x128) @ 8bpp color, so 16 panels in total - but I think that might be a tall ask given the memory required, and perhaps, the 2-3meters of chaining required. Always happy to try with a couple more panels.

Have you tried the NDK yet? Very impressed with your work quality and speed, some where along the way you should make money from this, I hope you are.

My entry into Android coding was out of sheer boredom - only Java/Kotlin based stuff at the moment and for my own learning. I don't make any money off this or other projects - the goal is to learn and have fun above all else. Others (such as @vortigont @witnessmenow) have made major contributions to this project which keeps the wheels turning!

Those 12 looks awesome! Not even a glitch! :) So it makes it what... 32x64x12, right? Gotta go and throw out of the window my old tv panel... ha-ha :))))

Correct! I tried the current vs. dev branch and both seemed to 'KABOOM' :) around 15 panels though.

Archer-1983 commented 2 years ago

Hello,

First, thanks a lot of the library, it is working great! Much appreciated.

I have made a shield for using this library with the D1 mini style ESP32 board (if you want one @mrfaptastic , I would be more than happy to donate one) and someone wanted to arrange their panels vertically rather than horizontally and I came up with this fairly hacky, but very simple solution that I wanted to share.

https://github.com/witnessmenow/ESP32-i2s-Matrix-Shield/tree/master/examples/MultiplePanelVirtualScreenPatternPlasma

I'm creating a virtual display using AdafruitGFX where the user configures how their panels are laid out and it will look after the mapping of the pixels for them. A reference to this library is passed into the virtual displays constructor. I've implemented the same virtual calls as this library so you should be able to just swap out the matrix calls with the virtual display.

It should be flexible enough to be used with panels arranged in rows and columns too. There is possibly a better way of doing this, but this was one idea I had that I thought would be really simple for end users to use.

I noticed earlier that you updated to GFX, I haven't got a chance to try that out instead with the virtual display, its still using AdafruitGFX.

The example linked is patternPlasma, but I also tried it out on Aurora and it worked fine too. (I only have two panels though)

Just as a BTW, Aurora was running out of memory for me originally, but I noticed in #23 that you had mentioned that you updated some things to free up some, so I updated to version from about 8 hours ago (I see you have updated since!) and now it's working perfectly.

Hello,

First, thanks a lot of the library, it is working great! Much appreciated.

I have made a shield for using this library with the D1 mini style ESP32 board (if you want one @mrfaptastic , I would be more than happy to donate one) and someone wanted to arrange their panels vertically rather than horizontally and I came up with this fairly hacky, but very simple solution that I wanted to share.

https://github.com/witnessmenow/ESP32-i2s-Matrix-Shield/tree/master/examples/MultiplePanelVirtualScreenPatternPlasma

I'm creating a virtual display using AdafruitGFX where the user configures how their panels are laid out and it will look after the mapping of the pixels for them. A reference to this library is passed into the virtual displays constructor. I've implemented the same virtual calls as this library so you should be able to just swap out the matrix calls with the virtual display.

It should be flexible enough to be used with panels arranged in rows and columns too. There is possibly a better way of doing this, but this was one idea I had that I thought would be really simple for end users to use.

I noticed earlier that you updated to GFX, I haven't got a chance to try that out instead with the virtual display, its still using AdafruitGFX.

The example linked is patternPlasma, but I also tried it out on Aurora and it worked fine too. (I only have two panels though)

Just as a BTW, Aurora was running out of memory for me originally, but I noticed in #23 that you had mentioned that you updated some things to free up some, so I updated to version from about 8 hours ago (I see you have updated since!) and now it's working perfectly.

hi can you help me how to use this library for P10 1/4 scan RGB panels thank

mrcodetastic commented 2 years ago

Library does not support 1/4 scan panel as it says in README.

Sombody tried to make a workaround though: https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA/tree/master/examples/One_Quarter_1_4_ScanPanel

Archer-1983 commented 2 years ago

Thank 👍

paulpham1407 commented 8 months ago

Actually I can test it, I was thinking too big!

Here are two vertical panels, with the second one inverted

image

image

How to control parallel panel?

board707 commented 8 months ago

What do you mean as "parallel panel" ?

paulpham1407 commented 8 months ago

I want to display a video with a 192x128 vertical frame format using a ESP32, is that possible?

board707 commented 8 months ago

Why did you asked this in the somebody other thread? Please open a new topic in the issues or Discussions.

Abdulrahman-owayj commented 7 months ago

ezgif com-video-to-gif ezgif com-video-to-gif

A quick mod to the new Animated GIF example to use the VirtualDisplay class shows no issues.

The pause in the video display is due to the GIF of neo flying, looping.

Original gif

This is fantastic job, I tried the virtual matric to display icons using drawIcon but I think its not supported yet, i can show simple test though. can you show me how to display the image like you did here