I have finally decided to swap out the KK2.1.5 with the Naze32 on my 250 mini quad. I have to say IMHO after a couple of test flight, the Naze32 Flight controller does perform better than the KK2.1.5, in this case.
In rate mode it is very locked-in even when descents, or in high wind, although the performance in self level mode (horizon mode) is similar, which just wobbles in wind. More importantly, I like working with the multiwii, which allows me to connect the FC to my phone through Bluetooth, so I can change the settings (PID and so on) a lot easier. I will explain how this is setup after the break.
I will show you how I setup Naze32 Flight contorller on my mini quad, it should work pretty well on all 230mm to 250mm Mini quad with little tuning.
I like this FC so much, I listed it top FC in 250 mini quad part list. :) If you don’t know about this tiny FC, check out my Naze32 review earlier. Setting it up is not as easy as the KK2, the learning curve is quite steep for beginner. But it should not be a huge challenge since there are tons of tutorials online.
Here are some videos using this FC.
Mounting on FPV250 Frame
The Hobbyking FPV250 frame only seem to support normal size FC like the KK2, or Crius AIO, and it is not compatible with this little Naze32 board. I have heard people drilling holes on the frame, some use double sided tape. I discovered my own way of mounting this great flight controller, which involves a piece of styrene sheet (plastic), with some holes on it to put the naze32 on, and can be fitted on the frame.
Some important Naze32 parameters explained
Table of Contents
In Multiwii/Naze32, looptime is the time it complete a “control loop” in micro second: Sensor measurements, data processing and calculate outputs from PID algorithm ready for the ESCs.The lower looptime the faster it computes commands to the ESCs. In frequency term:
3500 - 286Hz 3000 - 333Hz 2500 - 400Hz 2000 - 500Hz 1600 - 600Hz
Changing looptime will have an effect on your PID values, so don’t expect everyting will just magically get better if you reduce looptime, you will still need to re-tune PID. Generally lower looptime allows higher PID gains. A low looptime should make the copter more sensitive and responsive, but more affected by vibrations.
A common value is around 2500 for most multicopters. That’s because most ESCs have a maximum update rate of 400Hz. Some ESCs even have 600Hz update rate so looptime can be set at 1600. Some argue if the looptime is faster than the max ESC update rates, there is no point to lower looptime further as it won’t have any effect on it. Some even suggest it would result in syncing issues.
As a experiment I tried 1600, 1800, 2000, 2200, and 2400 looptime on the Hobbyking Blue Series ESC. The quadcopter flew fine, but it has some strange vibrations (jitterings) that I cannot fix by changing PID. Maybe it’s the signal syncing issue that was mentioned earlier. However these ESCs works really well on 2500 looptime, no jittering at all.
I also added 30 on the looptime, to make it 2530 because if you look carefully on the GUI, the looptime actually fluctuates. This ensures it does not go over the update rate bound of the ESCs. Not sure if this would make any difference, just my personal assumptions.
This is only used in Angle/Horizon Modes, the code was originally written for 8-bit flight controllers and as such was optimized for a slower loop. Also, the lpf (low pass filter) is increased further smooth the accelerometer data. I have found on any multiwii board increasing the lpf has always helped in perfecting its flight characteristics. Increasing ACC_LPF_FACTOR would reduce ACC noise, but would increase ACC lag time. You will notice the difference even in the GUI.
“acc_lpf_factor” can be affected by vibrations from the motors/props, so you should fix your vibrations as much as possible before playing around this parameters, to get the best of it.
Some people using KISS ESCs or ZTW ESCs seemed to have de-syncing issue with default motor_pwm_rate (at 400Hz). The copter appeared to have some strange oscillations. Some suggest raising this value to 490Hz would fix the issue. These ESCs have higher signal update rate, that might be the reason.On the Hobbyking Blue Series ESCs, the default value works just fine.
There doesn’t seem to be much information about this CLI command. From the official document, “motor_pwm_rate” is the output frequency (in Hz) for motor pins. If setting above 500Hz, will switch to brushed (direct drive) motors mode. So try to increase this parameters if you have syncing issues.
Some handy info to setup and tune your mini quad with Naze 32
Some of my Initial setup commands
- looptime = 2500 (~400Hz)
- acc_lpf_factor = 100
gyro_lpf = 98 (lower is more resistant to vibration, higher allows higher frequency changes in motion, set it as high as possible)Keep it at default 42, is better.
- feature ppm (only if you use ppm receiver, 1 servo lead)
- feature vbat (only if you us a buzzer for voltage alarm)
- feature motor_stop (I don’t like motor spinning after arming, so I enable it)
- set align_board_yaw = -90 (only if board is rotated to the left for easier USB cable reach on mini h quads)
For a more detail CLI command list, check here.
TAKE YOUR PROPELLERS OFF while working with the quadcopter.
You’ve been warned.
For some reason, my radio is not working for calibrating ESCs, so I have to use the CLI tool in the baseflight GUI. So I just followed these instructions.
DISCONNECT Lipo Battery first, then type command in CLI:
Hit enter and type save.
Now disconnect USB cable to power off the flight controller. Power up FC again by plugging in the Lipo, and USB cable. After bootup go to back to CLI and type:
And enter save. I you hear a musical tone then all ESC’s are calibrated!
Check if the calibration is successfuly, go to motor testing tab, and check if each motor spins to the same input. (Remember do not mount your probs when doing the testing.)
I recommend finding a good looptime value before tuning PID!
The reason I like this FC so much, is because it performs well even with just default PID. Here is a short footage of the first flight stock PID settings. I also started a post focus on PID tuning on the Naze32.
Here is a 80% tuned PID, Yaw is still a bit weak, maybe it’s not the PID, but the weak HQ5030 not generating enough thrust.
5030 Prop (2 Blades)
So far, I found this setting gives good result, even for slightly windy condition (It feels rock solid. I can probably fine tune it a little bit more, but I am happy for now. I also found I can set PID higher with HQ5030 props, although it gvies me less thrust and punch.
Roll 4.5 // 0.045 // 50 Pitch 5.1 // 0.048 // 42 Yaw 10.0 // 0.055 // 18 TPA: 0.60 RC rate 1.0 RC expo 0.60 Roll Pitch Rate 0.4 Yaw Rate 0.65
Pitch and Roll rate control the speed of your roll. I would leave expo at 0 on the radio. That’s all my personal preference, change it according to your liking.
You can also try this range which seem to be pretty universal for many different types of mini quad between 220-250mm Mini multicopter such as RD230, Blackout mini h quad , DRQ250, QAV250, FPV250. I personally find it less stable when P is under 4, if it’s wobbly when P is more than 4, try to lower I gain first.
Roll and Pitch:
P: 3.5 - 4.5 I: 0.030 - 0.050 D: up to 50
P gain for yaw are normally around 8-10, I around 0.050, and D can be between 0 and 10.
5040 Prop (2 Blades)
The 5040 Props give me better stick control, the quadcopter just feels more responsive with the HQ5040 props than any 5030 props I have, though it’s expensive and fragile props. After a few flights I have come up with relatively good PID numbers. I think I can still up P and D a little bit (with wind lower than 10mph), but that needs to be tested out.
I started with much lower PID, but as I was tuning it, the PID numbers gradually are getting closer to the 5030 one. The main difference is the lower rate, P, and D values. It also shows great stability at high throttle therefore TPA is down 0.15.
Roll 4.0 // 0.045 // 45 Pitch 4.5 // 0.048 // 40 Yaw 10.0 // 0.055 // 15 TPA: 0.45 RC rate 1.3 RC expo 0.60 Roll Pitch Rate 0.33 Yaw Rate 0.56
Some other PID settings
- R/P rate – values closer to 1.0, the faster it will roll/flip. generally for acrobatics, 0.4 to 0.6 should be sufficient.
- Yaw rate – values closer to 1.0, the faster it will yaw. personally I have it between 0.6 to 0.8.
- TPA – Throttle PID Attenuation reduces the P term as throttle increases. Add some of this if your copter hovers fine but shakes when you go full throttle. If you are satisfied with your PIDs for normal flying but get oscillations at full climb, increase or crank up TPA starting from 0.1. this will dumb down the PIDs by 10%. This will ensure a more locked in performance over the entire throttle range.
Bluetooth – Configure FC through your tablet/Cell Phone
A very handy feature of using Multiwii is connecting your phone with the flight controller via bluetooth. It’s even better than the KK2 when it comes to tuning PID, since you can do all that on your palm, without even bending down to pick up your quad.
Simply connect the TX and RX from the bluetooth module to the RX and TX on the flight controller (the two pins in the middle of the FC), and tap the 5V and GND from the motor pins. You also need to make sure your Bluetooth module is configured properly for multiwii first.
The Android app I use is called Multiwii EZ Gui. A quick video how it works.
Switch PID Setting Profiles
PID often needs to be altered for different situation, such as no wind, high wind, small battery, larger battery, different props, and so on. Instead of memorizing all these values, and changing them every time, you can program them into “profiles”, and you can switch to the settings you want on the field. It’s also very useful when testing/tuning PID, without the need of a computer.
Here is how to switch between all three Baseflight profiles.
Make sure your board is disarmed, then:
THROTTLE low YAW left
Then the following to select profiles:
ROLL stick left -> Profile 1 PITCH stick up -> Profile 2 ROLL stick right -> Profile 3 PITCH stick down -> Gyro calibration
The green LED on the FC will indicate what profile you switched to (will blink 1, 2 or 3 times). If you have the buzzer connected to your Naze32 boards, it will also beeps 1, 2, or 3 times to tell which profile it’s on.
However, please note that not only the data of the PID Tuning page is switched, but also the data of Receiver page and Auxiliary Config page, and maybe also of the other pages (not tested yet). So make shure the data of these pages is also set according to your needs in every profile.
If you only interested in having different PID, and all other settings are the same, you can back up the profile that you used previously, and restore it to a spare profile. That way it copies all the settings and avoids mistakes.
Using Buzzer to Find your Lost Quadcopter on Naze32
A great feature that was added to the KK2, when you flash it with Stevie’s firmware: The buzzer goes off when the throttle is down for too long after it’s armed. It assumes your plane is crashed, and the alarm helps you to find it / locate it.
I love this feature because I often fly over tall grass, or behind trees. So fortunately, you can do the same thing in Naze32. It’s slightly different here, you need to flip a switch to trigger the alarm, but I think it’s better because you can control when the buzzer to go off.
In the switch panel (flight mode panel) just choose an Aux switch, and assign the beeper mode to it. When you flip this Aux switch, it will beep.
More and more people are moving over to Cleanflight from BaseFlight. I recently flashed mine and test the LED feature on it.
I have also written a guide on how to setup CleanFlight on the Naze32, you might find useful.
I will keep report back my findings and Tips of using the Naze32.