MCPInstall

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, AliExpress), and compatibility warnings. Run scripts/generatebom.py for xlsx/csv export.

Installs
151
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill bom-generator
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads bom-generator automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

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.

Shared Output Contract

Use the shared Arduino skill contract: state assumptions, required tools and versions, implementation steps, tests/evidence by proof stage, known limitations, and recovery/security notes.

FAQ

What does the bom-generator skill do?

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, AliExpress), and compatibility warnings. Run scripts/generatebom.py for xlsx/csv export.

How do I install bom-generator?

Run npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill bom-generator in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/bom-generator/ (personal) or .claude/skills/bom-generator/ (project).

Which AI agents can use bom-generator?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is bom-generator safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains bom-generator?

It is published by wedsamuel1230 in wedsamuel1230/embedded-engineering-skills. It has 151 recorded installs.

More from wedsamuel1230/embedded-engineering-skills

View all →

arduino-project-builder

wedsamuel1230/embedded-engineering-skills

Build complete Arduino and embedded projects across Arduino IDE, Arduino CLI, PlatformIO, and vendor-specific toolchains. Use when users request an application combining firmware, sensors, actuators, networking, power, or deployment rather than a code snippet. The bundled scaffold targets UNO, ESP32, and Raspberry Pi Pico; use the board profile and document limitations for other targets.

DevOps & Cloud540 installs

arduino-code-generator

wedsamuel1230/embedded-engineering-skills

Generate Arduino and embedded C++ snippets for sensors, actuators, buses, state machines, timing, data logging, and hardware abstraction. Use when a user requests implementation code and provide the exact board, framework, toolchain, pins, voltage, memory, and library versions first. Bundled templates target UNO, ESP32, and RP2040; document unsupported board or vendor-framework behavior instead of guessing.

DevOps & Cloud429 installs

circuit-debugger

wedsamuel1230/embedded-engineering-skills

Systematic hardware debugging guide for Arduino/ESP32/RP2040 circuits. Use when user reports: circuit not working, components getting hot, no power, intermittent failures, unexpected behavior, sensor not responding, LED not lighting, motor not spinning. Guides through power checks, continuity testing, signal tracing, and component isolation using multimeter techniques.

Frontend & Design278 installs

arduino-serial-monitor

wedsamuel1230/embedded-engineering-skills

Read and analyze Arduino or embedded serial output for structured runtime debugging across Arduino IDE, Arduino CLI, PlatformIO, and vendor-specific monitor tools. Use when boot output, sensor data, resets, communication failures, timing symptoms, or field behavior need evidence rather than compile-only reasoning.

error-message-explainer

wedsamuel1230/embedded-engineering-skills

Explain Arduino and embedded compiler, upload, boot, power, and runtime errors in plain English. Use when a user shares an error or failure from Arduino IDE, Arduino CLI, PlatformIO, or a vendor-specific tool. Separate build, upload, hardware, and system evidence and give a board-specific recovery path without assuming UNO, ESP32, or RP2040 behavior.

191 installs

enclosure-designer

wedsamuel1230/embedded-engineering-skills

Use when users need a 3D-printable enclosure for an Arduino, ESP32, or RP2040 project and need help with measurements, cutouts, print settings, or environmental protection.

Frontend & Design175 installs

Popular data & databases skills

View category →

Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.

OfficialData & Databases462.2K installs

prisma-client-api

prisma/skills

Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".

OfficialData & Databases393.5K installs

Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.

OfficialData & Databases392.3K installs

prisma-cli

prisma/skills

Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.

OfficialData & Databases390.8K installs

prisma-postgres

prisma/skills

Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.

OfficialData & Databases384.4K installs

Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.

OfficialData & Databases378.9K installs