32-Channel Power Switch Controller
Two protected 8 V rails driving 32 independently switched MOSFET channels.
The brief
Thirty-two independently controlled outputs is well past what a microcontroller can drive directly, so the board is really two systems: a power and battery management side, and a switched-output side expanded out over I/O expanders.
The expansion changes the failure modes — every channel needs its own protection, and the MOSFET bank has to stay switched off when the expanders or the ESP32 are unpowered.
What we did
A battery-backed controller built around the ESP32-S3-WROOM-1. It manages charging and protection of a battery pack, generates regulated supply rails, and switches 32 individually controlled MOSFET channels through I/O expanders.
- Main controller: The ESP32-S3-WROOM-1 with USB-C programming and BOOT/RESET buttons.
- Battery charging: A BQ24618 battery charge controller with power-path management and status indicators.
- Battery protection: A BQ29209 protection IC guards the pack against over-voltage and under-voltage, with a connector for the battery pack.
- Regulated power rails: Two TPS54821 synchronous buck converters generate separate 8 V rails (A and B). A 5 V LDO and a 3.3 V LDO power the logic.
- Output protection: Two TPS25982 eFuses provide current limiting and over-voltage protection on each 8 V rail. 32 switched channels: Two banks of 16 MOSFETs (TSM900N10CP) with gate and pull-down resistors, split into MOSFET_A and MOSFET_B and powered from their own protected rails.
- I/O expansion: Two MCP23017 I2C expanders give the ESP32 enough GPIO to drive every MOSFET channel independently.
- Connectors: Two 20-pin headers break out the switched outputs.
Design details
Design summary
| CAD tool | KiCad |
|---|---|
| Overview | A battery-backed controller built around the ESP32-S3-WROOM-1. |
| Main controller | The ESP32-S3-WROOM-1 with USB-C programming and BOOT/RESET buttons. |
| Battery charging | A BQ24618 battery charge controller with power-path management and status indicators. |
| Battery protection | A BQ29209 protection IC guards the pack against over-voltage and under-voltage, with a… |
| Regulated power rails | Two TPS54821 synchronous buck converters generate separate 8 V rails (A and B). |
| Output protection | Two TPS25982 eFuses provide current limiting and over-voltage protection on each 8 V rail. |
| I/O expansion | Two MCP23017 I2C expanders give the ESP32 enough GPIO to drive every MOSFET channel… |
| Connectors | Two 20-pin headers break out the switched outputs. |
Have a board like this?
Send us the schematic, the mechanical constraints and the deadline. We will tell you what it takes and what it costs.