Rover-4.2.0 has been released!

Rover-4.2.0 has been released as the official/stable version and should be available for download within the next few hours using MP or QGC (or you may download directly from

Because of the built-in parameter upgrade feature, there should be no need to backup and restore parameters as part of the upgrade. If you later need to revert to 4.1.x, please use MP’s Install Firmware screen’s “All Options” link or manually download the 4.1.x binary from


  • Some setups using BLHeli_S ESCs may not arm or spin. If you notice problems with BLHeli_S ESCs please revert to 4.1.5 and wait for 4.2.1 which we hope will resolve these issues.
  • Telemetry radios that do not understand MAVLink2 may fail to work unless SERIALx_PROTOCOL is set to “1”.
  • If GPIO pins (used may be used for buttons, camera triggers, relays, etc) do not work, the issue is likely that the appropriate SERVOx_FUNCTION parameter must be set to -1. Please see this wiki page for more details.

The long list of changes vs 4.1.5 can be found in the release-notes and also copied below.

  1. AHRS/EKF improvements
    a) EKF startup messages reduced
    b) GPS<->Opticalflow automatic switching improved (see ahrs-source-gps-optflow.lua script)
    c) LORD Microstrain CX5/GX5 external AHRS support
    d) ModalAI VOXL non-GPS system supported (set VISO_TYPE=3, uses ODOMETRY mavlink msg)
  2. Rover specific enhancements
    a) AIS support
    b) Attitude control gains defaults reduced
    - ATC_STR_ANG_P reduced to 2
    - ATC_STR_RAT_MAX reduced to 120 deg/sec
    - ATC_STR_ACC_MAX reduced to 120 deg/sec
    - ATC_ACCEL_MAX reduced to 1m/s
    c) Boats loiter by default at end of mission (see MIS_DONE_BEHAVE parameter)
    d) DPTH message supports multiple rangefinders
    e) Omni motor saturation improvement (scaling applied evenly to all motors)
    f) Pivot turn overshoot reduced (would happen with bad combination of ATC_STR_ACC_MAX and ATC_STR_ANG_P)
    g) Speed control improvement when motor hits limits (especially when MOT_SLEWRATE was set to a low number)
    h) Speed control PID logging and reporting includes FF
    i) Stops maintain zero turn rate (previously steering was straight but trim could lead to turning)
    j) Torqeedo motor support
  3. Control and flight mode enhancements
    a) Auto supports up to 100 DO_JUMP commands on high memory boards
    b) Follow mode supports FOLLOW_TARGET message
    c) Pause and continue support (GCS changes are still pending)
  4. Custom build server support (see
  5. Lua scripting improvements
    a) ahrs::get_location replaces get_position (get_position still works for now)
    b) Auto support for NAV_SCRIPT_TIME commands (Lua within Auto)
    c) Frame string support (allows scripting based frame to display custom description after startup)
    d) Parameter support (no need to always use SCR_USERx)
    e) Servo output control by channel number (previously was only possibly by specifying the SERVOn_FUNCTION value)
    f) Scripting heap size increased to 100k on F7/H7
    g) Script logged to onboard log (can be disabled by setting SCR_DEBUG_OPTS)
  6. New autopilots supported
    a) AirLink
    b) BeastF7v2, BeastH7v2
    c) FlyingMoon F407 and F427
    d) JHEMCU GSF405A
    e) KakuteH7, KakuteH7Mini
    f) MambaF405US-I2C
    g) MatekF405-TE
    h) Matek F765-Wing-bdshot
    i) ModalAI fc-v1
    j) PixC4-Jetson
    k) Pixhawk5X
    l) QioTekZealotH743
    m) RPI-Zero2W
    n) SPRacingH7 Extreme
    o) Swan-K1
  7. Safety improvements
    a) Button, Relay and RPM GPIO pin conflict pre-arm check improved
    b) Dijkstra’s avoidance performance improvements including converting to A*
    c) Motor PWM range always uses MOT_PWM_MIN/MAX (if these are not set, they are defaulted to RC3_MIN/MAX values)
    d) Parachute option to leave servo in open position (see CHUTE_OPTIONS parameter)
    e) Parachute released arming check added
    f) Pre-arm check of IMU heater temp
    g) Pre-arm check of rangefinder health
    h) Pre-arm check of throttle position skipped if PILOT_THR_BHV is “Feedback from mid stick”
  8. Sensor driver enhancements
    a) ADIS16470, ADIS16507 and BMI270 IMU support
    b) Airspeed sensor support (reporting only, not used for estimation or control)
    c) AK09918 compass support
    d) Battery monitor supports voltage offset (see BATTx_VLT_OFFSET)
    e) BATT_OPTIONS supports sending resting voltage
    f) Benewake TFMiniPlus I2C address defaults correctly
    g) Buzzer can be connected to any GPIO on any board
    h) Compass calibration (in-flight) uses GSF for better accuracy
    i) CRSFv3 support, CSRF telemetry link reports link quality in RSSI
    j) Custom compass orientation for DroneCAN compasses
    k) Cybot D1 Lidar
    l) DroneCan (aka UAVCAN) battery monitors support scaling (see BATTx_CURR_MULT)
    m) DroneCan (aka UAVCAN) GPS-for-yaw support
    n) DShot uses narrower bitwidths for more accurate timing (allows BLHeli BlueJay to work)
    o) Electronic Fuel Injection support incl Lutan EFI
    p) FETtecOneWire resyncs if EMI causes lost bytes
    q) IMU heater params renamed to BRD_HEAT_xxx
    r) INS_NOTCH parameters renamed to INS_HNTC2
    s) Landing gear enable parameter added (see LGR_ENABLE)
    t) Lightware SF40C ver 0.9 support removed (ver 1.0 and higher still supported)
    u) Matek H743 supports ICM42688
    v) Maxbotix serial sonar driver support RNGFNDx_SCALING parameter to support for varieties of sensor
    w) MPPT solar charge controller support
    x) MTK GPS driver removed
    y) Optical flow in-flight calibration
    z) Ping200x support
    aa) Proximity sensor min and max range (see PRX_MIN, PRX_MAX)
    ab) QSPI external flash support
    ac) uLanding (aka USD1) radar provides average of last few samples
    ad) bUnicore NMEA GPS support for yaw and 3D velocity
  9. Other System enhancements
    a) Board ID sent in AUTOPILOT_VERSION mavlink message
    b) Compass calibration stick gestures removed
    c) DO_SET_CAM_TRIG_DIST supports instantly triggering camera
    d) DJI FPV OSD multi screen and stats support
    e) GPIO pins configured by setting SERVOx_FUNCTION to -1 (also see SERVO_GPIO_MASK. BRD_PWM_COUNT removed)
    f) GPIO pin support on main outputs on boards with IOMCU
    g) GyroFlow logging (see LOG_BITMASK’s “VideoStabilization” option)
    h) Firmware version logged in VER message
    i) Log and monitor threads stack size increased
    j) SD card format via MAVLink
    k) Serial port option to disable changes to stream rate (see SERIALx_OPTIONS)
    l) VIBE logging units to m/s/s
  10. Bug fixes
    a) Arming checks ignore SERVOx_MIN, MAX if setup as GPIO pin
    b) Auto mode infinite loop with nav commands that fail to start fixed
    c) Balance bot stands in acro mode even with no GPS
    d) Battery remaining percentage fixed when using Sum battery
    e) BeastH7v2 BMI270 baro support
    f) Blended Z axis accel calculation fix when not using first IMU
    g) BLHeli passthrough reliability improvements
    h) Compass learning (inflight) fixed to ignore unused compasses (e.g. those with COMPASS_USE = 0)
    i) DShot reversal bug with IOMCU based boards (see SERVO_BLH_RVMASK)
    j) DShot commands fixed (could cause random motor movements)
    k) EKF resets due to bad IMU data occur at most once per second
    l) EKF3 accel bias fixed when an IMU is disabled
    m) EKF3 variance constraint fix used to prevent “ill-conditioning”
    n) GPIO pin fix on CubeOrange, F4BY, mRoControlZeroF7, R9Pilot
    o) GPS blending fix that could have resulted in the wrong GPS being used for a short time
    p) Log file list with over 500 logs fixed
    q) MAVlink2 serial ports always send MAVLink2 messages (previously waited until other side sent MAVLink2)
    r) Omnibusf4pro bi-directional dshot fix
    s) POWR log message MCU voltage fix (min and max voltage were swapped)
    t) Proximity sensor fix when using MAVLink lidars in non-forward orientations
    u) RC handover between IOMCU RC input and a secondary RC input on a serial port fixed
    v) Real-Time-Clock (RTC) oldest possible date updated to Jan-2022
    w) RPM sensor fix to avoid “failed to attach pin” spam to GCS
    x) Sailboats loiter fix (could get stuck pointing directly into the wind)
    y) SPRacingH7 firmware install fix
    z) STM32 DMA fatal exceptions disabled (caused watch dogs reboots with zero information)

Thanks very much to all the beta testers and developers who contributed so much time and effort to this release!


Are S curves supported in this version?


No, S-Curves were left out of 4.2 because they were not quite ready in time. They have been merged to master however so loading “latest” from MP (or QGC) will include them.

1 Like

There is no such function in this version, and will it appear?

Or is that what it is?

Hi @McKey,

That change hasn’t been merged to master so it’s also not included in 4.2.

@rishabsingh3003 you want to have another go at trying to get this into master?

Hi Randy,

custom firmware builder no works for me.
Always says:

compilation terminated due to -Wfatal-errors.

Hi @rmackay9 , where can I find out a bit more about this particular change?

Hi @pauljeff,

Here’s the wiki page for the solar power controller we added support for.

Ahh nice one, thanks

Congrats to the developer team!!!
Thank for all the effort and time spend on this!

1 Like