Copter-4.1.0 released as the official (default) version


Copter-4.1.0 has been released as the official (aka default) version for multicopters and traditional helicopters and can be downloaded using MP, QGC or directly from firmware.ardupilot.org.

The huge number of changes vs 4.0.7 are in the release notes and also consolidated below.

  1. AHRS/EKF enhancements and fixes:
    a) EKF3 is default estimator (EKF2 is available as an option)
    b) EKF3 IMU offset fix (vehicle’s reported position was slightly incorrect if INS_POS_XYZ params set)
    c) EKF3 fix to init of wind speed variance
    d) External AHRS/IMU support (e.g. VectorNav)
    e) Gaussian Sum Filter (GSF) allows emergency yaw correction using GPS
    f) GPS-for-yaw setup and reliability improved including
    i) alt estimate more robust
    ii) arming check added
    iii) position and yaw from different GPSs
    iv) EKF3 fix to reset yaw after GPS-for-yaw recovers
    g) Origin altitudes consistent across cores even if user takes off with no GPS lock
    h) Optical flow divide-by-zero protection (issue only found in simulator)
    i) Lane switching logic improvements
    j) Long distance travel supported (thousands of km) including double precision EKF and moving origin
    k) Longitude wrap fixed (allows autonomous flights as longitude wraps between -180 and 180 deg)
    l) Position jump fixed during GPS glitch and GPS/Non-GPS transitions
    m) PreArm check of roll/pitch and yaw angle difference fixed
    n) Sensor affinity (improves sensor failure redundancy)
    o) Source switching for GPS/Non-GPS transitions (see EK3_SRCx_ parameters)
    p) Yaw estimation and reliability improvements
    q) Wind speed estimation and barometer interference compensation
  2. Control improvements:
    a) Acro “air mode” support (see ACRO_OPTIONS)
    b) ACRO_Y_EXPO supports negative numbers (-0.5 to +1)
    c) ATC_RATE_Y_MAX applies to all modes including Loiter
    d) Attitude and altitude control changes to support higher lean angles
    e) Auto mode arming and takeoff (see AUTO_OPTIONS)
    f) Auto mode Terrain following less bouncy and RNGFND_FILT param added for configurable filtering
    g) Circle options to face direction of travel and/or init at circle center (see CIRCLE_OPTIONS)
    h) DO_LAND_START command support for landing sequences
    i) Guided mode acceleration control
    j) Guided mode supports yaw control during takeoff
    k) Guided mode GUID_OPTIONS to ignore pilot yaw during takeoff
    l) Guided mode option (GUID_OPTIONS) to configure how SET_ATTITUDE_TARGET’s thrust field is interpreted
    m) Guided mode accepts higher speed and accel targets (no longer limited by WPNAV_ parameters)
    n) Horizontal Velocity controller gets feed forward and logging
    o) Position controller update to remove hard-coded Alt Hold velocity derivative and other enhancements
    p) Position control improved during loss of yaw control by using thrust vector with heading
    q) PSC_VELXY_FILT renamed to _FLTE, PSC_VELXY_D_FILT renamed to _FLTD
    r) Rate PID slew limiting to to detect and suppress oscillations
    s) SCurves for waypoint navigation
    t) Throw mode waits for throttle up to improve reliability
    u) WPNAV_SPEED param changes take immediate effect in Auto
    v) WPNAV_SPEED change with ch6 tuning knob feature gets divide-by-zero protection
    w) WPNAV_SPEED_DN handles negative values
    x) Yaw imbalance check
  3. BLHeli improvements and fixes
    a) Bi-directional ESC telemetry fixes
    b) Bi-directional dshot 1200 supported
    c) Bi-directional support on Pixhawk4, CUAVv5, CUAVv5-Nano
    d) Buzzer tone disabled during motor test to remove bad interation
    e) Control digital with non-digital outputs fixed
    f) Sends 0 always when disarmed (protects against motors spin while disarmed due to misconfiguration)
    g) Support dshot commands for LED, buzzer and direction control
    h) I/O board autopilots (CubeBlack, CubeOrange, etc) fixed
    i) Passthru reliability improved
    j) BLHeli Auto only affects telemetry passthrough to ease setup
    k) fix that could cause failure to boot
  4. Object avoidance:
    a) BendyRuler hesitancy improvements
    b) BendyRuler supports vertical movement
    c) Intel Realsense 435/455 camera support (companion computer required)
    d) Simple avoidance accel limited (see AVOID_ACCEL_MAX parameter)
    e) Simple avoidance backs away from obstacles (see AVOID_BACKUP_SPD parameter)
    f) Simple avoidance enabled above min altitude (see AVOID_ALT_MIN)
    g) Simultaneous Dijkstra and BendyRuler path planning
    h) Obstacle database now 3D
    i) Obstacle filtering improvements
    j) Obstacles ignored in cylinder around home (see OA_DB_ALT_MIN) and near ground (see PRX_IGN_GND)
    k) OBSTACLE_DISTANCE_3D mavlink message supported
    l) Proximity Avoidance auxilary switch also disables avoidance using upward facing lidar
    m) Proximity sensor pre-arm check disabled if avoidance using proximity sensors is disabled
    n) Proximity sensor status (used for object avoidance) fixed when using only upward facing lidar
  5. Compass enhancements
    a) In-flight learning improvements (see COMPASS_LEARN = 3)
    b) Large vehicle calibration support (e.g. point vehicle north and push button in MP)
    c) Prioritisation (see MP’s compass prioritisation table)
    d) Custom orientations
  6. Intel RealSense T265 support (see VISO_TYPE = 2, companion computer required)
    a) Position and velocity from external sources accepted at up to 50hz
    b) Resets from external sources accepted
    c) VisualOdom feature removed from 1MB boards
  7. New autopilots and autopilot specific improvements
    a) CubeBlack supports external IST8308 compass
    b) CubeOrange serial 1/2 DMA fixed
    c) CUAV X7/Nora supports ICM42688P IMU
    d) FlywooF745, FlywooF745 Goku Nano
    e) Holybro Pix32v5
    f) iFlight BeastF7 and BeastH7
    g) KakuteF4Mini SBUS fix
    h) MatekF405-bdshot NeoPixel LEDs re-enabled on PWM5
    i) PixC4-Pi and PixC4-Jetson
    j) Pix32v5 USB product string fixed and IMU heater enabled
    k) Pixhawk4 mini safety switch fix
    l) Pixhawk4 blue and red LEDs swapped
    m) QioTekZealotF427, QioTekZealotH743
  8. IMU improvements:
    a) temperature calibration
    b) faster gyro sampling on high performance autopilots (F7 and faster, see INS_GYRO_RATE)
  9. Logging improvements:
    a) Auxiliary function logging shows how it was invoked (switch, button or scripting)
    b) EKF not affected by logging start (EKF could become unhealthy due to timing delays)
    c) Download speeds improved on F765 and F777 based boards (USB buffers increased)
    d) Forced arm creates logs
    e) Memory leak when finding last log fixed
    f) Position controller PSC/Z logging changed to PSCN/E/D and includes “desired”
    g) Replay/DAL RMGH log message format fix
    h) SD card slowdown with early mounts fixed
  10. New drivers and driver specific improvements
    a) AllyStar NMEA GPS
    b) BMM150 as external compass
    c) CRSF and SRXL2 RC protocols
    d) GY-US32-v2 lidar
    e) HC-SR04 lidar
    f) Intelligent Energy hydrogen fuel cell
    g) Lightware SF45b lidar
    h) MSP protocol support (and DJI DPV systems)
    i) RichenPower generator
    j) Rotoye smart battery
    k) RunCam Split 4 and RunCam hybrid support (see RUNCAM_TYPE parameter)
    l) Smart Audio
    m) SMBus batteries up to 12 cells
    n) USD1 CAN radar
  11. Harmonic Notch Improvements
    a) Bi-directional dshot support
    b) CAN ESC support (KDECAN, PiccoloCAN, ToshibaCAN, UAVCAN)
    c) Double notch support (see INS_HNTCH_OPTS = 1)
    d) In-flight FFT (see INS_HNTCH_MODE = 4, FFT_* params)
    e) In-flight learning of throttle notch using in-flight FFT
    f) Notch per motor support using ESC telemetry and notch-per-peak with FFT (INS_HNTCH_OPTS = 2)
    g) Notch slewing and increased update rate to avoid “shot” noise
    h) RPM status driven from harmonic notch input
  12. Scripting enhancements:
    a) Button, Proximity, RangeFinder and RPM sensor support
    b) DO_ mission commands can be triggered from scripts
    c) Circle mode radius and setting rate support
    d) Guided mode control improvements including acceleration control
    e) I2C sensor driver support (i.e. allows writing sensor drivers in Lua)
    f) Logging (i.e. allows Lua scripts to write to onboard logs)
    g) Mission item read support
    h) Motor drivers support (used for walking robots)
    i) Position, velocity and direct steering & throttle control while in Guided mode
    j) Pre-arm checks (i.e. allows writing custom pre-arm checks in Lua)
    k) ROMFS support (allows writing scripts to ROMFS instead of SD Card)
    l) Serial port support (allows reading/writing to serial port from Lua)
    m) set home and get EKF origin support
    n) ToshibaCAN ESC usage time read support
    o) Lua scripts can be placed in root of ROMFS (only relevant for developers)
  13. TradHeli improvements and fixes
    a) Conventional and compound helicopter SITL dynamic models improved
    b) Guided mode takeoff fixed
    c) Intermeshing rotor and coaxial rotor support added to Dual heli frame
  14. Other enhancements:
    a) 6DoF frame support
    b) Baro parameters start with BARO_ (was GND_)
    c) Barometers get device id for easier identification
    d) ChibiOS upgrade to 20.3
    e) CRSF passthrough for Yaapu widget
    f) CSRF telemetry improvements to power setting and pass param requests more quickly
    g) DShot rates increased (see SERVO_DSHOT_RATE)
    h) Filesystem/MAVFTP expansion including @SYS for performance monitoring
    i) FLOW_TYPE parameter hides/displays other FLOW_ parameters
    j) FrSky telem reports failsafe, terrain alt health and fence status
    k) GCS failsafe timeout configurable
    l) GPS_DRV_OPTIONS allows forcing UBlox GPS to 115200 baud
    m) MAV_CMD_DO_REPOSITION support
    n) MAVFTP performance improvements
    o) OSD gets fence icon
    p) Pre-arm check of FLTMODE_CH and RCx_OPTION conflict
    q) RunCam OSD and camera control
    r) Septentrio GPSs support GPS_SBAS_MOD parameter
    s) Serial option to disable forwarding of mavlink to/from a port
    t) Serial ports may use shared DMA for better performance
    u) Spektrum VTX control
    v) Spektrum SRXL2 listen-only device support
    w) @SYS/tasks.txt, dma.txt, uart.txt for near real-time inspection of system performance
    x) Vibration logged for all IMUs
  15. Bug fixes:
    a) Barometer averaging fixes for BMP380, BMP280, LPS2XH, SPL06 drivers
    b) Beacon driver protected from requests for data for non-existant beacons
    c) CAN GPS ordering fix (previously order could switch meaning GPS_POS_ params were used on the wrong GPS)
    d) CAN threading fix to resolve potential lockup when lua scripts use CAN
    e) ChibiOS scheduling slip workaround to avoid occasional 60ms delays found on MatekH7
    f) Circular complex fence radius not truncated
    g) Declination automatic lookup rounding fix (caused inaccurate declination in some parts of world)
    h) Display re-enabled on 1MB boards
    i) ESC telemetry fixes including motor index on boards with I/O mcu
    j) I/O MCU reset fix if user had disabled safety switch (recovery from reset would leave motors not spinning)
    k) IMU semaphore fix to avoid occasional corruption
    l) KDECAN output range, motor order and pre-arm check messages fixed
    m) Loiter aggressive deceleration fixed (occured if vehicle was previously switched out of Loiter during decleration)
    n) Loiter speed fixed with low LOIT_ACC_MAX values
    o) MOT_THST_EXPO limits fixed to allow values between -1 and +1 (was 0.25 to +1)
    p) MSP temperature scaling fixed
    q) OSD overwrite and nullptr check fix
    r) Pilot yaw rate input during arming ignored
    s) PreArm check of roll/pitch and yaw angle difference fixed
    t) Precision landing init fix (if pilot took control, subsequent landings might not trying to land on target)
    u) Rangefinder initial buffer size and baudrate fix (affected Aintein US-D1 radar)
    v) RCOut banner displayed at very end of startup procedure to avoid invalid outputs
    w) RM3100 compass scaling fixed
    x) Scheduling slip workaround to avoid occasional 60ms delays found on MatekH7 (ChibiOS only)
    y) Scheduler fix of premature run of tasks every 11 minutes
    z) Serial port DMA contention heuristics improved (reduces chance of delays writing to serial devices)
    aa) Serial port performance improvements using FIFO on H7 boards
    ab) Serial port info file (@SYS/uarts.txt) easier to understand
    ac) Serial8 parameter description fixed
    ad) Tricopter tail servo alway uses regular PWM (fixes use with BLHeli motors)
    ae) Visual odometry yaw alignment fixed
    af) WPNAV_RADIUS never less than 5cm

