Warning #1: an issue has been found with Tower's Pause button which can cause the vehicle to fly to an old position if the vehicle has not sent a position update to Tower in some time.
Warning #2: Copter-3.3.2 fixes a bug found in Copter-3.3.1's desired climb rate initialisation which could lead to a sudden momentary drop when switching from Stabilize or Acro to AltHold, Loiter or PosHold.
Warning #3: Copter-3.3.2 fixes an issue found in Copter-3.3.1 which could lead to hard landings in RTL or AUTO if the WPNAV_SPEED_DN was set too high (i.e. >400 or 4m/s) and/or the WPNAV_ACCEL_Z was set too low (i.e. <100 or 1m/s/s).
Warning #4: a bug was found in Copter-3.3 which could cause a sudden crash if you abort a Take-off initiated from a ground station. Video description is here. The bug is fixed in Copter-3.3.1 so we recommend upgrading.
Note #1: AC3.3-rc8 corrected a long standing bug in the HDOP reporting. HDOP values will appear about 40% lower than previously but this does not actually mean the GPS position is better than before.
Note #2: if upgrading from AC3.2.1 the vehicle's accelerometer calibration needs to be done again.
Note #3: set SERIAL2_PROTOCOL to "3" and reboot the board to enable FrSky telemetry like in previous versions.
Note #4: the wiki will be updated over the next few weeks to explain how to use the new features
Copter-3.3.1 is available through the mission planner. The full list of changes vs AC3.2.1 can be see in the ReleaseNotes and below are the most recent changes since AC3.3.
Sadly this version (and all future versions) will not run on the APM2.x boards due to CPU speed, flash and RAM restrictions.
Changes from 3.3:
1) Bug fix to prevent potential crash if Follow-Me is used after an aborted takeoff
2) compiler upgraded to 4.9.3 (runs slightly faster than 4.7.2 which was used previously)
Changes from 3.3-rc11:
1) EKF recovers from pre-arm "Compass variance" failure if compasses are consistent
Changes from 3.3-rc10:
1) PreArm "Need 3D Fix" message replaced with detailed reason from EKF
Changes from 3.3-rc9
1) EKF improvements:
a) simpler optical flow takeoff check
2) Bug Fixes/Minor enhancements:
a) fix INS3_USE parameter eeprom location
b) fix SToRM32 serial protocol driver to work with recent versions
c) increase motor pwm->thrust conversion (aka MOT_THST_EXPO) to 0.65 (was 0.50)
d) Firmware version sent to GCS in AUTOPILOT_VERSION message
3) Safety:
a) pre-arm check of compass variance if arming in Loiter, PosHold, Guided
b) always check GPS before arming in Loiter (previously could be disabled if ARMING_CHECK=0)
c) sanity check locations received from GCS for follow-me, do-set-home, do-set-ROI
d) fix optical flow failsafe (was not always triggering LAND when optical flow failed)
e) failsafe RTL vs LAND decision based on hardcoded 5m from home check (previously used WPNAV_RADIUS parameter)
Thanks for your testing!
Replies
Did you do an auto tune with rc9? What improvements did you notice? I still have 3.2 and it's a little squirrelly in the wind.
today I had several flights with -rc9.
Amazing! so extreme smooth and stable!
Only thing i recognize is, that Lidar not reacting during flight. I mean Sonar Range shows correct Value but if I'm flying over obstacles there is no reaction. Does anything changed between -rc8 and -rc9 regarding the rangefinder /lidar?
Andre,
There shouldn't be any changes to the control logic used for the sonar. There's a change in the the Lidar-Lite-V2 is now supported but that shouldn't have had any effect. If you can provide a dataflash log we can have a look. Txs for testing!
Hi Randy,
Thank you for have a look on the logs. One is with rc8 and working Lidar and one with rc9 no Lidar working. But in the Missionplanner the sonar shows correct value. I'm using the Lidar V1 (Build Feb15) with PWM.
AC33-rc8_Lidar-ok.bin
AC33-rc9_lidar_notOK.bin
I just had another flight and now the Lidar is working again. I don´t know why. I changed nothing!
Btw. It was very windy (12016KT gusting 24KT)) and the copter hold the position and was still extremely stable in the Air!
Thank you for that amazing Code!
Still getting "Error Compass Variance" and "BAD AHRS"
Randy can you take a look at the attached file and see if it gives you any clues?
Thanks,
Scott...
201508172035585.bin
Scott,
The compass values are very odd. They start off extremely high and then drop after about 20 seconds. Both compasses seem to be affected which points more towards a physical change in the environment rather than a software issue. Can you think of anything on the vehicle that might be causing a big increase in the magnetic interference for the first 20 seconds?
Also which flight controller are you using? I ask only so we can start to build up an idea as to whether it's related to specific flight controllers or not.
I'm using a pixhawk lite as well... With a 3DR GPS / Compass
Is it possible to do the MAG graphing in real time?
I'm getting the same thing on 2 different hawk lites, both only using the onboard compass.
I made two short testflights with rc9, to test batt_failsafe with AUAV-X2.
Batt_FS set to 10,8V and RTL.
At first flight flightmode was PosHold when Batt_FS triggert, but it switched to LAND instead to RTL.
The distance was >10m and hdop was 0,87.
I switched to STAB to stop landing, later i trigger RTL manualy.
At second flight flightmode was Drift when Batt_FS triggert and it switched to RTL, as it should be.
Also for me the problem to detect "usb_connected" with AUAV is not solved.
The bit in POWR/Flags is all the time "1" and i found at least these parts in the firmware that react on these bit:
ekf_check.ccp
// return immediately if motors are not armed, ekf check is disabled, not using ekf or usb is connected
if (!motors.armed() || ap.usb_connected || (g.fs_ekf_thresh <= 0.0f)) {
motors.ccp
// check battery voltage
if ((g.arming_check == ARMING_CHECK_ALL) || (g.arming_check & ARMING_CHECK_VOLTAGE)) {
if (failsafe.battery || (!ap.usb_connected && battery.exhausted(g.fs_batt_voltage, g.fs_batt_mah))) {
sensors.ccp
// check for low voltage or current if the low voltage check hasn't already been triggered
// we only check when we're not powered by USB to avoid false alarms during bench tests
if (!ap.usb_connected && !failsafe.battery && battery.exhausted(g.fs_batt_voltage, g.fs_batt_mah)) {
failsafe_battery_event();
Or the bit thats recorded in the Log not the same?
2015-08-22 11-48-34.bin
2015-08-22 11-56-47.bin