Multiwii

  MultiWii is NOT a product, NOR a plug and play solution.

  Don’t expect to buy a compatible board and run it without a minimum knowledge.

   

介紹

http://www.multiwii.com/

不錯的中文網站

http://oaione.blogspot.tw/2014/02/muliwii-i.ht

http://www.rctw.net/forum.php

http://velen966.pixnet.net/blog

http://www.terca.org.tw/

http://ark-lab.blogspot.tw/

韌體設定(config.h):

  1. 決定飛行狀態(The type of multicopter):根據你的板子上面的箭頭是指著馬達還是兩顆馬達中央,來決定十字飛行(QUADP)還是X字飛行(QUADX)。(我是指著馬達,所以決定為十字飛行)
    1. 把這一行 取消註解#define QUADP
  2. 設定馬達最低油門(Motor minthrottle):我的電變是SkyWalker 20A
    1. 把這行#define MINTHROTTLE 1150 取消註解,後面數字可以更改

設定電變最低指令,就是ESC 沒有反應的數值(Mincommand)

  1. 設定I2C 速度(I2C speed)
    1. 我打算使用高速的I2C 經度感覺比較高
    2. 把這一行:#define I2C_SPEED 100000L 註解
    3. 把這一行://#define I2C_SPEED 400000L 取消註解
  2. 設定板子(boards and sensor definitions)
    1. 我的板子是採用CRIUS_LITE 的相容版,所以把他的那一行註解取消

韌體設定2(MultiWii.h):

由於我的遙控器(DEVO7)和接收器(DEVO RX1002)買回來後就直接插上去,但是久久都沒辦法解除鎖定

  1. 改變#define MINCHECK 後面的數字
    1. 由於遙控器最低訊號輸出會低於:1110,所以數字更改為1110
  2. 改變#define MAXCHECK 後面的數字
    1. 由於遙控無法超過預設值:1900,所以數字更改為1810
  3. 結論:MINCHECK > 遙控器的最低值, MAXCHECK  <遙控器的最高值一點點
  4. 在燒錄前,首先把Arduino 內建的EPPROM 清除
  5. 開啟Arduino→File→Examples→EPPROM→epprom_clear
  6. 修改for 迴圈的:i < 512,修改為 1024,因為ATMEGA328P 是1Kbytes(1024 Bytes)
  7. 最後再把MultiWii.ino 燒錄進去即可。

Multiwii 調整別篇:

1. Servo PWM Glitch

2.I2C speed

3.Servo refresh rate

4.ACC LPF  (Especially for MPU6050)

幾種不同多軸機架的比較 :

+4 跟 X4 比, +4的 Pitch or Roll 都只需動對向的兩顆, 在 飛控板 Timer/PWM 控制上有更簡單的優勢, 翻起特技又猛又簡潔... 只是後來的 FPV 或空拍機種上, 因為前面擋著一根軸, 所以比較不採用了!

Y4 跟 Y3 一樣, 前進運動時後面的槳不會吃到前面槳風尾流擾動 .... Y3 比 Y4 的 Yaw 靈敏, Y4尾側面機積大, 比Y3, X4 不耐側風.. 而V尾4 更抗側風, 航道飛行很有優勢.

Porting 到 STM32 MCU 的 MultiWii 變種分支

https://github.com/multiwii/baseflight

https://code.google.com/p/afrodevices/downloads/list

國外玩家根據MultiWii重寫的一套新韌體,據說運算效能更佳(未測試)

https://github.com/bradquick/bradwii/tree/master/

硬體

以這個配置為主介紹:

控制板:MWC MultiWii Lite

遙控器:DEVO7 (會有較長距離的打算時, 最好第一次就使用RC 主流 Futaba FASST 系統)

遙控器接收器:DEVO RX1002

航空夾板 - 比一般建材合板 or 密集板, 細致輕量及有縱橫支撐向, 缺點是木料有含水 & 密度均一的顧慮,  好處是 吸震,  優質機架結構材, 容易加工黏著, 沒有2.4G 電波屏壁問題.

(露天有個賣家, 航空 & Balsa合板都有賣, 參考看看)

http://goods.ruten.com.tw/item/show?21312300829696)

馬爸給的結構件的故事

MultiWii main version history 

V2.3  

***Control mode***

- main PITCH/ROLL/YAW PID modification (r1474)

  - the sticks scaling is no more affected by PID coefficients

  - yaw rate (to the right of the PIDs in GUI) now works as stick scaling

  - default yaw rate is increased (with yaw rate at 0)

  - yaw PID principle is now different from PITCH&ROLL PID:

    - yaw ITerm windup is very high, allowing an ’elastic’ direction return after a manual perturbation

    - yaw ITerm is also constrained with a windup independent limit

    - yaw PTerm is constrained in order to counter the yaw jump effect.

      use yaw DTerm to increase this constrain (r1573)

    - yaw ITerm is canceled if the yaw stick is not centered

- Throttle angle correction (r1374)

- Advanced Headfree mode added (see config.h for instructions) (r1374)

- DYNBALANCE option, individual motor can be controled via GUI, to test individual vibration

- better gyro & acc calibration accuracy (r1546)

- cannot arm is baro mode is on (r1550)

- only one baro mode : vario around a throttle deadband (r1554)

- magHold is reset when arm is switched on 

- ONLYARMWHENFLAT option (r1587)

***receiver & UART***

- RCSERIAL is now deeply integrated. If a MSP_SET_RAW_RC comes, 

  it will just override legacy RX data. (r1420)

  as a consequence, RCSERIAL is no more an option

- no RC averaging for Spektrum & SBUS (r1545)

- SBUS center define (r1568)

- FAILSAFE_DETECT_TRESHOLD configurable

***GPS***

- Enables sonar altitude from i2c-gps-nav board (1424)

- navigation code will follow after 2.3

***GUI***

- Gui with Servosettings. (r1441 & r1450)

  All models with servo included.

- GUI globalsettings (for some settings previously only in config.h)

- do not display /dev/cu.* devices but only corresponding /dev/tty.* (r1442)

- GUI baudrate as configurable setting

***IMU and baro***

- correct GYRO_SCALE for all gyro (r1428)

- no more small angles while shaking the board (r1579)

  http://www.multiwii.com/forum/viewtopic.php?f=8&t=4112

- baro Alt based on ground temp compensation (r1570)

- not  reset for FIXEDWING (r1590)

 

*** SERVO management ***

- add a generic way to configure servo settings : conf struct + MSP read/set messages (r1383)

- Added general servo handler (r1421 & r1429)

- allow preset of some servo stuff from config.h (r1432)

- Gui with Servosettings. (r1441)

  We can get 180 degrees servo move without servo modification.

***internal improvements***

- migration to a cpp/h code structure 

- huge flash size optimization (around 1k)

- read at most one analog channel per MWii main loop cycle (r1375)

- smoothing of RX_RSSI (r1379)

