The most affordable open source nano quadcopter platform to empower drone-based STEM education.

Similar projects worth following
This project targets to implement a low-cost drone powered by Atmega328p and ESP8266 MCUs to empower drone based STEM education in every part of the world. The drone is designed to have a minimum number of components and a 3D printable frame. Micro-sized coreless motors are used to generate thrust which makes less harm to external objects when colliding.


Drone-based STEM education is one of the trending topics in the modern world but is limited to several countries and several communities due to the knowledge barriers and higher prices of the STEM drone platforms. Following are some of the key areas that students can learn with STEM drones.

  • Basics of building. 
  • Experimenting with basic movements of flights.
  • The physics of flight.
  • Programming.
  • Real-world problem-solving.

Currently available STEM drone platforms can be divided into 2 main groups.

  1. Drones with high level controlling
  2. Drones with low-level access

The drone which provides high level controlling is suitable for beginners who are not familiar with coding, physics and complex mathematical models. These drones are fairly cheap and can be programmed using block programming like Scratch. Students can learn basic movements of flight and real-world problem solving with these drones since they don't have to worry about flight stabilization, sensor inputs, and other complex mathematical models. The problem with these drone platforms is they do not provide access to its' internal parameters such as IMU measurements, PID outputs, etc. This limits the learning process up to a certain level and students need to buy another platform with low level access to continue the learning.

Usually drones which provide low-level access are expensive. This makes these drones affordable to a limited crowd. Further, most of these drones consist of highly complex algorithms so that students do not have an intermediate option when transiting from a beginner-level platform.

The LollyDrone project is started to solve the above problems in both beginner and advanced learning systems. The target is to implement both high- level commands for beginners and provide low-level but simple algorithms for intermediate students.

The key advantages of the LollyDrone are,

  • Build cost is under 20USD.
  • Simple firmware implementation avoiding complex mathematical models
  • Uses Arduino IDE for programming
  • WiFi interface allows both mobile phones and laptops for communication

The number of components is limited in the design which makes the assembling process done within 10 minutes. All the electronics except motors and the battery are combined into a single PCB board. The frame can be 3D printed so that students do not need to spend on buying extra frames.  Following are the key components of the drone.

  1. 3D printed frame
  2. 1S Lipo battery
  3. 716 coreless motors
  4. Custom made PCB

With all these components, the total weight is around 42g with a 280mAh battery which gives a flight time of around 7 minutes.



The PCB is designed using EasyEDA and the size is 40mm X 53mm.  The Atmega328 is dedicated to run the control system and ESP8266 handles the communication part. Coreless motors are directly driven by 4 MOSFETs. 

Gerber files, BoM and Pick n Place files are attached under the files section.

The board can be programmed with the Arduino IDE through an FTDI converter. The Vcc, Gnd, Tx, Rx and RTS pins on the board should be connected to the respective pins of the FTDI converter.


Flight Controller

The stabilization loop consists of the following processes.

  1. Read IMU
  2. Apply Complementary filter and calculate roll and pitch.
  3. Calculate corrections from PID.
  4. Calculate thrust for each motor and set the PWM.

The gyro and the accelerometer have been configured with 500dps and 8g ranges respectively. The I2C clock speed is changed to 400kHz to keep the communication time at a minimum level. The internal low pass filter of the accelerometer is configured to 184Hz to filter out unwanted vibration noise. The complementary filter is used to fuse the roll and pitch values calculated with the gyroscope and the accelerometer.

A calibration process is included in the initialization of the firmware to calculate the gyro bias and initial roll and pitch angles. The drone needs to be placed on a flat and firm surface...

Read more »

Zip Archive - 128.36 kB - 08/22/2021 at 17:10


ms-excel - 17.89 kB - 08/22/2021 at 17:10


ms-excel - 2.59 kB - 08/22/2021 at 17:10


  • 4 × 716 Coreless Motor 3.7v motor with 45mm propellers
  • 1 × Lipo Battery 1S 250mAh-300mAh
  • 1 × Arduino nano
  • 1 × MPU 6050
  • 1 × ESP8266

View all 6 components

  • Motor thrust mapping

    Tharindu Suraj Chathuranga08/23/2021 at 03:51 0 comments

    The thrust-voltage curve of coreless motors is not linear. Therefore directly applying PWM values from the PID controller cause problems in the stabilization system. To overcome this a mapping function is implemented by fitting a quadratic polynomial to the thrust-voltage curve and calculating coefficients.

    The sudden start of all 4 motors causes a drop in the supply voltage levels which results in the atmega328 reset. To avoid that, a slow start function is used which increases the thrust from 0 to the base thrust level within 500ms.

    Following is a testing video after adding the thrust mapping function.

View project log

  • 1
    Motor Setup

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates