Design and build a fully embedded quadcopter flight controller based on ESP32, integrating real-time stabilization, wireless control, and onboard web interface for monitoring and testing.
Context
This project demonstrates the development of a complete embedded control system for a quadcopter, combining:
- real-time sensor acquisition
- closed-loop control (PID)
- actuator management (ESC/motors)
- wireless communication and embedded UI
The system is designed for prototyping and experimentation, allowing remote interaction through a browser-based interface served directly from the ESP32.
Key Features
- Real-time IMU acquisition (MPU6050) via I2C
- PID-based stabilization loop (roll/pitch control)
- Motor control for quadcopter (X configuration)
- Embedded web interface for control and monitoring
- Unidirectional communication using WebSocket
- On-device hosting of UI (HTML/CSS/JS stored in LittleFS)
- Wi-Fi-based remote access (no external server required)
System Architecture
Embedded Control Layer (ESP32)
- Sensor acquisition (IMU MPU6050)
- PID control loop computation
- Motor command generation (PWM signals to ESCs)
Communication Layer
- WebSocket server running on ESP32
- Real-time bidirectional communication with browser
User Interface Layer
- Embedded web page (served via ESP32)
- Control commands (throttle, orientation simulation)
- Real-time feedback visualization
Hardware
- ESP32 (main controller)
- MPU6050 (accelerometer + gyroscope)
- 4x Brushless motors (1000KV) + ESCs
- Custom PDB
- Li-Po 3S battery
- Custom 3D printed quadcopter frame
Software Architecture
- Firmware developed using Arduino environment
- Real-time acquisition loop + PID controller
- I2C communication for IMU
- PWM output for motor control
- WebSocket server for real-time communication
- File system: LittleFS for hosting web interface
Prototyping & Mechanical Design
- Designed custom quadcopter frame using 3D CAD
- Fabricated using additive manufacturing (3D printing)
- Integrated electronics and wiring into physical prototype
- Iterative hardware testing and adjustments
Test
Next Steps
- Improve stabilization accuracy (tuning PID)
- Implement full 3-axis control (yaw integration)
- Add safety features (failsafe, watchdog)
- Integrate telemetry logging
- Optimize real-time performance
Technical Highlights
- Designed custom quadcopter frame using 3D CAD
- Fabricated using additive manufacturing (3D printing)
- Integrated electronics and wiring into physical prototype
- Iterative hardware testing and adjustments