- make faster analog reads an option with default off to increase accuracy (r1375)

- detangle vbat & buzzer dependancy (r1375)

- optimization : small approximation bit shift used instead of * or / number

  for TPA, rates, dynP, dynD and expo curb (r1376)

- Added checking for flash content change, and reload config parameters in this case. (r1389)

- split Serial into Serial(core UART management) & Protocol (r1548)

- loop is globally faster

***add-ons***

- no more than one MSP per port and per cycle

  should smooth the delay while requesting MSP, especially for USB port on micro

V2.1

***Control mode***

- introduction of HORIZON MODE.

We have now 3 modes:

ACRO mode.

  This is the default one when none of the ANGLE & HORIZON BOX is activated.

  The copter will continue rotating in the direction in which you tilt sticks.

  When you let go of sticks it will maintain that angle and not return to level

ANGLE mode

  The position of the stick indicates the angle at which the copter tries to maintain. Sticks off = level.

  Full sticks in any direction and it will tilt at around 50 degrees. It’s proportional in-between.

  It maintains the angle set by the stick. Let go of sticks and it returns to level

HORIZON mode <- new

  It’s a proportional mix of the two. Sticks off = level. Full deflection = ACRO.

  In between it gradually mixes from LEVEL mode to ACRO.

  It’s a fine mix to be able to do some ACRO with the safety of ANGLE mode when you release the sticks.

  It allows also a more natural way of flying as the multi seems less constrained.

- failsafe code is more strict. 

  If activated, it takes into account all the main channels and it’s important to stay strictly inside the [1000-2000] range.

  For instance a throttle of 995 will activate the failsafe

  failsafe is optional and can be activated via #define FAILSAFE

- Acrotrainer mode introduced

  a kind of non proportional horizon mode

  more info here: http://www.multiwii.com/forum/viewtopic.php?f=16&t=1944

***add-ons***

- pilotlamp integration 

  via #define PILOTLAMP

- LEDRING pattern was refined

- variometer introduced 

  enable to get audio feedback upon rising/falling copter/plane

  via #define VARIOMETER

***GPS***

- UBLOX GPS: the baud configuration is autodetected and the UBLOX binary protocol is automaticly set 

- MKT GPS can now be parsed in binary mode is possible thanks to EOSBandi

  made for DIYDrones MTK firmware v1.6 and v1.9

- I2C GPS:

  correct directionToHome (change it to the opposite direction)

  there is still a problem remaining when your distance to home reaches 654m: it overflows.

  a I2C code evolution is needed to correct this problem

- a forward predictive filter was ported from the Arducopter code by EOSBandi

  optional and by default activated: #define GPS_LEAD_FILTER

- first implementation of MSP_SET_WP

  with the help of Ezio app (EZ-GUI), we can now control the multi with a smartphone:

    set a new position on a map / follow me / follow heading

  see Multiwii EZ-GUI specific topic: http://www.multiwii.com/forum/viewtopic.php?f=8&t=2034

  some video about this functionality:

*Multiwii main verion history 

V2.3  

***Control mode***

- main PITCH/ROLL/YAW PID modification (r1474)

  - the sticks scaling is no more affected by PID coefficients

  - yaw rate (to the right of the PIDs in GUI) now works as stick scaling

  - default yaw rate is increased (with yaw rate at 0)

  - yaw PID principle is now different from PITCH&ROLL PID:

    - yaw ITerm windup is very high, allowing an ’elastic’ direction return after a manual perturbation

    - yaw ITerm is also constrained with a windup independent limit

    - yaw PTerm is constrained in order to counter the yaw jump effect.

      use yaw DTerm to increase this constrain (r1573)

    - yaw ITerm is canceled if the yaw stick is not centered

- Throttle angle correction (r1374)

- Advanced Headfree mode added (see config.h for instructions) (r1374)

- DYNBALANCE option, individual motor can be controled via GUI, to test individual vibration

- better gyro & acc calibration accuracy (r1546)

- cannot arm is baro mode is on (r1550)

- only one baro mode : vario around a throttle deadband (r1554)

- magHold is reset when arm is switched on 

- ONLYARMWHENFLAT option (r1587)

***receiver & UART***

- RCSERIAL is now deeply integrated. If a MSP_SET_RAW_RC comes, 

  it will just override legacy RX data. (r1420)

  as a consequence, RCSERIAL is no more an option

- no RC averaging for Spektrum & SBUS (r1545)

- SBUS center define (r1568)

- FAILSAFE_DETECT_TRESHOLD configurable

***GPS***

- Enables sonar altitude from i2c-gps-nav board (1424)

- navigation code will follow after 2.3

***GUI***

- Gui with Servosettings. (r1441 & r1450)

  All models with servo included.

- GUI globalsettings (for some settings previously only in config.h)

- do not display /dev/cu.* devices but only corresponding /dev/tty.* (r1442)

- GUI baudrate as configurable setting

***IMU and baro***

- correct GYRO_SCALE for all gyro (r1428)

- no more small angles while shaking the board (r1579)

  http://www.multiwii.com/forum/viewtopic.php?f=8&t=4112

- baro Alt based on ground temp compensation (r1570)

- not  reset for FIXEDWING (r1590)

 

*** SERVO management ***

- add a generic way to configure servo settings : conf struct + MSP read/set messages (r1383)

- Added general servo handler (r1421 & r1429)

- allow preset of some servo stuff from config.h (r1432)

- Gui with Servosettings. (r1441)

  We can get 180 degrees servo move without servo modification.

***internal improvements***

- migration to a cpp/h code structure 

- huge flash size optimization (around 1k)

- read at most one analog channel per MWii main loop cycle (r1375)

- smoothing of RX_RSSI (r1379)

- make faster analog reads an option with default off to increase accuracy (r1375)

- detangle vbat & buzzer dependancy (r1375)

- optimization : small approximation bit shift used instead of * or / number

  for TPA, rates, dynP, dynD and expo curb (r1376)

- Added checking for flash content change, and reload config parameters in this case. (r1389)

- split Serial into Serial(core UART management) & Protocol (r1548)

- loop is globally faster

***add-ons***

- no more than one MSP per port and per cycle

  should smooth the delay while requesting MSP, especially for USB port on micro

V2.1

***Control mode***

- introduction of HORIZON MODE.

We have now 3 modes:

ACRO mode.

  This is the default one when none of the ANGLE & HORIZON BOX is activated.

  The copter will continue rotating in the direction in which you tilt sticks.

  When you let go of sticks it will maintain that angle and not return to level

ANGLE mode

  The position of the stick indicates the angle at which the copter tries to maintain. Sticks off = level.

  Full sticks in any direction and it will tilt at around 50 degrees. It’s proportional in-between.

  It maintains the angle set by the stick. Let go of sticks and it returns to level

