So, for some time I've been working on a good Arduino based, brushed coreless DC motors, NRF24 radio connection drone that could also have everything on the same PCB. After a few attempts, I finally have a good enough version. This drone flies very well, the code is based on the MultiWii platform, all components are on the drone PCB, everything is explained in this tutorial and you also have the parrt list below. So, if you want to make the same,
by: ELECTRONOOBS on 2026-06-01
We need a lot of parts but don't worry, nothing complicated to get. We need the ATmega328 chip in AU package, the sensor, the motors, propellers, the radio module and a few other SMD components such as ressitors, capacitors and LEDs. Check each component below. If the link is not updated, jsut go on eBay adn search the component yourself using the names below.
For the drone we need:
For controller we need:

The schematic is not that difficult and is quite the same as the other version. First we have the power block where we regulate our 3.3V for the NRF24 radio module. Remember that this module needs that voltage. The ATMega328 chip needs a few components to work such as the reset pullup, the crystal and other capacitors. To control the motors we use 4 n-MOSFETs. The PCB also has SPI pads in case you need to butnj the bootloader to the new chip. Get the PCB and the components and following the values on the schematic, solder the PCB.

First of all, we need to solder the microcontroller and test it. Is the most delicate component and we must make sure it has a bootloader, the crystal is working and the basic configuration is ok. So first step, get the drone PCB and the next components: The ATmega328-AU chip, the R2 resistor of 10K, the 16MHz crystal and the R6 resistor of 1M and finally the C4 capacitor of 100nF. With these components we can test the microcontoller. So, solder all these components. Follow the dot on the microcontroller in order to know which is the first pin. I've used solderpaste and my hot air gun to solder the chip and crystal and the soldering iron for the rest of the components.

In my case, I've took out the ATmega328-AU chip from an Arduino NANO board. That means it already has a bootloader so we could directly test it with the FTDI programmer. If it's a brand new chip taht you bought, you need to burn the bootloader first, so check next part for that. If the chip has the bootloader, connect the FTDI programmer to the UART port with Vcc, GND, RX, TX and DTR pin. Select Arduino NANO board in the Arduino IDE, select the COM of the programmer and upload any simple sketch in order to test if the chip works. I usually upload a counter with Serial.print so I can check that counter value on the serial monitor (see code below). If it works, everything is good and we can keep soldering components. If it doesn't work it might be because:
- The chip dose not have a bootloader (you will get not in sync error)
- The DTR capacitor is not 100nF value or not well soldered so the FTDI can't make a propper reset
- The R2 resistor is not well soldered so we don't have the reset pin with pullup
- Any of the ATmega238-AU pins could not be well soldered (check with multimeter)
- The crystal could not be of 16MHz or now well soldered in place
- You've damaged the chip (get a new one and lower the temperature while soldering)

int x = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(x);
x++;
delay(1000);
}
If the ATmega328-AU chip is brand new, you will probably need to burn a bootloader to it. With the same configuration as above we can burn the bootloader so solder the chip and components as before. You will need an Arduino NANO to burn the bootlaoder. Make the connections as below from the Arduino NANO to the bottom side of the PCB. Connect GND and 5V to any of the GND and Vcc pins of the PCB.

Ok, once you have the Arduino NANO connected to the PCB you need to prepare it to work as an ISP programmer. For that you need yo upload the Arduino as ISP code to the NANO first. So, go on the Arduino IDE, examples, ArduinoISP and open that example sketch. Then select the Arduino NANO board and the default programmer type. Upload this code to the NANO.

Now that the Arduino ISP code is uploaded and the connections are made, is time to burn the bootloader. First, change the programmer type from default to Arduino as ISP as you can see below. Then go to tools and click burn bootloader. The LEDs of the Arduino NANO should blink like crazy. After that you should get the message Bootloader burn complete if everything goes well. To test the chip, change back the programmer to AVRISP MKII and follow the step before (3.2) and using the FTDI programmer, upload a test sketch.

Ok, at this point we know the microcontroller works. Before we solder the rest of the components, we must make sure we have a good 3.3V voltage, otherwise we will burn the NRF24 radio module because it can't take higher voltage than that. So, solder the HT73-33 LDO and also the 10uF and 100nF capacitors at input and output. Also solder the input pins and the slide switch. Extra: I've also sodlered the LED and R10 resistor of 330R. Then connect the 3.7V battery at the input pins and flip the switch. Check the voltage at the NRF24 pins with the multimeter. It should be close or exactly 3.3V. If is higher, it might create problems so check the connections. Now that we have our 3.3V, we can solder all the other components.

