hzeller / rpi-rgb-led-matrix

Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO
GNU General Public License v2.0
3.59k stars 1.15k forks source link

Support for 128x64 panels #1557

Closed andytheengineerguy closed 1 year ago

andytheengineerguy commented 1 year ago

Hi,

Firstly, thank you @hzeller for authoring this library - so much useful information here and I can't wait to get started with my rpi based LED matrix project! I've noticed in the documentation that there is support 'up to' 64x64 panels, including comments about how the 64x64 panels requiring 1 more address line. So my question is, are 128x64 panels supported? Is there anything regarding address lines that need to be worried about?

For reference, I have these 128x64 HUB75 panels, purchased from Aliexpress: https://www.aliexpress.us/item/3256804829944411.html?spm=a2g0o.productlist.main.13.1a0e1465fn5fKg&algo_pvid=236d16fc-813b-46e1-a4d6-83dd39a4b25a&algo_exp_id=236d16fc-813b-46e1-a4d6-83dd39a4b25a-6&pdp_npi=3%40dis%21USD%2117.0%2116.15%21%21%21%21%21%40211be59e16850568888435359d0858%2112000031352009730%21sea%21US%210&curPageLogUid=tdCrW6cChsvF

Thanks, Andy

andytheengineerguy commented 1 year ago

I'm closing this issue as I have successfully brought up these panels; leaving the information below in case it helps anyone.

  1. *Yes, 12864 panels work with this library**

  2. Hardware: RPi4 + electrodragon hat. I was blocked for a while setting this up, as I didn't realize I needed to set up the e-line (as these are HUB75E panels, not HUB75). After following the instructions on the electrodragon forum, things worked great.

  3. Software: Or more so, the matrix config via software (copy and pasting the python representation, but you can use flags also) _options.rows = 64 options.cols = 128 options.multiplexing = 0 options.gpio_slowdown = 3 options.row_addresstype = 0

  4. Extra fun. When I began this project I was curious how well the panels performed if they were being recorded with a smartphone. I am chaining two panels together (u-mapped) to make a 128*128 display. This is ~16K pixels over a single chain, which is already pushing the limits as hzeller mentions in the readme. Most smartphones from my experience record LED panels 'properly' (no/minimal flickering) at around 240Hz, so the aim was to determine what needed to be sacrificed in order to hit this FPS. I wanted to preserve the image quality as much as possible too, in order to play videos and/or share images from your camera roll. It turns out, it is possible to achieve this golden FPS with reasonable reductions to the color quality. The following modifications allow a .gif to be played at ~260FPS (which was then capped at 240) _options.pwm_bits = 6 options.pwm_lsb_nanoseconds = 90 # default 130 options.limit_refresh_rate_hz = 240 options.pwm_ditherbits = 1 Note: Watch out though, even on the Pi4 the dedicated CPU core was basically maxxing out @ 98%, so there may be a more efficient way to do this!