HORIZON mode <- new

  It’s a proportional mix of the two. Sticks off = level. Full deflection = ACRO.

  In between it gradually mixes from LEVEL mode to ACRO.

  It’s a fine mix to be able to do some ACRO with the safety of ANGLE mode when you release the sticks.

  It allows also a more natural way of flying as the multi seems less constrained.

- failsafe code is more strict. 

  If activated, it takes into account all the main channels and it’s important to stay strictly inside the [1000-2000] range.

  For instance a throttle of 995 will activate the failsafe

  failsafe is optional and can be activated via #define FAILSAFE

- Acrotrainer mode introduced

  a kind of non proportional horizon mode

  more info here: http://www.multiwii.com/forum/viewtopic.php?f=16&t=1944

***add-ons***

- pilotlamp integration 

  via #define PILOTLAMP

- LEDRING pattern was refined

- variometer introduced 

  enable to get audio feedback upon rising/falling copter/plane

  via #define VARIOMETER

***GPS***

- UBLOX GPS: the baud configuration is autodetected and the UBLOX binary protocol is automaticly set 

- MKT GPS can now be parsed in binary mode is possible thanks to EOSBandi

  made for DIYDrones MTK firmware v1.6 and v1.9

- I2C GPS:

  correct directionToHome (change it to the opposite direction)

  there is still a problem remaining when your distance to home reaches 654m: it overflows.

  a I2C code evolution is needed to correct this problem

- a forward predictive filter was ported from the Arducopter code by EOSBandi

  optional and by default activated: #define GPS_LEAD_FILTER

- first implementation of MSP_SET_WP

  with the help of Ezio app (EZ-GUI), we can now control the multi with a smartphone:

    set a new position on a map / follow me / follow heading

  see Multiwii EZ-GUI specific topic: http://www.multiwii.com/forum/viewtopic.php?f=8&t=2034

  some video about this functionality:

*

  http://www.youtube.com/watch?v=qpoPanmVa9Y

*

  http://www.youtube.com/watch?v=hPj6WZex8j0

*

  http://www.youtube.com/watch?v=nPICiiaDTnc

***multiwii models***

- USE_THROTTLESERVO (for airplanes), COLLECTIVE_RANGE changed (second value not offset anymore)

***IMU and baro***

- gyro calibration could be held until the MWC stops moving

  introduced by MIS, and made optional after via a specific define:?define GYROCALIBRATIONFAILSAFE

- mag gain calibration is improved thanks to EOSBandi

  based on Fabio FreeIMU code. We won’t forget you Fabio...

- perfect euler angle computation in case of 9DOF (better heading)

  no more gimbal lock in GUI representation with a 9DOF sensor

- force sensors orientation to override board specific defaults

  optional in config.h

- default ACC LPF factor reduced from 16 (2^4), and is share with ACC LPF for alt hold

- gyro/acc complementary filter value increased from 400 to 600

- gyro/mag complementary filter now set to 250 instead of 200

- gyro scale factor changed from 2380 to 2279

- accelerometer now used below 1.15G and above 0.85G instead of previous 1.4G/0.6G settings

- option: SENSORS_TILT_45DEG_LEFT/RIGHT to change X/P configuration without changing board orientation

- baro calibration and calculation is improved 

  baro indicates now altitude 0 when it is powered. This is the reference altitude.

- calculation of barometric altitude changed to include temperature, faster update rate

***internal improvements***

- some default PID were changed for optimization speed in PID copmputation.

  The default PID should behave exactly as the previous ones.

  To restore your old PID settings, just a proportion is needed.

- EEPROM settings secured by checksum (thanks to MIS)

- optional permanent logging to eeprom

  setting: LOG_PERMANENT

- change LED blink frequency for acc-uncalibrated or tilt>25 from 50ms to 10ms

- allow override of motor/servo mixing from config.h - no need to edit Output.ino

  experimental

- faster cycle time than with v2.1

- many many hidden optimizations in the code

V2.0 (全面用新架構 .ino 拿掉 .pde)

  WMP and NUNCHUCK are no longer auto recognized.

  You must explicitly declare them (or just WMP) in config.h

  Pullups are now undefined by default

 

  LCD is not activated by default

  Failsafe is not activated by default

  VBAT monitoring is not activted by default

Multiwii Serial Protocol

  It’s a new protocol to communicate with the FC

  Compatible GUI:

   open source code, compatible with the new serial protocol:

    WinGUI from EOSBandi, which is fully equivalent with the original one,

     with a better look

      more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1229

    mwGui from kos

      more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1791

    Android ones via serial bluetooth:

     - adding a bluetooth module to multiwii

       more info here: http://www.multiwii.com/forum/viewtopic.php?f=6&t=133

     compatible apps:

      https://play.google.com/store/apps/details?id=net.xrotor.andmultiwiiconf

      https://play.google.com/store/apps/details?id=net.loide.games.bicopter

      https://play.google.com/store/apps/details?id=com.naze32.configurator

  Compatible OSD:

    open source code, compatible with the new serial protocol

    Rushduino:

      more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=922

    mobiDrone:

      more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1498

LCD config

  OLED display

    thanks to contributions of howardhb and Hamburger

    more info here: http://www.multiwii.com/forum/viewtopic.php?f=7&t=1350

  VT100 terminal type addition

    thanks to contribution of Hamburger

    more info here: http://www.multiwii.com/forum/viewtopic.php?f=7&t=1096

  A multiline option is added to allow the configuration on more than 2 lines

    useful for displays like OLED or VT100

  We have now a lot of possibilities regarding LCD:

    SERIAL3W : original 2x16 line from Sparkfun

    TEXTSTAR : Cat’s Whisker LCD_TEXTSTAR Module CW-LCD-02

    VT100 : vt100 compatible terminal

    ETPP : Eagle Tree Power Panel LCD

    LCD03 : an i2c LCD

    OLED_I2C_128x64

New proc: ATmega32U4

Servo:

  Higher refresh rate:

    Some servo (mostly digital ones) can work with a higher frequency than 50Hz.

    The benefit to use a higher refresh rate is a sharper response.

     Hardware PWM output:

    On MEGA boards, it’s now possible to drive the gimbal servos with

    a 11-bit PWM servo resolution. Thanks to ronco.

    The hardware PWM output ensures a jitter free response.

LED flasher

  A way to set a flash LED sequence from Tommie

  more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1505

Throttle expo

  There is now another curve in the GUI to configure the Throttle expo.

  It’s a way to smooth the throttle stick response around the hover point.

  In order to help the setting, there is a small cursor in the graph to show

  where is the current throttle input.

ACC LEVEL improvement

  The LEVE mode is improved since 2.0 thanks to new choice of

  other complementary filter coefficients and a floating point low pass filter

Headfree checkbox:

  It’s possible to reset the headfree direction while flying via a checkbox.

  thanks to Tommie

