Introduction: How to Build a ZMR250 Racing Quadcopter
This will be my third quadcopter. I have built a Reptile 500 with an APM 2.8 and a micro quad with brushed motors running Cleanflight. However, inspired by the amazing videos on YouTube, I have decided to build a fast, powerful FPV racer. I will try to make this guide beginner friendly but I don't want to type out all the generic beginner info that is easily available, so I will keep this I'ble focused on this build.
A quick note on safety: these machines are NOT toys. They are very powerful and can cause serious injuries and damage to property. Even though I got into quads with a big 450 size quad, toy grade brushed quads are good first timers options. As 'drones' are under great public scrutiny, it is your duty to fly responsibly and make yourself aware of all rules and regulations and restricted airspace in your area. Don't bring a bad name to this hobby.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Parts List
This is my parts list. I have chosen them to maximise performance though many of them are well priced as well. This is definitely not a budget build however.
- Frame: FPV Model ZMR250 V2 without PDB
- Overcraft PDB
- Motors: RCX H2205- 2633kv
- ESCs: FVT Little Bee (See above combo)
- Flight controller: Acro Naze32 rev.6
- Propellers: Gemfan 5040 carbon blend, KingKong 5040, FCModel 5040 triblade, Surveilzone 5040 'unbreakables'.
- Receiver: FrSky D4R-II with 27ms PPM firmware
- FPV Camera: HS1177 (PAL, IR Block, 2.8mm lens)
- VTx: Aomway 5.8 GHz 200mW
- VRx: FR632 Diversity VRx
- Antenna: Aomway RHCP Omni, Aomway Helical
- Goggles: Quanum DIY Goggles V2
I will also try to explain why I chose each of these parts. I went with this frame since the standard ZMR250 is a popular first time racer frame. Without costing too much more, this V2 frame from FPV Model comes with better quality, thicker carbon fiber and is supposed to be better machined. This power distribution board fits above the bottom plate and will help make this a neat build, as it integrates the OSD and routes the signal lines for the ESCs apart from providing various options to power all the components. However, I have heard it has issues with electrical noise apart from being a weak point in the frame, so I will have to see how it holds up.
These motors seem to be excellent performers and I've heard they are on par with the famous Cobras. The V2 motors come with set screws to fix the issue of bells flying off or the shafts loosening. Also spare parts such as circlips, shafts, bearings and even entire bells are available so the motor is easily serviceable. The FVT Little Bee ESCs are also supposed to be excellent performers since they come with dedicated FET drivers and a SiLabs F330 that far outperforms Atmel based ESCs. They are supposed to be similar in terms of performance to Rotorgeeks RG20A. However, the F330 may have trouble coping with high kv motors on LiHV packs, limiting the thrust available. Also, they may not do as well with next-gen protocols such as MultiShot so an F39x based ESC may be a better choice. Options include the new DYS XM20A, and XRotor ESCs. The Xrotors are big, heavy and difficult to flash however, so it is well worth keeping an eye out for a light, pre-flashed version that is coming out on ggracers.com. I believe that ZTW is coming out with an F39x offering as well.
The Naze32 is coming close to obsolescence with its STM32F1 processor. Although there are F3 boards available at twice the price, the naze should do fine with Betaflight until Raceflight for the STM32F4 is stable. The F3 boards do not have that much of an edge over the Naze as the F3 is just the F1 with a floating point coprocessor. The additional UART may be useful for some but i will hold off until I can buy an F4. Some would suggest that most pilots can't even feel the difference but I am mentioning this for people looking to be at the cutting edge of racer tech.
I chose the D4R as I have a FrSky DJT module in my Turnigy 9XR. For those with an XJT or internal XJT in their Taranis, the X4R-SB is a better choice as SBus has significantly lower latency and better error handling than CPPM.
I bought the PAL, IR Blocked version of the camera with a 2.8mm lens. PAL is the standard in my country and since I don't plan to do any low-light flying, IR block will offer more vivid colours. 2.8mm should be good for general flying but some may prefer the narrower field of view of the 3.6mm lens for proximity flying.
Step 2: Frame Assembly
- First, screw the motors to the arms. The shorter screws included with the frame are the correct length. Use a small drop of Blue threadlocker on the tip of each screw to hold the motors firmly (make sure not to use too much, and definitely don't use the red stuff: it can't be removed). The motor holes line up only one way with the arm holes, and ensure it is so that the wires extend down the arm. A good way to do this is to insert one screw first, tighten it a little and then insert the opposite screw. This will let you line up the other screws easily and tighten them down.
- Attach the standoffs to the PDB. The red aluminium standoffs are screwed to the power distribution board. This isn't a good idea as they will apply stress to the relatively fragile circuit board in case of a crash. A better way to do this would be to run a screw from the bottom carbon fiber plate, through a 4mm nylon spacer, and then through the PDB and into the standoffs. However, I went with the first method as I did not have any 4mm spacer
- Attach the arms to the PDB and lower plate. Make a sandwich like this (from top to bottom) PDB-arms-lower frame plate. Run the longer screws from the frame package through the holes and bolt them down. I used M3 nylock nuts instead of the included M3 nuts for better holding power.
- The top plate can be installed later when the electronics setup is done.
Step 3: Preparing the Electronics
- Test fit the ESC on the arm and cut the motor wires to appropriate length. I removed the heat shrink from the ESCs and desoldered the included ESC wires and soldered the motor wires directly to the ESC pads for a neat connection. I soldered all the motor wires in the same order as motor direction can be reversed in software. Be careful not to overheat the ESC while soldering as there is a risk of damaging the small SMD parts. Also, doing this will void any warranty on the ESCs. Make sure you cover them up again before putting them on the arms. Carbon fiber is conductive!
- I then soldered everything to the Overcraft PDB. i really love this PDB since it makes provides power and signal routing for the ESCs, FPV gear, and even the OSD, Vbat and a buzzer. Servo leads are used on all the signal pads of the Overcraft to plug into the Naze.On the Naze32, There is a servo lead on the 5V, GND, and PPM input pin (number 1). This will only work if your receiver supports PPM output. I soldered straight pins on the ESCs output as well as the VBat and Buzzer pins (though right angle pins may be more convenient). I put right angles pins on Tx and Rx (for the OSD). However, I realised that this is not a good idea as I will not be able to use the USB while this is plugged in. So I soldered pins to inputs 3 and 4 (USART 2) for the OSD instead (not shown here). There is another right angle pin on the bottom of the Naze for RSSI input (pin 2). The RSSI comes from the D4Rs pin 2 goes to the RSSI IN pad on the PDB and then a wire from the OUT pad to the Naze.
- Even though the FPV gear I am using can technically take direct 4S voltage, I have seen several reports of cameras and VTxs burning due to electrical noise from these Little Bees. One solution is to use a separate voltage regulator with an electrolytic capacitor on the output. Here I am using a cheapo variable regulator (set to 9V as I will run both 3S and 4S) with a 1000uF 25V cap on the output. It will be connected to the "REG" pads on the PDB which would otherwise be used for a 12V Pololu style regulator.
For those looking for more details and a connection diagram, please check out Oscar Liang's amazing blog here I have also attached a manual for the Overcraft PDB that was downloaded from RCGroups.
Step 4: Software Setup.
I flashed my Naze32 with Betaflight as described here. You can choose to use regular Cleanflight firmware (or even Baseflight lol). I will now describe the settings I changed, menu by menu (with photos):
- Ports: Enable MSP for UART 2. This is what we will use to transmit voltage and RSSI data to the OSD as well as to enable communication between the OSD and Naze32 for changing settings in the OSD menu (more on that later).
- Configuration: Enable ONESHOT125 (a faster communication protocol between the Naze and your ESCs). I set maximum throttle to 200 and minimum throttle to 2000. When MOTOR_STOP is disabled, your motors will start spinning at minimum throttle as soon as you arm so you may have to decrease it if your quad tries to lift as soon as you arm. I am arming by a switch (AUX channel) so I also selected "Disarm regardless of throttle value". Yaw adjustment is set to 90 as I have changed the orientation of the Naze32 to fit my PDB (the arrow that should point forward points to the right). RX_PPM is selected as my receiver output is PPM (pulse position modulation, which lets me transmit 8 channels on one signal wire) rather than PWM (pulse width modulation which requires one wire per channel).VBAT and failsafe are also enabled. Failsafe throttle is set to 1000 so the quad will drop out of the sky if signal is lost (IMPORTANT: You also have to set failsafe on your receiver so the FC knows when signal is lost. READ the receiver's instruction manual and Cleanflight docs). Blackbox data logging is enabled as the Naze32 rev.6 comes with onboard 2MB flash memory.
- PID Tuning: The quad flies decently on stock PIDs (PID controller Luxfloat. I haven't tried Rewrite) but I have reduced them a bit as I noticed some oscillation in Blackbox. My quad is not yet fully tuned and I will post a different step for that.I have also set the rates pretty high. 0.45 lets me do double rolls pretty snappily. 0.1-0.3 are good rates to start with.
- Modes: I am using one 3-position switch on my radio for arming and flight modes. The top position is disarmed, the middle is acro mode (no stabilisation) and the bottom is horizon (self levelling but I can do flips and rolls at the limits of each stick). This lets me easily disarm or switch to horizon if I panic. The beeper is set to a different switch (for finding the quad if downed). Another switch is used to enable blackbox logging and a final one is used to switch off the OSD if I want to.
- Motors: This is very important. You will need to calibrate your ESCs from this tab. To do so, first MAKE SURE THE PROPS ARE REMOVED! Power up the naze32 by USB, connect, check the switch in this tab and move the master slider to full. Power on your quadcopter with the battery. You should hear a sequence of beeps that mean the ESCs have acknowledged full throttle. Then move the slider to the minimum. You should hear another sequence of beeps. Power off and on again and check that the motors all start up at the same time and spin up nicely (this can be adjusted in BLHeliSuite if required). Now go back to the configuration tab and set Minimum Throttle to the lowest value that gets the motors spinning up reliably (you should see this value in the motors tab on the master slider). Mine was 1025.
Now it is time to set up the ESCs with BLHeli. One good thing is that now you can use your flight controller as a programming adapter for BLHeli. There are plenty of videos on YouTube that show how to program ESCs using your Naze32. I flashed the ESCs with the latest version of BLHeli- 14.3 (you should probably do this before calibrating or you will have to redo the calibration). I had a bit of a scary moment when I tried flashing firmware without the main battery connected and the flash failed. I was no longer able to communicate with the ESC but luckily I was able to save it using my Arduino nano and the C2 communication pads on the ESC.
Now check that the PPM Max and Min values from the calibration are close (I chose to set them all to the same values.) I increased the Motor Timing to Medium-High and enabled Damped Light (active braking). I set "Enable PWM input" to off so that the ESCs don't confuse the Oneshot signal for normal PWM. I also unchecked "programming by Tx" to ensure that settings are not accidentally changed. Motors 1 and 4 are reversed as they were spinning the wrong way for me.
Step 5: Let's Fly
Sorry about the brief Instructable. I will try to update it soon, especially since I will be adding FPV gear once my goggles arrive. I will also try to add more detail.
Here is one of my early flights. Just getting started with rolls. She flies pretty well on stock settings but needs some tuning. This is Horizon mode (I need some more practice for acro). There are some crashes at the end (no damage, not even one prop. These KingKongs are tough!).