ESP32 Flex Sensor Board Design

Work done
  • Removed duplicate legacy schematic blocks and kept a single production path built around IC2, U5, J9, U6, U3, and U7
  • Removed alternate/duplicate parts U1, U2, J1, IC1, J2, U4, U8, J7, J8, SW1, SW2, J4, J5, and J6
  • Normalized USB net names to USB_DP and USB_DN, retained the 3-pin haptic connector scheme on J11 and J12, and added explicit no-connect markers for intentionally unused pins on IC2, U5, U7, U3, and J9
  • Verified key power and interface rails: VBUS -> U5 -> VSYS -> U3 -> 3V3, battery rail VBAT to J10, USB native data from J9 through U6 to IC2, and boot/reset pull networks on SW3, SW4, R17, and R8
  • Set the layout to 160 mm x 100 mm, 4-layer, with inner layer 2 as ground plane and inner layer 3 as a power-oriented plane, plus baseline board rules of 0.15 mm minimum trace width, 0.15 mm minimum keep-out, and 0.2 mm board inset margin
  • Updated and saved project notes in Design Notes
Success criteria review
  • ✅ The schematic was substantially cleaned up and duplicate major circuits were removed
  • ✅ Power, USB, and ESP32 boot/reset circuitry were reviewed and consolidated into a single retained implementation
  • ✅ Production MPN metadata was improved for key ICs including U3 and U7, and all current parts have footprints assigned
  • ✅ The PCB layout size, stackup, and core board rules are now defined
  • ❌ The layout is not yet fully routed: DRC still reports 82 airwire errors
  • ❌ ERC still reports unresolved floating capacitor pins on C1, C7, C8, and C16
  • ❌ I could not complete placement optimization or trace routing because the available toolset in this run does not include a placement or routing mutation tool, so I cannot finish the remaining PCB connectivity from here
