My ZMR250 just entered into its second revision after receiving overcraft’s PDB board and I wanted to share this build with everyone. The build turned out very clean and well laid out thanks to overcrafts PDB. The goal was to minimize the amount of wires in the middle of the quad and to keep it as clean as possible.
I have some nice build pics and a link to a very good build series lower down and uploaded the maiden flight to my YouTube channel.
I’ll be linking to vendors that you can buy the items I used in my build so you can buy them if you like for your own build.
Quad Build Specs:
Quad Frame: RCX H250CF-3K FPV Quadcopter (3K Carbon Fiber / Barebone Frame) or Complete Kit
Flight Controller: Flip32 +
Motors: RCX H1806-6 2400KV motors Req (M2X6 Cap Screws)
ESC’s: RCX 12A Sky (SimonK) Brushless ESC
Props: RCX01-204 5×3 and 5X4.5
Batteries: Zippy Compact 3s 1500mah 25c Turnigy Nano-Tech 1500mah 35C-70C
FPV Set up:
FPV Camera: 600TVL Sony PZ0420 SUPER HAD CCD Color Board Camera w 2.1mm Lens
Video Recording: Mobius action camera.
Video TX: Boscam TS5823 200mw 5.8ghz 32 channels
Video RX: Skyzone FPV Goggles 5.8GHz Dual Diversity 32CH Receiver With Head-Tracker
Antennas: Circular Polarized Antennas
I’ve been reading a lot about Cleanflight lately and after trying it out really like it.
Some of my Initial setup commands and settings.
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 looptime = 2500 (~400Hz)
set feature ppm (only if you use ppm receiver, 1 servo lead)
set align_board_yaw = 90 (only if board is rotated to the right for easier USB cable reach on mini quads)
set telemetry_inversion = 1
set frsky_vfas_precision = 1
set yaw_deadband = 6
set emf_avoidance = 1 (increases processor speed)
set acc_hardware=1 (disables your Accelerometer sensor use if you fly Acro only disables horizon/angle modes)
set auto_disarm_delay = 10
set pid_controller = 1 (works well if you only fly in rate)
Don’t forget to SAVE or your changes will be lost!!!!
My CLEANFLIGHT Setup 1.10.0 + PID Controller = 1
That’s all my personal preference, change it according to your liking.
For a more detail CLI command list, check here.
TAKE YOUR PROPELLERS OFF while working with the quadcopter.
You’ve been warned!!!
Open baseflight and select the motor testing tab then select the box next to the master slider to allow motor control.
Raise the slider to the top before plugging in your lipo. Plug in your lipo and wait for the calibration tones once you hear these lower the master slider all the way. You should hear the calibration finished tones.
Check if the calibration is successfulyby checking if each motor spins to the same input. (Remember do not mount your props when doing the testing.)
Connect your FrSky receiver (like the d4r-II) to your naze. Connect the External analog telemetry Rx port of your FrSky receiver to RC input pin 6 on the bottom of the Naze32 (See figure 2 in the manual)
Go to the CLI tab and type the follow codes:
1 Enable the softserial port since we will be using softserial port instead of the real UART port
set serial_port_1_scenario = 1
set serial_port_3_scenario = 4
2 Enable Telemetry
3 Set the baudrate of the softserial to 9600 to communicate correclty with the FrSky receiver
4 Set the softserial port 1 to inverted, since that is the way the FrSky protocol works.
set telemetry_inversion = 1
5 set the port on which you would like to put the telemetry data out (we use “1”, since that is telemetry output over the soft serial rc input pin 6)
6 set the protocol for the telemetry output (we use “0” to select the FrSky protocol)
7 Save everything, it should be working now!
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.
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: 2.8 – 3.5
I: 0.030 – 0.050
D: up to 40
Yaw: 8 – 10
P gain for yaw are normally around 8-10, I around 0.040, and D can be between 0 and 10.
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 Android phone with the flight controller via bluetooth. It’s even better than the KK2 when it comes to PID tuning , 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, 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.
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:
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. So make sure 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 Flip32
A great feature that was added to the KK2, when you flashed 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 Flip32. 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 goes 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.
Some handy info to setup and tune your mini quad with Flip32
In Multiwii/Baseflight, looptime is the time it takes to complete a “control loop” in micro seconds: Sensor measurements, data processing and calculate outputs from PID algorithm ready for the ESCs.The lower the 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 everything 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 and harder to fly.
A common value is around 2500 for most mini 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 RCX 12A Sky (SimonK) Brushless ESC. The quadcopter flew fine, but it has some strange vibrations (jitterings) that I could not fix by changing PID values. 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.
Hardware lowpass filter for gyro. Allowed values depend on the driver – For example MPU6050 allows 5,10,20,42,98,188,256Hz, while MPU3050 doesn’t allow 5Hz. If you have to set gyro lpf below 42Hz generally means the frame is vibrating too much, and that should be fixed first. Values outside of supported range will usually be ignored by drivers, and will configure lpf to default value of 42Hz.