MultiWii Changelog

New in version 2.3

November 11th, 2013
  • 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 http://www.multiwii.com/forum/viewtopic.php?f=7&t=3294
  • better gyro & acc calibration accuracy (r1546) http://www.multiwii.com/forum/viewtopic.php?f=7&t=3880
  • cannot arm is baro mode is on (r1550) http://www.multiwii.com/forum/viewtopic.php?f=8&t=3910
  • baro mode should be activated only when the multi is nearly Z stable
  • only one baro mode : vario around a throttle deadband (r1554)
  • magHold is reset when arm is switched on (r1553) http://www.multiwii.com/forum/viewtopic.php?f=8&t=3910
  • ONLYARMWHENFLAT option (r1587) http://www.multiwii.com/forum/viewtopic.php?f=8&t=4077&hilit=coming&start=40#p41755
  • 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) http://www.multiwii.com/forum/viewtopic.php?f=8&t=3957
  • 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
  • LCD:
  • lcd.telemtry: show max ground speed from gps data (r1398)
  • lcd.telemetry: allow separate suppression of aux2 configuration (r1456)
  • new display support 1.3" i2c OLED from digole.com (r1413)
  • config.menu: when abort, revert all values back to last saved state
  • visual feedback from servos during midpoint trim via LCD
  • 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) http://www.multiwii.com/forum/viewtopic.php?f=8&t=4059
  • not I reset for FIWEDWING (r1590) http://www.multiwii.com/forum/viewtopic.php?f=7&t=2456&start=330#p42355
  • add 6DOF LSM330 sensor (r1571)
  • add ACC BMA280 sensor (r1600)
  • SERVO management:
  • warning:
  • The pins for coptertypes with servos have been changed.
  • Attaching a servo to a motor pin can quickly destroy your servo.
  • All connection diagrams out there from v2.2 or older are no longer valid for v2.3 with servos using hardware PWM. http://www.multiwii.com/wiki/index.php?title=Config.h#Servos_configuration
  • add 8 hardware PWM's for servos on MEGA boards. Servo outputs are 44,45,46,11,12,6,7,8 (r1384)
  • Allow any servo refresh rate from 20 to 400Hz on Mega hardware PWM servos. (r1386)
  • Tri servo moved to SERVO4 (pin11) on mega boards with HW PWM's. (r1392)
  • a32u4 (nanoWii, MicroWii etc) HW PWM for 4 servos; warning different pins (with lots of info and help from ronco) (r1464 & r1470)
  • add a generic way to configure servo settings : conf struct + MSP read/set messages (r1383)
  • Added general servo handler (r1421 & r1429) http://www.multiwii.com/forum/viewtopic.php?f=8&t=3498
  • allow preset of some servo stuff from config.h (r1432)
  • Gui with Servosettings. (r1441)
  • add gimbal servo stretcher usable with HW PWM's. (r1384) We can get 180 degrees servo move without servo modification.
  • note about gimbal: settings for neutral&endpoints are no more in config.h, but only in GUI
  • do not update servos during unarmed calibration of sensors which are sensitive to vibration (r1408)
  • internal improvements:
  • migration to a cpp/h code structure (r1515 & r1516) http://www.multiwii.com/forum/viewtopic.php?f=8&t=3773 http://www.multiwii.com/forum/viewtopic.php?f=8&t=2931
  • huge flash size optimization (around 1k) thanks to fine struct definitions + serialization over MSP (r1369)
  • make powermeter computation time based (again) to reduce config hassle and increase accuracy (r1375)
  • 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:
  • option to suppress defaults in mwc sketch and load via gui from file instead (r1365)
  • add OVERRIDE_PSENSORPIN option (r1375)
  • manual for using Multiwii in Eclipse environment http://www.multiwii.com/wiki/index.php?title=Developing_in_Eclipse
  • add amperage to MSP_ANALOG (r1542)
  • MY_PRIVATE_DEFAULTS (r1559) http://www.multiwii.com/forum/viewtopic.php?f=8&t=3987
  • no more than one MSP per port and per cycle should smooth the delay while requesting MSP, especially for USB port on micro

