Full Scratch Drone
A self-built quadcopter drone with an ESP32-based custom control board, 3D-printed frame, and a smartphone-based transmitter.
- Drone
- Open source
- arduino
- 3D printable
Suggested by Robotheca, created by @Haruki-Ayukawa (opens in a new tab), from github.com/Haruki-Ayukawa/Full_Scratch_Drone (opens in a new tab). Pinned to commit 11fc08a (opens in a new tab).
- Hardware license
- MIT (opens in a new tab)
- Software license
- MIT (opens in a new tab)
- Commercial use
- Allowed
Photo and 3D model
3D preview converted from github.com/Haruki-Ayukawa/Full_Scratch_Drone at 11fc08a, under MIT. View the original files from GitHub (447 KB) (opens in a new tab)
What it can do
Written by Robotheca from the project's documents.
- Quadcopter flight controller that stabilizes attitude using roll, pitch and yaw estimates from an IMU
- Switchable control modes: single-loop angle PID and cascaded angle/angular-rate PID
- Gain constants can be switched between defaults and real-time tuning from the phone app
- Controlled from a smartphone acting as the transmitter, linked over BLE binary commands
- Serial debugging on a PC and wireless debug notifications sent back to the phone
- Attitude estimated with a Madgwick filter using 6-axis data (9-axis option existed but was not used due to magnetometer issues)
Bill of materials
This repository has no parts list Robotheca can read yet.
Build guide
The creator's steps, each with its instructions.
- 1Design the control board in KiCad and order the PCB from JLCPCB
- 2Surface-mount the control board with a hot plate and solder paste
- 3Design the frame in Fusion and 3D print it on a RAISE3D E2 with PLA
- 4Assemble the frame with motors, propellers, LiPo battery and control board
- 5Compile and flash the flight controller firmware with PlatformIO in VSCode
- 6Set up the smartphone transmitter app built with MIT App Inventor
The guide appears here as you scroll.
Guide by @Haruki-Ayukawa (README.md), under MIT. The English translation is by Robotheca, shared under the same license.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- ESP32-MINI-1-N4 microcontroller on a custom-designed control board
- ICM-20948 9-axis IMU sensor
- AO3400A N-channel MOSFETs acting as motor drivers (four, one per motor)
- Brushed DC motors, 8.5mm diameter, 3 to 5 V
- 55mm propellers, four pieces
- GNB 550mAh 1S LiPo battery, 3.8 V
- Smartphone running an MIT App Inventor app as the radio transmitter
Connections
- All electronic parts are mounted on a single control board designed in KiCad and surface-mounted
- MOSFETs switch the motors and are driven by PWM from the ESP32
- The IMU is connected to the ESP32 and read by the firmware
- Power comes from the single-cell LiPo battery through the control board