5.4 KiB
5.4 KiB
Review Checklists
1. Schematic Review Checklist
Walk through every item. Mark each as PASS / FAIL / N/A.
Power
- Every VDD/AVDD/VDDIO pin has a dedicated 100nF decoupling cap (placed close)
- Bulk capacitor (10µF+) present on each power rail at regulator output
- VDDA isolated with ferrite bead + dedicated caps (if MCU has analog supply)
- VCAP pin has capacitor per datasheet value (STM32 specific)
- All GND pins connected (including exposed thermal pad on QFN/DFN)
- Power sequencing considered for multi-rail designs
- Regulator input/output caps meet datasheet ESR requirements
- Input protection present (TVS, fuse, reverse polarity) if external power
- USB VBUS has resettable fuse (500mA for device, per USB spec)
- Battery circuit has undervoltage lockout if applicable
Reset & Boot
- NRST has 100nF cap to GND (RC filter for noise rejection)
- NRST has external pull-up (10kΩ typical) if not using reset IC
- BOOT0 pin pulled to defined state (typically GND via 10kΩ)
- BOOT1/other boot config pins at correct state for normal operation
- ESP32 EN pin: 10kΩ pull-up + 1µF cap (slow rise for reliable boot)
- ESP32 GPIO0: pull-up for normal boot, button to GND for programming
Clock
- Crystal load capacitors calculated from datasheet formula:
CL = (C1 × C2) / (C1 + C2) + Cstray, where Cstray ≈ 3-5pF - Crystal placed close to MCU oscillator pins (< 10mm trace length)
- Ground guard ring / pour around crystal area (EMI reduction)
- 32.768 kHz RTC crystal present if RTC needed (with its own load caps)
Signal Integrity
- USB D+/D- have ESD protection diodes (TPD2E001, PRTR5V0U2X, or similar)
- USB D+/D- traces are 90Ω differential impedance (controlled, matched length)
- I2C bus has external pull-up resistors (4.7kΩ default; 2.2kΩ for fast-mode+)
- SPI chip-select lines have pull-ups (prevent floating during boot)
- UART TX/RX: series resistor (22-100Ω) if crossing board boundaries
- High-speed signals (>10 MHz) have series termination resistors
- CAN bus: 120Ω termination resistor at each end of bus
- Analog inputs: RC low-pass filter if reading noisy signals
GPIO & Unused Pins
- No floating input pins (all unused GPIO tied high/low or set as output)
- LED current-limiting resistors present and correctly calculated
- Button/switch inputs have debounce circuit (RC or software)
- Test points on critical signals (power rails, I2C, SPI, UART)
Connectors
- Programming/debug header present (SWD for ARM, JTAG if needed)
- USB connector shield connected to GND (directly or via 1MΩ + 4.7nF)
- All connector pins assigned and documented
- Mechanical mounting holes present (M3 at corners, connected to GND or float)
2. DRC/ERC Checklist (pre-KiCad)
These should be verified in the Python code before generating KiCad files:
- Every
Componenthassymbol,ref, andfootprintdefined - No duplicate reference designators (R1, R1 conflict)
- Every net has at least two connections (no dangling nets)
- Power nets (VCC, GND) are explicitly named and consistent
- No unconnected component pins that should be connected
- Component values are specified where needed (resistors, capacitors)
Post-KiCad-generation (in KiCad ERC):
- Run ERC in KiCad schematic editor — zero errors
- Run DRC in KiCad PCB editor — zero errors
- Check for unconnected pads in PCB
- Verify copper pour connectivity (GND plane continuous)
3. BOM Review Checklist
- All components have manufacturer part number (MPN) or generic value
- All components have valid KiCad footprint assigned
- No DNP (Do Not Place) components without documented reason
- Passive component values are standard E-series (E12/E24/E96)
- Capacitor dielectric specified (X7R/X5R for decoupling, C0G for precision)
- Capacitor voltage rating ≥ 2× operating voltage (derating)
- Resistor power rating adequate for application
- Check JLCPCB basic parts availability (cost optimization)
- Second-source alternatives identified for critical components
- Total unique part count minimized (fewer unique values = cheaper assembly)
4. Manufacturing Review (pre-Gerber)
- Board outline defined with correct dimensions
- Minimum trace width / spacing meets fab capability (typically 0.15mm/0.15mm)
- Via size meets fab capability (typically 0.3mm drill, 0.6mm annular ring)
- Silkscreen text readable (min 0.8mm height, 0.15mm line width)
- Component courtyard clearances respected (no overlaps)
- Fiducial marks present if using pick-and-place assembly
- Panel design considered if small board (add mouse bites / V-score lines)
How to Use These Checklists
When generating or reviewing a circuit:
- Complete the Schematic Review after writing all Python circuit files.
- Run DRC/ERC checks both in Python (structural) and in KiCad (electrical).
- Do BOM Review after
generate_bom(). - Do Manufacturing Review after PCB layout, before generating Gerber files.
Report findings as:
- 🔴 CRITICAL: Must fix before fabrication (missing decoupling, floating pins, wrong voltage)
- 🟡 WARNING: Should fix, risk of intermittent issues (marginal thermal, no test points)
- 🟢 SUGGESTION: Nice to have, improves robustness (second-source parts, extra test points)