Third version of my quadcopter, the previous one is described here
32-bit ARM Cortex-M3
Radio module (FSK)"
DC/DC converter from 12V to ~6V
Linear converter from ~6V to 3.3V
Main part of the whole system. Two-sided board powered with DC/DC converter followed by linear regulator providing stable 3v3
All computations are done by STM32F103 microcontroller running at 32MHz.
Thanks to DMA and off-loading lot of work to peripherals, it is
possible to run complicated Madgwick AHRS algorithm, calculate stabilization parameters and send motors duty values 250
times per second.
The board is equipped with µSD card slot for storing all of the sensors data in order to further processing (e.g. simulation,
GPS module provides current location and with conjunction with barometer and accelerometer data it is possible to calculate
approximation of real-time current location using Kalman filters.
8-bit AVR Atmega8A
Finally, I decided to make a small family of BLDC drivers instead of one quadruple driver as it is much easier to maintain.
Every device consists of ATmega8 microcontroller, 3 high and low side MOSFET drivers and 6 power N-MOSFETs. Commutations are based
on Back-EMF sensing of a non-conducting wire. Communication with main controller is done via I2C bus with own protocol.
Main control device. Current version is a standalone remote controller with IMU module as an extension (for steering via
hand rotation). Board is equipped with LCD display which shows all data from quadcopter and remote controler.
Remote controller allows to changle almost every single parameter of flying (including PID coefficients, calibration values,
flying mode and flying helpers).
This interface allows to communicate with quadcopter and remote controller from PC. There are several applications
for controlling the flight and sensors calibrating mostly written in C++ with use of Qt framework.
FPV module which allows to send real-time video stream to the ground form First Person View flying. It is equipped with
full 3-axis camera stabilization for better experience. It is based on 1/4" CMOS camera module and 2.4GHz AV transmitter.
Thanks to using servos it is possbible to change camera orientation even during the flight using remote controller.
Flight control panel
Stabilization using Madgwick quaternion based AHRS algorithm
Altitude hold based on barometer and accelerometer reads
In-flight parameters tuning
See full gallery on Flickr