Skip to the content
2 layers32.3 × 87.6 mmESP32-Gimbal, the printed circuit board in 3D

A high-performance, open-source 3-axis smartphone gimbal built from scratch using a custom PCB and the SimpleFOC library. It features real-time stabilization, native USB-C programming, and custom motion modes.

Size
32.3 × 87.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
60
Nets
99
Pads
361
Tracks, vias
549, 53
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
14 Jan 2026
Updated
19 Feb 2026

Overview

ESP32-Gimbal is an open-source printed circuit board by Visaging, from the Visaging/ESP32-Gimbal repository on GitHub, published under the MIT licence. It is a 2-layer board of 32.3 × 87.6 mm with 60 parts on 99 nets, routed with 549 tracks and 53 vias.

It is built around the ESP32-S3-WROOM-1-N8, DRV8313PWP and CN3303, with the AO3400A and SS34 among its other parts. Its parts include 22 capacitors, 14 connectors, 13 resistors, 6 ICs and 2 inductors. It belongs with the ESP32 boards of this library.

Main components

5

README

README.md

Over-Engineered Stick (ESP32-S3 Gimbal)

Because apparently holding a phone parallel to the ground requires too much caloric burn for the modern human, I spent some time engineering a robot to do it for me. This is a custom 3-axis gimbal powered by an ESP32-S3, designed to compensate for your lack of wrist stability and general unwillingness to hold a steady shot.