You can now solder all the other components but follow this order: You must solder the MPU6050 last because otherwise, you won't be able to access the components below. Solder the MOSFETs, diodes and resistors on each arm for the motors control. Then solder the rest of resistor and capacitors. Solder the NRF24 radio module and finally the MPU6050 on top. You could always add more i2c modules on top such as magnetometer or barometer.

All components are soldered. Let's add the motors. First we glue the supports. Make sure the propeller shaft is facing upwards. Add super glue and fix each support in place. Insert the DC motors and then solder the wires to the + and - pads for each motor. Be careful! Two motors will spin clockwise and the other two counterclockwise.

Soldering the motors well is very important. Use an external power supply set to 3.7V in order to check in which direction the motor will rotate. Once you knwo which polarity will rotate in which direction, solder the wires to + and - in such a way taht the motors will spin like below. The main arrow shows the front face of the drone. Then, the propellers will rotate outwards like below and that's important for stability and yaw control.

Ok, now the drone is ready. Don't connect propellers yet! Go below and downlaod the multiwii code. Open that code in Arduino IDE. Connect the FTDI programmer to the PCB. Compile and upload the code. The code is not the usual MultiWii code. Is adapted to work witn NRF24 radio connection and to contero brushed mosfet with PWM signal instead of ESC control. So, not any MultiWii version will work, only the code below.

Now the drone has the MultiWii code. We have to test it. Go below and download the MultiWii Java platform. Make sure you have Java installd on your PC. Run the Multiwii platfrom for 32 or 64 bits. Keep the PCB connected to the programmer with USB. In the app, select rhe com of the FTDI programmer and click start. Now you should see the data from the drone as in the video below. Calibrate accelerometer. If at this point you have the radio controller ready, test if you receive data as well.
IMPORTANT: In order to enable the motors later, we must define one AUX channel to do that. A lot of you guys had problems with this in previous tutorials. So, in my case I check AUX 2 when HIGH to enable motors and AUX 1 when high to enable angle mode. After taht click write in order to uplaod the new configuration to the drone. Now, each time you flip AUX 2 switch, you will enable or disable the motors.
If you want a better radio controller using the same configuration, see this previous tutorial. That controller si compatible with this done. For the radio controller follow the same steps as for the drone PCB. See the schematic of the PCB below and use the same values. This time we supply the PCB with 9V battery so we have 2 voltage regulators, one for 5V and another for 3.3V. We will sue a power amplified antenna NRF24 module for more range.

For the radio controller follow the same steps as for the drone PCB. Check the part list here and solder the components in this order: First, the ATmega328p-PU chip, with the R1 resistor of 10K, the C3 capacitor of 100nF, the crystal of 16MHz and the C2 and C1 of 22pF. You can also solder the LED1 and R2 of 330R and the push button for reset. Then test if you can upload a sketck. If you need a bootloader, use the SPI pads below and burn it as in the previous part.

If the ATmega328 chip works, solder the rest. First solder the voltage regulators. After you solder the LDOs and capacitors, connect 9V at the input and check for 5V and 3.3V with your multimeter. Make sure you have good values. If everything is ok, solder all the rest of the components.

Go below and download the radio controller code. Open it in Arduino IDE. Select Arduino UNO board and uplaod it to the PCB using the FTDI programmer once again. Now you can test if you can receive values to the MultiWii platform with the drone conencted as you can see below. you might need to tune a little bit the joystick values in order to be exactly in the middle. If not, use my previous radio controller with digital adjustment from this tutorial.
Ok, now add the propellers and the battery. Make sure you calibrate the accelerator in the multiwii paltform. Make sure the propellers will rotate in the directions as below and that they will push the air downwards. Flip the swith of the drone and radio controller. Flip the AUX 2 swith in order to enable the motors. Then increase throttle and the drone will go up.

Flip the swith of the drone and radio controller. Flip the AUX 2 swith in order to enable the motors. Then increase throttle and the drone will go up. The better joysticks you have, the better will be the control. Add more sensor for better fly, altitude control and so on. That's it. Consider supporting me on PATREON. Thank you! For any question sue the forum here.
Leave a comment
Please login in order to comment.