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 firmware.ardupilot.org)

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 firmware.ardupilot.org.

Warnings:

  • 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 https://custom.ardupilot.org)
  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!

5 Likes

Are S curves supported in this version?

@Chris_Anderson1,

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?
Thanks,
Paul

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

Hi. Could somebody please clarify what is meant in the release notes.

  1. New autopilots supported
    ~
    m) RPI-Zero2W
    ~

I have not found any other references for the RPI-Zero2W in the documentation.
If this is a flight controller, what documentation is there on how to use it?

I have two rovers using a Raspberry Pi 3 and ZeroW as companion computers to an Omnibus F4 V3 PRO.

If another setup is possible, I would be interested in investigating this.
Thank you.

@mick,

I’ve never personally used this autopilot but @MHefny and @lucasdemarchi were involved with the PR to add support so perhaps they have some extra info.

OBAL board can run on RPI-Zero2W and other Raspberry PI boards.

Ardupilot Linux part could not identify RPI-Zero2W correctly, same for RPI CM4, so we added this part and updated some Linux-HAL code parts particularly addresses to access GPIO & DMA.

1 Like

Thank you for the clarification.

1 Like

Hello, how can I disable loiter mode after getting WP. And replace it with manual or hold mode. MiniPix v1.2

Hi @muzykxd,

It should only Loiter after getting to a WP if the vehicle is setup as a boat. Maybe you’re saying that you want the boat to just drift when it reaches the waypoint? That’s not currently possible to configure but we could possibly support that somehow. Could you explain why this behaviour useful? Maybe we can find another way to get it to do what you want… for example a NAV_DELAY command might work although I’d need to test.

Because the boat remains on the spot after reaching WP, I do not have any information on the tablet that the goal has been achieved. In others I saw that the boat signaled “hold mode” on the tablet after reaching the destination. I set in miss done behavior hold, but when the boat reaches the point, it still has the auto mode on and tries to stay on it by turning in different directions. Changing the frame type to the rover will not help? Or uploading an older Rover.
In general, the boat does not go into the miss done behavior mode. So, after reaching the destination, it is still in auto mode. I thought that the boat could not achieve the goal, so it did not switch to the miss done behavior mode, but when I set the radius WP even to 4m, the boat was approaching it and turning on it, trying to keep the WP, but without changing the mode. Auto mode was still displayed on the application instead of a loiter, since the boat was no longer going to the point, but was trying to keep it.

Question for GPIO parameter, SERVOx_FUNCTION for GPIO signal input/out for control , if I use GPIO 50, 51, 52, it means SERVO1_FUNCTION = -1, and so on?
what is order SERVO1 → AUX GPIO 50, SERVO2 → AUX GPIO 51 … on CubeBlack

I have figured out Servo9 to Servo14 is for AUX 50 - 55

1 Like