ESP32 LED Board Design


Created 4 project docs

Block Diagram

View Document

Block Diagram System Architecture Assemblies
  1. Main controller/power PCB — USB-C PD input, 2S charger/protection/balancing, 5 V LED buck, 3.3 V MCU buck, ESP32-C3, level shifting, LED output, pack connector, debug/programming, and button-cable connector.
  2. Separate six-button PCB — six momentary switches and matching polarized locking ribbon connector. Allocation: six signals, two grounds, and two reserved/ground positions for return-path robustness.
Functional-Block Sourcing Plan
  • USB-C PD sink: reference search required; import exact/close standalone reference if available.
  • Balanced 2S charger: reference search required; import exact/close standalone reference if available.
  • 2S protection/balancing: reference search required; import exact/close standalone...

Project Specification

View Document

Project Specification Project Overview
Status: Draft — schematic phase. A two-PCB BLE LED controller for installation in a non-conductive tube.
Intended Use
Portable battery-powered controller for 100 Adafruit ADA2328 5 V addressable LEDs, operated by six wired buttons and BLE.
What the Device Should Do
  • Drive 100 addressable LEDs while enforcing a 20 W electrical LED-output cap.
  • Provide BLE control with Wi-Fi disabled in firmware.
  • Charge a protected/balanced 2S 18650 pack from a USB-C PD supply.
  • Positively disable LED power and normal operation whenever USB-C is inserted/charging.
  • Read six independent momentary buttons on a separate PCB.
Main Features
ESP32-C3 module; 2S pack protection/balancing; 9 V PD sink; balanced 2S charger; 5 V/4 A LED rail; efficient ...

Firmware Getting Started

View Document

Firmware Getting Started Toolchain
PlatformIO + Arduino-ESP32. platformio.ini:
Final MCU Pin Mapping Compilable Starter (src/main.cpp)
Depending on Arduino-ESP32 release, include `` and omit btStop() if it conflicts with NimBLE startup. The hardware shutdown/charge inhibit must not depend on this firmware.
Startup Sequence
  1. Confirm hardware charge inhibit is inactive.
  2. Initialize serial diagnostics.
  3. Keep Wi-Fi disabled.
  4. Configure buttons and ADC.
  5. Initialize FastLED power limiter before enabling patterns.
  6. Start BLE GATT service and advertising.

Board Bring-Up Plan

View Document

Board Bring-Up Plan Preconditions
Do not install cells until charger, protection, and regulator support circuits have been checked against final datasheets and ERC is clean. Use a current-limited bench supply and thermal camera.
Main Board
  1. Visual inspection: polarity, exposed pads, solder bridges, antenna keepout, connector pin-1 orientation.
  2. Resistance checks: GND-to-pack, GND-to-5 V, and GND-to-3.3 V must not be shorted.
  3. Power protected pack input from 6.0 V at 100 mA limit with LED load disconnected. Pass: no unexpected heating/current-limit entry.
  4. Verify 3.3 V rail within ±3%; verify EN reset behavior and programming access.
  5. Verify ESP32 boot log; flash starter firmware; confirm BLE advertising with Wi-Fi disabled.
The specification and six-button subsystem are complete. I found the first pass left the high-power charging and protection circuitry unfinished, so I’m completing that block now rather than treating an unsafe partial schematic as done.
The requirements, power budget, firmware starter, bring-up plan, six-button board, and most main-controller circuitry are complete. The design now includes full 2S protection, USB-C PD charging, charge-time shutdown, 5 V/4 A LED power, and ESP32-C3 BLE control.
Blocked: a manufacturable 3-wire battery connector must be selected for PACK− / cell midpoint / PACK+, followed by a final capacitor/package audit and ERC cleanup. Please specify a preferred connector family—JST-XH, JST-PH, or direct solder pads—before I finalize the schematic.
Use JST-XH connector
Use JST-PH connector
Use solder pads

U5
J1
J4
J2
S4
S2
S3
SW1
S1
S5
U3
U6

ESP32-C3 LED Tube Controller

ESP32-C3 LED Tube Controller thumbnail