Flix (flight + X) — making an open source ESP32-based quadcopter from scratch.
Version 1 (3D-printed frame) | Version 0 |
¹ — planned.
See detailed demo video (for version 0): https://youtu.be/8GzzIQ3C6DQ.
Version 1 test flight: https://t.me/opensourcequadcopter/42.
The simulator is implemented using Gazebo and runs the original Arduino code:
See instructions on running the simulation.
Type | Part | Image | Quantity |
---|---|---|---|
Microcontroller board | ESP32 Mini | 1 | |
IMU and barometer² board | GY-91 (or other MPU-9250/MPU-6500 board) | 1 | |
Motor | 8520 3.7V brushed motor (shaft 0.8mm!) | 4 | |
Propeller | Hubsan 55 mm | 4 | |
MOSFET (transistor) | 100N03A or analog | 4 | |
Pull-down resistor | 10 kΩ | 4 | |
3.7V Li-Po battery | LW 952540 (or any compatible by the size) | 1 | |
Li-Po Battery charger | Any | 1 | |
Screws for IMU board mounting | M3x5 | 2 | |
Screws for frame assembly | M1.4x5 | 4 | |
Frame bottom part | 3D printed:flix-frame.stl flix-frame.step |
1 | |
Frame top part | 3D printed:esp32-holder.stl esp32-holder.step |
1 | |
Washer for IMU board mounting | 3D printed:washer-m3.stl washer-m3.step |
1 | |
RC transmitter (optional) | KINGKONG TINY X8 or other³ | 1 | |
RC receiver (optional) | DF500 or other³ | 1 | |
Wires | 28 AWG recommended | ||
Tape, double-sided tape |
² — barometer is not used for now.
³ — you may use any transmitter-receiver pair with SBUS interface.
Tools required for assembly:
Feel free to modify the design and or code, and create your own improved versions of Flix! Send your results to the official Telegram chat, or directly to the author (E-mail, Telegram).
Motor connection scheme:
Complete diagram is Work-in-Progress.
Power ESP32 Mini with Li-Po battery using VCC (+) and GND (-) pins.
Connect the GY-91 board to the ESP32 Mini using VSPI, power it using 3.3V and GND pins:
GY-91 pin | ESP32 pin |
---|---|
GND | GND |
3.3V | 3.3V |
SCK | SVP (GPIO18) |
MOSI | GPIO23 |
MISO | GPIO19 |
NCS | GPIO5 |
Solder pull-down resistors to the MOSFETs.
Connect the motors to the ESP32 Mini using MOSFETs, by following scheme:
Motor | Position | Direction | Wires | GPIO |
---|---|---|---|---|
Motor 0 | Rear left | Counter-clockwise | Black & White | GPIO12 |
Motor 1 | Rear right | Clockwise | Blue & Red | GPIO13 |
Motor 2 | Front right | Counter-clockwise | Black & White | GPIO14 |
Motor 3 | Front left | Clockwise | Blue & Red | GPIO15 |
Counter-clockwise motors have black and white wires and clockwise motors have blue and red wires.
Optionally connect the RC receiver to the ESP32's UART2:
Receiver pin | ESP32 pin |
---|---|
GND | GND |
VIN | VC (or 3.3V depending on the receiver) |
Signal | GPIO4⁴ |
⁴ — UART2 RX pin was changed to GPIO4 in Arduino ESP32 core 3.0.
See the information on the obsolete version 0 in the corresponding article.
Subscribe to the Telegram channel on developing the drone and the flight controller (in Russian): https://t.me/opensourcequadcopter.
Join the official Telegram chat: https://t.me/opensourcequadcopterchat.
Detailed article on Habr.com about the development of the drone (in Russian): https://habr.com/ru/articles/814127/.