# Power Supplies, Current Budgets and Common Ground — Arduino & Embedded C

Source: https://www.geekswithgeeks.com/en/arduino-embedded-c/power-budget

> Plan the current before you plug in.

## Know every limit in the chain

Every power path has a limit: the USB port, the board's voltage regulator, the 5 V and 3.3 V pins, each GPIO pin and the MCU package total. Add up the worst-case current of everything you connect: a **current budget**. Motors, servos, LED strips and Wi-Fi modules draw large peaks, which can brown out the MCU and cause random resets. Give them their own supply rated for the peak current, and connect all **grounds together** so signals share a reference. Add decoupling capacitors near loads, keep high-current wiring short and away from signal lines, and use a fuse for battery packs. Exact regulator and pin limits differ between boards and revisions; check your board's datasheet.

## A worked current budget

Example values only; read the real figures from each part's datasheet.

```text
Project: Uno R3 + 2 servos + 8 LEDs + I2C sensor

Uno R3 itself ........................ ~50 mA (varies)
I2C sensor .............................. ~1 mA
8 LEDs x 10 mA (330 Ohm @ 5 V) ......... 80 mA from GPIO pins
   -> check per-pin and total MCU limits
2 servos, peak each ~500 mA+ ........... 1000 mA+  -> separate 5-6 V supply

Decision:
  board + sensor + LEDs from USB
  servos from a 5-6 V supply rated >= 2 A
  ALL grounds connected together
```

## Random resets are often power

If the board resets when a motor starts, suspect a supply dip before suspecting your code. Separate supplies and bulk capacitance usually fix it.

**Quiz:** You power servos from a separate 6 V supply. What else must you do?

- [x] Connect the servo supply ground to the Arduino ground
- [ ] Connect the 6 V supply to an Arduino GPIO pin
- [ ] Nothing, the signals are isolated automatically
- [ ] Remove the Arduino ground connection

*Answer:* Connect the servo supply ground to the Arduino ground. Signals are measured relative to ground, so both circuits need a common reference.
