Addressable LED Animation Lag: Pixel Count, Frame Time and Multi-Output Planning
Addressable LED Animation Lag: Pixel Count, Frame Time and Multi-Output Planning
LikeLight Tom · Operations · Technical reviewer: pending confirmation
Summary
When an addressable LED animation stutters, adding a faster processor is not automatically the cure. A frame must be received or generated, rendered, serialized on every output and latched. The slowest required stage sets the sustainable frame rate. On a fixed-rate single-wire stream, adding pixels lengthens data time even if the CPU is idle.
Start with a frame-time budget: **frame period = network/input time + render time + output time + scheduling margin** when stages are sequential. If the implementation overlaps stages, measure the actual critical path instead of simply adding them. Define the target scene and frame rate before choosing pixel count or architecture.
1. Five causes that look like “too many pixels”
| Symptom | Likely bottleneck | First measurement |
|---|---|---|
| FPS falls predictably as one output grows | serial output time | time from first to last output bit |
| Simple effects run well; complex effects lag | render/CPU time | render duration per frame |
| Local effects are smooth; realtime stream stutters | network/input | packet loss, jitter and receive queue |
| One port is slow while others finish early | unbalanced output lengths | pixels and wire time per port |
| FPS is stable but motion looks stepped | content/update target | actual frames versus design requirement |
WLED exposes a target refresh rate and current FPS information [S3]. Its multi-strip and realtime-input documentation also separates output architecture from network limits [S2][S4]. Use measured values from the approved controller, not a pixel-count slogan.
2. Calculate the serial floor first
Adafruit documents a common NeoPixel-family example: 800 kHz, 24 bits per RGB pixel, approximately 30 microseconds per pixel, plus latch time [S1]. For that cited case:
**T_output = N × 30 μs + T_latch**
One-output teaching example
For 600 RGB pixels and a 50 μs illustrative latch from the same guide, output time is 600×30+50=18,050 μs=18.05 ms. The theoretical wire-only ceiling is 1/0.01805≈55.4 frames/s. If rendering and other work consume another hypothetical 6 ms sequentially, total frame time becomes 24.05 ms and the ceiling becomes about 41.6 frames/s.
That is not a guarantee. Different IC revisions, RGBW data widths, reset times, libraries and controllers change the result. Adafruit explicitly warns that actual animation computation can reduce the theoretical rate [S1].
3. What parallel outputs change
If 2,400 identical RGB pixels are placed on one cited 30 μs/pixel serial output, wire time alone is roughly 72.05 ms, or 13.9 frames/s. If the controller truly transmits four equal 600-pixel outputs in parallel, the longest-port wire time returns to roughly 18.05 ms—not 4.51 ms—because each port still sends 600 pixels.
| Layout | Pixels per longest output | Illustrative wire time | Architectural effect |
|---|---|---|---|
| 1 × 2,400 | 2,400 | 72.05 ms | simplest mapping; lowest wire ceiling |
| 2 × 1,200 parallel | 1,200 | 36.05 ms | twice the outputs; balanced load required |
| 4 × 600 parallel | 600 | 18.05 ms | shorter critical output; more ports and boundaries |
| 4 outputs: 1,500/300/300/300 | 1,500 | 45.05 ms | longest port dominates |
Parallel behavior must be verified. Some software may serialize nominal outputs, share peripherals or consume extra memory. WLED publishes platform-specific multi-output recommendations [S2]; they are not limits for every controller.
4. Network capacity is a different budget
Realtime E1.31/Art-Net content must arrive before it can be rendered and output. WLED gives a platform-specific recommendation of no more than three universes for fluent 40 fps E1.31 use and notes impacts from multiple sources and Wi-Fi settings [S4]. Treat this as WLED guidance, not a general sACN rule or LIKELIGHT product specification.
Build a packet plan with universe count, channels per pixel, sender rate, source count, transport, switch/AP path and timeout behavior. Then compare sender timestamps, receive timestamps and output-frame timestamps. A larger pixel controller does not repair a congested or jittery network.
5. RGBW and clocked protocols change the arithmetic
RGBW typically carries four color bytes rather than three, so do not reuse a 24-bit RGB calculation. Clocked products such as APA102C/SK9822 have separate data and clock lines; LIKELIGHT publishes a DC5V, 60 LED/m product example and describes higher refresh potential [S5]. The page does not state an approved clock rate, maximum chain or controller matrix for every order.
| Item to freeze | Why it matters |
|---|---|
| exact pixel IC/revision | timing, latch and data format can differ |
| RGB versus RGBW | bits/bytes per pixel change |
| single-wire versus clocked | transmission model changes |
| output implementation | parallelism and peripherals vary |
| effect and color processing | render cost varies |
| power limiter and background tasks | runtime behavior can vary |
6. Commissioning procedure
- Define target FPS, maximum latency and test scene before hardware approval.
- Freeze IC, pixel format, controller/firmware and port map.
- Calculate a conservative wire-time floor for the exact protocol.
- Benchmark a solid frame, simple chase and worst approved effect locally.
- Repeat with the actual realtime network source and full universe map.
- Log render, receive, output and total frame time; record average, worst case and dropped frames.
- Test balanced and intended port lengths, full array, thermal state and approved brightness limiting.
- Archive configuration, firmware, scene file and results.
7. When not to add more outputs
- Do not add outputs when the bottleneck is network delivery or effect rendering.
- Do not split ports without confirming true parallel transmission.
- Do not use average FPS alone when worst-case stalls are visible.
- Do not assume all 60 LED/m products have 60 independent pixels per metre.
- Do not switch protocol without reviewing wiring, controller, IC, EMC and maintenance impact.
- Do not publish a maximum pixel count without a target FPS, scene and test configuration.
FAQ
How many pixels can one controller handle?
There is no useful universal number. Specify protocol, outputs, longest port, frame rate, scene, network and acceptance criteria.
Does a faster CPU increase single-wire output speed?
It can reduce rendering time, but a fixed protocol's wire time remains unless the output architecture changes [S1].
Why does four-output planning use the longest port?
With genuine parallel output, all ports finish when the longest stream finishes. Unbalanced mapping wastes the shorter ports' potential.
Is 30 microseconds per pixel universal?
No. It is a documented 24-bit, 800 kHz NeoPixel-family example [S1]. Use the exact IC datasheet and implementation.
Can E1.31 be the bottleneck?
Yes. Universe count, sender rate, multiple sources and network behavior can limit realtime performance [S4].
Is APA102C always faster than a one-wire pixel?
It offers a different clocked architecture, but actual speed depends on approved IC, clock, controller, chain and signal integrity [S5].
Sources checked
2026-09-09
- S1: Adafruit NeoPixel Überguide — Advanced Coding
- S2: WLED — Multi-strip Support
- S3: WLED — Settings
- S4: WLED — E1.31 (sACN) / Art-Net
- S5: LIKELIGHT — DC5V APA102C / SK9822 60 LED/m strip