Internal code:

  - the Serial part uses now less RAM (thanks to Tommie first mod)

    RX/TX buffers are smaller than before.

  - EEPROM parameters are stored in a struct, and are written in the

    EEPROM in a single step.

  - MAG declination was added by EOSBandi, to have more accurate orientation.

    In some countries, it’s really mandatory to set this variable right,

     otherwise it’s impossible to use GPS.

  - Flag var was introduced for global boolean type variables.

  - Hamburger introduced some "copter exemple" in order to check

    if compilation is ok. (should be a way to remove some trivial bugs)

  - code style (indentation, variable naming convention etc.) started

  - GUI requires new ControlP5 library to compile

  - interval variable activate[] is now 16 bit long

  - new config.h structure

GUI:

  - thanks to Danal, there is now the PIN number and the propeller direction

  drawed in the graph representation

  - thanks to kos, we can now load and save parameters into a file

  - there is now a reset button to set all parameters to default

  - there is now a GUI visual feedback on all states (checkbox items)

ESC calibration

  experimental

  It’s a special #define which allows to calibrate all ESCs with exaclty

   the same signal.

  more info here: http://www.multiwii.com/forum/viewtopic.php?f=13&t=1517

Telemetry

  new telemetry manual stepping mode

Arming option

  configurable TX stick combos for arm/disarm

  this way, it’s possible to arm/disarm the multi via:

    - one AUX switch like before

    - YAW stick and/or ROLL stick

AIRPLANE mode

  experimental

HELICOPTER mode

  experimental

Dual & Single copter

  experimental

VTAIL mode

  motor rotation has changed:

  Front Left & Rear Right: CCW, Front Right & Rear Left: CW , YAW_DIRECTION=1

V1.9 (進入穩定 1.0 IDE 環境)

A new processor

  Coded by ronco based on ATMega 32U4, which can be seen

  as an intermediate proc between 328 and 2560

STM32 porting

  A nice initiative from dongs to port multiwii to a 32bit processor.

  This code allows also to reuse some cheap FC boards and replace the

  firmware by a multiwii one. 

  http://www.multiwii.com/forum/viewtopic.php?f=8&t=1193

  http://code.google.com/p/afrodevices/

Stable mode

  The term D of the PID LEVEL settings is now used to limit the effect

  of the level correction thanks to the suggestion of Shikra

   (see http://www.multiwii.com/forum/viewtopic.php?f=7&t=905 ).

  By default (D=100), the behaviour of the stable mode is unchanged.

  With a lower D, effects are:

   - a smoothing level change

   - should prevent some wobbles of death

HeadFree mode

  Something similar to MK Carefree mode was added.

  Firstly introduced by mahowik as a imple mode?

  http://www.multiwii.com/forum/viewtopic.php?f=7&t=925

  A specific check box was added in the GUI to activate this mode via a switch.

  You need to have a magnetometer and accelerometer on the board

  Principle: The head/front will be remembered when you turn on the engines.

    So it means that you can   turn on/off the mode during the flight.

Pass-through mode

  It a checkbox in the GUI.

  The purpose is to bypass the IMU for some configs like flying wings.

Beeper mode

  It a checkbox in the GUI.

  The purpose is to activate a beeper in case you have a buzzer

  installed and you lost your multi in high grass for instance.

New stick combo

  for magneto calibration (throttle=up yaw=right pitch=down)

Better magnetometer calibration

  The calibration of the magnetometer is now more precise,

  because it takes into account the relative strength of the magnitude

  projection on each axis.

  Based on a code suggested by EOSBandi:

  http://www.multiwii.com/forum/viewtopic.php?f=8&t=1068

  It should improve the GPS return to target point accuracy.

Gyro smoothing

  There are 2 options to smooth the gyros: (mainly useful for fixed wings configs)

   - per axis based on a LPF: #define GYRO_SMOOTHING {20, 20, 3}

     // separate averaging ranges for roll, pitch, yaw

   - for all axis, based on a moving average (from Magnetron)

     #define MMGYRO

     #define MMGYROVECTORLENGHT 10 

  Servo gimbal smoothing is also an option based on the same principle:

     #define MMSERVOGIMBAL

     #define MMSERVOGIMBALVECTORLENGHT 32

Inflight ACC-calibration:

  It a way to calibrate the level via on flight tests.

  Must be defined in config.h

Coding specific improvements:

  Less RAM memory usage via the use of PROGMEM statement

  No more Arduino Serial function => the new serial communication is more efficient

V1.8    

    - some factorizations between PPM sum receiver code & standard receiver code

    - EXPERIMENTAL: integration of direct SBUS receiver thanks to the contribution of Captain IxI & Zaggo

      - LEVEL drift problem:

      the root of this problem was identified (at least partly).

      Several options to try to solve it:

      - adding a #define TRUSTED_ACCZ for those who have huge ACC Z variations when some throttle is applied

        (it’s a test you should do before tructing ACCZ)

    //#define TRUSTED_ACCZ  -> ACCZ is not taken into account in calculation for small angles

    #define TRUSTED_ACCZ    -> ACCZ is taken into account in calculation for small angles

      - BMA180 init changes to another mode: should help to filter noisy setups

      - adding a #define STAB_OLD_17 for those who still encounter problem with the stable code,

        as the old 1.7 LEVEL code (less elaborated) doesn’t seem to cause drift.

     - some flying wing code upgrade (thanks to the suggestion of Hamburger)

     - ACC added: LSM303DLx_ACC

MAIN SOFT: introduction of a deadband around the stick center

     via a #define DEADBAND. (commented by default)

     it might help to get some accuracy from RC TX with not accurate potentiometers

     however, as it introduces a central deadband, the TX trims are not efficient as before.

MAIN SOFT: new altitude hold

     there is now a working implementation :)

     thanks to ziss_dm, the estimation of the altitude is more precise.

     the Z ACC is integrated in the alt hold estimation and helps a lot to estimate short term variation

     how-to:

        the multi must be nearly altitude stable before the activation of altitude hold.

        a dead band is then created around the throttle value.

     at every moment, it’s possible to still control the trhottle power when the throttle goes out of the deadband

     this is not the best implemetation as the multi needs to be quite static before the activation, but it’s a good start.

     

     There are 2 PIDS which are separated ans which can be used separatly.

    ALT PID: better results are obtained with a P only term (P=4.7 I=0 D=0 is the default value)

    VEL PID: it stands for velocity PID, more info here: (P=I=D=0 is the default value)

            it should help to smooth every altitude varation

            http://www.multiwii.com/forum/viewtopic.php?f=7&t=363

GUI: altitude representation

     there is an autoscale feature in the GUI to see better the altitude variation.

     

GUI: introduction of MAG 3 axis raw values

MAIN SOFT:  the failsafe function of the PPM sum receiver was a little mofified and can handle better

      unusual signal patterns with short pulses.

V1.7 

ALL: BARO is more precise, but still not perfect (1m to 2m amplitude). 

     Note it’s a code issue, not a baro component issue.