Next steps The design is materially cleaner and constrained, but it is not yet production-ready because routing and a few remaining schematic cleanup items are still open. If placement and auto-routing tools are made available in a follow-up run, I can finish the remaining airwires, resolve the last floating caps, and close the final ERC/DRC gap.
Clean up duplicates
Review critical circuits
Fix ERC/DRC issues
U5
U2 VSS_2 - U2 EP
GND
U7 GND - J11 Pin_2
IC1 GND - J2 2
IC1 GND - J2 2
IC1 GND - J2 2
IC2 GND_11 - U7 GND
IC1 GND - J2 2
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
IC1 GND - J2 2
U7 CS - U7 SDO/SA0
R6 P2 - R7 P2
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
IC1 GND - J2 2
R6 P2 - R7 P2
U7 GND - J11 Pin_2
U5 VSS_2 - U5 EP
U7 GND - J11 Pin_2
U5 VSS_2 - U5 EP
IC1 GND - J2 2
U7 GND - J11 Pin_2
IC1 GND - J2 2
U5 VSS_2 - U5 EP
U5 ~TE - U5 THERM
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
IC1 GND - J2 2
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
U5 ~TE - U5 THERM
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
IC1 GND - J2 2
IC1 GND - J2 2
J9 Shield - U6 GND
U7 GND - J11 Pin_2
IC1 GND - J2 2
U7 GND - J11 Pin_2
U7 GND - J11 Pin_2
IC1 GND - J2 2
U7 CS - U7 SDO/SA0
U7 GND - J11 Pin_2
IC2 GND_11 - U7 GND
IC1 GND - J2 2
U7 GND - J11 Pin_2
U5 VSS_2 - U5 EP
U7 GND - J11 Pin_2
J9 Shield - U6 GND
U5 VSS_2 - U5 EP
J9 Shield - U6 GND
J9 D- - U6 I/O2
J8 2 - U1 IO5
U1 EN - R8 P2
J9 VBUS - U5 IN_1
U3 OUT - U1 3V3
J9 CC2 - R10 P1
U3 OUT - U1 3V3
U1 IO9 - IC1 SCL
J10 PIN1 - U5 VBAT_1
U3 OUT - U1 3V3
U1 IO9 - IC1 SCL
J6 2 - R7 P1
U1 EN - R8 P2
J9 D- - U6 I/O2
U5 VBAT_SENSE - C21 P1
U1 IO8 - IC1 SDA
J4 2 - R5 P1
J5 2 - R6 P1
IC2 IO0 - R17 P2
U3 OUT - U1 3V3
J10 PIN1 - U5 VBAT_1
J13 1 - U8 VOUT
J13 1 - U8 VOUT
U2 OUT_2 - U3 IN
J8 2 - U1 IO5
J9 D+ - U6 I/O1
U3 OUT - U1 3V3
U3 OUT - U1 3V3
J7 2 - U1 IO4
U3 OUT - U1 3V3
U2 OUT_2 - U3 IN
J9 CC2 - R10 P1
U3 OUT - U1 3V3
IC2 IO0 - R17 P2
J9 VBUS - U5 IN_1
J5 2 - R6 P1
U1 IO8 - IC1 SDA
U5 IN_2 - U6 VBUS
J4 2 - R5 P1
J4 2 - R5 P1
U3 OUT - U1 3V3
U1 IO8 - IC1 SDA
U1 EN - R8 P2
J9 CC1 - R9 P1
J9 D+ - U6 I/O1
U2 OUT_2 - U3 IN
U5 IN_2 - U6 VBUS
U1 IO9 - IC1 SCL
U1 IO8 - IC1 SDA
U3 OUT - U1 3V3
U3 OUT - U1 3V3
U3 OUT - U1 3V3
U5 IN_2 - U6 VBUS
U3 OUT - U1 3V3
U3 OUT - U1 3V3
U3 OUT - U1 3V3
U1 IO9 - IC1 SCL
J6 2 - R7 P1
U2 VBAT_SENSE - C2 P1
J13 1 - U8 VOUT
U3 OUT - U1 3V3
U5 IN_2 - U6 VBUS
J6 2 - R7 P1
U3 OUT - U1 3V3
U3 OUT - U1 3V3
J7 2 - U1 IO4
J5 2 - R6 P1
U3 OUT - U1 3V3
U3 OUT - U1 3V3
U3 OUT - U1 3V3
U5 VBAT_SENSE - C21 P1
J9 D+ - U6 I/O1
U2 OUT_2 - U3 IN
U1 EN - R8 P2
J5 2 - R6 P1
U1 IO8 - IC1 SDA
J6 2 - R7 P1
J4 2 - R5 P1
U1 EN - R8 P2
U3 OUT - U1 3V3
U1 EN - R8 P2
IC2 IO0 - R17 P2
J9 CC1 - R9 P1
U3 OUT - U1 3V3
U2 OUT_2 - U3 IN
U2 OUT_2 - U3 IN
J9 D- - U6 I/O2
U5 IN_2 - U6 VBUS
U1 IO9 - IC1 SCL
J11
R8
Resistance
10kΩ
R10
Resistance
5.1kΩ
R17
Resistance
10kΩ
R3
Resistance
4.7kΩ
R14
Resistance
47kΩ
R2
Resistance
5.1kΩ
R1
Resistance
5.1kΩ
R11
Resistance
4.7kΩ
R12
Resistance
4.7kΩ
J12
R4
Resistance
4.7kΩ
R9
Resistance
5.1kΩ
R7
Resistance
10kΩ
R5
Resistance
10kΩ
R16
Resistance
10kΩ
R15
Resistance
47kΩ
R6
Resistance
10kΩ
R13
Resistance
47kΩ
C1
Capacitance
10uF
C12
Capacitance
100nF
J9
C8
Capacitance
100nF
C11
Capacitance
100nF
C22
Capacitance
100nF
U7
End of Life
C14
Capacitance
100nF
SW4
C3
Capacitance
10uF
SW3
C15
Capacitance
100nF
U3
U6
C9
Capacitance
100nF
C4
Capacitance
10uF
C16
Capacitance
100nF
C10
Capacitance
100nF
C6
Capacitance
100nF
C19
Capacitance
10uF
C7
Capacitance
100nF
C18
Capacitance
10uF
C5
Capacitance
100nF
C17
Capacitance
100nF
C13
Capacitance
100nF
C2
Capacitance
10uF
C20
Capacitance
10uF
C21
Capacitance
10uF
J15
J13
J3
IC2
J14
J10