New in version R 1356 Dev (March 2nd, 2013)

  • 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 in version R 1349 Dev (February 22nd, 2013)

  • baro Alt from mahowik
  • baro calibration and some baro mods from Sebbi
  • new task scheduler for a better computation time repartition
  • better Ublox code detection
  • HORIZON mode (mix between ACRO & ANGLE)
  • ANGLE mode is the old LEVEL mode
  • every UART for everything on MEGA
  • cool GUI enhancement from magnetron
  • spektrum bind button for spektrum receiver (Danal)
  • telemetry cosmetic
  • bug correction for servos on MEGA
  • failsafe is more robust
  • variometer from Hamburger
  • mag gain calibration improvement for HMC5883L from EOSBandi
  • GPS MKT binary parser from EOSBandi
  • GPS forward predictive filter from EOSBandi
  • follow me option works now in GPS HOME&HOLD mode via a ezio app
  • RSSI added
  • reconnect button in gui (uart speed can be changed in the file .txt)
  • IMU optimization

New in version R 1317 Dev (January 22nd, 2013)

  • baro Alt from mahowik
  • baro calibration and some baro mods from Sebbi
  • new task scheduler for a better computation time repartition
  • better Ublox code detection
  • HORIZON mode (mix between ACRO & ANGLE)
  • ANGLE mode is the old LEVEL mode
  • every UART for everything on MEGA
  • cool GUI enhancement from magnetron
  • spektrum bind button for spektrum receiver (Danal)
  • telemetry cosmetic
  • bug correction for servos on MEGA
  • failsafe is more robust
  • variometer from Hamburger
  • mag gain calibration improvement for HMC5883L from EOSBandi
  • GPS MKT binary parser from EOSBandi
  • GPS forward predictive filter from EOSBandi
  • follow me option should now work in GPS HOME mode via a ezio app

New in version R 1315 Dev (January 16th, 2013)

  • baro Alt from mahowik
  • baro calibration and some baro mods from Sebbi
  • new task scheduler for a better computation time repartition
  • better Ublox code detection
  • HORIZON mode (mix between ACRO & ANGLE)
  • ANGLE mode is the old LEVEL mode
  • every UART for everything on MEGA
  • cool GUI enhancement from magnetron
  • spektrum bind button for spektrum receiver (Danal)
  • telemetry cosmetic
  • bug correction for servos on MEGA
  • failsafe is more robust
  • variometer from Hamburger
  • mag gain calibration improvement for HMC5883L from EOSBandi
  • GPS MKT binary parser from EOSBandi
  • GPS forward predictive filter from EOSBandi
  • follow me option should now work in GPS HOME mode via a ezio app

New in version R 1311 Dev (January 14th, 2013)

  • baro Alt from mahowik (new functions to come, noted)
  • baro calibration and some baro mods from Sebbi
  • new task scheduler for a better computation time repartition
  • better Ublox code detection
  • HORIZON mode (mix between ACRO & ANGLE)
  • ANGLE mode is the old LEVEL mode
  • every UART for everything on MEGA
  • cool GUI enhancement from magnetron
  • spektrum bind button for spektrum receiver (Danal)
  • telemetry cosmetic
  • bug correction for servos on MEGA
  • failsafe is more robust
  • variometer
  • mag gain calibration improvement for HMC5883L
  • GPS MKT binary parser
  • GPS forward predictive filter

New in version R 1240 Dev (November 6th, 2012)

  • baro Alt from mahowik (new functions to come, noted)
  • baro calibration and some baro mods from Sebbi
  • new task scheduler for a better computation time repartition
  • better Ublox code detection
  • HORIZON mode (mix between ACRO & ANGLE)
  • ANGLE mode is the old LEVEL mode
  • every UART for everything on MEGA
  • cool GUI enhancement from magnetron
  • spektrum bind button for spektrum receiver (Danal)
  • telemetry cosmetic
  • bug correction for servos on MEGA
  • failsafe is more robust

New in version R 1143 Dev (September 29th, 2012)

  • baro Alt from mahowik
  • better Ublox code detection
  • HORIZON mode (mix between ACRO & ANGLE)
  • ANGLE mode is the old LEVEL mode
  • every UART for everything on MEGA
  • cool GUI enhancement from magnetron
  • spektrum bind button for spektrum receiver (Danal)
  • telemetry cosmetic
  • bug correction for servos on MEGA
  • failsafe is more robust