ALL: RC channels AUX2, CAM1 CAM2 added. only relevant for PPM SUM stream or MEGA boards.

     On the 328p with a standard receiver, only the first 5 channels are recognized.

     CAM1 and CAM2 controls are not yet implemented.

ALL: AUX1 and AUX2 switches are fully customizable via a 3 state position.

    We can activate/deactivate individually  level mode (ACC), baro or compass (mag).

    It’s a generic approach which lets other possibilities to control things in the future.

    With this principle, it’s possible to activate permanently the options you want even if you have only 4 channels 

    (replace the FORCE LEVEL option)

ALL: CAM triger option:

    a servo can be connected on digital pin A2 (pro mini) to activate the trigger of a camera

    the option can be activated or deactivated via the button configuration panel AUX1/AUX2

    #define CAM_SERVO_HIGH 2000  // the position of HIGH state servo

    #define CAM_SERVO_LOW 1020   // the position of LOW state servo

    #define CAM_TIME_HIGH 1000   // the duration of HIGH state servo expressed in ms

    #define CAM_TIME_LOW 1000    // the duration of LOW state servo expressed in ms

    the PIN on arduino mega is also A2, but this is not the final PIN mapping

ALL CAM stab (servo tilt) button option:

    the servo tilt option can be activated or deactivated via the button configuration panel AUX1/AUX2

ALL: BI COPTER is now a avatar style implementation.

    on a pro mini: 9 motor left, 10 motor right, 11 servo left, 3 servo right

    on mega: 3 motor left, 5 motor right, 6 servo left, 2 servo right

ALL: addition of Y4 (not tested)

    on a pro mini: motors 9,10,11,3

    on mega: motors 3,5,6,2

    REAR1 , FRONT R , REAR2 , FRONT L

ALL: addition of HEX6X (not tested)

    on a pro mini: motors 9,10,11,3,6,5

    on mega: motors 3,5,6,2,7,8

    REAR_R , FRONT_R , REAR_L , FRONT_L , RIGHT , LEFT

ALL: new level mode

    The level mode is completely redesigned with a coherent independent trim

    There a now a PI control loop for level mode based on angle estimation.

    The old auto level strength value was a sort of P only control loop.

    With the new code, the I term allows to refine the remaining angular error for a better angle positioning accuracy.

    With an RC rate = 1, the angle at full stick is around 45deg => a flip should never happen in this mode.

MAIN SOFT: software trim for stable mode

    It is now possible to adjust the trim of the level mode to match the same TX trim used for the acro mode.

    1) disarm the motors

    2) full throttle (must be >1900)

    3) full PITCH forward/backward and full ROLL left/right (2 axis possibilities) will trim the level mode according to 

    the neutral angle you want to change. The status LED will blink to confirm each ticks.

MAIN SOFT: new calibration procedure

    The ACC calibration differs now from the gyro calibration.

    gyro calibration: it’s still done at each power on. It’s also possible manually as before: min throttle+full pitch 

    backward+full yaw left.

    acc calibration: motor disarmed, full throttle up, full pitch backward+full yaw left.

MAIN SOFT: it was in 1.6 but not mentioned. it’s possible to arm/disarm motors

    either via min throttle + full yaw stick or full roll stick.

MAIN SOFT: anti yaw jump modification for multi with 4 motors or more

MAIN SOFT: servo range for tricopter 

    #define TRI_YAW_CONSTRAINT_MIN 1020

    #define TRI_YAW_CONSTRAINT_MAX 2000

MAIN SOFT: compass lock now works

    the option can be activated or deactivated via the button configuration panel AUX1/AUX2

    the lock is activated 1s after the stick release

    the lock is maintained only if the YAW stick in centred +/- 50

    In some case, especially with the 5883, the mag must be calibrated otherwise, the direction is not good.

    The calibration procedure is not yet implemented.

GUI: 3D copter attitude visualization

GUI: ACC calibration. there is now a calibrate button to calibrate the ACC directly from the GUI

    (it resets the soft trim)

GUI: thanks to Eberhard, better display of serial ports on Mac OS X and Linux

GUI: the memory leak bug GUI is corrected

GUI and LCD: D is now positive (to avoid confusion in explanations)

V1.6 

    PPM_SUM 19 (now separated from RC_THROTTLE assignment)

    RC_THROTTLE 62 (=A8)

    RC_ROLL 63 (=A9)

    RC_PITCH 64 (=A10)

    RC_YAW 65 (=A11)

    RC_MODE 66 (=A12)

    RC_AUX(not used) 67 (=A13)

    RC_7(not used) 68 (=A14)

    RC_8(not used) 69 (=A15)

    I2C SDA 20

    I2C SCL 21

    FRONTMOTORPIN 2 (on 328p was 3) = servo for tricopter

    REARMOTORPIN 3 (on 328p was 9)

    RIGHTMOTORPIN 5 (on 328p was 10)

    LEFTMOTORPIN 6 (on 328p was 11)

    Y6RIGHT(HEXFRONT) 7 (on 328p was 6)

    Y6LEFT(HEXREAR) 8 (on 328p was 5)

    V_BAT_MONITOR A3

    TILT&GIMBAL&WING A0/A1

    POWERPIN 12

V1.4:

Serial PPM (PPM SUM):

    more explanation on //#define SERIAL_SUM_PPM

    only one line to comment/uncomment in order to activate it

    a bug was corrected about the number of channel

new calibration approach

    at each initialization:

        the gyro calibration is done

        the acc calibration is done only for a pure gimbal setup

        for other setups, the acc is retrieved from the EEPROM

    on demand (via full left yaw stick + full pitch low stick):

        the gyro calibration is done

        the acc calibration is done and store in the EERPOM

    => the acc calibration must be done at least once on demand.

autolevel strength: the last range was [0;10]. The new range is [0;25] 

     with a reduction weight of 2.5 => more precision for tunning.

  http://www.youtube.com/watch?v=qpoPanmVa9Y

*

  http://www.youtube.com/watch?v=hPj6WZex8j0

*

  http://www.youtube.com/watch?v=nPICiiaDTnc

***multiwii models***

- USE_THROTTLESERVO (for airplanes), COLLECTIVE_RANGE changed (second value not offset anymore)

***IMU and baro***

- gyro calibration could be held until the MWC stops moving

  introduced by MIS, and made optional after via a specific define:?define GYROCALIBRATIONFAILSAFE

- mag gain calibration is improved thanks to EOSBandi

  based on Fabio FreeIMU code. We won’t forget you Fabio...

- perfect euler angle computation in case of 9DOF (better heading)

  no more gimbal lock in GUI representation with a 9DOF sensor

- force sensors orientation to override board specific defaults

  optional in config.h

- default ACC LPF factor reduced from 16 (2^4), and is share with ACC LPF for alt hold

- gyro/acc complementary filter value increased from 400 to 600