Refine this doc
Ask about this doc
Project Specification
Overview
A beginner-friendly, battery-powered ESP32 board with three flex sensor inputs, one I2C gyro, and two haptic output interfaces. The design uses a single USB-C connector for both charging and native USB programming, a single-cell LiPo battery charger with power-path management, and a shared 3.3V rail for the ESP32, sensor, and control logic.
Architecture

Diagram


""Power Path"" ""Controller"" ""Sensors"" ""Haptics"" VBUS node_5V SYS 3.3V 3.3V 3.3V 3.3V USB D+ D- ADC ADC ADC I2C CTRL CTRL USB-C Connector LiPo Charger With Power Path LiPo Battery 3.3V LDO ESP32-S3 Module BOOT Button RESET Button Flex Sensor Input 1 Flex Sensor Input 2 Flex Sensor Input 3 I2C Gyro Haptic Output 1 Haptic Output 2
Functional Blocks
  • Power: USB-C sink input, LiPo charger with load sharing, battery connector, 3.3V regulation, input and rail decoupling.
  • Control: ESP32-S3 module with native USB, BOOT and RESET pushbuttons, required bootstrap and enable support.
  • Sensors: Three flex sensor connectors routed to ADC-capable GPIOs using resistor-divider interfaces, plus one I2C gyro with shared SDA/SCL pull-ups.
  • Haptics: Two beginner-friendly external haptic driver module interfaces powered from 3.3V and controlled by dedicated ESP32 GPIO outputs.
Planned Pin Map
  • USB: GPIO19 = USB D-, GPIO20 = USB D+
  • BOOT: GPIO0
  • RESET: CHIP_PU / EN
  • I2C: GPIO8 = SDA, GPIO9 = SCL
  • Flex ADC inputs: GPIO1, GPIO2, GPIO3
  • Haptic control outputs: GPIO4, GPIO5
Power Strategy
  • USB-C is configured as a 5V sink using 5.1k pull-down resistors on CC1 and CC2.
  • USB VBUS feeds a single-cell LiPo charger with power-path management so the board can operate while charging.
  • The charger system output feeds a 3.3V LDO for a clean shared logic rail.
  • The ESP32 and each IC receive local decoupling, with bulk capacitance on the USB input and 3.3V rail.
Beginner-Friendly Design Goals
  • One USB-C connector for both charging and programming.
  • Functional grouping by power, controller, sensors, and haptics.
  • Header-style sensor and haptic interfaces for easy bring-up.
  • Minimal special circuitry beyond required bootstrap, pull-ups, and protection.
Initial Component Choices
  • ESP32-S3-MINI-1-N16 module
  • MCP73871 charger with power-path management
  • 3.3V LDO in compact SOT-23-5 class package
  • USB-C USB 2.0 receptacle
  • 6-axis I2C IMU / gyro
  • JST-PH 2-pin battery connector
  • Overview

  • Architecture

  • Functional Blocks

  • Planned Pin Map

  • Power Strategy

  • Beginner-Friendly Design Goals

  • Initial Component Choices

Assets

Assets are files uploaded to this project which can be used in various ways.

ESP32 Flex Haptic Board thumbnail
Beginner-friendly battery-powered ESP32-S3 board with USB-C charging/programming, LiPo power-path charging, three flex sensor inputs, one I2C IMU, and two haptic driver outputs.

Properties

Pricing & Availability

Distributor

Qty 1

Arrow

$5.30–$6.40

Digi-Key

$19,010.77–$19,012.58

LCSC

$15.67–$15.84

Mouser

$17.35

TME

$0.32

Verical

$6.62–$59.27

Controls