/openuav

An open source unmanned aerial vehicle

Primary LanguageCMIT LicenseMIT

OpenUAV

OpenUAV is an open source flight controller for multirotors with a focus on FPV. It is currently in active development.

Features

  • ACRO and ANGLE flight modes
  • DSHOT
  • ELRS
  • Blackbox flight recorder
  • USB configuration tool
  • Canvas OSD

Roadmap

  • Tidy up and comment all current code
  • USB configuration tool
  • More OSD options

Dependencies

ArchLinux-based distributions

sudo pacman -Sy arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib \
                dfu-util \
                stlink

Configurator

The USB configurator can be used to configure the quad, and also to download blackbox logs.

Configuration

You can view the current configuration by running configurator get.

The commands to set configuration are a little cryptic. Use command configurator set x y z, where x is the categry number, y is the specific entry number, and z is the value to set. Please refer to the following file for the category and entry numbers: https://github.com/catphish/openuav/blob/master/configurator/usb.h

Motor configuration

The motor configuration is also not very intuitive, but works as follows. First select "props in" configurator set 3 5 0 or "props out" configurator set 3 5 1.

Next, map the motor outputs using the command: configurator set 3 x y, where x is the motor output pin (1-4), and y is a corner of the quad according to the following table:

0: no output
1: rear left
2: front right
3: front left
4: rear right
  • NOTE: Due to the way air mode currently works, motors set to zero outout will still spin at minimum RPM. This needs fixing.

Black Box

Data will be recorded to the black box any time the quad is armed and will continue until the memory is full (approx 10 minutes flight time). You can erase the black box with configurator erase.

You can download the blackbox data with configurator read > data.csv. The CSV can be processed with any tool of your choosing but I find kst2 to be the best.

Basic Tuning Guide

Tuning should be done in acro mode at a rate you are comfortable with. I use a rate of 1200 (840 dps) for this process.

Part 1 - P term

Set the I and D terms to zero so that they don't interfere. Start with a low value (P=50). Increase P until the quad is sufficiently responsive to stick inputs. You can expect a little bounceback. In the 5 inch development quad, the P value is 120.

Part 2 - D term

Increase the D term only as much as is required to prevent the bounceback. In the 5 inch development quad, the D value is 150.

Part 3 - I term

Increase the I term only as much as is required to prevent drift. You may find that this needs to be increased more when flying in strong wind. Higher values will make the quad more stable but will introduce some bouncenback when performing flips. In the 5 inch development quad, the I value is 50.

Part 4 - Z rates

There is currently no specific process for tuning the Z rates. Values of 200 and 200 for P and I seem to work in most cases. If there is yaw drift then it may be necessary to increase one or the other. Increase the I term in the case of slow drift or the P term in the case of sudden yaw disruption.

Tuning Examples

TBS Source One V5 5" - 2306/2555KV Motors at 4S

Angle rate: 1000
Acro rate: 1000
P: 100
I: 80
D: 100
Yaw P: 200
Yaw I: 100
Expo: 60
Yaw expo: 60
Throttle gain: 80
Throttle min: 200

iFlight iX3 Racer V1 3" - 1104/5250KV Motors at 3S

THIS TUNE IS STILL UNDERGOING TESTING

Angle rate (sR): 670
Acro rate (sr): 670
P (sp): x
I (si): x
D (sd): x
Yaw P (sy): 220
Yaw I (sY): 200
Expo (se): 25
Yaw expo (sE): 30
Throttle gain (st): 80
Throttle min (sT): 100