Naze32 Flight Controller

From ivc wiki
Jump to navigationJump to search

This is a flight controller (FC) for multirotors and planes. It is based on the STM32 32-bit ARM Cortex MCU. The price is also relatively low compared to other FCs.


  • BaseFlight - Chrome based app for upgrading the firmware and configuration

You might need to download the SiLabs CP210x USB to UART Bridge VCP drivers.


One of the essential parts in any flight controller is the PID setup.

In practical terms:

  • P - dictates how much force should be applied to get the desired angle - too much and the platform will oscillate or bump, too little and it will not get to an angle within a reasonable time period
  • I - sets the sampling time period to try to keep the platform at a specific angle - too much and it will not perform well, too little and it will loose the angle very easily, lean back in descent
  • D - puts on a 'break' on the P term to decrease its effect as it approaches the desired angle - too much and stick input will be 'rounded' and slow, not very crisp, too little it will bump or push back fast when the platform reaches its desired angle

I is the easiest to tune, P is tuned to right before it oscillates fast and D is added for dampening and to get the most out of P.


  • Mount the board in a case or bare to the frame using velcro/hook and loop with self-adhesive sides to get rid of high frequency vibrations.


  • RC Expo (0.0 to 1.0) - Like TX Expo on stick input vs RC output curve, can be used in addition to or in place of TX Expo (0.65 default)
  • RC Rate (0.0 to 3..) - Increases stick sensitivity linearly of requested axis roll and pitch rates, 1 is normal and increasing it makes any stick input command more gyro roll or pitch rate. Works like increasing TX throws on both channels (0.9 default)
  • Pitch and Roll Rate (0.0 to 1.0) - Attenuates the P value for pitch and roll exponentially as stick is moved away from center, making rolls and flips faster - 0 means linear/same P over the stick range, while 1.0 means no P loop corrections at full stick (totally unstable!) - a kind of super expo
  • Yaw Rate (0.0 to 1.0) Attenuates P value for yaw as stick is moved away from center, making pirouettes faster - 0 means same P over the stick range, 1.0 means no P loop corrections at full stick (totally unstable!)
  • TPA - Throttle PID Attenuation (0.0 to 1.0) - Decreases roll/pitch PID value above 50% throttle - 0 means same PID over the throttle range, 1.0 means reduction to zero, not very useful except in planes where faster, sometimes create oscillations due to increased control surface effectiveness, in a quad it will make it unstable as you punch the throttle but a slight (0.2-0.4) TPA could eliminate punch-out oscillations (0.0 default)
  • Looptime (750 to 3500) - Sets the sensor sampling time in micro seconds (uS) and dictates the update rate of the PID loop. A low looptime should make the multirotor more sensitive and responsive, but more affected by vibrations. There is a limit, once you go over the limit it will have negative effect. (3500 default) - in BaseFlight use set looptime = 3500 to change the value.


The following PIDs are for a QAV250 mini-h quadcopter with 2000kV motors, 5x3-inch nylon propellers and 12A 400 Hz speed controllers.

  • QAV250 - smooth and relatively crisp:
    • Roll: P 3.4 I 0.020 D 25
    • Pitch: P 4.1 I 0.040 D 35
    • Yaw: P 9.0 I 0.040 D 7
    • Roll & Pitch rate: 0.65
    • Yaw rate: 0.80
    • TPA: 0.25
    • RC Rate: 0.90
    • RC Expo: 0.40
    • Throttle Mid: 0.50
    • Throttle Expo: 0
    • Looptime: 2500