For a drone swarm project we bought swarming drone Crazyflie drone kit from Bitcraze, and start developing using the Crazyflie eco system. Using the Bitcraze system with LOCO UWB indoor positioning system it flies okay(is).
Not entirely satisfied with the flying characteristics of Crazyflie. We decided to port the Ardupilot flight stack to Crazyflie. There is support for the Crazyflie 2.0 drone within the Ardupilot project. The Crazyflie 2.0 has been discontinued and Bitcraze released the Crazyflie 2.1 which changed the IMU and barometer sensors.
The Crazyflie 2.1 uses the Bosch BMI088 IMU and BMI388 barometer, which is supported by the Ardupilot flight stack. We had to change the hwdef of Crazyflie to include these sensors, and modify the BMI088 driver to use I2C instead of SPI.
Using an ESP with the MavESP8266 firmware for telemetry we were able to fly the Crazyflie through MAVProxy and QGroundControl using a Frsky Taranis over USB.
And it flies . Had to tune the PID a bit to get it flyable, but it flies. We have the feeling that if flies better, and more stable than the Crazyflie flight software. PID’s could be a bit better, but it flies decent.
Then we had the idea to convert the Crazyflie with brushless motors. We thought that using brushless motors, the flight characteristics should improve due to that brushless motors has more torque and can change motor speed faster than brushed motors. Besides the flight characteristics, the brushless motors should be more durable than brushed motors.
We bought the Sensi Micro V2 drone frame from DroneJunkies with the Eachine Lizard95 1104 6000kv motors and the Eachine Minicube 10A 4-in-1 ESC. The idea was to mount the Crazyflie hardware on the Sensi drone frame.
And it flies… horrible . This drone is waaay overpowered and very aggressive. This frame-motor-prop-battery combination is destined for racing drones. Currently still working on the PID’s. And it is either violent oscillations or extremely sluggish. But I just finished this drone the other day, so I am still working on it.
Overall it has been extremely fun developing on the drones and Ardupilot. As a former Linux kernel developer I am extremely content with the structure of Ardupilot and the sources (props to the developers!). Do need to improve my knowledge regarding C++ though. I am a low level HW/SW developer. Learning it on the job!
Further challenges in our development:
- Porting the Syslink driver (serial communication between Nordic nRF chip and STM) to transport MAVLINK
- Porting the UWB driver for positioning
- Realizing a swarming communication telemetry link with 100+ drones
- Developing our own drone
Thanks all, and we will keep you guys updated!