- gyro/mag complementary filter now set to 250 instead of 200

- gyro scale factor changed from 2380 to 2279

- accelerometer now used below 1.15G and above 0.85G instead of previous 1.4G/0.6G settings

- option: SENSORS_TILT_45DEG_LEFT/RIGHT to change X/P configuration without changing board orientation

- baro calibration and calculation is improved 

  baro indicates now altitude 0 when it is powered. This is the reference altitude.

- calculation of barometric altitude changed to include temperature, faster update rate

***internal improvements***

- some default PID were changed for optimization speed in PID copmputation.

  The default PID should behave exactly as the previous ones.

  To restore your old PID settings, just a proportion is needed.

- EEPROM settings secured by checksum (thanks to MIS)

- optional permanent logging to eeprom

  setting: LOG_PERMANENT

- change LED blink frequency for acc-uncalibrated or tilt>25 from 50ms to 10ms

- allow override of motor/servo mixing from config.h - no need to edit Output.ino

  experimental

- faster cycle time than with v2.1

- many many hidden optimizations in the code

V2.0 (全面用新架構 .ino 拿掉 .pde)

  WMP and NUNCHUCK are no longer auto recognized.

  You must explicitly declare them (or just WMP) in config.h

  Pullups are now undefined by default

 

  LCD is not activated by default

  Failsafe is not activated by default

  VBAT monitoring is not activted by default

Multiwii Serial Protocol

  It’s a new protocol to communicate with the FC

  Compatible GUI:

   open source code, compatible with the new serial protocol:

    WinGUI from EOSBandi, which is fully equivalent with the original one,

     with a better look

      more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1229

    mwGui from kos

      more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1791

    Android ones via serial bluetooth:

     - adding a bluetooth module to multiwii

       more info here: http://www.multiwii.com/forum/viewtopic.php?f=6&t=133

     compatible apps:

      https://play.google.com/store/apps/details?id=net.xrotor.andmultiwiiconf

      https://play.google.com/store/apps/details?id=net.loide.games.bicopter

      https://play.google.com/store/apps/details?id=com.naze32.configurator

  Compatible OSD:

    open source code, compatible with the new serial protocol

    Rushduino:

      more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=922

    mobiDrone:

      more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1498

LCD config

  OLED display

    thanks to contributions of howardhb and Hamburger

    more info here: http://www.multiwii.com/forum/viewtopic.php?f=7&t=1350

  VT100 terminal type addition

    thanks to contribution of Hamburger

    more info here: http://www.multiwii.com/forum/viewtopic.php?f=7&t=1096

  A multiline option is added to allow the configuration on more than 2 lines

    useful for displays like OLED or VT100

  We have now a lot of possibilities regarding LCD:

    SERIAL3W : original 2x16 line from Sparkfun

    TEXTSTAR : Cat’s Whisker LCD_TEXTSTAR Module CW-LCD-02

    VT100 : vt100 compatible terminal

    ETPP : Eagle Tree Power Panel LCD

    LCD03 : an i2c LCD

    OLED_I2C_128x64

New proc: ATmega32U4

Servo:

  Higher refresh rate:

    Some servo (mostly digital ones) can work with a higher frequency than 50Hz.

    The benefit to use a higher refresh rate is a sharper response.

     Hardware PWM output:

    On MEGA boards, it’s now possible to drive the gimbal servos with

    a 11-bit PWM servo resolution. Thanks to ronco.

    The hardware PWM output ensures a jitter free response.

LED flasher

  A way to set a flash LED sequence from Tommie

  more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1505

Throttle expo

  There is now another curve in the GUI to configure the Throttle expo.

  It’s a way to smooth the throttle stick response around the hover point.

  In order to help the setting, there is a small cursor in the graph to show

  where is the current throttle input.

ACC LEVEL improvement

  The LEVE mode is improved since 2.0 thanks to new choice of

  other complementary filter coefficients and a floating point low pass filter

Headfree checkbox:

  It’s possible to reset the headfree direction while flying via a checkbox.

  thanks to Tommie

Internal code:

  - the Serial part uses now less RAM (thanks to Tommie first mod)

    RX/TX buffers are smaller than before.

  - EEPROM parameters are stored in a struct, and are written in the

    EEPROM in a single step.

  - MAG declination was added by EOSBandi, to have more accurate orientation.

    In some countries, it’s really mandatory to set this variable right,

     otherwise it’s impossible to use GPS.

  - Flag var was introduced for global boolean type variables.

  - Hamburger introduced some "copter exemple" in order to check

    if compilation is ok. (should be a way to remove some trivial bugs)

  - code style (indentation, variable naming convention etc.) started

  - GUI requires new ControlP5 library to compile

  - interval variable activate[] is now 16 bit long

  - new config.h structure

GUI:

  - thanks to Danal, there is now the PIN number and the propeller direction

  drawed in the graph representation

  - thanks to kos, we can now load and save parameters into a file

  - there is now a reset button to set all parameters to default

  - there is now a GUI visual feedback on all states (checkbox items)

ESC calibration

  experimental

  It’s a special #define which allows to calibrate all ESCs with exaclty

   the same signal.

  more info here: http://www.multiwii.com/forum/viewtopic.php?f=13&t=1517

Telemetry

  new telemetry manual stepping mode

Arming option

  configurable TX stick combos for arm/disarm

  this way, it’s possible to arm/disarm the multi via:

    - one AUX switch like before

    - YAW stick and/or ROLL stick

AIRPLANE mode

  experimental

HELICOPTER mode

  experimental

Dual & Single copter

  experimental

VTAIL mode

  motor rotation has changed:

  Front Left & Rear Right: CCW, Front Right & Rear Left: CW , YAW_DIRECTION=1

V1.9 (進入穩定 1.0 IDE 環境)

A new processor

  Coded by ronco based on ATMega 32U4, which can be seen

  as an intermediate proc between 328 and 2560

STM32 porting

  A nice initiative from dongs to port multiwii to a 32bit processor.

  This code allows also to reuse some cheap FC boards and replace the

  firmware by a multiwii one. 

  http://www.multiwii.com/forum/viewtopic.php?f=8&t=1193

  http://code.google.com/p/afrodevices/

Stable mode

  The term D of the PID LEVEL settings is now used to limit the effect

  of the level correction thanks to the suggestion of Shikra

   (see http://www.multiwii.com/forum/viewtopic.php?f=7&t=905 ).

  By default (D=100), the behaviour of the stable mode is unchanged.

  With a lower D, effects are:

   - a smoothing level change

   - should prevent some wobbles of death

HeadFree mode

  Something similar to MK Carefree mode was added.

  Firstly introduced by mahowik as a imple mode?

  http://www.multiwii.com/forum/viewtopic.php?f=7&t=925

  A specific check box was added in the GUI to activate this mode via a switch.

  You need to have a magnetometer and accelerometer on the board

  Principle: The head/front will be remembered when you turn on the engines.

    So it means that you can   turn on/off the mode during the flight.

Pass-through mode

  It a checkbox in the GUI.

  The purpose is to bypass the IMU for some configs like flying wings.

Beeper mode

  It a checkbox in the GUI.

  The purpose is to activate a beeper in case you have a buzzer

  installed and you lost your multi in high grass for instance.

New stick combo

  for magneto calibration (throttle=up yaw=right pitch=down)

Better magnetometer calibration

  The calibration of the magnetometer is now more precise,

  because it takes into account the relative strength of the magnitude

  projection on each axis.

  Based on a code suggested by EOSBandi:

  http://www.multiwii.com/forum/viewtopic.php?f=8&t=1068

  It should improve the GPS return to target point accuracy.

Gyro smoothing

  There are 2 options to smooth the gyros: (mainly useful for fixed wings configs)

   - per axis based on a LPF: #define GYRO_SMOOTHING {20, 20, 3}

     // separate averaging ranges for roll, pitch, yaw

   - for all axis, based on a moving average (from Magnetron)

     #define MMGYRO

     #define MMGYROVECTORLENGHT 10 

  Servo gimbal smoothing is also an option based on the same principle:

     #define MMSERVOGIMBAL

     #define MMSERVOGIMBALVECTORLENGHT 32

Inflight ACC-calibration:

  It a way to calibrate the level via on flight tests.

  Must be defined in config.h

Coding specific improvements:

  Less RAM memory usage via the use of PROGMEM statement

  No more Arduino Serial function => the new serial communication is more efficient

V1.8    

    - some factorizations between PPM sum receiver code & standard receiver code

    - EXPERIMENTAL: integration of direct SBUS receiver thanks to the contribution of Captain IxI & Zaggo

      - LEVEL drift problem:

      the root of this problem was identified (at least partly).

      Several options to try to solve it:

      - adding a #define TRUSTED_ACCZ for those who have huge ACC Z variations when some throttle is applied

        (it’s a test you should do before tructing ACCZ)

    //#define TRUSTED_ACCZ  -> ACCZ is not taken into account in calculation for small angles

    #define TRUSTED_ACCZ    -> ACCZ is taken into account in calculation for small angles

      - BMA180 init changes to another mode: should help to filter noisy setups

      - adding a #define STAB_OLD_17 for those who still encounter problem with the stable code,

        as the old 1.7 LEVEL code (less elaborated) doesn’t seem to cause drift.

     - some flying wing code upgrade (thanks to the suggestion of Hamburger)

     - ACC added: LSM303DLx_ACC

MAIN SOFT: introduction of a deadband around the stick center

     via a #define DEADBAND. (commented by default)

     it might help to get some accuracy from RC TX with not accurate potentiometers

     however, as it introduces a central deadband, the TX trims are not efficient as before.

MAIN SOFT: new altitude hold

     there is now a working implementation :)

     thanks to ziss_dm, the estimation of the altitude is more precise.

     the Z ACC is integrated in the alt hold estimation and helps a lot to estimate short term variation

     how-to:

        the multi must be nearly altitude stable before the activation of altitude hold.

        a dead band is then created around the throttle value.

     at every moment, it’s possible to still control the trhottle power when the throttle goes out of the deadband

     this is not the best implemetation as the multi needs to be quite static before the activation, but it’s a good start.

     

     There are 2 PIDS which are separated ans which can be used separatly.

    ALT PID: better results are obtained with a P only term (P=4.7 I=0 D=0 is the default value)

    VEL PID: it stands for velocity PID, more info here: (P=I=D=0 is the default value)

            it should help to smooth every altitude varation

            http://www.multiwii.com/forum/viewtopic.php?f=7&t=363

GUI: altitude representation

     there is an autoscale feature in the GUI to see better the altitude variation.

     

GUI: introduction of MAG 3 axis raw values

MAIN SOFT:  the failsafe function of the PPM sum receiver was a little mofified and can handle better

      unusual signal patterns with short pulses.

V1.7 

ALL: BARO is more precise, but still not perfect (1m to 2m amplitude). 

     Note it’s a code issue, not a baro component issue.

ALL: RC channels AUX2, CAM1 CAM2 added. only relevant for PPM SUM stream or MEGA boards.

     On the 328p with a standard receiver, only the first 5 channels are recognized.

     CAM1 and CAM2 controls are not yet implemented.

ALL: AUX1 and AUX2 switches are fully customizable via a 3 state position.

    We can activate/deactivate individually  level mode (ACC), baro or compass (mag).

    It’s a generic approach which lets other possibilities to control things in the future.

    With this principle, it’s possible to activate permanently the options you want even if you have only 4 channels 

    (replace the FORCE LEVEL option)

ALL: CAM triger option:

    a servo can be connected on digital pin A2 (pro mini) to activate the trigger of a camera

    the option can be activated or deactivated via the button configuration panel AUX1/AUX2

    #define CAM_SERVO_HIGH 2000  // the position of HIGH state servo

    #define CAM_SERVO_LOW 1020   // the position of LOW state servo

    #define CAM_TIME_HIGH 1000   // the duration of HIGH state servo expressed in ms

    #define CAM_TIME_LOW 1000    // the duration of LOW state servo expressed in ms

    the PIN on arduino mega is also A2, but this is not the final PIN mapping

ALL CAM stab (servo tilt) button option:

    the servo tilt option can be activated or deactivated via the button configuration panel AUX1/AUX2

ALL: BI COPTER is now a avatar style implementation.

    on a pro mini: 9 motor left, 10 motor right, 11 servo left, 3 servo right

    on mega: 3 motor left, 5 motor right, 6 servo left, 2 servo right

ALL: addition of Y4 (not tested)

    on a pro mini: motors 9,10,11,3

    on mega: motors 3,5,6,2

    REAR1 , FRONT R , REAR2 , FRONT L

ALL: addition of HEX6X (not tested)

    on a pro mini: motors 9,10,11,3,6,5

    on mega: motors 3,5,6,2,7,8

    REAR_R , FRONT_R , REAR_L , FRONT_L , RIGHT , LEFT

ALL: new level mode

    The level mode is completely redesigned with a coherent independent trim

    There a now a PI control loop for level mode based on angle estimation.

    The old auto level strength value was a sort of P only control loop.

    With the new code, the I term allows to refine the remaining angular error for a better angle positioning accuracy.

    With an RC rate = 1, the angle at full stick is around 45deg => a flip should never happen in this mode.

MAIN SOFT: software trim for stable mode

    It is now possible to adjust the trim of the level mode to match the same TX trim used for the acro mode.

    1) disarm the motors

    2) full throttle (must be >1900)

    3) full PITCH forward/backward and full ROLL left/right (2 axis possibilities) will trim the level mode according to 

    the neutral angle you want to change. The status LED will blink to confirm each ticks.

