Most robot BOM disasters follow the same pattern: someone shares a parts list, you order everything, and six weeks later you discover the motor driver is rated for 2A but your motors stall at 3A. The BOM was technically correct — it just didn't tell you the thing that mattered.
What a BOM actually is
A Bill of Materials is a structured list of every component in an assembly: name, quantity, cost, and supplier link. That's the floor. A good BOM also includes part numbers, package types, and engineering notes. A great BOM includes why each component was chosen over alternatives.
The Soohoo Robotics BOMs were designed after I got burned by exactly these missing fields — three times in one build.
The six fields that matter
| FIELD | WHY IT MATTERS | WHAT MISSING IT COSTS YOU |
|---|---|---|
| Part number | Prevents substitution of different-spec variants | Wrong motor encoder resolution, week lost |
| Exact supplier link | Same part, right warehouse, current stock | Long tail shipping, 3-week delay |
| Package/form factor | JST-PH vs JST-XH is a different connector | Cable harness redo, cut fingers |
| Current rating | Stall current > driver rating = failed driver | $30 blown in 5 minutes |
| Voltage range | Driver rated 5-12V, pack is 12.6V full charge | Silent brownout at full battery |
| Firmware compatibility | ROS2 driver exists for sensor? | Week of custom driver work |
The supply chain layer (often ignored)
Parts go out of stock. Suppliers get delisted. A BOM is a snapshot in time — the Soohoo BOMs include 2-3 alternative suppliers per critical component specifically because we've been caught by a Mouser stockout the week before a demo.
Always check stock before ordering. The RPLIDAR A1 in particular cycles in and out of availability on Amazon. The Adafruit and RobotShop listings tend to be more stable.
How Soohoo engineering checklists extend the BOM
Each kit BOM comes with an engineering checklist — a separate layer that captures what a raw parts list can't. Here's what each checklist column means:
- Verified: we assembled this, measured it, confirmed it works in this exact stack. Green light.
- Warning: works, but has a documented gotcha — thermal limit at 35°C, connector polarity risk, etc.
- Info: contextual note that doesn't block the build but informs your decisions (alternate suppliers, calibration steps).
Reading the power section specifically
Power is where most builders take shortcuts. For every motor in the BOM, check three numbers: nominal current (cruise), peak current (acceleration), and stall current (blocked). Your driver must handle stall current with headroom. Your fuse must handle peak without blowing on every turn.
N20 motors (×2): nominal 0.2A, stall 0.8A
Cytron MDD10A rating: 10A continuous per channel
Headroom ratio: 10A / 0.8A = 12.5× — excellent
Safe. Size for 3× stall current minimum.
MDD10A gives 12×. Add heatsink if ambient > 35°C.Before you order: the 10-minute sanity check
- Sum total BOM cost — compare against your budget including shipping and import fees.
- Check stock at all suppliers for every item over $15. If 3+ items are backordered, wait.
- For every motor: verify driver peak current ≥ 3× motor stall current.
- For every sensor: confirm there's a ROS2 or MicroPython driver in active maintenance.
- For power regulators: confirm input voltage range covers full battery discharge (not just nominal).
- Check connector types match — JST-PH and JST-XH look identical and are incompatible.
Download the BOM CSV and open it in a spreadsheet. Add a 'checked' column. Work through it row by row before ordering anything. Twenty minutes now saves three weeks of returns.