From 94ff182aecfded0d8489c80194ec7cf04fbedc42 Mon Sep 17 00:00:00 2001 From: Xiretza Date: Sun, 5 Jun 2022 16:36:06 +0200 Subject: [PATCH] Add README.md --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8f298f0 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# WS2812 driver gateware for blinkenwall v3 + +At 100 FPS, a single strand of WS2812 can only be just over 300 LEDs long: + +``` +MAX_LENGTH = (1 / FPS - RESET_TIME) / BIT_TIME / BITS_PER_PIXEL +318 = (1 / 100 - 50e-6) / 1.3e-6 / 24 +``` + +Because blinkenwall v3 has `64 * 96 = 6144` pixels, driving it at 100 FPS requires at least +`6144 / 318 = 20` parallel drivers. For simplicity, the wall is devided into 24 strands of +256 LEDs. Unfortunately, most microcontrollers have at most a couple WS2812-capable interfaces +(typically SPI), so this would require coordinating several microcontrollers in parallel. A +much more integrated solution is to instantiate as many WS2812 drivers as desired in an FPGA, +then point the entire video firehose at the FPGA.