Refactored #HUB75 Row Interlacing to just (START_LINE, STEP):
🔹 STEP = 0: Bit-Reversal (Auto-handles non-2^N panels like my 96x48 with STEP=24)
🔹 STEP > 0: Arithmetic stride. Auto-injects offsets on wrap if GCD(SCAN, STEP) > 1.
Refactored #HUB75 Row Interlacing to just (START_LINE, STEP):
🔹 STEP = 0: Bit-Reversal (Auto-handles non-2^N panels like my 96x48 with STEP=24)
🔹 STEP > 0: Arithmetic stride. Auto-injects offsets on wrap if GCD(SCAN, STEP) > 1.
It was a naive try.
Starting fresh with RP2350. Simplifying RGB engine and refining control engine to PWM lower bitplanes, to address the min on-time issue.
It was a naive try.
Starting fresh with RP2350. Simplifying RGB engine and refining control engine to PWM lower bitplanes, to address the min on-time issue.
It shuffles rgb24 buffer data to a single DMA buffer and streams it to two cascaded PIO blocks - one for RGB and one for pixel time/row selection.
10bit depth. 12 RGB lines/5 row address lines. Implemented direct stream buffer plotting.
It shuffles rgb24 buffer data to a single DMA buffer and streams it to two cascaded PIO blocks - one for RGB and one for pixel time/row selection.
10bit depth. 12 RGB lines/5 row address lines. Implemented direct stream buffer plotting.
Extracted the parallel bit-interleaved debouncer so everyone can reuse it. Features: Symmetric (press/release), Periodic polling (high EMI immunity), Zero counters (bitwise-only), Scalable N×S matrix in a single register ⬇️
Extracted the parallel bit-interleaved debouncer so everyone can reuse it. Features: Symmetric (press/release), Periodic polling (high EMI immunity), Zero counters (bitwise-only), Scalable N×S matrix in a single register ⬇️