New in version 2.1 (July 16th, 2012)

  • 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
  • (think about activating it if you use a WMP only conf)
  • LCD is not activated by default
  • Failsafe is not activated by default
  • VBAT monitoring is not activted by default
  • There is no more .pde files
  • You must use Arduino 1.0 or greater to compile the sketch (and open Multiwii.ino)
  • If the GUI does not work on your setup,
  • try to deactivate hardware acceleration for your display board
  • or use an alternative GUI like WinGUI
  • 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.
  • Receiver part
  • OpenLRS Multi board support done
  • This is a board including an OpenLRS receiver where the atmel
  • is used also to run multiwii code.
  • more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1438
  • Multiwii Serial Protocol
  • It's a new protocol to communicate with the FC
  • It was introduced by me and tuned by Tommie
  • It's a huge change, but it should ensure a generic way to communicate with the FC
  • which is less dependant to version evolutions.
  • more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1516
  • Now, there is no mod to multiwii code if we want to add a GUI/OSD/conf tool/...
  • 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
  • Thanks to the work from ronco.
  • This proc can be found in the Arduino pro micro board, or Teensy 2.0
  • The Pro Micro is similar in size to the Pro Mini except it has a ATmega32U4 on board.
  • The USB transceiver inside the 32U4 allows us to add USB connectivity on-board.
  • ronco also designed a custom board named nanowii.
  • One of the smallest 6DOF Multiwii board with usb, which can be now purchased.
  • more info here: http://www.multiwii.com/forum/viewtopic.php?f=6&t=1337
  • 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.
  • ronco adapted the code to make this frequency configurable
  • more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1644
  • 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
  • Sensor:
  • MPU6050: there was a bug which prevents using the gyro LPF. correted now.
  • SONAR: I2C sonar SRF0x code was added but is not currently used.
  • HMC5883 axis calibration factor was added
  • NUNCHUK is fusioned with ACC in GUI
  • many new boards was also added in config.h file
  • 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)
  • GPS code:
  • Thanks to the work of EOSBandi, we have now a working GPS code !
  • The navigational routines are based on the works of Jason Short
  • and the Arducopter team (another great open source project).
  • EOSBandi adapted it to multiwii.
  • basically, there are 2 main options for GPS: SERIAL option and I2C option.
  • If you have a spare serial port AND an AtMega1280 or 2560 microcontroller
  • based FC, you can connect your GPS to that port and enable the serial GPS
  • code in the code.
  • Patrick introduced a way to switch automaticly between GUI message parsing
  • or NMEA message parsing on the same Serial port
  • (useful for promini because you can use the same port for GUI and GPS
  • in an exclusive mode)
  • You can use an I2C_GPS board, which contains a secondary AtMega328 processor
  • with a serial GPS and runs the GPS parsing and navigational computations.
  • This board communicates with the FC via the I2C bus.
  • more info here: http://code.google.com/p/i2c-gps-nav/downloads/list
  • and here in this huge post: http://www.multiwii.com/forum/viewtopic.php?f=8&t=649
  • There is also a specific GPS_FROM_OSD option:
  • it's a way to use the GPS device of OSD to feed Multiwii with GPS data
  • MIS OSD uses this functionality
  • 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, more info here:
  • http://www.multiwii.com/forum/viewtopic.php?f=8&t=364
  • https://code.google.com/p/multiwii/wiki/MWiiAirplane
  • HELICOPTER mode
  • experimental
  • more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1562
  • Dual & Single copter
  • experimental
  • more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1882
  • VTAIL mode
  • motor rotation has changed:
  • Front Left & Rear Right: CCW, Front Right & Rear Left: CW , YAW_DIRECTION=1
  • An attempt to improve the documentation via wiki
  • wiki from googlecode:
  • https://code.google.com/p/multiwii/w/list
  • wiki from multiwii.com
  • http://www.multiwii.com/wiki/index.php?title=Main_Page
  • We all know the overall documentation is still to improve