FixTheRobot Explore Robotics / Systems Engineering / Engineering Guides / Module 19

Engineering Guides · Module 19

Pre-power-on hardware inspection

Most hardware damage happens in the first minute. Measure before you power on, with limits written down.

  • Intermediate
  • Module 19: Testing, Validation & Field Deployment
  • Written for ROS 2 Jazzy where ROS 2 is used
  • Sources checked 2026-11-06

Assumptions: Numbers in the examples are illustrative and the code is executed by the site’s tests. Facts taken from a cited source are marked; other statements are general engineering knowledge and must be confirmed on the datasheet of the part you use.

1. Engineering problem

A wiring error, reversed pack or shorted rail does its damage as soon as power is applied. A short list of measurements with limits takes minutes and prevents the most expensive mistakes.

2. When is this needed?

  • First power-up of a new or rebuilt robot.
  • After any wiring, battery or motor change.
  • Before every field deployment, as a short version.

3. Selection and design decisions

Checks (the limits come from your design and the datasheets; the ones shown are illustrative): pack voltage within the range of every consumer (for a 7S NMC pack, 21.0 to 29.4 V from the per-cell range of 3.0 to 4.2 V, Battery University BU-205); resistance between supply rails with power off, to find shorts; insulation between the chassis and the supply; fuse rating against worst-case current; free rotation of wheels and joints; and that the emergency stop removes drive power.

Overview
CheckHowFail means
Pack voltageMeter at the pack and at the main fuseWrong chemistry, cell count or a deeply discharged pack
Rail resistance, power offOhmmeter between supply railsA short or a large uncharged capacitor load
Chassis insulationOhmmeter or insulation testerA conductor touching the frame
Fuse marginCompare ratings with the worst-case currentFuse blows on start or fails to protect the wire
Mechanical freedomTurn wheels and joints by handBinding that will overload a motor
Emergency stopPress with the drive enabled and no motion commandThe stop does not cut drive power

4. Advantages and disadvantages

  • More checks catch more faults and cost time: keep a short daily version and a full version after changes.
  • Powering through a current-limited supply first limits the damage of a fault.
  • A written checklist beats memory.

5. Requirements and constraints

  • Limits written in the checklist, not decided on the spot.
  • Two people for the first power-up of a new design.
  • A current-limited bench supply for the first power-up where possible.

6. Architecture

checklist ─▶ measure (power off) ─▶ all pass? ─▶ current-limited power-up ─▶ full power ─▶ functional checks

7. Implementation

  1. Print the checklist with limits.
  2. Measure with power off (below).
  3. Fix any failure and repeat the measurement.
  4. Power up through a current-limited supply and watch the current.
  5. Move to the full battery and run the functional checks.
checks = [
    ("pack voltage (7S NMC, 3.0-4.2 V per cell => 21.0-29.4 V)", 25.8, 21.0, 29.4, "V"),
    ("resistance between supply rails, power off", 0.4, 5.0, None, "ohm"),
    ("resistance chassis to supply minus, power off", 2.0e6, 1.0e5, None, "ohm"),
    ("main fuse rating minus worst-case current", 15.0 - 9.0, 1.0, None, "A"),
    ("wheel free rotation torque (should be small)", 0.05, None, 0.2, "N m"),
    ("emergency stop removes drive power (1 = yes)", 1, 1, 1, ""),
]
failed = 0
for name, v, lo, hi, unit in checks:
    ok = (lo is None or v >= lo) and (hi is None or v <= hi)
    failed += not ok
    print(("PASS" if ok else "FAIL"), f"{name}: {v} {unit}")
print("do not power on" if failed else "all inspections passed", f"({failed} failed)")

Printed (checked by the site’s tests):

PASS pack voltage (7S NMC, 3.0-4.2 V per cell => 21.0-29.4 V): 25.8 V
FAIL resistance between supply rails, power off: 0.4 ohm
PASS resistance chassis to supply minus, power off: 2000000.0 ohm
PASS main fuse rating minus worst-case current: 6.0 A
PASS wheel free rotation torque (should be small): 0.05 N m
PASS emergency stop removes drive power (1 = yes): 1 
do not power on (1 failed)

Reading it: the pack voltage of 25.8 V is within the 7S NMC range, the chassis is well insulated, the fuse has 6 A of margin, the wheels turn freely and the emergency stop works; but 0.4 Ω between the supply rails is below the (illustrative) 5 Ω limit, so the checker says not to power on. All limits are illustrative: take yours from the design.

8. Real examples

  • New AMR build: the rail-resistance check found a pinched wire before the first power-up.

9. Failure scenarios

  • Powering on with the battery connected backwards.
  • Skipping the check after a quick repair.
  • A fuse that is larger than the wire rating.

10. Troubleshooting

  1. If a rail reads low, find the short by isolating sections.
  2. If insulation is low, look for a conductor against the chassis.
  3. If the emergency stop does not cut power, do not operate.

11. Validation

  • The checker prints the lines shown (executed by the site tests).
  • Every robot passes the checklist before each deployment, and the results are recorded.

12. Engineering checklist

13. Further references

  • Battery University BU-205 (cell voltage ranges): batteryuniversity.com, read 2026-11-05. The other limits are design values and not drawn from a cited source.

Related on FixTheRobot