battery-selector
Helps choose the right battery type and charging solution for Arduino/ESP32/RP2040 projects. Use when user asks about battery options, charging circuits, power source selection, or says "what battery should I use". Covers chemistry selection, safety, voltage regulation, and charging circuits.
What this skill does
# Battery Selector
Guides battery chemistry and charging circuit selection for embedded projects.
## Resources
This skill includes bundled tools and references:
- **scripts/compare_batteries.py** - Battery comparison calculator with 15+ battery types
- **references/safety-guidelines.md** - Comprehensive safety guide for all chemistries
## Quick Start
**Interactive selection:**
```bash
uv run --no-project scripts/compare_batteries.py --interactive
```
**Command line:**
```bash
# Find battery for 50mA project, 24h runtime
uv run --no-project scripts/compare_batteries.py --current 50 --hours 24
# Require rechargeable
uv run --no-project scripts/compare_batteries.py --current 100 --hours 12 --rechargeable
# List all batteries in database
uv run --no-project scripts/compare_batteries.py --list
```
## When to Use
- "What battery should I use?"
- "How do I charge this project?"
- "Lithium vs alkaline?"
- "Is this battery safe?"
- Planning portable/battery-powered projects
## Decision Flowchart
```
START
│
▼
Is project rechargeable? ──No──► Alkaline/Lithium Primary
│ (Disposable batteries)
Yes
│
▼
What voltage does MCU need?
│
├── 5V ──► LiPo + Boost converter
│ OR 3x/4x NiMH
│
├── 3.3V ──► Single LiPo (3.0-4.2V)
│ Directly compatible!
│
└── 12V+ ──► Multi-cell LiPo pack
OR Lead-acid
│
▼
How much current?
│
├── <50mA ──► Small LiPo (500-1000mAh)
│ OR Coin cell (CR2032)
│
├── 50-500mA ──► Standard LiPo (1000-3000mAh)
│ OR 18650 cells
│
└── >500mA ──► Large LiPo (3000mAh+)
OR Multiple 18650s
External power recommended
```
## Battery Chemistry Comparison
### Quick Reference
| Chemistry | Voltage | Rechargeable | Energy Density | Cost | Safety |
|-----------|---------|--------------|----------------|------|--------|
| Alkaline | 1.5V/cell | No | Medium | Low | Very safe |
| Lithium Primary | 3V | No | High | Medium | Safe |
| NiMH | 1.2V/cell | Yes | Medium | Medium | Safe |
| LiPo/Li-ion | 3.7V | Yes | Very High | Medium | ⚠️ Needs care |
| LiFePO4 | 3.2V | Yes | High | High | Safer than LiPo |
| Lead-acid | 2V/cell | Yes | Low | Low | ⚠️ Acid hazard |
### Alkaline (AA/AAA/9V)
**Pros:**
- Cheap, available everywhere
- No charging circuit needed
- Very safe
- Long shelf life (5-10 years)
**Cons:**
- Not rechargeable (e-waste!)
- Voltage drops as discharged
- Poor at high current
- Heavy for capacity
**Best For:**
- Low-power projects (<20mA average)
- Beginner projects
- Remote/deployment where charging impractical
- Backup power
**Voltage Configurations:**
```
Cells Voltage Use With
────────────────────────────
2x AA 3.0V 3.3V MCUs (with LDO)
3x AA 4.5V 5V MCUs (direct or LDO)
4x AA 6.0V 5V MCUs (with regulator)
9V 9.0V With 5V/3.3V regulator
```
---
### NiMH (AA/AAA Rechargeable)
**Pros:**
- Rechargeable (500-1000 cycles)
- Same size as alkaline
- Safer than lithium
- No memory effect
**Cons:**
- Lower voltage (1.2V vs 1.5V)
- Self-discharge (~20%/month)
- Need proper charger
- Heavier than LiPo
**Best For:**
- Projects replacing disposable batteries
- Educational settings
- Where LiPo is too risky
- Budget rechargeable solution
**Charging:**
- Use dedicated NiMH charger
- Don't mix brands/capacities
- Eneloop/Eneloop Pro recommended
---
### LiPo / Li-ion (3.7V)
**Pros:**
- High energy density (light + powerful)
- Rechargeable (300-500 cycles)
- Flat discharge curve
- Many form factors
**Cons:**
- ⚠️ Fire risk if abused
- Needs protection circuit
- Temperature sensitive
- Ages even unused
**Best For:**
- Most portable projects
- Weight-sensitive applications
- When you need runtime
- Professional builds
**Critical Safety Rules:**
```
✅ DO:
- Use protected cells with BMS
- Store at 40-60% charge
- Use proper TP4056/similar charger
- Monitor temperature during charge
- Use battery with JST-PH connector (prevents polarity swap)
❌ DON'T:
- Puncture, crush, or bend
- Charge below 0°C
- Discharge below 3.0V
- Leave charging unattended (first few times)
- Use damaged/puffy batteries
```
---
### LiFePO4 (3.2V)
**Pros:**
- Much safer than LiPo (no thermal runaway)
- Longer cycle life (2000+ cycles)
- Flat discharge curve
- Tolerates abuse better
**Cons:**
- Lower energy density
- Lower voltage (may need boost)
- More expensive
- Less common in small sizes
**Best For:**
- Safety-critical applications
- Outdoor/rugged deployments
- Long-term installations
- When LiPo risk unacceptable
---
### CR2032 / Coin Cells
**Pros:**
- Tiny and light
- Long shelf life
- 3V output (direct to 3.3V MCU)
**Cons:**
- Very low capacity (220mAh)
- Poor high-current performance
- Not rechargeable
- ⚠️ Danger if swallowed
**Best For:**
- Ultra-low power only (<10µA average)
- RTC backup
- Tiny sensors
- Keyfobs, beacons
**Current Limits:**
```
Continuous: <2mA
Pulse: <15mA (brief)
DON'T use for: WiFi, Bluetooth, motors, LEDs
```
---
## Voltage Regulation
### 3.3V Systems (ESP32, RP2040)
**Single LiPo → 3.3V:**
```
LiPo outputs 3.0-4.2V
Most 3.3V MCUs tolerate this range directly!
Option 1: Direct connection (if MCU allows)
LiPo(+) → 3.3V/VIN pin
Option 2: LDO for clean 3.3V
LiPo(+) → [AMS1117-3.3] → 3.3V pin
(Need 4V min input for AMS1117)
Better: Use HT7333 LDO (low dropout, low quiescent)
Works from 3.3V input!
```
### 5V Systems (Arduino UNO/Nano)
**LiPo → 5V:**
```
Option 1: Boost converter
LiPo(+) → [MT3608] → 5V → VIN pin
Option 2: PowerBoost module (Adafruit)
Includes charging + boost + protection
Option 3: USB power bank
Already regulated 5V + charging built-in
```
---
## Charging Solutions
### TP4056 Module (Most Popular)
```
┌─────────────────────────────┐
│ TP4056 with Protection │
│ │
│ [USB-C] ─► [TP4056] ─► [DW01+FS8205] ─► [B+/B-]
│ IN Charger Protection To Battery
│ │
│ Features: │
│ - 1A max charge current │
│ - Overcharge protection │
│ - Overdischarge protect │
│ - Short circuit protect │
│ - LED charge indicator │
└─────────────────────────────┘
Wiring:
B+ → LiPo positive
B- → LiPo negative
OUT+ → Load/MCU positive
OUT- → Load/MCU negative
```
**⚠️ Get module WITH protection (6 pins, not 4 pins)**
### Adafruit PowerBoost 500C/1000C
Premium solution with:
- LiPo charging via USB
- 5V boost output (500mA or 1A)
- Low battery indicator
- Load sharing (charge while running)
### DIY Charging Don'ts
```
❌ Never charge LiPo with a constant voltage supply
❌ Never charge LiPo with a phone charger directly
❌ Never charge at >1C rate (e.g., 1000mAh → max 1A)
❌ Never charge frozen batteries
```
---
## Battery Sizing Calculator
```
Step 1: Determine average current (from power-budget-calculator)
I_avg = _____ mA
Step 2: Determine required runtime
T_required = _____ hours
Step 3: Calculate minimum capacity
C_min = I_avg × T_required × 1.25 (safety factor)
C_min = _____ × _____ × 1.25
C_min = _____ mAh
Step 4: Select battery
Choose capacity ≥ C_min
Consider: size, weight, form factor
```
**Example:**
```
Project: Weather station
I_avg: 15mA
T_required: 48 hours (2 days between charges)
C_min = 15 × 48 × 1.25 = 900mAh
Selection: 1000mAh LiPo (gives ~67 hours actual)
```
---
## Common Mistakes
### 1. Using Wrong Charger
```
❌ "My 9V adapter should work"
LiPo needs CC-CV charging at 4.2V max!
✅ Use TP4056 or dedicated LiPo charger
```
### 2. No Low-Voltage Cutoff
```
❌ Draining LiPo below 3.0V
Permanently damages the cell!
✅ Use protection module OR monitor in code:
if (batteryVoltage < 3.2) {
enterDeepSleep(); // Protect battery
}
```
### 3. Ignoring Inrush Current
```
❌ Battery can't handle WiFi TX spike (500mA)
Causes brownout/reset
✅ Add 100-470µF capacitoRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.