summaryrefslogtreecommitdiff
path: root/bom.md
diff options
context:
space:
mode:
Diffstat (limited to 'bom.md')
-rw-r--r--bom.md55
1 files changed, 55 insertions, 0 deletions
diff --git a/bom.md b/bom.md
new file mode 100644
index 0000000..33436c5
--- /dev/null
+++ b/bom.md
@@ -0,0 +1,55 @@
+# Heart-Shaped LED/OLED Device — Parts List
+preliminary BOM, generated by claude from given requirements
+
+## Design approach
+- MCU: ATmega32U4 (native USB) — no separate USB-UART bridge needed, program directly over USB-C once bootloader is burned.
+- Power: 3.3V system, LDO off a 1S LiPo, charged via MCP73831 from USB-C VBUS. No boost converter needed.
+- Display: I2C SSD1306 OLED module (128x32 or 128x64) — smaller/higher-contrast than a 16x2 LCD, 2 data pins.
+- LEDs: SK6812MINI-E or SK6805-EC15 addressable RGB, single data line around the heart perimeter, powered from raw battery rail (not the 3.3V logic rail).
+
+## Power / USB-C / charging
+| Qty | Part | KiCad symbol / footprint | Notes |
+|---|---|---|---|
+| 1 | USB-C receptacle (USB 2.0, 16-pin) | `Connector:USB_C_Receptacle_USB2.0_16P` / `Connector_USB:USB_C_Receptacle_GCT_USB4085` | Only VBUS, GND, D+/D-, CC1/CC2 needed |
+| 2 | 5.1kΩ resistor | `Device:R` | CC1 & CC2 to GND — advertises 5V/default-current sink |
+| 1 | MCP73831T-2ACI/OT | `Battery_Management:MCP73831-2-OT` (SOT-23-5) | Single-cell LiPo linear charger |
+| 1 | Rprog resistor | `Device:R` | Sets charge current (2kΩ≈500mA, 4kΩ≈250mA) — match to cell mAh, ≤1C |
+| 1 | Charge status LED + resistor (optional) | `Device:LED`, `Device:R` | On MCP73831 STAT pin |
+| 1 | AP2112K-3.3 LDO | `Regulator_Linear:AP2112K-3.3` (SOT-23-5) | Battery → 3.3V logic rail |
+| 2 | 1µF ceramic cap | `Device:C` | LDO in/out |
+| 1 | JST-PH 2-pin battery connector | `Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Vertical` | Match to cell purchased |
+| 1 | Slide/power switch (optional) | `Switch:SW_SPDT` | Battery-side on/off only |
+| 1 | 1S LiPo cell, 3.7V, with built-in protection PCB | — | Size to fit housing; buy a cell with protection built in |
+
+## MCU
+| Qty | Part | KiCad symbol / footprint | Notes |
+|---|---|---|---|
+| 1 | ATmega32U4-AU or -MU | `MCU_Microchip_ATmega:ATmega32U4-AU` (TQFP-44) or `-MU` (QFN-44) | Native USB |
+| 1 | 8MHz crystal | `Device:Crystal` | 3.3V/8MHz config (like Pro Micro 3.3V) |
+| 2 | 22pF cap | `Device:C` | Crystal load caps |
+| 2 | 22Ω resistor | `Device:R` | Series on USB D+/D-, near MCU |
+| 1 | 1µF cap | `Device:C` | UCap pin (internal USB regulator) |
+| 1 | 10kΩ resistor | `Device:R` | Reset pull-up |
+| 1 | Tactile switch | `Device:SW_Push` | Reset button |
+| 1 | 100nF cap (optional) | `Device:C` | Reset debounce |
+| 6-8 | 100nF cap | `Device:C` | Decoupling, one per VCC/AVCC pin |
+| 1 | 4.7µF cap | `Device:C` | Bulk decoupling |
+| 1 | 6-pin ISP header (2x3, 0.1") | `Connector_Generic:Conn_02x03_Odd_Even` | One-time bootloader burn via external ISP programmer |
+
+## Display
+| Qty | Part | Footprint | Notes |
+|---|---|---|---|
+| 1 | SSD1306 I2C OLED, 128x32 or 128x64, 0.91"/0.96" | Custom 4-pin 0.1" header footprint matching purchased breakout (not in official KiCad libs) | 128x32 fits ~2 lines of short text; 128x64 for bigger font |
+| 2 | 4.7kΩ resistor | `Device:R` | I2C pull-ups, only if module doesn't already have them |
+
+## LED perimeter ring
+| Qty | Part | Footprint | Notes |
+|---|---|---|---|
+| ~20-30 | SK6812MINI-E (3.5x3.5mm) or SK6805-EC15 (1.5x1.5mm) | Custom pad pattern from datasheet (not in official KiCad libs) | Chain DOUT→DIN around perimeter; power from raw battery rail, data from 3.3V MCU pin |
+| 1 | 330-470Ω resistor | `Device:R` | Series on data line into first LED |
+| 1 | 100-220µF cap | `Device:CP` | Across LED power rail at chain start |
+
+## Notes
+- Keep LED power domain (raw battery, ~3.0-4.2V) separate from 3.3V logic rail — only the data line crosses.
+- OLED module and addressable LEDs need hand-made footprints (simple pad patterns) once exact parts are chosen.
+- ~20-30 LEDs at 8-10mm spacing works well for a ~2.5-3" wide heart outline.