Skip to content
bom-generator logo

BOM Generator

bom-generator

Generates Bill of Materials (BOM) from project descriptions for Arduino/ESP32/RP2040 projects. Use when user needs component lists, parts shopping lists, cost estimates, or asks "what parts do I need". Outputs formatted BOMs with part numbers, quantities, suppliers (DigiKey, Mouser, Amazon, AliEx...

SKILL.md

Full skill instructions

BOM Generator

Creates comprehensive Bill of Materials for maker projects with supplier links and compatibility checks.

Resources

  • scripts/​generate_bom.py - Python script for xlsx/​csv/​markdown BOM generation (requires openpyxl)
  • references/​example-bom.md - Complete example BOM
  • assets/​example-project.json - Sample project configuration for script

Quick Start

Generate BOM interactively:

uv run --no-project scripts/​generate_bom.py --interactive

Generate from JSON configuration:

uv run --no-project scripts/​generate_bom.py --json assets/​example-project.json --output bom.xlsx

List component database:

uv run --no-project scripts/​generate_bom.py --list

Export formats: xlsx (default), csv, md, json

When to Use

  • User describes a project and needs parts list
  • User asks "what components do I need for X"
  • User wants to order parts for a design
  • User needs cost estimates

Workflow

Step 1: Gather Project Requirements

Ask user for:

1. Project description (what does it do?)
2. Target microcontroller (Arduino UNO/​Nano/​Mega, ESP32, RP2040)
3. Power source (USB, batteries, wall adapter)
4. Quantity (how many units to build?)
5. Budget constraints (optional)
6. Supplier preference (optional)

Step 2: Generate BOM

Run scripts/​generate_bom.py --interactive for guided generation, or use this template format:

# Bill of Materials: [Project Name]

**Generated:** [Date]
**Target Board:** [MCU]
**Quantity:** [N] unit(s)
**Estimated Total:** $[X.XX] - $[Y.YY] (per unit)

## Core Components

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| 1 | [MCU Board] | [specs] | $X.XX | [DigiKey](#) / [Amazon](#) |
| ... | ... | ... | ... | ... |

## Sensors & Input

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Output Devices

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Power Components

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Passive Components

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Mechanical & Connectors

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Tools Required (if not owned)
- [ ] Tool 1
- [ ] Tool 2

## Compatibility Warnings
⚠️ [Any voltage/​current/​timing concerns]

## Substitution Notes
💡 [Alternative components if primary unavailable]

Component Database

Microcontrollers

BoardVoltageGPIOFlashPrice RangeBest For
Arduino UNO R35V1432KB$12-25Beginners, most tutorials
Arduino Nano5V1432KB$3-20Compact projects
Arduino Mega5V54256KB$15-40Many I/​O, large programs
ESP32 DevKit3.3V344MB$5-15WiFi, Bluetooth, IoT
ESP32-C33.3V224MB$4-10Low-cost WiFi
RP2040 Pico3.3V262MB$4-6Dual-core, PIO
RP2040 Pico W3.3V262MB$6-8Pico + WiFi

Common Sensors

SensorInterfaceVoltagePriceUse Case
DHT22/​AM23021-Wire3.3-5V$3-8Temperature + humidity
BME280I2C/​SPI3.3V$5-15Temp + humidity + pressure
BMP280I2C/​SPI3.3V$2-8Temp + pressure (no humidity)
DS18B201-Wire3-5.5V$2-5Waterproof temperature
HC-SR04GPIO5V$1-3Ultrasonic distance
VL53L0XI2C3.3V$5-12Laser distance (accurate)
MPU6050I2C3.3V$2-8Accelerometer + gyroscope
BNO055I2C3.3V$25-359-DOF IMU (best accuracy)
VEML7700I2C3.3V$4-8Ambient light (lux)
MAX30102I2C3.3V$5-12Heart rate + SpO2

Displays

DisplayInterfaceResolutionPriceNotes
16x2 LCDI2C16 chars$3-8Need I2C backpack
20x4 LCDI2C20 chars$5-12Larger text display
SSD1306 OLEDI2C128x64$3-8Sharp, no backlight needed
SSD1306 OLEDI2C128x32$3-6Compact OLED
ST7735 TFTSPI128x160$5-10Color, fast refresh
ILI9341 TFTSPI240x320$8-15Larger color display
E-PaperSPIVarious$15-40Low power, no refresh

Motors & Actuators

TypeDriver NeededPriceNotes
SG90 ServoNone (PWM)$2-5180°, weak torque
MG996R ServoNone (PWM)$5-10Strong, metal gears
28BYJ-48 StepperULN2003$3-6Cheap, slow, weak
NEMA17 StepperA4988/​DRV8825$8-15Strong, precise
DC Motor + GearboxL298N/​TB6612$5-15High speed available
Linear ActuatorL298N$15-40Push/​pull motion

Motor Drivers

DriverChannelsMax CurrentVoltagePrice
L298N22A/​ch5-35V$3-8
TB6612FNG21.2A/​ch4.5-13.5V$3-8
A49881 stepper2A8-35V$2-5
DRV88251 stepper2.5A8.2-45V$3-6
TMC22091 stepper2A4.75-28V$8-15

Power Components

ComponentSpecsPriceUse Case
LM78055V 1A linear$0.50Simple 5V reg
AMS1117-3.33.3V 1A linear$0.303.3V from 5V
LM2596 ModuleAdj. 3A buck$2-4Efficient step-down
MT3608 ModuleAdj. 2A boost$1-3Step-up voltage
TP4056 ModuleLiPo charger$1-2Battery charging
18650 Holder1-4 cells$1-5Battery mounting
JST Connectors2-pin$2-5/​10pkBattery connections

Passive Components (Buy Kits!)

Kit TypeTypical ContentsPriceRecommendation
Resistor Kit600+ pcs, 1/​4W$8-15Get once, use forever
Capacitor KitCeramic + electrolytic$10-20Essential
LED Kit5mm various colors$5-10Common needs
Button KitTactile switches$5-8Various sizes
Diode Kit1N4148, 1N4007, etc$5-8Protection circuits

Supplier Guide

Speed vs Cost Trade-offs

SupplierShippingPriceBest For
DigiKey1-3 days$$$Precise specs, datasheets, urgent
Mouser1-3 days$$$Wide selection, quality
Amazon1-2 days$$Quick delivery, returns easy
Adafruit3-5 days$$$Quality, tutorials, support
SparkFun3-5 days$$$Breakout boards, learning
AliExpress2-6 weeks$Bulk, budget, clones
LCSC1-2 weeks$$Chinese components, good quality

Part Number Patterns

DigiKey: Descriptive codes
  - 1N4007-TP → 1N4007 diode
  - SER0006 → Servo motor

Mouser: Manufacturer part numbers
  - Search by exact MPN

Amazon: ASIN codes
  - Search by product name + specs

AliExpress: Store + product ID
  - Check reviews, sold count

Compatibility Checks

Voltage Level Matrix

                     Can Connect To:
From:        3.3V Logic    5V Logic
─────────────────────────────────────
3.3V MCU     ✅ Direct     ⚠️ Level shifter
5V MCU       ⚠️ Divider    ✅ Direct
3.3V Sensor  ✅ Direct     ⚠️ May work*
5V Sensor    ❌ Damage!    ✅ Direct

* Some 3.3V sensors are 5V tolerant - check datasheet

Current Budget Check

Source Limits:
- Arduino 5V pin: 500mA max (from USB)
- Arduino GPIO: 40mA max per pin
- ESP32 3.3V: 500mA max
- ESP32 GPIO: 40mA max
- RP2040 GPIO: 16mA max

Always calculate:
Total current = Σ(component currents)
If total > source limit → external power needed

I2C Address Conflicts

Common I2C addresses to watch:

0x3C - SSD1306 OLED
0x27 - PCF8574 LCD backpack  
0x3F - PCF8574A LCD backpack
0x68 - MPU6050, DS3231 RTC
0x76 - BME280 (default)
0x77 - BME280 (alternate), BMP280
0x48 - ADS1115 ADC
0x50 - AT24C32 EEPROM

Output Format Options

Markdown Table (Default)

Best for documentation, GitHub READMEs.

CSV Export

Qty,Component,Specifications,Unit Price,Total,Supplier,Link
1,Arduino UNO R3,ATmega328P,15.00,15.00,Amazon,https://...

Shopping Cart Links

Provide direct "Add to Cart" links where possible.

Example BOM Output

See references/​example-bom.md for complete example.

More Other skills

Delegate independent tasks to specialized agents working concurrently with isolated context.

295.4K 206.3K
View

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

179.7K 100.1K
View

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

179.7K 89.5K
View

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

179.7K 76.1K
View

Fundamental design principles for writing maintainable, testable Python code.

40.2K 21.9K
View

Modern responsive layouts using container queries, fluid typography, CSS Grid, and mobile-first strategies.

40.2K 20K
View

Generate Playwright tests from scenarios using interactive browser exploration and validation.

39.7K 18.2K
View

Modern React state management with Redux Toolkit, Zustand, Jotai, and React Query for every state category.

40.2K 14.7K
View

GDPR-compliant data handling with consent management, data subject rights, and privacy controls.

40.2K 14.3K
View

Python error handling patterns including input validation, exception hierarchies, and partial failure handling. Use when implementing validation logic, designing exception strategies, handling batch processing failures, or building robust APIs.

40.2K 13.5K
View

Detailed multi-file refactor planning with safety checks and rollback guidance.

39.7K 13K
View