Brush Quadcopter Drone

A quadcopter FPV drone project built with Arduino (May 2025 - Present)

Arduino Drone

Project Repositories

About the Project

An FPV quadcopter drone is built using Arduino Nano microcontrollers and NRF24L01 radio modules for communication. This project contains two pieces of hardware, the drone and the controller. More information about the project can be be found in the BrushQuadX organization.

The drone is built using an Arduino Nano microcontroller, an NRF24L01 radio module, an MPU6050 gyroscope and accelerometer, a BMP085 barometric pressure, temperature, and altitude sensor, DC-to-DC step-down voltage regulator, motor drivers, and brush motors. The circuit also utilizes filtering capacitors to reduce noise at the power inputs of the components. The motor driver consists of surface mount components; N-channel mosfets, shottky diodes, 10Kohm resistors. The motor driver controls the power delivered to the motors.

Drone Schematic

The controller consists of an Arduino Nano microcontroller, an NRF24L01 radio module, two joysticks, and SPDT switches to control the drone activation.

Controller Schematic

The assembly involves soldering the components onto a custom PCB that was designed using Fusion360 and EasyEDA. The PCBs were printed using EasyEDA and PCBWay or JLCPCB. Once the components are assembled, the firmware that was written in C++ is uploaded to the microcontrollers to initiate the communication between the drone and the controller. The MultiWii software is used to arm and calibrate the drone for flight stability.


The FPV element to the project was built using a Micro AIO 600TVL 3.4g 5.8GHz 25mW WT05 FPV camera that is directly attached to the drone and a FPV Reciever 5.8G 150CH OTG USBC that can be plugged into any device such as a PC or a Raspberry Pi 5 which can then receive the frames captured by the camera. I implemented a Rust-based FPV application that can directly capture the frames using GStreamer and render the frames in a window using egui. Furthermore, the application runs an Ultralytics detection model with embedded NMS to perform inference on the frames to detect COCO object classes. The application establishes separate threads for capturing frames, performing inference, and rendering the frames to ensure smooth performance. The application also provides a user interface to control the camera settings and the detection model parameters. Lastly, the application supports installers for Windows x64 and Linux aarch64 machines for users to quickly deploy into their machine using their camera.

VisionOTG FPV Application

FPV Demonstration


This project was inspired by Max Imagination's and Electronoobs drone projects.

Drone Demonstration


Project Details


Reflection

When testing the first prototypes of my quadcopter drone, I observed intermittent power loss at the motors. With the understanding that increasing the voltage at the gate of an N-channel MOSFET should make the voltage at the drain approach ground, I used a multimeter to measure the voltage levels across the motor driver, ultimately identifying a faulty N-channel MOSFET. Furthermore, I observed the brush motors could not support the wooden frame and large components, I began to introduce a custom PCB design using smaller surface mount components to reduce the overall weight and achieve liftoff.

I have always valued quality in my engineering projects as I believe it reflects the passion and care behind the work. While good engineering design requires adherence to standards and rigorous testing, I believe going beyond these requirements and taking pride in one's work gives a project character. This attention to detail reflects my commitment to producing engineering solutions that are not only functional and reliable but also thoughtfully designed.

The quality I bring to my work comes from attention to detail and a constant desire to improve. I find myself asking questions throughout the design process: How can this design be improved? How can it be optimized or made more efficient? What features could make it more useful or distinctive? I enjoy exploring these questions through brainstorming and iteration, turning ideas into meaningful improvements that add value to my work.

When designing my quadcopter, I spend considerable time in the design phase carefully evaluating each aspect of the system. I consider the selection and placement of components, the overall PCB shape and layout, and even the routing of individual traces. Each decision is made with a specific purpose, whether to improve performance, efficiency, reliability, or manufacturability. I strive to make every aspect of my design deliberate rather than arbitrary because I believe that thoughtful engineering is found in the details.