ziFly Quadcopter Flight Controller
A quadcopter flight controller based on STM32F103 with remote control, PCB, 3D models, and ROS 2/PX4 simulation support.
- Drone
- No license: all rights reserved by the creator
- ROS 2
- 3D printable
Suggested by Robotheca, created by @zirun672 (opens in a new tab), from github.com/zirun672/zifly-flight-controller (opens in a new tab). Pinned to commit ab687f7 (opens in a new tab).
- Hardware license
- No license
- Software license
- No license
- Commercial use
- Unknown
No license is stated for part of this robot.
The creator chose the hardware and software licenses on Robotheca; the repository has no license file for them yet.
Photo
What it can do
Written by Robotheca from the project's documents.
- Four-axis quadcopter flight with X-configuration motor mixing
- Attitude control using cascaded PID loops (angle outer loop + angular rate inner loop)
- Altitude hold using SPL06 barometer data
- Horizontal position hold using Mini optical flow module
- 2.4 GHz remote control via nRF24L01 with 32-byte data frames
- Flight modes: attitude mode, altitude+optical flow mode, failsafe lock, manual lock
- Three-step throttle unlock sequence
- Over-tilt protection and remote signal loss lock
Bill of materials
This repository has no parts list Robotheca can read yet.
Build guide
The creator's steps, each with its instructions.
- 1Assemble the quadcopter frame using 3D models
- 2Solder components onto the flight controller PCB
- 3Solder components onto the remote control PCB
- 4Flash the flight controller firmware using Keil MDK
- 5Flash the remote control firmware using Keil MDK
- 6Perform initial power-on checks
- 7Calibrate sensors and flight parameters
- 8Set up ROS 2 and PX4 simulation environment
- 9Test flight controller in simulation
The creator's guide is written in Chinese. It has no license, so all rights stay with the creator: Robotheca doesn't show it here or translate it, and gives its own notes about the robot instead.
Read the creator's guideAsk the creator on GitHub (opens in a new tab)Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- STM32F103C8 microcontroller on flight control board
- STM32F103C8 microcontroller on left-hand throttle remote control board
- MPU6050 6-axis IMU (gyroscope ±1000 °/s, accelerometer ±4 g)
- SPL06-001 barometer for altitude estimation
- Mini optical flow module connected via USART1 at 19200 baud
- NRF24L01 2.4 GHz transceiver for remote control communication
- Four PWM motor outputs via TIM2 CH1–CH4 on PA0–PA3
- AT24C02 EEPROM for storing remote calibration values
- USART3 debug port at 115200 baud for telemetry
Connections
- MPU6050 connected via software I2C to flight control board
- SPL06 connected via I2C (default address 0x77) to flight control board
- NRF24L01 connected via SPI to both flight control and remote control boards
- Four PWM outputs from TIM2 CH1–CH4 (PA0–PA3) to motor ESCs or coreless motors
- Remote control sticks connected to ADC1 with DMA on PA0–PA3 for throttle, yaw, roll, pitch
- AT24C02 EEPROM connected via I2C for storing remote calibration