I hope there is not a lot of remaining bugs

But I think it was time to release all the new improvements since the 1.7.
here is a summary (in change.txt too)
Code: Select all
MAIN SOFT: code modularization.
There are now multiple .pde files
The configuration should be changed only in config.h
The files are opened with the Arduino IDE (open one file and the remaining files will follow)
This change should ease more easily the extension of MultiWii project in the future
MAIN SOFT: due to the multiplication of multiwii hardware compatible boards
a first try to manage automatically in config.h the definition of
- sensors
- orientation
- I2C address
for the moment:
FFIMUv1 // first 9DOF+baro board from Jussi, with HMC5843 <- tested by Alex
FFIMUv2 // second version of 9DOF+baro board from Jussi, with HMC5883 <- tested by Alex
FREEIMUv1 // v0.1 & v0.2 & v0.3 version of 9DOF board from Fabio
FREEIMUv035 // FreeIMU v0.3.5 no baro
FREEIMUv035_MS // FreeIMU v0.3.5_MS
FREEIMUv035_BMP // FreeIMU v0.3.5_MS
PIPO // 9DOF board from erazz
QUADRINO // full FC board 9DOF+baro board from witespy <- tested by Alex
ALLINONE // full FC board or standalone 9DOF+baro board from CSG_EU
AEROQUADSHIELDv2 // the 9DOF version of aeroquad shield v2
ATAVRSBIN1 // Atmel 9DOF (Contribution by EOSBandi). The board requires 3.3V power.
It's still however possible to declare individual sensors for a different configuration
If everything is commented (default conf), MultiWii assumes there is only a WMP or a WMP+NK connected.
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.
So, don't be surprised about the huge amplitude of altitude curve in the GUI.
The altitude is displayed in meter in the GUI.
A normal variation when the multi is not Z moving should be around 0.5m
ALL: thank to Hamburger, integration of a power meter estimator
voltage reading (now available in GUI) and alarm set up.
(see full description and manual in config.h file)
more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=167
MAIN SOFT: thank to Hamburger, integration of a LCD telemetry
very convenient with the TEXT STAR LCD and it's 4 buttons
for other LCDs with no button, implementation of a Telemetry autoswitching
(see full description and manual in config.h file)
MAIN SOFT: thanks to ziss_dm hint, gyro are calculated with more software internal resolution.
This should smooth the overall alttitude.
might not be so good with very noisy WMP copies
MAIN SOFT: more settings are avalaible for the ITG3200 gyro
there was also a bug regarding the ITG3200 initialisation which is corrected => 2000deg/s setting is now used.
thanks to EOSBandi: ITG3200 & ITG3205 Low pass filter setting. (see the according #define in the config.h file)
In case you cannot eliminate all vibrations to the Gyro, you can try
to decrease the LPF frequency, only one step per try. As soon as twitching gone, stick with that setting.
It will not help on feedback wobbles, so change only when copter is randomly twiching and all dampening and
balancing options ran out. Uncomment only one option!
IMPORTANT! Change low pass filter setting changes PID behaviour, so retune your PID's after changing LPF.
see config.h for the related #define
MAIN SOFT: New angle calculation by ziss_dm
it's a completly new approach wich gives a constant cycle time
and a representation in all attitude.
there are some singularity when an angle reaches 90deg. It's normal.
MAIN SOFT: thanks to ziss_dm, there is another way to use the level mode.
no overshoot is possible, but the reaction time is longer
more info here: http://www.multiwii.com/forum/viewtopic.php?f=8&t=503
MAIN SOFT: code rework: RX rate/expo is now interpolated via a lookup table without any float.
GUI: thanks to shama, disparition of warning messages
MAIN SOFT: thanks to C2po , some more tuning on BMA180 I2C initialization.
ALL: 3 octo configs are now supported on mega boards: OCTOX8 (dual coax quadX), OCTOFLAT+, OCTOFLATX
motor order: PIN 3,5,6,2,7,8,9,10
OCTOX8:
REAR_R , FRONT_R , REAR_L , FRONT_L , UNDER_REAR_R , UNDER_FRONT_R , UNDER_REAR_L , UNDER_FRONT_L
OCTOFLATP:
FRONT_L , FRONT_R , REAR_R , REAR_L , FRONT , RIGHT , REAR , LEFT
OCTOFLATX:
MIDFRONT_L , FRONT_R , MIDREAR_R , REAR_L , FRONT_L , MIDFRONT_R , REAR_R , MIDREAR_L
one detail: the GUI is not yet adapted to display the 8 motors & the according 3D representation on the right
MAIN SOFT: PITCH&TILT camera compenstation with channel 7 & 8 is now working
- must be used with SERVO_TILT option
- TILT/ROLL inclination compensation is still trigged by CAMSTAB GUI checkbox option
GUI: improvment by Hamburger
improvement to the devices list in the gui and that got me to tuning it a bit more.
- list is still too short for my amount of known devices - some vertical space is unused,
so longer box is possible
- on mac, for each bt-device I get two device files:
cu.name and tty.name. using the tty.name is recommended by arduino documentation,
so do not add the cu.name devices to list
- remove leading tty. from names to use limited space for readability.
LCD: improvment by Hamburger: exit without save from EEPROM menu
You can use the LCD quite extensively for viewing values - especially with development versions.
Therefore there is a need to exit the LCD config loop without doing a complete write to eeprom.
The eeprom is limited to only 100.000 write cycles.
ALL: thanks to Cass3825, new optional arming procedure via an AUX switch
this option is activated only if at least one checkbox is checked on the line "ARM"
the motors won't arm if the copter is plugged while the tx switch is in the armed position.
you must use the switch to disarm position then back to arm position in order to arm the motors.
Another 'feature' worth mentioning is that changes in the switch position are only
acknowledged when the throttle stick is all the way down.
This prevents accidentally arming the motors at mid or full throttle.
One downside is that the motors will not disarm unless the throttle stick is all the way down.
ALL: it's now possible to calibrate the MAG from the GUI (and mandatory for the first time)
once activated, the LED will flash very fast for 30s
you have exactly 30s to move the multi in all possible direction
(one full turn on each axis is sufficient)
There is no order to respect, but it is important to cover every directions.
GUI: introduction of MAG 3 axis raw values
MAIN SOFT: BI-COPTER PIN 6 servo correction
MAIN SOFT: thanks to jevermeister,
the failsafe function of the PPM sum receiver was a little mofified and can handle better
unusual signal patterns with short pulses.
and 3 videos to demonstrate the potential of this version:
http://www.youtube.com/watch?v=XB4hB5CPxeI
http://www.youtube.com/watch?v=F37SBwYPp1o
http://www.youtube.com/watch?v=FvNJzwRP8dw