Get in Toucharrow


Bluetooth Enabled Autonomous Micro Quad-Copter

Business Overview

Bluetooth-based Micro Quad-copter is a voice-enabled Micro Quad-Copter that is autonomous and is used for guiding the path for the people inside the shopping malls. The Micro-copter has Bluetooth inbuilt in it and hence the individual can give voice command over the phone to lead to the respective destination. It has a flight capacity of 40 minutes and also an auto-docking feature for turbocharging which is done in 10 minutes. The micro-copter also has an LED strip attached which is customized as per the voice input. The micro-copter is autonomous i.e it can fly independently, it has an IR sensor inbuilt with it for collision detection. In further advancement, GPS was enabled for the application of following me. The micro-copter carries a payload of 80 grams.


Sensor Acquisition

Bluetooth Enabled Autonomous Micro-QUADCOPTER

An introduction and overview of the path from sensor acquisition to motor control. In order to understand the details of each of the steps, the best is to read the code, but it’s not trivial to understand the flow. Therefore this should be seen more like a map of where to look in the code to understand, than complete documentation of each step..0



To do modeling, simulations, or to improve the flight algorithms the physical parameters of the Micro-copter system are good to know. The following tests are done to find some of these parameters.

Measuring the RPM

To measure the RPM we used optical switches that we connected to a prototype board. The firmware was then modified to measure the timing of the optical switches, convert them to RPM and make them available to the subsystem. The logging subsystem was also “hacked” so that more frequent samples could be taken (500Hz instead of max 100Hz).

Bluetooth Enabled Autonomous Micro-QUADCOPTER

Quad-Copter Measuring the THRUST

To measure the thrust we built a simple test fixture. We use a precision scale to measure the thrust. It is done by letting a weight hold the Micro-copter down that is standing the scale. The lift generated will show up on the scale as the total weight gets lighter. We glued a prototype expansion board to a bottle that we could attach the Micro-copter to. It is not a perfect fixture but shouldn’t be too far off.

Measuring AMPS and VOLTAGE

Voltage measurements are already done in firmware but amps had to be measured using a multimeter in series with the power source. Later it would be nice to add this to the RPM board so it could be measured during flight.

Technologies Used in Micro Quad-Copter


The IMU sensor which is used for the Micro-copter has the following specs

  • 3 axis gyro (MPU-9250)
  • 3 axis accelerometer (MPU-9250)
  • 3 axis magnetometer (MPU-9250)
  • the high precision pressure sensor (LPS25H)
Radio Specs
  • 20 dBm radio amplifier tested to > 1 km range LOS with RF
  • Bluetooth Low Energy support with iOS and Android clients available (tested on iOS 7.1+ and Android 4.4+)
  • STM32F405 main application MCU (Cortex-M4, 168MHz, 192kb SRAM, 1Mb flash)
  • nRF51822 radio and power management MCU (Cortex-M0, 32Mhz, 16kb SRAM, 128kb flash)
  • 107C Coreless Motors
  • Keil µVision 5
  • nRFgo Studio

System Architecture of Micro Quad-Copter

An NRF51, Cortex-M0, that handles radio communication and power management:

  • ON/OFF logic
  • Enabling power to the rest of the system (STM32, sensors, and expansion board)
  • Battery charging management and voltage measurement
  • Master radio bootloader
  • Radio and BLE communication
  • Detect and check installed expansion boards

An STM32F405, Cortex-M4@160MHz that handles the heavy work of flight control and everything else:

  • Sensor reading and motor control
  • Flight control
  • Telemetry (including the battery voltage)
  • Additional user development


THRUST Measurement

The firmware was adjusted to increase the trust from 0% to 93.75% in 16 steps. Each step period was set to four seconds so that thrust and amps could be manually written down. The RF client was set up to log the PWM, voltage, and RPM during the same time.


As can be seen in the graph both the RPM and voltage vs. thrust is quadratic while the Power vs. thrust is linear. Also from the figures, one can see that at 93.75% PWM the trust is about 58g. Using the values some interesting plots can be made. Like estimated flight time vs. battery capacity.

AmpsThrust (g)VoltagePWM (%)Average RPM


Communication Stack

The Micro-copter communication stack is divided into three layers:

Module: End receiving service of data

MRTP: Protocol for communication

Link: Physical communication link

Each layer communicates on a logical level with the same layer on the other side.

Commands Summary
0x11SET_ADDRESSOnly implemented on Micro-copter version 0x00
0x12GET_MAPPINGOnly implemented in version 0x10 target 0xFF
ByteRequest fieldsContent
ByteAnswer fieldsContent
1-2pageSizeSize in a byte of flash and buffer page
3-4nBuffPageNumber of ram buffer page available
5-6flash pageTotal number of flash page
7-8flash startStart flash page of the firmware
9-21cpuIdLegacy 12Bytes CPUID, shall be ignored
22versionA version of the protocol

This exchange requests the bootloader info. The content of this packet contains all information required to program the flash.


We built a working Micro Quad-Copter, there is much room for many improvements. First of all, we can make it much more stable so that we could let it fly freely in an open place even with spectators around. We can improve the accuracy of our wireless protocol to make it possible to fly the micro-quadcopter wirelessly from quite a distance. While the initial goal of creating an autonomous quadcopter capable of sensing obstacles was not reached in a given time, our group still learned a substantial amount about robot design, fabrication, control, and embedded programming. We used the spring test rig to determine the motor and propeller thrust for various PWM signals. We used this information for quadcopter frame-down selection and control. We learned important soldering and electric system fabrication skills including making a power harness and digital to analog motor control. Our group all became proficient in ARM Cortex series programmers by necessity as it was the most complex part and required a group effort. In these ten weeks, we succeeded in stabilizing the quadcopter in two degrees of freedom. The end of the project is bittersweet. We are proud of our accomplishments but wish that there was more time to improve the quadcopter. We would further fine-tune the stability and add code to handle yaw and translation in the XYZ-axes. We would also implement the ultrasonic sensors for obstacle detection and avoidance as in the initial goal.


Faststream helped one of the clients to design a next-generation vending machine solution using IoT and AI that supports functions such as predictive maintenance, customer-centric loyalty programs, and cashless transactions, and Bluetooth Enabled Autonomous Micro Quad-Copter, feel free and contact us for more details: Email: [email protected]