Main

How to Build a Power Budget for a Cabinet of Always-On Controllers

Every cabinet of always-on controllers starts with good intentions and a spare power supply. It ends, too often, with a 3 a.m. reboot mystery. A power budget is what sits between those two points. It is a measured, written plan that tallies exactly how much current your gear needs, rail by rail, and then matches that load to a supply and backup system that can hold voltage when it counts. For anyone running Home Assistant on a Raspberry Pi, a handful of ESP32 sensor bridges, and a local Zigbee or Z-Wave stick, this is not a compliance exercise. It is the difference between a system that degrades gracefully and one that drifts into undervoltage, corrupts an SD card, and leaves you wondering whether the code is buggy. (It usually is not. It is usually the 5-volt rail sagging to 4.6 under load.)

Open electronics cabinet with wiring and controllers

Why a Bigger Power Supply Is Not a Power Budget

I have seen cabinets with a 10-amp supply feeding a 2-amp load. The owner figured more headroom equals more reliability. It does not. Lightly loaded switch-mode supplies often run below their best efficiency, so you are turning watts into heat for no reason. A grossly oversized supply can also pull a nasty inrush when power comes back after an outage, enough to trip a breaker or weld relay contacts. And none of that extra capacity fixes voltage drop across thin-gauge wiring or those cheap barrel-jack splitters that come in five-packs. A real power budget forces you to measure actual draw, note the peaks, and size the supply to the load plus a defined margin—usually 20-30% above measured peak, not 300%.

Always-on controllers have a habit of pulling the most current right at boot. An ESP32 with Wi-Fi enabled can spike to 500 mA for a couple hundred milliseconds before settling to 80-150 mA. A Raspberry Pi 4 under CPU load draws about 1.2 A at 5 V, but plug in a USB SSD and watch it jump past 2 A during spin-up. If the supply cannot hold voltage through that spike, the board browns out and reboots, and you get a boot loop. A power budget captures those transients so you can pick a supply with decent transient response or add bulk capacitance on the rail.

What to Measure: Steady-State, Peak, and Inrush

Steady-state is the average draw after boot, with all peripherals active and the CPU doing its normal thing. Peak is the highest sustained draw you can provoke—run a stress test, fire every relay, poll every sensor at once. Inrush is the sub-second surge when capacitors charge. A multimeter with a min/max hold can catch peaks if its sample rate is fast enough, but a USB power meter with logging, like the Plugable USBC-VAMETER or a YZXstudio unit, gives you much better visibility. For non-USB devices, use a benchtop supply with a current readout and watch the display during power-on.

Record values for every device in the cabinet. The controller itself, USB-powered accessories, PoE splitters, fans, indicator LEDs. A single addressable LED strip can pull 60 mA per LED at full white. Easy to forget, impossible to ignore when the 5-volt rail collapses.

Building the Budget: A Step-by-Step Table

Start with a spreadsheet. Columns: Device, Nominal Voltage, Steady-State Current (A), Peak Current (A), Inrush Duration (ms), Notes. List every load on each voltage rail separately. A typical small cabinet might have a 5-volt rail for logic and a 12-volt rail for fans or relay coils. If you use a single 12-volt supply with buck converters to derive 5 volts, account for converter efficiency—usually 85-90%. Divide the 5-volt load by 0.85 and add that to the 12-volt total.

Example entries:

  • Raspberry Pi 4 (4 GB) – 5 V, 0.6 A steady, 1.2 A peak, 50 ms inrush, running Home Assistant with Z-Wave stick.
  • ESP32 DevKit (x3) – 5 V via USB, 0.12 A steady each, 0.5 A peak each, 100 ms inrush, ESPHome with BME280 sensors.
  • 8-channel relay board – 12 V, 0.08 A idle, 0.6 A all relays energized, negligible inrush, coils are inductive but board has flyback diodes.
  • 120 mm fan – 12 V, 0.15 A steady, 0.3 A startup spike, 200 ms inrush.

Sum the steady-state currents for each rail. Sum the peak currents. The power supply must be rated for at least the peak sum on each rail, with headroom for temperature derating. A supply rated for 5 A at 25°C might only deliver 3.5 A at 50°C inside a sealed cabinet. Check the manufacturer’s derating curve. Mean Well publishes these for every model, and they are worth the five minutes it takes to read them.

Close-up of multimeter measuring voltage on circuit board

Voltage Drop and Wire Gauge

DC voltage drop over distance is a quiet killer in cabinets that use long USB cables or thin-gauge power distribution. A 5-volt device at the end of a 1-meter 28 AWG USB cable drawing 500 mA can lose 0.3-0.5 V. That is enough to cause instability. Use a voltage drop calculator—the Southwire app or any online tool—to check. For custom wiring, 18 AWG is a safe default for 5-volt distribution up to 2 meters at 2 A. For 12-volt distribution, 18 AWG handles 3 A over 3 meters with less than 3% drop. Crimp ferrules on stranded wire before screw terminals. Loose strands create high-resistance connections that heat up under load.

If you are powering multiple ESP32s from a single 5-volt rail, use a star topology with a fused distribution block rather than daisy-chaining. A daisy chain stacks the voltage drop on the last device. A star topology gives each device the same starting voltage, assuming equal wire lengths. Fuses—or PTC resettable fuses—on each branch prevent a short on one device from taking down the entire rail. A 500 mA PTC on each ESP32 branch is cheap insurance.

