The code compiles. Every sensor reads correctly on the bench. Then the robot rolls onto the demo table, all four motors engage at once, and the microcontroller quietly reboots β mid-sentence, in front of the panel.
Final year projects rarely fail because the algorithm is wrong. Line-following, obstacle avoidance, PID control, SLAM on a Raspberry Pi β the logic is usually sound by demo day. What kills the demo is something nobody taught: the electrical system was never sized for what the robot actually asks of it under load.
That difference β one actuator versus all of them, briefly stationary versus accelerating, quiet lab versus a table full of onlookers and Wi-Fi β is exactly where a power budget belongs. Most students never build one. They pick a battery because a senior used it last year, or because it was the one in stock.
01The symptom gets blamed on the wrong thing
When a robot resets, freezes, or drifts off course only during the live run, the instinct is to blame the code, the Wi-Fi, or bad luck. The actual sequence is almost always electrical, and it looks the same across projects:
- Motors draw a current spike on start or direction change
- Battery voltage sags under that spike
- The 5V regulator can no longer hold its output
- The microcontroller browns out and resets
- Servos judder or lose position briefly
- Ultrasonic or IMU readings glitch for a few cycles
None of this shows up in a bench test where one motor runs at a time and the robot is stationary. It shows up the moment every subsystem is asked to work together, which is precisely the condition of a live demo.
02What a power budget actually is
A power budget is a table, not a guess. It lists every component that draws current, states how much it draws at rest and under peak load, and sums the result. That sum is the number the battery has to satisfy β not the number printed on the datasheet's "typical" line.
Two numbers matter more than any other: the continuous current the robot draws in normal operation, and the peak current it draws for the fraction of a second when motors stall against friction, a servo slams into a mechanical limit, or several actuators start simultaneously.
03Calculating current draw per component
DC gear motors
The datasheet's "rated current" is what the motor draws while spinning freely under normal load β not what it draws under stall. Stall current is far higher, and it is what happens every time the robot starts from rest, climbs over a bump, or is blocked by an obstacle. Stall current is approximately supply voltage divided by the motor's winding resistance, and most datasheets state it directly. Budget on stall current, not rated current.
Servos
A servo idling in position draws very little. A servo actively moving against load, or holding a position under torque, can draw several times its idle current. If two or more servos move at the same instant β an arm lifting while a gripper closes β their peak currents add directly.
Microcontrollers and single-board computers
An Arduino draws a small, steady current. A Raspberry Pi running a camera pipeline or SLAM stack draws considerably more, and that draw is not flat β it rises under CPU load exactly when the robot is doing the most demanding part of its task.
Sensors and radios
Ultrasonic modules, IMUs, and line sensors draw little individually, but Wi-Fi and Bluetooth radios spike sharply on transmit. A robot that streams video or reports telemetry wirelessly adds a transmit spike on top of everything mechanical.
04Continuous load versus peak load
Continuous current tells you how long the battery will last. Peak current tells you whether the robot will survive the next half-second. A battery and regulator sized only for the continuous figure will run for hours on the bench and still brown out the moment all four motors stall against a curb during the demo.
05Choosing the battery from the numbers
Once peak and continuous current are known, three battery specs decide whether it can deliver them without its own voltage collapsing:
- Capacity in mAh β how long it runs
- Discharge or C-rating β how much current it can supply
- Internal resistance β how much voltage sags under load
A high-capacity battery with a low discharge rating is a common trap. A 2200mAh pack rated at only 2C can supply roughly 4.4A continuously before its own voltage starts sagging β nowhere near enough if four motors stall at 1.5A each plus a Raspberry Pi under load. The mAh number looks generous; the C-rating is what actually fails during the demo.
The process
List every load
Motors, servos, MCU, SBC, sensors, radios β nothing left off the table.
Pull stall/peak current
Use stall current for motors and peak-draw current for actuators, not idle figures.
Sum worst-case overlap
Add currents for every load that can realistically activate at the same instant.
Add margin
Apply at least 25β30% headroom for aging batteries, cold weather, and voltage sag.
Check the C-rating
Confirm capacity Γ C-rating comfortably exceeds the peak current figure.
Size the wiring and regulator
Thin wire and an underrated regulator can bottleneck a correctly sized battery.
Load-test before demo day
Run every subsystem simultaneously and watch supply voltage on an oscilloscope or multimeter.
A worked example
A typical FYP mobile robot: four DC gear motors, one Raspberry Pi 4 running a vision pipeline, one ultrasonic sensor, one servo-driven camera mount, and a Wi-Fi telemetry link.
| Component | Continuous | Peak / stall |
|---|---|---|
| 4Γ DC gear motor | 4 Γ 0.3A = 1.2A | 4 Γ 1.5A = 6.0A |
| Raspberry Pi 4 (vision load) | 1.2A | 1.5A |
| Camera servo | 0.1A | 0.6A |
| Ultrasonic sensor | 0.02A | 0.02A |
| Wi-Fi transmit spike | 0.1A | 0.4A |
| Total | β 2.6A | β 8.5A |
A 2200mAh, 25C LiPo can supply 2200mAh Γ 25 = 55A β far more than 8.5A, with voltage held steady under the spike. A 2200mAh pack at 2C manages only about 4.4A before sagging, well below the 8.5A peak this robot actually needs. Same capacity number on the label; one survives the demo and one doesn't.
What getting this right buys you
Where this goes
Every FYP demo places the same stress on a robot: every subsystem active at once, in front of people, for the one run that counts. A robot that has never faced that combined load on the bench is meeting it for the first time on stage. A power budget is the fifteen minutes of arithmetic that finds the weak point before the panel does.
It fails because nobody added up the amps.
