# Bom Builder

> Build or update the SumoX-26 bill of materials, weight budget, and power budget from the current design. Use when costing the robot, checking whether it will make weight, or sizing the motor driver and battery before ordering parts.

- Skill: `faaz17/bom-builder` (Agent Skill)
- Install (CLI): `npx skillmds@latest add faaz17/bom-builder`
- Raw SKILL.md: https://api.skillmd.com/api/skills/faaz17/bom-builder/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Finance & Business
- Author: Faaz17 (https://skillmd.com/u/faaz17)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/faaz17/bom-builder

---


# /bom-builder, BOM plus weight and power budgets

Three linked tables that decide whether the robot is legal, survivable and affordable. They live in `docs/BOM.md`. Keep all three current, because a stale weight budget is how you get disqualified at inspection.

## Process

### 1. Collect every part from the current design

Walk the whole robot, and don't miss the small stuff.

- **Drivetrain:** motors, gearboxes, wheels, hubs, couplers
- **Electronics:** Arduino UNO Q, motor driver, edge sensors (×4), opponent sensors (×3 to 5), battery, regulator, switch, connectors, wiring
- **Mechanical:** chassis or base plate, blade, ballast, standoffs, fasteners, brackets
- **Consumables:** heat-shrink, threadlock, tape

Fasteners and wiring are always heavier than people estimate. Give them a real line rather than a guess of zero.

### 2. Weight budget, the legality check

| Ref | Item | Qty | Est. g | Actual g | Notes |
|---|---|---|---|---|---|

- Fill `Est. g` from CAD, and fill `Actual g` as parts arrive and get weighed.
- Total against the confirmed 3 kg limit.
- Target about 2 900 g competition-ready with batteries installed. Magnets are banned and the arena is wood, so `push = μ × weight` and every gram under the cap is push force you don't have.
- Flag immediately if the estimate goes over 3 000 g. Losing weight late is painful; catching it in CAD is free. If the estimate comes in well under, add low-mounted ballast rather than leaving the margin unused.

### 3. Power budget, the survival check

| Component | Voltage | Nominal A | Peak / Stall A | Notes |
|---|---|---|---|---|

The peak column sizes everything. Then check:

- Driver continuous rating at 2× total motor stall current or better. A sumo match *is* the stall condition.
- Battery C-rating × capacity at total peak or better, with margin.
- Regulator dropout verified against worst-case sag. The UNO Q's Linux side resets more readily than a bare MCU.

If motor stall current is a guess rather than a datasheet figure, say so explicitly and recommend measuring it before ordering the driver.

### 4. Cost the BOM

| Ref | Part | Spec that matters | Supplier | Price | Lead time | Ordered | Date checked |
|---|---|---|---|---|---|---|---|

- Date every price and stock check, since they drift.
- Note the spec that matters, not just the part name. "TB67H420FTG, 9 A continuous" is useful; "motor driver" is not.
- UAE sourcing: check shipping and customs. Lithium cells often can't ship by air, which means long lead times or local-only sourcing. Flag long-lead items so they get ordered first.
- Spares are line items, not afterthoughts. At minimum: spare wheels, spare battery, spare fasteners, and a spare blade if machining allows.

### 5. Total and sanity-check

- Sum line costs into the category summary in `docs/BOM.md`.
- Flag duplicates and missing parts.
- Check the total against the user's budget ceiling, and ask if it isn't recorded yet.
- Confirm machining costs are included. The blade usually needs an external shop.

## Output

Update `docs/BOM.md` in place with all three tables plus the budget summary. Report:

- Weight total against the limit, as a percentage
- Whether the driver and battery are correctly sized, with the numbers
- Total cost against budget
- Long-lead items to order first
- Anything still unknown that blocks ordering

## Rules

- The weight class is confirmed at 3 kg (2026-08-09). Don't reintroduce the 500 g option or tag the class `(assumed)`.
- Don't invent prices. If a price wasn't checked, leave it blank and say so.
- A part with no `Actual g` has not been weighed. Don't present estimates as measurements.
- Cross-check against the estimated budget already in `docs/BLUEPRINT.md` §3.1 and §4.1 rather than starting from scratch.

