dragonCopter is a quadrocopter electronics&software project. It was started in March 2009 by Helge as the Logikopter Project. The goal was to create an own quadrotor hardware and software from scratch which would fit on a standard mikrokopter airframe, so mechanical design was off-the-shelf. The project was called Logikopter due to the programmable logic involved: A CPLD assisted a single microcontroller to control 4 motors. At the Motodrone 2009 in Finofurt, first work on the brushless motor controllers was presented. This design did its maiden flight exactly 1 year and 5 days after project start. Here it can be seen on the Motodrone 2010 in Finowfurt:
The logikopter project was unique due to the single processor approach. So all the software, even for motor control, was on a single processor assisted by a CPLD which controlled the power stages and the commutation for all 4 motors in parallel. For the processor, first a Freescale Coldfire Processor was used. Then, a Microchip dsPIC was used due to better availabilty, but finally an STM32 was used because there was a large trend towards this powerful ARM architecture where the other microcontrollers could not really compete performance or power efficiency wise.
After the logikopter hardware was working well and the software did some improvements (first, only heading hold angular rate control, then complete angle control with gyro integration, acc drift compensation and euler angles with rotation matrices for world frame oriented flight control), I decided to develop a new hardware called the dragoncopter. Then, hoppel and manuel joined the project. Manuel helped to re-structure and improve the software and hoppel as an experienced quadrocopter pilot and developer had many ideas for the hardware development and did some beta testing as well.
The dragoncopter was based on a modular approach in contrast to the logikopter. This was also common for other projects such as the mikrokopter. But the dragoncopter was still unique because I decided to use the robust CAN Bus for motor control and compared to the mikrokopter, it only used a single central processor for flight control and navigation. This makes the hardware and software architecture simpler. The hardware was finished at the end of 2010 and can be seen here:
This is the dragonFly Rev 1.0 board. It contains the STM32 processor, voltage regulators, the ADXRS610 gyros, a three axis acc and a header to directly connect the rc receiver (I use the spektrum DSM2 system with the DX7 transmitter and the AR6200 receiver, so I designed a special header for it so that no cables are needed to connect it). Also, a CAN bus transceiver is integrated.
This is the dragonSight Rev 1.0 board. It contains the navigation sensors and can be directly attached on top of the dragonFly board with a standard 7 pin 2.54mm centerline pin row. So no cables are needed to connect both boards. It contains a mediatek MT3329 gps module with CR2032 backup battery, a BMP085 barometer module, and a HMC5843 compass module.
This is the fireBLDC Rev 1.0 motor control board. It contains an STM32 processor, a CAN bus transceiver, a trinamic TMC603A motor controller and directFET MOSFETs from international rectifier. It can be mounted directly on a rigger, the layout is optimised for that. The twisted pair used for CAN bus can be seen on the right.
This is the dragonPower Rev 1.0 power distribution board. It is mounted on the centerplate and is used to distribute power to the fireBLDCs and the dragonFly board, which can be directly mounted on top without a cable (standard 4 pin 2.54mm centerline connector).
The maiden flight of the new hardware was in november 2010. The work was presented at the 27C3 in Berlin in a lightning day talk in december 2010. The source code was published under the GPLv3 license. It was the first hobby project which used CAN bus motor controllers. The concept with CAN bus worked very well. No kind of bus errors or interference encountered with I2C could be observed at any time.
Still, it was hard to implement the navigation features. The BMP085 barometer sensor had too much noise in its signal for a stable height control, the HMC5843 compass was quite hard to implement and no compass heading was available because I did not manage to make sense out of its readings due to the lack of time for a deeper understanding of inclincation, declination et cetera. Also, the mediatek MT3329 GPS module did not really work well. It had some weird GPS fix issues and sometimes took ages to get a GPS fix. Then, it showed large motions even when the copter was staying at a fixed position on ground.
So in summary, I had a very nice new hardware which was working pretty well, except for the navigation sensors. So I still had to look at the other projects with envy, which had nice features such as GPS position hold, coming home, waypoint navigation etc. Replacing the sensors with newer and better parts was obvious, so I started some research into that. But the most difficult part was still the software for the navigation features. I lacked the time to really dive into that so the only features I could implement then were barometric height sensing and GPS position sensing (NMEA protocol decoder).
In 2011, I did not further manage any progress in the navigation features, but I did two re-designs of the fireBLDC. I wanted a round version which could be mounted directly under the motors to leverage the advantages of the CAN bus which was not limited to a short range in contrast to I2C. The first version, fireBLDC Rev 1.1 (below left in picture) was 50mm in diameter. The second version, fireBLDC Rev 1.2 (below right in picture) was 46mm in diameter. Both versions are shown here mounted on the centerplate for testing reasons.
At the end of 2011, I started to develop the new dragonFly / dragonPower 1.2 hardware which was targeted to be much smaller than the Rev 1.0 hardware. The new hardware is presented in the other sections of my blog, since that is the current development.