From dc4eebfa840f67f512342c9b5cb8d5d7e18c9e36 Mon Sep 17 00:00:00 2001 From: "Adrian A. Baumann" Date: Sun, 26 Oct 2025 18:08:26 +0000 Subject: [PATCH] Fix Weave() for horizontally mirrored display (NeoPixel 0 at top-right) --- matrixclock/Display.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/matrixclock/Display.py b/matrixclock/Display.py index ae72338..6e99e08 100644 --- a/matrixclock/Display.py +++ b/matrixclock/Display.py @@ -167,10 +167,13 @@ class Display(object): return(int(Number/self.Columns)) def Weave(self,Pos): + """Convert logical position to physical LED position for horizontally mirrored display. + NeoPixel 0 is at top-right, serpentine wiring pattern.""" Row=self.Num2Row(Pos) - if Row%2 == 1: - NewPos=(Row+1)*self.Columns-self.Num2Column(Pos)-1 - else: + Col=self.Num2Column(Pos) + if Row%2 == 0: # Even rows go right-to-left (mirrored from original) + NewPos=Row*self.Columns+(self.Columns-1-Col) + else: # Odd rows go left-to-right NewPos=Pos return NewPos