Backup Power and Graceful Shutdown

An always-on cabinet needs a plan for when utility power fails. The power budget tells you how much battery capacity you need for a given runtime. A 12-volt 7 Ah sealed lead-acid battery can supply 1 A for roughly 7 hours, but only to a 10.5-volt cutoff. If your cabinet draws 1.5 A at 12 V, that same battery lasts about 3.5 hours. Lithium iron phosphate (LiFePO4) batteries have flatter discharge curves and higher cycle life, but they need a compatible charger. For small cabinets, a UPS hat for the Raspberry Pi—like the PiJuice or Waveshare UPS HAT—can handle 5-volt logic, while a separate 12-volt battery backs the higher-voltage rail.

Graceful shutdown matters because sudden power loss corrupts SD cards and filesystems. The power budget should include the current draw of the shutdown controller itself. That is a small microcontroller that monitors the main rail and sends a shutdown command to the Pi when voltage drops below a threshold. The controller then cuts power after a set delay. This adds maybe 10 mA to the budget, but it prevents filesystem checks and reflashing sessions at inconvenient times.

Thermal Considerations Inside the Cabinet

Every watt dissipated inside the cabinet raises the internal temperature. A sealed cabinet with 10 watts of continuous dissipation can reach 15-20°C above ambient. That heat derates the power supply, shortens capacitor life, and drifts sensor readings. A BME280 inside the cabinet gives you temperature and humidity data; use it to set alert thresholds. If the internal temperature consistently exceeds 40°C, add ventilation or a fan. The fan itself adds to the power budget, so recalculate after adding it. A 120 mm fan at 12 V and 0.15 A adds 1.8 W, but it can drop the internal temperature by 10°C, which may recover more than 1.8 W of supply derating. That is a net positive.

For cabinets in unconditioned spaces like garages, consider the full temperature range. A supply rated for 0-50°C might fail on a summer afternoon if the garage hits 55°C. Industrial-rated supplies with a -20 to 70°C range cost more but avoid the 3 a.m. reboot mystery. If you are using open-source firmware, you can log the internal temperature and correlate it with uptime. That data is more valuable than a spec sheet.

Server rack with organized cables and LED indicators

Documenting the Budget for Future You

A power budget is a living document. Tape a printed copy inside the cabinet door. Include the date, measured currents, supply model, and fuse ratings. When you add a new sensor or swap a controller, update the spreadsheet and re-measure. Six months later, you will not remember whether that spare USB port can handle another ESP32. The budget answers the question without pulling out a meter.

This documentation also helps when a device fails. If a relay board starts chattering, check the 12-volt rail under load. If it is below 11.5 V, the supply may be degrading, or you may have added load without updating the budget. Either way, the budget gives you a baseline. Without it, you are guessing whether the supply was always marginal.

For a deeper look at auditing the small systems that keep your home running, see How to Audit the Small Systems That Quietly Run Your Week. That article covers a broader reliability audit, including log review and physical inspection, which pairs well with the power budget you build here.

FAQ

What is the difference between a power budget and a power audit?

A power budget is a forward-looking plan: you calculate expected loads and size the supply accordingly. A power audit is a backward-looking measurement: you measure actual draw on an existing system to verify it matches the budget or to diagnose a problem. Both use the same tools, but the budget is done before installation, and the audit is done periodically after.

How do I measure inrush current without an oscilloscope?

Use a multimeter with a fast min/max hold function, or a USB power meter that logs at 1 kHz or faster. If you only have a standard multimeter, you can approximate inrush by measuring the DC resistance of the device’s input (powered off) and applying Ohm’s law, but this misses the capacitive charging curve. A better low-cost method is to use a 0.1-ohm shunt resistor in series with the power line and measure the voltage drop across it with a multimeter in min/max mode; current equals voltage divided by 0.1.

Can I use a single large power supply for both 5-volt and 12-volt rails?

Yes, if you use DC-DC buck converters to step down from a higher voltage (e.g., 12 V or 24 V) to 5 V. Account for converter efficiency in the budget: a 5-volt load of 2 A requires about 2.35 A from the 12-volt rail at 85% efficiency. Ensure the converter can handle the peak 5-volt load without sagging. Some converters have poor transient response; adding a large electrolytic capacitor (1000 µF or more) on the output can help. Avoid linear regulators for anything above a few hundred milliamps—they dissipate the voltage difference as heat.

How often should I recheck the power budget?

Recheck whenever you add or remove a device, change a power supply, or notice unexplained reboots. Even without changes, re-measure every 6-12 months. Electrolytic capacitors age, and a supply that delivered 5.0 V last year may deliver 4.85 V now under the same load. Logging voltage over time with your controllers (e.g., via an ADC pin or a dedicated INA219 sensor) can catch this drift before it causes a failure.

What is the safest way to fuse a DC distribution block?

Use a fused terminal block with blade fuses or PTC resettable fuses, one per branch. Size the fuse for 125-150% of the branch’s measured peak current. For a 5-volt branch powering an ESP32 that peaks at 500 mA, a 750 mA or 1 A fuse is appropriate. Place the fuse as close to the power source as possible to protect the wiring. For the main supply output, use a fuse rated for the supply’s maximum current, not the load—this protects against a dead short in the distribution block itself.