PCB Connectivity Audit and Fix


  1. U5 3V3 regulatorU5 = AP2112K-3.3TRG1, Diodes Inc. AP2112 3.3 V LDO, pins: VIN → VBAT_SW, VOUT → 3V3, EN → VBAT_SW, GND → GND; caps: C4 4.7 µF VIN-GND, C5 4.7 µF VOUT-GND, plus C3 10 µF bulk on 3V3 — VERDICT: PROBLEM. Datasheet: AP2112 is 600 mA min output, VIN 2.5–6.0 V, dropout typ/max: 125/200 mV at 300 mA and 250/400 mV at 600 mA. It can supply ESP32-C3 peak current by current rating, but cannot guarantee 3.3 V regulation from a LiPo at 3.3–3.4 V during 350–500 mA RF bursts; it needs roughly 3.3 V + dropout, i.e. about 3.5–3.7 V worst-case depending current. This is the highest-risk design issue.
  2. U2 chargerU2 = TP4056, PROG pin → R4 2.4 kΩ → GND, VCC → VBUS, BAT → BATT_PLUS, TEMP → VBUS, CE → VBUS, EP/GND → GNDVERDICT: CORRECT with caveat. Datasheet: RPROG = 1100 / IBAT; 2.4 kΩ sets about 458 mA. That is ~0.9 C for 500 mAh, within the user’s requested 250–500 mA range but near the upper end. Caveat: TP4056 datasheet says disabling temperature sensing normally ties TEMP to GND; this schematic ties TEMP to VBUS, which is also within the “not too hot/not too cold” voltage window but is not the datasheet’s stated no-NTC connection.
  3. Battery protection U3 + Q1U3 = DW01A; VDD → DW_VDD via R12 from BATT_PLUS, VSS → BATT_MINUS, OD → Q1 G1, OC → Q1 G2, CSI → R13 → GND; Q1 = FS8205A, S1 → BATT_MINUS, S2 → GND, common drains Q1 pins 2/5 → PROTECT_FET_COMMON_DRAINVERDICT: CORRECT. Datasheet: DW01A typical single-cell protection uses VDD through resistor/cap to cell positive, VSS to cell negative, OD/OC to the back-to-back MOSFET gates, and CSI sensing pack negative/load negative through a resistor. FS8205A is a dual N-MOSFET intended for battery protection.
  4. 3V3 / ESP32 decouplingC3 10 µF bulk on 3V3, C1 100 nF ESP32 3V3 decoupling, C5 4.7 µF LDO output cap, C4 4.7 µF LDO input cap — VERDICT: CORRECT. Datasheet: ESP32-C3-MINI-1 typical peripheral schematic shows 10 µF + 0.1 µF on VDD33; AP2112 requires at least 1 µF input/output caps and is stable with ceramic caps.
  5. ENU1 EN → EN net; R1 10 kΩ from EN → 3V3; C2 1 µF from EN → GNDVERDICT: CORRECT. Datasheet: ESP32-C3-MINI-1 says EN must not float and recommends RC delay, usually R = 10 kΩ, C = 1 µF.
  6. ESP32-C3 strappingGPIO9/U1 IO9 → GPIO9_BUTTON → SW2 pin1 + C12 pin1; SW2 pin2 + C12 pin2 → GND; no external pull-up resistor found on GPIO9; GPIO2/U1 IO2 has no external pull-up found; GPIO8/U1 IO8 has no external pull-up found — VERDICT: PROBLEM. Datasheet: ESP32-C3 boot mode uses GPIO2, GPIO8, GPIO9; SPI boot requires GPIO2=1, GPIO9=1; Joint download boot requires GPIO2=1, GPIO8=1, GPIO9=0. Datasheet says GPIO9 has an internal weak pull-up, and GPIO2 is recommended pulled up due to glitches. For robust production, add external pull-ups for at least GPIO9 and GPIO2, and ensure GPIO8 is high when requesting USB-Serial-JTAG download. Nothing in the schematic forces UART0 boot instead of USB-Serial-JTAG, but the lack of explicit strap pull-ups is a production risk.
  7. SW2 BOOT buttonSW2 = TS-1088-AR02016, footprint/package SW-SMD_L3.9-W3.0-P4.45, schematic pins only 1 and 2; pin1 → GPIO9_BUTTON, pin2 → GND; C12 100 nF across same two nodes — VERDICT: CORRECT in schematic, but hardware symptom suggests footprint/pad mapping must be physically probed. Datasheet/library source identifies it as a normally-open SPST switch where terminal 1 connects to terminal 2 when pressed. If your fabricated board does not pull GPIO9 low, the most likely causes are footprint pad numbering mismatch, unsoldered/misaligned side-actuated switch, or wrong substituted switch orientation—not the schematic netlist.
  8. USB D+/D-USB_DP net: J1 DP1/DP2 + D1 I/O1 pins 1/6 + U1 IO19; USB_DN net: J1 DN1/DN2 + D1 I/O2 pins 3/4 + U1 IO18; D1 = USBLC6-2SC6, VBUS → VBUS, GND → GNDVERDICT: CORRECT. Datasheet: ESP32-C3-MINI-1 maps GPIO18 = USB_D-, GPIO19 = USB_D+; USBLC6-2SC6 is a 2-line low-capacitance USB 2.0 ESD protector, 3.5 pF max, intended for USB data lines and should not block native USB.
  9. MPU-6050 I2CU4 SDA → I2C_SDA → U1 IO4 + R6 4.7 kΩ to 3V3; U4 SCL → I2C_SCL → U1 IO3 + R5 4.7 kΩ to 3V3VERDICT: CORRECT. Datasheet: MPU-6050 SDA/SCL are open-drain bidirectional I2C lines and need pull-ups to the logic rail; max I2C speed 400 kHz.
  10. MPU-6050 support pinsU4 CPOUT → C10 2.2 nF → GND; U4 REGOUT → C11 100 nF → GND; U4 VLOGIC → 3V3 + C9 10 nF → GND; U4 VDD → 3V3 + C8 100 nF → GND; U4 AD0 → GND; also CLKIN, FSYNC, and pin 25 tied to GND — VERDICT: CORRECT. Datasheet: typical circuit uses CPOUT 2.2 nF, REGOUT 0.1 µF, VDD 0.1 µF, VLOGIC 10 nF; AD0 low selects I2C address 0x68.
  11. LEDs — green: U1 IO6 → GREEN_LED_GPIO → R7 330 Ω → GREEN_LED_A → LED1 anode, LED1 cathode → GND; blue: U1 IO7 → BLUE_LED_GPIO → R8 330 Ω → BLUE_LED_A → LED2 +, LED2 - → GNDVERDICT: CORRECT. At 3.3 V, 330 Ω limits current to a few mA depending LED Vf, comfortably below ESP32 GPIO limits.
  12. Motor driverU1 IO5 → MOTOR_GPIO → R9 1 kΩ → MOTOR_GATE → Q2 gate; R10 100 kΩ gate pulldown to GND; Q2 = AO3400A, source → GND, drain → MOTOR_MINUS; J3 P1 → VBAT_SW, J3 P2 → MOTOR_MINUS; D2 = B5819W, K → VBAT_SW, A → MOTOR_MINUSVERDICT: CORRECT. Datasheet: AO3400A is a logic-level N-MOSFET with RDS(on) specified at VGS 2.5 V and 4.5 V; B5819W is a 40 V, 1 A Schottky suitable as a flyback diode for a small vibration motor. Motor is powered from VBAT_SW, not 3V3.
  13. Tip connector J4J4 = B3B-PH-SM4-TB(LF)(SN); pin1 → VBAT_SW; pin2 → GND; pin3 → TIP_DATA; U1 IO10 → TIP_DATA_GPIO → R11 330 Ω → TIP_DATA → J4 pin3VERDICT: CORRECT with strap caveat. GPIO10 is not double-used elsewhere in the schematic. It is free for the tip data signal, but note it is near the ESP32-C3 strap cluster; avoid external circuitry on J4 that can back-power or clamp the pin during boot.
  14. USB-C CC1/CC2J1 CC1 → CC1 → R2 5.1 kΩ → GND; J1 CC2 → CC2 → R3 5.1 kΩ → GNDVERDICT: CORRECT. USB-C UFP/device mode requires Rd pull-downs, nominally 5.1 kΩ, on both CC pins.
