there was really a huge work on this evolution
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.
- 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)
- 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
- the servo tilt option can be activated or deactivated via the button configuration panel AUX1/AUX2
- 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
- on a pro mini: motors 9,10,11,3
on mega: motors 3,5,6,2
REAR1 , FRONT R , REAR2 , FRONT L
- 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
- 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.
- 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.
- 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.
- either via min throttle + full yaw stick or full roll stick.
MAIN SOFT: servo range for tricopter
- #define TRI_YAW_CONSTRAINT_MIN 1020
#define TRI_YAW_CONSTRAINT_MAX 2000
MAIN SOFT: HMC5883 compass integration
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.
MAIN SOFT: thanks to Syberian, a bug was corrected to prevent ACC correction just before hovering.
- It could explain some odd flips when using autolevel at the beginning
- overflow which occured only for high PITCH variation.
- Failsafe detect absence of RC pulse on THROTTLE channel (standard PPM receiver)
If the pulse is OFF the failsafe procedure is initiated.
After configurable FAILSAVE_DELAY time of pulse absence,
the level mode is switched to ON (if ACC or nunchuk is available),
PITCH, ROLL and YAW is centered and THROTTLE is set to FAILSAVE_THROTTLE value.
This value is dependent from your configuration, AUW and some other params.
Next, afrer configurable FAILSAVE_OFF_DELAY time,
the copter is disarmed, and motors are stopped.
If RC pulse coming back before reached FAILSAVE_OFF_DELAY time,
after the small quard time the RC control is returned to normal.
The fail-safe can be deactivated via #define
MAIN SOFT: bug correction the mag indication was reversed
MAIN SOFT: small bug correction in angle calculation (conversion rad->1/10 deg)
MAIN SOFT: added a small delay after ITG3200 init to have a better calibration
MAIN SOFT: thanks to zara,
- vbat code simplification + low pass filter.
vbat activation via #define.
coupling alarm with status LED
- might be the source of frsky PPM sum problem
GUI: ACC calibration. there is now a calibrate button to calibrate the ACC directly from the GUI
- (it resets the soft trim)
GUI: the memory leak bug GUI is corrected
GUI and LCD: D is now positive (to avoid confusion in explanations)
LCD: all parameters are now customizable via the LCD thanks to the work initiated by Shirka.
- This first one is still P for both ROLL&PITCH as it is the most used.
OSD: implementation of MIS code thanks to Rurek
- thanks to Rurek and mis_b, optimisation of OSD code Serial write is driven by a switchable interrupt,
minimising delay to transmit data
SPECIAL NOTE ABOUT THE PULL-UPS:
- they are now enable by default
- WARNING if you use I2C devices that don't support 5V.
- If you use a WMP alone: enable it in soft
- If you use a WMP + NK : enable it in soft
- If you use a WMP + BMP020 (5V friendly thanks to its LLC): enable it in soft
- If you use a WMP + (LLC + I2C devices): enable it in soft
- If you use a WMP + direct I2C bus connection I2C devices (not 5V friendly): disable it in soft and use external
pull-ups on 3.3V. note that most breakout boards are built with pullups already available.
The code is on the googlecode repository
http://code.google.com/p/multiwii/source/browse/tags
This code is as usual compatible with everything developed before
including the very low cost setup: WMP only + promini + standard 4ch receiver