# Flix **Flix** (*flight + X*) — making an open source ESP32-based quadcopter from scratch.
Version 1 (3D-printed frame) Version 0
Flix quadcopter Flix quadcopter
## Features * Simple and clean Arduino based source code. * Acro and Stabilized flight using remote control. * Precise simulation using Gazebo. * [In-RAM logging](docs/log.md). * Command line interface through USB port. * Wi-Fi support. * MAVLink support. * Control using mobile phone (with QGroundControl app). * Completely 3D-printed frame. * *Textbook and videos for students on writing a flight controller¹.* * *Position control and autonomous flights using external camera¹*. * [Building and running instructions](docs/build.md). *¹ — planned.* ## It actually flies See detailed demo video (for version 0): https://youtu.be/8GzzIQ3C6DQ. Version 1 test flight: https://t.me/opensourcequadcopter/42. ## Simulation The simulator is implemented using Gazebo and runs the original Arduino code: Flix simulator See [instructions on running the simulation](docs/build.md). ## Components (version 1) |Type|Part|Image|Quantity| |-|-|:-:|:-:| |Microcontroller board|ESP32 Mini||1| |IMU and barometer² board|GY-91 (or other MPU-9250 board)||1| |Motor|8520 3.7V brushed motor (**shaft 0.8mm!**)||4| |Propeller|Hubsan 55 mm||4| |MOSFET (transistor)|100N03A or [compatible](https://t.me/opensourcequadcopter/33)||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`](docs/assets/flix-frame.stl)||1| |Frame top part|3D printed: [`esp32-holder.stl`](docs/assets/esp32-holder.stl)||1| |Washer for IMU board mounting|3D printed: [`washer-m3.stl`](docs/assets/washer-m3.stl)||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: * 3D printer. * Soldering iron. * Solder wire (with flux). * Screwdrivers. * Multimeter. 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](https://t.me/opensourcequadcopterchat), or directly to the author ([E-mail](mailto:okalachev@gmail.com), [Telegram](https://t.me/okalachev)). ## Schematics (version 1) ### Simplified connection diagram Flix version 1 schematics Motor connection scheme: MOSFET connection scheme Complete diagram is Work-in-Progress. ### Notes * 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](https://docs.espressif.com/projects/arduino-esp32/en/latest/migration_guides/2.x_to_3.0.html#id14) to GPIO4 in Arduino ESP32 core 3.0.* ## Version 0 See the information on the obsolete version 0 in the [corresponding article](docs/version0.md). ## Materials 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/.