

Controls / Robotics / Mechatronics / Mechanical Design
Phone Gimbal
2025 • Functional Prototype
A low-cost, self-designed phone gimbal built for my E29 Design and Manufacturing class. I wanted to go beyond a normal mechanical class project, so I integrated 3D-printed parts, an ESP32, MPU6050 gyroscope and accelerometer data, a servo driver, and three servo motors into a working real-time stabilization prototype.
Status
Functional Prototype
Control
Roll / Pitch / Yaw
Role
Lead Design + Build
Cost
~$60–$70
Demo / Media
This section shows the physical proof behind the project: the final handheld prototype, the printed part iterations, and the electronics/code debugging setup used to get the gimbal working before the deadline.

Final Handheld Prototype
The completed 3-axis phone gimbal prototype after assembly, wiring, and mechanical iteration.

Prototype Table
The final prototype surrounded by earlier prints, alternate arms, clamp concepts, handles, and assembly parts.

Electronics + Code Debugging
Live testing setup with the ESP32, servo driver, battery pack, wiring, Arduino IDE, and control tuning notes.
Project Motivation
The original assignment was to create a mechanical project for E29, but I wanted to push the idea further. Instead of only designing a static mechanical device, I wanted to build something that could sense movement, react to it, and physically stabilize a phone in real time.
The core question was simple: can I make a functional phone gimbal with cheap, accessible parts? The harder part was making all the systems work together: the mechanical structure, motor placement, electronics, sensor data, power delivery, and control logic.

Design + Manufacturing
This project forced me to think beyond CAD as just a model. Every part had to print, fit, assemble, hold weight, and survive real motor movement.
Modeled the main gimbal structure, motor arms, handle, electronics housing, and phone holder in Fusion 360.
Created digital engineering drawings to communicate dimensions, tolerances, and manufacturing intent.
Rapid prototyped over 30 printed parts to improve fit, alignment, strength, assembly, and motor placement.
Redesigned components around real physical issues like bending, overhung loading, phone weight, and servo torque limits.
Used low-cost materials and additive manufacturing to keep the prototype accessible while still building a functional system.

Relevant Redesigns
CAD screenshots showing the complete assembly, case redesigns, top arm, bottom arm, lid, and phone clamping mechanism.

Design Changes + Additions
Early design evolution showing joints, phone holder concepts, passive components, handle ideas, and ergonomic grip development.

Past Concepts
Early sketches and CAD concepts used to explore possible gimbal layouts before the final prototype direction.
Build Process
The final prototype came from a pile of parts, failed attempts, redesigned prints, loose hardware, and repeated testing. It was not a clean one-shot build. It was a system that slowly came together through iteration.

Assembly Process
The gimbal mid-build, showing the motor layout, printed arms, electronics housing, hardware, and loose components.

Handle + Housing Iterations
Earlier handle and electronics housing designs used to test ergonomics, size, and internal space constraints.

Physical Iteration Spread
A wider look at the number of printed parts and redesigns that led to the final working prototype.
System Architecture
The gimbal combined mechanical design, sensor feedback, control logic, and motor actuation into one working mechatronic system.
Step 1
MPU6050 reads motion data from the gimbal body.
Step 2
ESP32 processes orientation feedback and control logic.
Step 3
PCA9685 servo driver sends PWM signals to the motors.
Step 4
Three MG996R servos physically adjust roll, pitch, and yaw.
Step 5
Battery and voltage regulation provide power to the motor/control system.
Controls + Debugging
This was the part of the project that really pushed me. The mechanical design was already a lot, but making the electronics, sensor data, motors, and code respond together turned the project into a full debugging battle.
Used MPU6050 gyroscope and accelerometer data to estimate motion and provide feedback to the control system.
Programmed the ESP32 to process orientation data and command servo movement through the PCA9685 servo driver.
Worked through roll, pitch, and yaw behavior separately to understand how each motor affected stabilization.
Debugged wiring, power delivery, communication, burned components, and unstable servo response through subsystem testing.
Built a real-time VS Code visualizer to connect sensor data with physical gimbal motion and make the system easier to understand.
Technical Highlights
Designed roughly 11 out of 13 mechanical parts in Fusion 360 and rapid prototyped 30+ printed components.
Integrated an ESP32, MPU6050 IMU, PCA9685 servo driver, and 3 MG996R servo motors into one stabilization system.
Used gyroscope and accelerometer data to command real-time roll, pitch, and yaw stabilization behavior.
Built a VS Code visualizer to display real-time feedback from the sensor system.
Debugged wiring, power delivery, burned components, servo response, and code issues through subsystem testing.
Used hand calculations and physical testing to reason about motor placement, moment loading, and torque limits.
Tools / Hardware / Software
Approximate project cost: around $60–$70, pending final parts list verification.
Mission Log
The phone gimbal started as my E29 Design and Manufacturing final project. The class focused on tolerances, additive and subtractive manufacturing, technical drawings, and design communication. The assignment was to create a mechanical project, but I wanted to challenge myself and make something electronic, responsive, and harder than what I had already done.
This was the project right after my Bonnie animatronic. Bonnie taught me how to work with motors, linkages, and a servo controller, but the gimbal added a whole new level of complexity. Now I had to deal with an ESP32, MPU6050 gyroscope and accelerometer data, a PCA9685 servo driver, battery power, voltage regulation, motor torque, and real-time stabilization.
I designed nearly every part myself in Fusion 360, roughly 11 out of 13 components, and went through more than 30 rapid prototype prints. I spent over 120 hours designing, printing, assembling, wiring, soldering, unsoldering, testing, debugging, and rebuilding the system. The goal became simple: get the gimbal working before the deadline, no matter how many problems showed up.
A lot went wrong. I burned about two ESP32 boards and one motor. I struggled with the power system, tested different wiring setups, and spent days trying to understand why the code and electronics were not responding. At one point, the system still was not working only a couple days before the final deadline.
One of the biggest turning points came from a simple mistake: I had connected a power wire to the wrong pin. It was on a voltage-out pin, and I only caught it after going back and actually checking the component pinout. That mistake taught me a lesson I will not forget: do not guess with electronics. Read the datasheet, check the pinout, and verify every connection.
After that, I stopped treating the gimbal like one giant broken thing and started testing it like a real system. I checked the ESP32, the MPU6050, the servo driver, each motor, the power rails, the wiring, and the code one piece at a time. That process is what finally made the project come together.
Final Result
By the end, the gimbal worked. It was able to respond to movement and stabilize the phone within reasonable operating angles. It was not perfect, especially at extreme overhung angles where the servos could not fully overcome the torque from the phone’s weight, but it proved the concept worked.
More importantly, this project proved that I could take a messy mechatronics system, break it down, isolate variables, and keep pushing until it physically worked. It gave me real experience in CAD, manufacturing, electronics, sensor integration, controls, debugging, and system-level engineering.
What I’d Improve
I would redesign the gimbal to reduce overhung loading and improve torque balance across the roll, pitch, and yaw axes. A future version would use stronger materials, tighter mechanical interfaces, cleaner wiring, better power distribution, and a more refined control system to reduce jitter and improve stabilization at larger angles.
If I rebuilt it at a higher level, I would move away from hobby servos and use brushless gimbal motors for smoother motion and better rotation range. I would also shrink the electronics into a custom PCB, improve the handle ergonomics, and better balance the phone so the motors are not fighting as much torque.