There should be no need to re-tune the vehicle or save/reload parameters because the required parameter conversions are done automatically as part of the upgrade.

If you find issues with this release please create a new topic in this Cotper-4.1 category and if possible include an onboard log (aka .bin) file.

If necessary you can revert your vehicle to Copter-4.0.7 (or any earlier version) using Mission Planner’s Install Firmware screen’s “All Options” link.

Thanks again to the huge effort put in by the developers and beta testers!

32 Likes

Nice work! Were you able to get in the PRX_MIN parameter we were talking about? Thanks

@Gromitvt10, no, I’m afraid that change hasn’t been made in either “latest” or 4.1.x.

When updating from QGroundControl there have been 2 targets for “Matek H743” both are called exactly the same. Why is that? Greetings

One should be the -bdshot version

Thanks for this answer!

What happens if I accidentally use the wrong one? Is the dshot capability in the -bdshot version additional (and the rest all the same)? Or does the -bdshot omit some features the standard version has?

(Would be helpful if these different version could be distinguished from the description.)

They are mostly the same, the differences are that the -bdshot version only can beep on the buzzer output and PWM9-12 are not dshot capable

2 Likes

Once again thank you Randy and the team for doing all this great work to make this hobby possible for the likes of me

2 Likes

After upgrading from 4.0.7 to 4.1.0, my altitude control becomes very slow. What’s the matter?
PILOT_ACCEL_Z=1000
PILOT_SPEED_UP=500
PILOT_SPEED_DN=300

2 Likes

@rmackay9 , OK, do you know when it will be added? Thanks

Hoping to diagnose from a pic?

Hi. Can i use external imu for yaw pitch roll of photos in auto mission ( Aerial Mapping ) ?

@Gromitvt10,
It’s hard to say when the PRX_MIN will be implemented but here is the issue to track. AP_Proximity: add MIN and MAX valid distance values · Issue #6583 · ArduPilot/ardupilot · GitHub

This should be caused by the modification of a parameter in the new version, and the relevant parameters are listed. What else to do? This is not like a program vulnerability. It should be that the new parameters are not set, but I can’t find them

@tadiwuh

Ok, if all the relevant parameters are there, it’ll be solved for sure :slight_smile:

p.s. maybe add the color of the drone to help diagnose

Yaapu telemetry script stop working on 4.1 :frowning:

Works just fine here with CubeBlack and X10S.