To create a drone you need 3D motion sensors with some accuracy and the block diagram above illustrate a Hat with Gyroscope, Accelerometer and Magnetometer + some other sensors. Using a STM32F405 for this purpose is a bit overkill, but I also added RTC and SPI Flash to give the module some motion math capabilities. I also consider adding GPS to the Hat because as I plan larger drones I also need double or triple set of position and motion sensors.
What sensors I will add and how is a bit work in progress, but it is a long list of 9-DOF sensors on the marked using either I2C or SPI as interface. Their packages are small targeting very small drones, but I think I can manage to solder them on – if not I could also use some of the breakout boards as is.
I found this article on Adafruit (https://www.adafruit.com/product/3463) very interesting. They also list the main alternatives:
- L3GD20 3 Axis MEMS Gyroscope – ST
- FXAS21002C 3 Axis MEMS Gyroscope – NXP
- LSM9DS0 9 Axis* MEMS Sensor (Accel + Mag + Gyro) – ST
- LSM9DS1 9 Axis* MEMES Sensor (Acce + Mag + Gyro) – ST
- MPU-9250 9 Axis* MEMS Sensor (Accel + Mag + Gyro) – Invensense
- BMI055 6 Axis MEMS Sensor (Accel + Gyro) – Bosch (Used in the BNO055)
The NXP sensors are better than the others according to Adafruit’s testing. I have breakout’s for MPU-9250 and the older 6250 etc. But, I will also order the NXP breakout board for testing. To actually test this I can just connect to SPI or I2C on XPortHub, so I don’t actually need to make a separate Hat for this (yet).
The picture abobe shows Adafruit’s breakout board costing 15.- USD with FXOS8700 (Accelerometer + magnetometer) and FXAS21002 (Gyroscope). I am a bit concerned about soldering those chips manually due to size, but I think it will be ok. You see my concern as you realize that the other components are SO23 and 0603. Also – buying these Components are not straight forward. I got the Gyroscope, but I struggle with FXOS8700 + the cost means it is cheaper to just buy a breakout board. Well done Lady Ada. I think it’s wise to just test With XPortHub and breakout Boards first 🙂