Modify code for 64*64 pixel, HUB75E, 1/32 Scan led panels

Thanks, I will check source modification.
I wait for your new V5 library version with support for 1/32 Scan led panels.

Hello Louise.
I have check your source modification suggestion, and now there is clock data in the 5th pin (PTC10), but do not know why yet, the frequency in that pin is not as expected.

I understand that if we have 5 pins to scan the Led panel, A, B, C, D and E, each one must to be half frequency of preceding, but I have check with my oscilloscope and frequency of E is same than C, instead of to be half of D.

So, these are my frequency mesures for 64 rows, 1/32 Scan:

A —> 1923 Hz
B —> 961 Hz
C —> 480 Hz
D —> 240 Hz
E —> 480 Hz.

Some suggestion about what may need modify to amend the E output ??, I understand that in the E output I must measure 120 Hz instead of 480 Hz .

At any rate I have order already some chips to do it by external hardware like you suggested, I ordered the 74HCT374, and also some 74HCT4040 and 74LS93, all counter/dividers, so may work with only one signal and get the rest of the signals with several cascading flip-flops (working like dividers).

Do you think may be possible you release Smartmatrix V5 library software some time before than board shield is available ??.

Found another issue with your changes:

  #ifdef ADDX_PIN_4
    if (i & 0x16)  addressLUT[i].bits_to_set |= (1 << ADDX_PIN_4);
 #endif

should be:

  #ifdef ADDX_PIN_4
    if (i & 0x10)  addressLUT[i].bits_to_set |= (1 << ADDX_PIN_4);
 #endif

Thanks Louis, I will check.

Tested and now work perfectly.
I have yet a little problem to solve, but its with my input data, output with Smartmatrix work perfect with 1/32 Scan Led panels 64 rows.

In picture attached, my tests with a 192x64 Led panel, work very well, Im very happy. Now only display half of screen, but its not a Smartmatrix problem, but of my application that I must modify to read correclty 64 rows.

Thank you Louis, for your support, very useful.

I solved already my input data problem, and now the display work practically perfect, all the 64 rows are there. Screen is very stable, with no blinks or Lateral displacements.

I’m very happy, after source modifications library work very well with 1/32 Scan led panels. Display in pictures attached, is 192x64 (3 x 64*64 1/32 Scan).

That’s great! That’s the biggest pixel count SmartMatrix setup I’ve seen. Thanks for posting pictures.

I’m curious what board you’re using to drive the panels. It looks like a custom board, maybe using the same processor as the Teensy 3.6, and an ESP8266 for WiFi, is that correct?

1 Like

Hello Louis.

Yes, I have test with a Teensy 3.6, and also with my own custom board with a Kinetis MK66 TQFP144. My board install also a WIFI ESP8266, USB and SDIO 4bit parallel SD card. To read inputs I add a CD4050 chip to convert 5v logic levels to 3.3v.

My final display is a big PCB with the 3 Led panel, a Kinetis MK66 TQFP144, SD card and a switched DC-DC 12v to 5v XL4015. I made also a 128x32 display with 1/16 Scan led panels, that work very well with same firmware.

Hi @pinballsp, do you have your code available?

I received a 64x64 matrix and applied your changes on a Teensy 3.2, though adjusted ADDX_TEENSY_PIN_4 from 37 to 16 (as 37 isn’t exposed on Teensy 3.2). I only seem to be able to drive the top quarter and 3rd quarter of the rows. Granted, the docs for the board state it’s /16 scan rate rather than /32 (64x64_RGB_LED_Matrix_-_3mm_pitch_SKU_DFR0499-DFRobot)

I updated to Teensy 3.6 and do have the full 64x64 working, but it’s not the cleanest. One half is slightly off color and there is various flickering. I’ve also tried overclocking to 192MHz. Any suggestions on improving this? I’m simply taking data from a camera (with similar resolution) and spitting it out to the panel.

Thanks!

I think all those pins (A, B, C, D, E) must to be in same PORT, PTC. So if you have replace a PTC10 by PTB0, can not work because different PORT. At any rate Louis will confirm you.

For the flickering problem, try setting the refresh rate.

matrix.setRefreshRate (120); // Modify the refresh value

The other problem seems to be more related to the management of the input data, and how it feeds with this data the output matrix of Smartmatrix.

@pinballsp is correct, the ADDX pins all have to be in the same port. When you changed to the Teensy 3.6, did you use pin 37, or stick with pin 16?

SmartLED Shield V4 has a solution to the shortage of pins, actually not requiring any dedicated pins for ADDX, and using an external flip flop to store the ADDX signals instead. It’s out of stock right now but you can check the hardware design files in github and wire up the circuit yourself. 1/32 using the V4 circuit isn’t there yet, with @pinballsp’s help I hope to get this in the next release.

Thanks to both of you!

@pinballsp Ah hah, the PORTC makes sense, I’ll try going back to Teensy 3.2 and try pin 15 instead. I’ll also try the refresh rate, thanks!

@Louis Correct, I adjusted to pin 37 when using Teensy 3.6. Great, I assume the 74245 & 74374 are the only necessary components needed for that. I’ll order those and give it a shot.

Besides the ADDX signals on the 74374, there are 9 signals that need to be buffered, so you’ll need two 74245s, or one 74245 and one single gate buffer.

So I’ve tried setRefreshRate(120) and still getting some flickering, but I think that may just be due to the jumper wires. I’ll try milling a board with short traces and see how that works.

However, when using Teensy 3.2, half the screen doesn’t work (two separate quarters), even though I’m using pin 15 now (PORTC). Switching to Teensy 3.6 and port 37, it does work properly. (I am changing ADDX_TEENSY_PIN_4 when testing between them).

Any thoughts?

You need to also change ADDX_PIN_4 in addition to ADDX_TEENSY_PIN_4. Teensy pin 15 is C0, ADDX_PIN_4 is 0.

There are other PORTC GPIO on the underside of Teensy 3.2 if you want to keep pin 15 free for something else:

30 C11
29 C10
28 C8
27 C9

Oh, I see the internal port numbers need specified. Got it, thank you!

I hooked up the supposedly 1/32 scan panel I have and started adding @pinballsp’s changes to the code, but quickly found that my panel is actually 1/16 scan. I placed an order for this panel on Aliexpress and hope to have it within the next month so I can make these changes and test.