-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Help with pixel mapping on 64x32 panel. #580
Comments
Hi
|
Thanks for getting back, here's a clip running that code with the following panel settings.
panel_1.mp4Here is the code run with the following panel settings.
panel_2.mp4 |
Thank you!
|
Thanks! I'm an imbecile, where do I add/modify that code? |
Please show your full test code (.ino) for second video |
Here is the code for that run.
|
Save this as .ino file and try to run
|
I get an error on compiling, line4.
|
Please show the error message in full |
|
include the header
at the start of the code |
I still get errors, apologies, I've had very little to do with c++ over the years.
|
Sorry, it seems my solution required too many changes... |
Is there a location I can find the workaround? |
@bug2k19 - if you understand, try to make method getCoords() public in VirtualMatrixPanel class |
I got it working by changing some of the code in the ESP32-VirtualMatrixPanel-I2S-DMA.h header file, it's not an elegant solution, but works for the panel I have.
|
Great! But take the note, that your solution will works only with a single panel. Could you please replace your function with code below and test?
|
Thanks, I realise it was a hack just to get this panel working. Your new code also works correctly with this panel. |
I have a 64x32 panel which seems to be addressed in blocks of 16x4 pixels and 2 panels of 64x16 one on top of the other.
By creating 16x4 rectangles I can see that the blocks of pixels are mapped as follows, actual output to the right.
Using this code produces the following output on the panel.
`#include <ESP32-HUB75-MatrixPanel-I2S-DMA.h>
#define R1_PIN 2
#define G1_PIN 12
#define B1_PIN 4
#define R2_PIN 16
#define G2_PIN 27
#define B2_PIN 17
#define A_PIN 5
#define B_PIN 25
#define C_PIN 18
//#define D_PIN 33
#define D_PIN -1
#define E_PIN -1
#define LAT_PIN 32
#define OE_PIN 21
#define CLK_PIN 19
#define PANEL_RES_X 64
#define PANEL_RES_Y 16
#define PANEL_CHAIN 2
MatrixPanel_I2S_DMA *dma_display = nullptr;
void setup()
{
HUB75_I2S_CFG::i2s_pins _pins={R1_PIN, G1_PIN, B1_PIN, R2_PIN, G2_PIN, B2_PIN, A_PIN, B_PIN, C_PIN, D_PIN, E_PIN, LAT_PIN, OE_PIN, CLK_PIN};
delay(10);
HUB75_I2S_CFG mxconfig(
PANEL_RES_X,
PANEL_RES_Y,
PANEL_CHAIN,
_pins
);
delay(10);
dma_display = new MatrixPanel_I2S_DMA(mxconfig);
dma_display->begin();
dma_display->setBrightness8(16);
dma_display->clearScreen();
dma_display->drawRect(16,0, 16, 4, 254);
dma_display->drawRect(112,0, 16, 4, 254);
dma_display->drawRect(0,12, 16, 4, 254);
dma_display->drawRect(96,12, 16, 4, 254);
}
void loop()
{
}`
How would I modify the output so that the output looks correct?
The text was updated successfully, but these errors were encountered: