ESP32 Flex Sensor Board Design

0:04

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
14 days

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

Documents

    Project Specification

    Design Notes

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