Hardware Configuration
Hardware Mapping{{ ui.help_tip('How the LED panel is wired to the Pi.\nUse "Adafruit HAT PWM" for an Adafruit HAT/Bonnet with the PWM solder mod; "Adafruit HAT" without it; "Regular" for direct GPIO wiring.', 'Hardware Mapping') }}
Adafruit HAT PWM
Adafruit HAT
Regular
Regular Pi1
LED RGB Sequence{{ ui.help_tip('Order the panel expects color channels in.\nChange this only if reds/greens/blues look swapped. Default: RGB.', 'LED RGB Sequence') }}
RGB
RBG
GRB
GBR
BRG
BGR
Multiplexing{{ ui.help_tip('Pixel-mapping scheme used by outdoor/specialty panels.\nLeave at 0 (Direct) for most indoor panels. Only change if the image is scrambled — try values until it looks right.', 'Multiplexing') }}
0 - Direct
1 - Stripe
2 - Checkered
3 - Spiral
4 - ZStripe
5 - ZnMirrorZStripe
6 - Coreman
7 - Kaler2Scan
8 - ZStripeUneven
9 - P10-128x4-Z
10 - QiangLiQ8
11 - InversedZStripe
12 - P10Outdoor1R1G1B v1
13 - P10Outdoor1R1G1B v2
14 - P10Outdoor1R1G1B v3
15 - P10CoremanMapper
16 - P8Outdoor1R1G1B
17 - FlippedStripe
18 - P10-32x16-HalfScan
19 - P10-32x16-QuarterScan
20 - P3Outdoor-64x64
21 - DoubleZMultiplex
22 - P4Outdoor-80x40
Panel Type{{ ui.help_tip('Special initialization for panels with a specific driver chip (e.g. FM6126A, FM6127).\nLeave on Standard unless your panel stays blank or shows only the first pixel.', 'Panel Type') }}
Standard
FM6126A
FM6127
Row Address Type{{ ui.help_tip('Row addressing scheme used by the panel.\nLeave at 0 (Default) unless your panel needs AB/ABC addressing — a wrong value shows a garbled or shifted image.', 'Row Address Type') }}
0 - Default
1 - AB-addressed panels
2 - Row direct
3 - ABC-addressed panels
4 - ABC Shift + DE direct
Double-Sided Display
Show the same content on every panel in the chain — e.g. two 64×32 panels mirrored, or four panels as two identical screens. Rendered once and duplicated, so it adds no extra CPU. Takes effect after a display restart.
Multi-Display Sync
Extend scrolling content across two LED matrix display units over WiFi.
Both displays must have identical rows and cols. Chain length may differ.
Role{{ ui.help_tip('This unit\'s part in a two-display setup.\nStandalone = sync off. Set one Pi to Leader (drives the scroll) and the other to Follower (receives frames). Restart required after changing.', 'Sync Role') }}
Standalone (disabled)
Leader (drives scroll)
Follower (receives frames)
UDP Port{{ ui.help_tip('UDP port the two displays use to exchange frames (1024–65535).\nDefault: 5765. Must match on both Pis. If the ufw firewall is active, allow it with: sudo ufw allow ' ~ main_config.get('sync', {}).get('port', 5765) ~ '/udp', 'Sync UDP Port') }}
Position{{ ui.help_tip('Which side of the leader this follower display sits on.\nSets whether this unit shows the left or right half of the extended scroll.', 'Follower Position') }}
Left of leader
Right of leader
rows and cols must match between displays. chain_length may differ.