LED matrix power supply calculation
November 2026 · minotor.org
The Minotor wiki sized its first 8 × 8 test panel with one line of arithmetic: each WS2801 pixel can take up to 0.96 W, so 64 of them need about 5 A at 12 V (build guide). The same method works for any matrix. What changes from one build to the next is the figure you start from, and for the common WS2812B pixel the datasheet, the libraries and the hobby guides each give a different one.
How do I calculate the power needed for LEDs?
- Count the pixels: width × height, or panels × pixels per panel.
- Take the current one pixel draws at full white, all three colours on at full brightness. That is the worst case.
- Multiply: pixels × milliamps ÷ 1,000 gives amps at the LED voltage.
- Multiply the amps by the voltage to get watts.
A 16 × 16 panel of WS2812B pixels at 48 mA each comes to 256 × 48 ÷ 1,000 = 12.3 A, and at 5 V that is 61 W. If your pixel's documentation gives watts instead of milliamps, divide by the voltage first: 0.96 W at 12 V is 80 mA.
How much power does a WS2812B LED consume?
Four sources, four answers, all for full white at 5 V:
| Source | Per pixel | What it is based on |
|---|---|---|
| WorldSemi WS2812B-V7 datasheet | 48 mA, 0.24 W | The constant current curve levels off at 16 mA per colour channel |
| FastLED's power model | 42 mA lit, plus 1 mA dark | Default values in its source: 16 mA red, 11 mA green, 15 mA blue |
| WLED's brightness limiter | 55 mA | The default mA/LED setting, labelled "typ. 5V WS281x" |
| Adafruit's NeoPixel guide | 60 mA | Its stated maximum for full white; it plans with 20 mA as a rough average |
The V7 sheet describes WorldSemi's current revision only, and the older WS2812B sheet many shops link gives no current figure at all. Without a datasheet for the exact LEDs you bought, 60 mA is the safe number for sizing the supply. The lower figures are what you would type into a software limiter if you know your parts.
At 12 V the WS2815B datasheet rates a pixel at 0.1 to 0.18 W, which is 8 to 15 mA from a 12 V supply. The WS2801 vs WS2812B comparison covers why a 12 V chain draws so much less current for similar light.
Worked examples
| Matrix | Pixels | Per pixel | Full white |
|---|---|---|---|
| 8 × 8 WS2812B panel | 64 | 60 mA at 5 V | 3.8 A, 19 W |
| 16 × 16 or 32 × 8 WS2812B panel | 256 | 60 mA at 5 V | 15.4 A, 77 W |
| Same panel, V7 figure | 256 | 48 mA at 5 V | 12.3 A, 61 W |
| 16 × 16 WS2815B panel | 256 | 0.18 W at 12 V | 3.8 A, 46 W |
| The Minotor team's 24 × 16 WS2801 wall | 384 | 0.96 W at 12 V | 30.7 A, 369 W |
The last row is the team's stage wall, six 8 × 8 panels of the same pixels as the build guide. Its 369 W is why the build guide speaks of ATX computer supplies, each good for around 128 pixels on its 12 V output.
How do I work out which power supply I need?
Start from the full white figure and buy a supply rated above it. Adafruit's guide sums up the rule as "extra amps = good" and "extra volts = bad": a supply with more current than the LEDs draw only delivers what they ask for, while a higher voltage than the pixels are rated for damages them. The wiki did the same thing on a small scale, rounding 5.1 A up to 5.6 A for its first panel.
Most animations never light every pixel white at once, which is where software limiters come in. WLED's automatic brightness limiter takes a Maximum PSU Current (3,000 mA by default) and dims the whole output to stay below it; its documentation asks you to keep that under 1 A if the LEDs run from the ESP's 5 V pin. FastLED has setMaxPowerInVoltsAndMilliamps() for the same job on an Arduino. With a limiter in place you can run a smaller supply than the worst case, as long as you trust the per-pixel figure you gave it.
For an ATX supply, read the label: it lists the amps each rail can deliver, and a 5 V matrix uses the 5 V rail (the red wire), not the 12 V one.
Getting the current to the pixels
A big enough supply does not help if the current cannot reach the far end of the chain. The copper on a strip or panel has resistance, voltage sags along it, and the colours drift as it drops. Adafruit's advice is to keep every pixel within about a metre of a power connection. On a matrix that means feeding power in at several points, for example into each panel.
The same guide recommends a 500 to 1000 µF capacitor rated 6.3 V or more across the supply terminals at the strip, connected before power goes on. On a 12 V chain the capacitor needs a higher voltage rating to match.
The controller shares that ground too. The build guide wires the supply's ground to the pixels and to the Arduino's GND before anything else, because the data signal is measured against it. When the matrix runs on WLED, its limiter needs the numbers from this page; the WLED and LedFx guide fills them in for the team's wall.
Sources
Read on 26 October 2026:
- WorldSemi datasheets from world-semi.com: WS2812B-V7 1.0, WS2815B-V1
- FastLED at github.com/FastLED/FastLED:
src/power_mgt.h,src/power_mgt.cpp.hppandsrc/FastLED.h - WLED's settings documentation, LED preferences
- Adafruit, Powering NeoPixels
- The restored build guide and team setup pages on this site
We have not measured any of these pixels ourselves. If your meter disagrees with a figure here, write to [email protected].