MAIN SOFT: new calibration procedure

    The ACC calibration differs now from the gyro calibration.

    gyro calibration: it’s still done at each power on. It’s also possible manually as before: min throttle+full pitch 

    backward+full yaw left.

    acc calibration: motor disarmed, full throttle up, full pitch backward+full yaw left.

MAIN SOFT: it was in 1.6 but not mentioned. it’s possible to arm/disarm motors

    either via min throttle + full yaw stick or full roll stick.

MAIN SOFT: anti yaw jump modification for multi with 4 motors or more

MAIN SOFT: servo range for tricopter 

    #define TRI_YAW_CONSTRAINT_MIN 1020

    #define TRI_YAW_CONSTRAINT_MAX 2000

MAIN SOFT: compass lock now works

    the option can be activated or deactivated via the button configuration panel AUX1/AUX2

    the lock is activated 1s after the stick release

    the lock is maintained only if the YAW stick in centred +/- 50

    In some case, especially with the 5883, the mag must be calibrated otherwise, the direction is not good.

    The calibration procedure is not yet implemented.

GUI: 3D copter attitude visualization

GUI: ACC calibration. there is now a calibrate button to calibrate the ACC directly from the GUI

    (it resets the soft trim)

GUI: thanks to Eberhard, better display of serial ports on Mac OS X and Linux

GUI: the memory leak bug GUI is corrected

GUI and LCD: D is now positive (to avoid confusion in explanations)

V1.6 

    PPM_SUM 19 (now separated from RC_THROTTLE assignment)

    RC_THROTTLE 62 (=A8)

    RC_ROLL 63 (=A9)

    RC_PITCH 64 (=A10)

    RC_YAW 65 (=A11)

    RC_MODE 66 (=A12)

    RC_AUX(not used) 67 (=A13)

    RC_7(not used) 68 (=A14)

    RC_8(not used) 69 (=A15)

    I2C SDA 20

    I2C SCL 21

    FRONTMOTORPIN 2 (on 328p was 3) = servo for tricopter

    REARMOTORPIN 3 (on 328p was 9)

    RIGHTMOTORPIN 5 (on 328p was 10)

    LEFTMOTORPIN 6 (on 328p was 11)

    Y6RIGHT(HEXFRONT) 7 (on 328p was 6)

    Y6LEFT(HEXREAR) 8 (on 328p was 5)

    V_BAT_MONITOR A3

    TILT&GIMBAL&WING A0/A1

    POWERPIN 12

V1.4:

Serial PPM (PPM SUM):

    more explanation on //#define SERIAL_SUM_PPM

    only one line to comment/uncomment in order to activate it

    a bug was corrected about the number of channel

new calibration approach

    at each initialization:

        the gyro calibration is done

        the acc calibration is done only for a pure gimbal setup

        for other setups, the acc is retrieved from the EEPROM

    on demand (via full left yaw stick + full pitch low stick):

        the gyro calibration is done

        the acc calibration is done and store in the EERPOM

    => the acc calibration must be done at least once on demand.

autolevel strength: the last range was [0;10]. The new range is [0;25] 

     with a reduction weight of 2.5 => more precision for tunning.

聚會討論記錄

 2014/12/10

  1. 竑傑帶了自己的機架與Arduino 飛控板來給大家參考. 
  2. 目前實作的計畫分成以下幾種:

3. 其他記錄事項

2014/12/17

  1. 討論了一些機架的特性. 
    1. 航空夾板 : 重量輕, 能吸收震動, 不會有額外的共振效應. 且能用雷切製作. 
    2. 大疆F450 塑膠骨架 : 便宜, 但塑膠骨架會產生共振(twist). 
    3. 四軸中間的板子, 用硬碟機的鋁板最好. 玻璃纖維做的注意共震, 最好補以三明治工法 (跟震動有關)
  2. 遙控器的部份, 如日後要有飛遠打算, 較不推薦Devo. RC 控制特別優化的 2.4G protocol 如台灣很普及 & 記錄優良的 Futaba FASST 系統, Futaba FASST C/P 比較推薦的是Futaba 14sg. Devo 很容易在飛場失去信號連接. 四軸變成放天燈. 
  3. 馬爸的建議, 是先從基本的四軸(6DOF)開始做, 能飛了之後, 再去修改增加東西. 
  4. Frank 拿馬爸提供的航空夾板去掃描, 做成jpg檔案之後, 給鴻旗製作CAD檔案, 再約時間拿去雷切. 

用 MultiWii 造小四軸

製作小型的飛行器優點是利於在室內飛行和測試。

飛控板: Arduino Pro Mini + MPU 6050 (自己組裝。會需要一個FTDI)

馬達:716 空心杯( 3.7V~4.2V , 3.7V裝上46mm螺旋槳後,22000RPM, 0.85A)

遙控器:Andriod 手機( APP自己寫)

遙控接收器:用另外一個 Arduino Pro Mini + SC-06 BT module

機架:自行設計,3D列印

--

一個716空心杯馬達+46mm的小槳,4V(約0.7A)時只能提供18~20克的推力。所以想要作小四軸,自己用breakout boards組裝,因為重量的因素是很難達成的。

所以市售的小四軸套件,都非常精減。

有看到有賣家賣現成的 Arduino+ MPU6050

http://goods.ruten.com.tw/item/show?21406221499167

如果還是想要DIY

方法1:用減速齒輪降低轉速,然後換成5吋的槳,推力大約可以提升到35~40克。去玩具店觀察5吋槳的小四軸,就是用這種方式。

方法2:選用比較小的無刷馬達(會在2000KV以上),用5吋的槳。這樣的組合推力遠高於方法一。

2015/1/14

  1. 四軸雷切骨架已經完成, 也目視沒問題. 
  2. 編輯Multiwii arduino 專案, 以及MultiwiiConf 程式, 完成校正與組態設定動作. 
  3. 使用Futaba 遙控器, 透過接收器提供Multiwii飛控板控制信號, 可以從Multiwii conf 程式畫面看到指令與輸出動作. 
  4. 下週將安裝馬達, 電變, 電池, 飛控板, 電線, 螺旋槳. 完成後即可試飛. 

2015/1/21

  1. 今天設定好盈電變. 使用馬爸提供的電變燒錄卡. 
  1. 買來的馬達是830KV的規格, 轉速可能不夠高, 容易影響四軸飛行器的穩定性. 因此馬爸建議換為930KV, 或更高轉速的馬達. 但若使用超過1000KV的馬達, 則槳可能要改八吋會比較穩定.
  2. 馬達可用KV轉速偵測器, 來檢查KV值是否匹配. 只要數值沒差很多, 基本上可藉由飛控板的運算來維持平穩. 四軸的馬達與電變都是使用sensor less 版本.
  3. f電變安ㄦ裝時, 若需要延長接線, 則應延長馬達接線. 至於電源接線則應該盡量短.