The "Why Did I Build This" Stack:

  • MCU: ESP32-S3-WROOM-1-N8R2 (Because a simple Arduino wasn't overkill enough)
  • Sensors: BMI270 6-Axis IMU (To feel every single one of your hand tremors)
  • Drivers: 3x DRV8313 Three-Phase Drivers (So the phone floats magically while you do nothing)
  • Motors: 2805 140KV Gimbal BLDC Motors (To turn in exactly the opposite direction like she did)
  • Power: Custom 3S Li-Ion BMS with CN3303 Charging & TPS563200 Regulation (Because USB 5V is for the weak)

Key Features

  • Active Stabilization: Uses high-frequency FOC math to micro-manage gravity so you don't have to use "muscles".
  • Native USB-C: One cable to code it and charge it, because looking for two different cables is just too much work.
  • 3 Operation Modes:
    • Stabilize: Standard horizon leveling and pan following.
    • Teaching Mode: Disables the motors so you can twist the camera to any weird angle by hand. After 5 seconds of holding it there, the gimbal accepts its new reality and locks that position.
    • Selfie/Statue Mode: A dedicated mode that gives you 6 seconds to pose the camera, then freezes it in place indefinitely because apparently holding a selfie angle is considered cardio now.

External Wiring Diagrams

Battery:


Handle wiring:


BMI270 Breakout Board:


Motors:


PCB Schematics

image image

PCB Layout and Render

image image

Custom Body (3D Model)

Handle:

image

Handle Top:

image

Handle Enclosure:

image

PAN Arm :

image

ROLL Arm:

image

PITCH Arm:

image

PITCH Arm Cover:

image

Tripod Enclosure:

image

Tripod Hub:

image

Tripod Legs:

image

Financial Damage Report (Bill of Material)

BOM can be found in the root older as a .csv, and is also viewable here: Custom Gimble BOM

Lion Circuits Order Final Final
JLCPCB Order image image image
Carts

Robu

Robu

OnlyScrews

OnlyScrews

ElectroPi

ElectroPi

Evalta

Evalta

DNA Tech India

image

Amazon

Amazon

Future Bugs... I Mean Features (Roadmap)

Things I might add if I ever get bored of it working perfectly

  • Bluetooth App: Control the gimbal with a phone (because looking at two screens is better than one).
  • Face Tracking: If I can figure out how to run AI on this chip without it catching fire.

Liability Waiver (License)

License: MIT

Feel free to steal this code, modify it, or sell it. However, if your phone falls out and breaks because you set the PID values wrong, I legally never met you.

Parts

60
QtyValueFootprintReferences
810uFCapacitor_SMD:C_0805_2012MetricC1, C5, C9, C11, C13, C14, C15, C16
6100nFCapacitor_SMD:C_0805_2012MetricC17, C18, C19, C20, C21, C22
50.1uFCapacitor_SMD:C_0805_2012MetricC3, C6, C8, C10, C12
510kRResistor_SMD:R_0805_2012MetricR5, R8, R10, R11, R12
3DRV8313PWPDRV8313PWP:SOP65P640X120-29NU4, U5, U6
3MOTORConnector_Wire:SolderWire-0.1sqmm_1x03_P3.6mm_D0.4mm_OD1mmJ11, J12, J13
222uFCapacitor_SMD:C_0805_2012MetricC4, C7
25.1kRResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2
1+3V3 IMUConnector_Wire:SolderWire-0.1sqmm_1x01_D0.4mm_OD1mmJ9
10.1RResistor_SMD:R_1206_3216MetricR4
1100kRResistor_SMD:R_0805_2012MetricR13
1105kRResistor_SMD:R_0805_2012MetricR6
110uHInductor_SMD:L_Bourns-SRN6028L1
11MRResistor_SMD:R_0805_2012MetricR7
11kRResistor_SMD:R_0805_2012MetricR3
11uFCapacitor_SMD:C_0805_2012MetricC2
13.3uHInductor_SMD:L_1210_3225MetricL2
13kRResistor_SMD:R_0805_2012MetricR9
1AO3400APackage_TO_SOT_SMD:SOT-23Q1
1BATTERYConnector_Wire:SolderWire-0.1sqmm_1x02_P3.6mm_D0.4mm_OD1mmJ10
1BOOTConnector_Wire:SolderWire-0.1sqmm_1x02_P3.6mm_D0.4mm_OD1mmJ4
1CN3303Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1U2
1GND IMUConnector_Wire:SolderWire-0.1sqmm_1x01_D0.4mm_OD1mmJ8
1LEDConnector_Wire:SolderWire-0.1sqmm_1x02_P3.6mm_D0.4mm_OD1mmJ3
1LOGOLOGOG***
1MODEConnector_Wire:SolderWire-0.1sqmm_1x02_P3.6mm_D0.4mm_OD1mmJ2
1POWERConnector_Wire:SolderWire-0.1sqmm_1x02_P3.6mm_D0.4mm_OD1mmJ14
1RESETConnector_Wire:SolderWire-0.1sqmm_1x02_P3.6mm_D0.4mm_OD1mmJ7
1SS34Diode_SMD:D_SMAD1
1TPS563200Package_TO_SOT_SMD:SOT-23-6U3
1U5-CLOCKConnector_Wire:SolderWire-0.1sqmm_1x01_D0.4mm_OD1mmJ5
1U5-DATAConnector_Wire:SolderWire-0.1sqmm_1x01_D0.4mm_OD1mmJ6
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1

Similar boards

  • 2 layers65 × 88 mmRC CAR V2, the printed circuit board in 3D

    RC CAR V2

    yamahdee/KICAD-RC-CAR

    104 parts
  • 2 layers52 × 56 mmGimbal driver board, the printed circuit board in 3D

    Gimbal driver board

    PA-33/gopro-control-station

    Two-axis motorised GoPro mount with physical buttons, BLE camera control, and a built-in HTTPS web UI for live HDMI preview and gallery access. ESP32-S3 / SimpleFOC.

    71 partsMIT
  • 2 layers37 × 70.9 mmOpendiag, the printed circuit board in 3D

    Opendiag

    maximus64/opendiag-hardware

    OpenDIAG - Open Source OBD2 Interface (Hardware)

    148 parts5CERN-OHL-S-2.0
  • 4 layers63.2 × 70.5 mmHomectrl v2, the printed circuit board in 3D

    Homectrl v2

    jeevan9s/homectrl-sys

    home automation controller

    141 parts2
  • 2 layers105.4 × 86.5 mmGood Boy Limiter, the printed circuit board in 3D

    Good Boy Limiter

    JohnanLuca02/BYTE_Electronics

    Repository for everything concerning the electronics (PCB, Electrical schemes, BOM, ...) of the robot dog project of the AiTeam called BYTE.

    111 parts1
  • 2 layers100 × 73.9 mmSecurity Alarm Panel, the printed circuit board in 3D

    Security Alarm Panel

    Matyas604/Security-Alarm-Panel

    Home Assistant Smart Home Alarm Control Panel with fingerprint reader, NFC/RFID card reader, motion radar, and touchscreen TFT display. It can control your smart home, not just your home security system.

    132 parts1GPL-3.0
  • 2 layers80.5 × 53.8 mmBlynk, the printed circuit board in 3D

    Blynk

    DynamicWhiteHat/Blynk

    A feature-rich LED controller

    110 parts
  • 4 layers55 × 47 mmMini Drone, the printed circuit board in 3D

    Mini Drone

    GitHubKailash/Mini-Drone-Custom-PCB

    Mini Drone Custom PCB Description

    74 parts

Questions

How big is the ESP32-Gimbal PCB?

It measures 32.3 × 87.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ESP32-Gimbal use?

60 parts, built around the ESP32-S3-WROOM-1-N8, DRV8313PWP, CN3303 and AO3400A. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the ESP32-Gimbal KiCad files?

From the Visaging/ESP32-Gimbal repository on GitHub, at the commit this page was made from: the board is PCB/PCB.kicad_pcb and its schematic PCB/Driver Motor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ESP32-Gimbal design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).