Hi Georg, I must have the same display as you (64x32 8S), because when I enter the lines of code from you, I get the same pattern.
Would you tell me your solution, would help me tremendously.
Thanks in advance
I added some documentation on how to figure out custom mapping:
If you’re working through this and need help, please post back with details
Hi Georg, thanks for getting in touch. I passed on the display, and am now using 64x32 with 1/32,
so it works. Thanks a lot
@GeorgeFlorian and @technikfreak is this solution available so I can include it in the library for others?
with the settings from this entry
Can't link up two(2) 64x32 displays ! Shouldn't it be "plug and play" simple? - #6 by GeorgeFlorian, it works for the 64x32-S8 display.
PanelMapping:
const PanelMappingEntry panelMapP5_2727_64x32 = _ {
{0,64,64},
{8,0,64},
{0,0,0}
}
@Louis I am in vacation right now and I don’t have access to the code.
I just made custom maps for each panel or configuration of panels I needed. It worked for me, but I don’t think this is the optimal solution, because there can be hundreds of different panels and configuration out there.
Will update this post when I get my hand on the code.
@technikfreak Thank you! This gets me started! Do you also have the settings for MatrixCommonHub75.h? That would be helpful, too.
Woohoo! After trying to get my 64x64 MOD16 panel working for longer than I care to admit (~50 hours and 5000 curse words), I did it!
If anybody else is interested in this type of panel, I will be happy to embed or attach the MatrixCommonHub75.h and MatrixPanelMaps.cpp files.
I’m happy to hear this! Please share and I’ll include it in the library for others
Cool. I am using an ESP32 with direct wiring/no SmartMatrix shield.
Suggestion: I know you have just updated your “how to” of the MultiRowRefreshMapping, but there are some inconsistencies, now that you have updated the SmartMatrix libraries to v4.0.
I don’t think I can attach files, so I am just going to show you what needed to be changed/added:to get my 64x64 outdoor (4 rows displayed per scan) LED module to work:
-
Inside the MultiRowRefreshMapping sketch, make sure this option is selected for reverse engineering:
const uint8_t kPanelType = SM_PANELTYPE_HUB75_4ROW_MOD2SCAN; -
I included these two new #defines in MatrixCommonHub75.h to follow the same format you use:
#define SM_PANELTYPE_HUB75_64ROW_64COL_MOD16SCAN 10
#define SMARTMATRIX_HUB75_64ROW_64COL_MOD16SCAN SM_PANELTYPE_HUB75_64ROW_64COL_MOD16SCAN
As others have found, the SM_PANELTYPE_HUB75_32ROW_MOD16SCAN panel type is the only setting that allows the panel to light up at all, so here is a comparison of the settings between that panel and the newly-defined panel:
#define CONVERT_PANELTYPE_TO_MATRIXPANELHEIGHT(x) ((x == SMARTMATRIX_HUB75_32ROW_MOD16SCAN ? 32 : 0) | \
(x == SMARTMATRIX_HUB75_64ROW_64COL_MOD16SCAN ? 64 : 0))
#define CONVERT_PANELTYPE_TO_MATRIXROWPAIROFFSET(x) ((x == SMARTMATRIX_HUB75_32ROW_MOD16SCAN ? 16 : 0) | \
(x == SMARTMATRIX_HUB75_64ROW_64COL_MOD16SCAN ? 32 : 0))
#define CONVERT_PANELTYPE_TO_MATRIXSCANMOD(x) ((x == SMARTMATRIX_HUB75_32ROW_MOD16SCAN ? 16 : 0) | \
(x == SMARTMATRIX_HUB75_64ROW_64COL_MOD16SCAN ? 16 : 0))
#define CONVERT_PANELTYPE_TO_MATRIXPANELWIDTH(x) ((x == SMARTMATRIX_HUB75_32ROW_MOD16SCAN ? DEFAULT_PANEL_WIDTH_FOR_LINEAR_PANELS : 0) | \
(x == SMARTMATRIX_HUB75_64ROW_64COL_MOD16SCAN ? 64 : 0))
I’m not sure this will display properly in the post, so I hope it’s not confusing.
- Finally, I don’t recall for sure, but I don’t believe your documentation mentions the switch/case entry that needs to be added at the bottom of MatrixPanelMaps.cpp:
const PanelMappingEntry * getMultiRowRefreshPanelMap(unsigned char panelType) {
switch(panelType) {
case SMARTMATRIX_HUB75_64ROW_64COL_MOD16SCAN:
return panelMap64x64Mod16;
default:
return defaultPanelMap;
}
}
Hope this helps others get their “outdoor” LED modules working properly with SmartMatrix!
Thanks for your detailed feedback. I just added these rows to the sketch which hopefully cover all cases now:
//const uint8_t kPanelType = SM_PANELTYPE_HUB75_32ROW_MOD16SCAN; // Use this to reverse engineer mapping for a MOD16 panel
//const uint8_t kPanelType = SM_PANELTYPE_HUB75_64ROW_MOD32SCAN; // Use this to reverse engineer mapping for a MOD32 panel
Sure enough, this was referring to the wrong file and was confusing. I updated to this:
- Open
PanelMaps.cpp
- Add your map with a unique name
- Add new case for your new panelType to
getMultiRowRefreshPanelMap()
, returning your new panelMap
I don’t see your panelMap64x64Mod16
, can you please paste it so I can finish adding this panel to SmartMatrix Library?
Ha, whoops! Yes, I guess it would be helpful to have the actual panelMap itself:
const PanelMappingEntry panelMap64x64Mod16[] =
{
{0,64,64},
{16,0,64},
{0,0,0}
};
For what it’s worth, I have outdoor 64x64 (a.k.a. MOD16) LED modules from 3 different manufacturers, and they all use this scanning pattern.
I also have 64x32 MOD8 outdoor modules, and I believe I will find they have the same mapping as @technikfreak saw.
Do you have a link to any that are easy to buy? I wouldn’t mind having a sample
I have found these guys to have several choices, good quality, have good prices, ship quickly (to the U.S.) and they don’t murder you with shipping costs:
Shipping might be more expensive than AliExpress, but you won’t wait 2 months to get the product. If you buy a few panels at a time, the overall cost beats AliExpress.
For me, the time between placing an order and actually receiving product has been only about a week to 9 days.
@MStirlingC and @matbks I pushed these new panel types if you each want to try yours. I tested enough that they compile and display content, but don’t have the panels to try
@MStirlingC thanks for the source recommendation, they have cheap shipping to where I am in the UK as well.
You’re very welcome about the source recommendation.
Sorry to be thick, but when you say you pushed the new panel types, does that mean I should see a new version of the SmartMatrix library in Arduino? I don’t…
First: The map test sketch did not work, same result as i was having.
Second: The Demo Worked !!!
Third: It started to smoke and melt something. I do not know if it’s the ESP32 or the Panel.
edit: that is what was melting
Just download it again, save your version if you want and put the new one in place.