Final findings
  • Pin double-booking: none found on the functional GPIOs checked. GPIO3/4 are I2C, GPIO5 motor, GPIO6/7 LEDs, GPIO9 boot button, GPIO10 tip data, GPIO18/19 USB.
  • Schematic-connected but unrouted in layout: none reported by the layout connectivity checks; no airwire/dangling-trace issues were returned.
  • Wrong / risky values or topology:
    1. Major: AP2112 LDO will not guarantee 3.3 V regulation from a low LiPo at ESP32 RF burst current. Use a buck-boost or lower-voltage system threshold, or specify operation only above ~3.6–3.7 V under load.
    2. Production robustness: ESP32-C3 strapping lacks explicit pull-ups on GPIO2 and GPIO9, and download mode depends on GPIO8 being high. Add external strap resistors for 100-unit reliability.
    3. Hardware debug: SW2 schematic is correct, but your real-board symptom strongly suggests a footprint/pad/solder/substitution issue; probe SW2 pads directly for continuity while pressed and compare against pad numbers.
Fix power issues
Choose regulator
Add strap resistors
Debug boot button
Create production checklist

D1
U3
U5
C5
Capacitance
4.7uF
C8
Capacitance
100nF
C12
Capacitance
100nF
C10
Capacitance
2.2nF
C4
Capacitance
4.7uF
C1
Capacitance
100nF
C9
Capacitance
10nF
C11
Capacitance
100nF
C6
Capacitance
10uF
C2
Capacitance
1uF
C3
Capacitance
10uF
C7
Capacitance
10uF
C13
Capacitance
100nF
R13
Resistance
1kΩ
R11
Resistance
330Ω
R7
Resistance
330Ω
SW2
R6
Resistance
4.7kΩ
F1
Q1
R8
Resistance
330Ω
R12
Resistance
100Ω
R5
Resistance
4.7kΩ
R10
Resistance
100kΩ
R9
Resistance
1kΩ
R2
Resistance
5.1kΩ
R1
Resistance
10kΩ
R3
Resistance
5.1kΩ
R4
Resistance
2.4kΩ
J3
J1
SW1
J4
LED2
J2
U4
D3
U1
Not Recommended for New Designs
D2
Q2
U2
LED1
Main Body Harry Potter Wand thumbnail