Flix
ESP32-based DIY quadcopter built from scratch for learning.
- No repo-wide license
- drone4 DoF
- cost not published
About Flix
Flix is a source-published ESP32-based quadcopter built from scratch for education and research. It pairs a 3D-printed frame with brushed 8520 motors and a GY-91 IMU, driven by under 2,000 lines of Arduino firmware that speaks MAVLink over Wi-Fi or ESP-NOW, plus a Gazebo simulation and Python control library.
Licenses
- Hardware
- No repo-wide licenseMIT covers the Python tools only
- Software
- Not published
- Docs
- Not published
Degrees of freedom
4 DoF
No per-group breakdown has been sourced yet.
Quadcoptersource
How to build Flix
5 stepsSteps marked Motari summary condense the linked source; follow the source for exact instructions. Upstream step marks a step taken from the linked guide.
Print the frame
Print the v1.1 frame main part, the ESP32 holder top part and two M3 washers from the provided STL or STEP files; the README recommends 0.2 mm layers and 100% infill.
Upstream stepgithub.com/okalachev/flix/blob/9d47bcb82e41f12ca2cfbb7914461...Solder the electronics
Solder the four 8520 motors via N-MOSFETs to the ESP32 Mini and wire the GY-91 IMU per the assembly docs.
Motari summarygithub.com/okalachev/flix/blob/master/docs/assembly.mdFlash the firmware
Build and upload the Arduino firmware (under 2,000 lines) to the ESP32.
Motari summarygithub.com/okalachev/flix/blob/master/docs/assembly.mdCalibrate the IMU
Run the calibration described in usage.md and verify attitude estimation.
Upstream stepgithub.com/okalachev/flix/blob/9d47bcb82e41f12ca2cfbb7914461...Fly or simulate
Control over Wi-Fi/ESP-NOW with a gamepad, or run the Gazebo simulation with the Python library.
Upstream stepgithub.com/okalachev/flix/blob/9d47bcb82e41f12ca2cfbb7914461...
Wiring, power and firmware are safety-relevant and shown for reference only. Check them against the source before building.
Flix bill of materials
18 rowsCost to build
The sources do not publish a cost total. The rows below are what they list, without a sum.
Flix parts, as the source lists them (read 2026-06-07). Prices are the source's, not checked against vendors.
| Part | Qty | Spec | Source | Confidence |
|---|---|---|---|---|
ESP32 Mini boardFlight controller; ESP32-S3/ESP32-C3 boards also supported | 1 | ESP32 microcontroller board | vendor not namedprice not listedokalachev/flix README.md line 82 | high |
IMU and barometer boardGY-91, MPU-9265, ICM20948V2 or GY-521 options listed | 1 | IMU board; barometer on supported variants | vendor not namedprice not listedokalachev/flix README.md line 83 | high |
Boost converterOptional, for more stable 5V power supply | 1 | 5V output boost converter | vendor not namedprice not listedokalachev/flix README.md line 84 | high |
8520 3.7V brushed motorsMotor shaft and propeller hole diameters must match | 4 | 8.5x20 mm 3.7V brushed motor | vendor not namedprice not listedokalachev/flix README.md line 85 | high |
55 mm or 65 mm propellersPropellers for the 8520 motors | 4 | 55 mm or 65 mm | vendor not namedprice not listedokalachev/flix README.md line 86 | high |
100N03A MOSFETsMotor-driver transistors; analog accepted by upstream docs | 4 | 100N03A or analog N-channel MOSFET | vendor not namedprice not listedokalachev/flix README.md line 87 | high |
10 kOhm resistorsPull-down and voltage measurement resistors | 6 | 10 kOhm resistor | vendor not namedprice not listedokalachev/flix README.md line 88 | high |
3.7V Li-Po batteryLW 952540 or size-compatible battery with sufficient discharge rate | 1 | 1S Li-Po, 25C or higher recommended | vendor not namedprice not listedokalachev/flix README.md line 89 | high |
Battery connector cableBattery connector cable listed in hardware table | 1 | MX2.0 2P female | vendor not namedprice not listedokalachev/flix README.md line 90 | high |
Li-Po battery chargerUpstream table accepts any compatible charger | 1 | compatible 1S Li-Po charger | vendor not namedprice not listedokalachev/flix README.md line 91 | high |
IMU mounting screwsScrews for IMU board mounting | 2 | M3x5 | vendor not namedprice not listedokalachev/flix README.md line 92 | high |
Frame assembly screwsScrews for frame assembly | 4 | M1.4x5 | vendor not namedprice not listedokalachev/flix README.md line 93 | high |
3D-printed frame main partSource STL/STEP and print settings are linked from the hardware table | 1 | flix-frame-1.1, 0.2 mm layer, 0.4 mm line, 100% infill recommended | 3D print yourselfprice not listedokalachev/flix README.md line 94 | high |
3D-printed ESP32 holderFrame top part | 1 | ESP32 holder STL/STEP | 3D print yourselfprice not listedokalachev/flix README.md line 95 | high |
3D-printed IMU washersWashers for IMU board mounting | 2 | washer-m3 STL/STEP | 3D print yourselfprice not listedokalachev/flix README.md line 96 | high |
ControllerRecommended controller options: CC2500 transmitter, two-stick gamepad, or other supported controller | 1 | CC2500 transmitter or compatible controller | vendor not namedprice not listedokalachev/flix README.md line 97 | high |
Optional RC receiverOptional receiver listed by upstream hardware table | 1 | DF500 or other compatible receiver | vendor not namedprice not listedokalachev/flix README.md line 98 | high |
Wires and tapeConsumables listed by upstream table | 1 | 28 AWG wire recommended; tape/double-sided tape | vendor not namedprice not listedokalachev/flix README.md lines 99-100 | high |
Rows from the source's own parts list 19
README.md@9d47bcbmarkdown
| Source row | Qty | Price and vendor | Line |
|---|---|---|---|
ESP32 Mini. ESP32-S3/ESP32-C3 boards are also supported. | 1 | vendor not listedno price listed | L82 |
GY‑91, MPU-9265 (or other MPU‑9250/MPU‑6500 board) ICM20948V2 (ICM‑20948) GY-521 (MPU-6050) | 1 | vendor not listedno price listed | L83 |
5V output | 1 | vendor not listedno price listed | L84 |
8520 3.7V brushed motor. Motor with exact 3.7V voltage is needed, not ranged working voltage (3.7V to 6V). Make sure the motor shaft diameter and propeller hole diameter match! | 4 | vendor not listedno price listed | L85 |
55 mm or 65 mm | 4 | vendor not listedno price listed | L86 |
100N03A or analog | 4 | L87 | |
10 kΩ | 6 | vendor not listedno price listed | L88 |
LW 952540 (or any compatible by the size). Make sure the battery has enough discharge rate: 25C or more! | 1 | vendor not listedno price listed | L89 |
11 more rows in README.md
Flix source files
14 files- gazebo/models/flix/flix.sdf
- gazebo/models/floor/floor.sdf
- gazebo/models/linnmon/linnmon.sdf
- docs/assets/flix-frame.step
- docs/assets/flix-frame-1.1.step
- docs/assets/esp32-holder.step
- gazebo/models/linnmon/linnmon.dae
- gazebo/models/flix/flix.stl
- docs/assets/flix-frame-1.1.stl
- docs/img/mosfet-connection.png
- docs/img/espnow-connection.jpg
- docs/img/schematics.svg
- flix/mavlink.ino
- flix/cli.ino
Files stay in the upstream repository under their own licenses; these links open them there. The 3D model on this page is Motari's conversion of the file named under Simulation.
Flix in simulation
Robot description files a simulator or CAD tool can load, linked at the commit they were found.
- SDF (Gazebo)gazebo/models/flix/flix.sdfokalachev/flix
The 3D specimen on this page is converted from gazebo/models/flix/flix.sdf at 9d47bcb.
Builds of Flix
0 reviewedNo reviewed builds of Flix yet.
A build log records the evidence (photos, a video, your repository), what the build cost, how long it took and what you changed. Each one is checked by Motari (until a maintainer claims this page) before it shows here, and reviewed builds count toward the reproducibility score.
Sources and provenance
Sources
- Hardwaregithub.com/okalachev/flix9d47bcb
- Build guidegithub.com/okalachev/flix/blob/master/docs/assembly.md9d47bcb
Last push to okalachev/flix: 2026-09-30 (checked 2026-10-01)
How this page was made
Assembled from public sources on 2026-06-04, not yet reviewed by the maintainer. Each figure links to where it is stated; a value the sources do not state reads "not published". Last source review: 2026-06-07 okalachev/flix README hardware table.
Original files stay intact and separately licensed; Motari adds only the summary on this page. Maintainer? Request a correction or removal.
Badge for the README
Maintain Flix? Show its reproducibility score in the project's README. The badge links back to this page and updates with the score.
[](https://motari.io/r/flix-quadcopter)<a href="https://motari.io/r/flix-quadcopter"><img src="https://motari.io/api/v1/badge/flix-quadcopter" alt="Motari reproducibility score for Flix" height="20"></a>Not fully met yet: bom evidence (partial), oshw-compatible license. The score is read from the project's own sources, so publishing what is missing is what raises it. A score of 90 or more needs a reviewed build. How the score is computed