Copter-4.5.0 released!

Copter-4.5.0 has been released as the official/stable version for mullticopters and traditional helicopters and should appear in the ground stations (MP, QGC) within the next few hours. Alternatively (once the build completes) it can be manually downloaded from firmware.ardupilot.org.

There are no changes vs the final beta (4.5.0-beta4) but the changes vs 4.4.4 are in the ReleaseNotes and also copied below.

Changes from 4.4.4

  1. New autopilots supported

    • ACNS-F405AIO
    • Airvolute DCS2 onboard FMU
    • Aocoda-RC-H743Dual
    • BrainFPV RADIX 2 HD
    • CAN-Zero
    • CM4Pilot
    • CubeRed
    • Esp32-tomte76, esp32nick, esp32s3devkit
    • FlyingMoonH743
    • Flywoo F405 Pro
    • FlywooF405S-AIO with alternative IMUs
    • Here4 GPS as flight controller
    • Holybro 6X revision 6
    • Holybro6X-45686 with 3x ICM45686 IMUs
    • JAE JFB110
    • KakuteH7 using ICM42688
    • PixFlamingo (uses STM32L4PLUS CPU)
    • PixPilot-C3
    • PixSurveyA1-IND
    • QiotekAdeptF407
    • Sierra TrueNavIC
    • SPRacing H7RF
    • SW-Nav-F405
    • YJUAV_A6
    • YJUAV_A6SE, YJUAV_A6SE_H743
  2. Autopilot specific changes

    • 1MB boards lose features to save flash (Payload Place, some battery monitors, NMEA Output, bootloaders, Turtle mode)
    • CubeOrangePlus supports IMU high resolution sampling (works with ICM42688, ICM42652, ICM42670, ICM45686 IMUs)
    • F4 processors with only 1 IMU gain Triple Harmonic Notch support
    • F765-SE bdshot support on 1st 4 pin
    • F7 and H7 boards lose DMA on I2C ports (not required, limited DMA better used elsewhere)
    • FlyingMoonH743, FlyingMoonF427 2nd and 3rd IMU order swapped
    • HEEWING-F405 supports CRSF
    • MatekL431-RC bootloader added, DMA used for RC and GPS
    • PH4-mini, PH4-mini-bdshot, Swan-K1 and TBS-Colibri-F7 BRD_SER4_RTSCTS param conflict fixed
    • Pixhawk6C supports BMI088 baro
    • TMotorH743, Heewing-F405 serial parameter definitions fixed
  3. AHRS/EKF enhancements and fixes

    • AHRS_OPTIONS supports disabling fallback to DCM
    • BARO_ALT_OFFSET slews more slowly (was 20sec, now 1min)
    • EKF2 removed (can be re-enabled with Custom build server)
    • External AHRS support for multiple GPSs
    • InertialLabs INS-U external AHRS support
    • Lord external AHRS renamed to MicroStrain5
    • MAV_CMD_EXTERNAL_POSITION_ESTIMATE supports setting approximate position during dead-reckoning
    • Microstrain7 (aka 3DM-QG7) external AHRS support
  4. Driver enhancements

    • 3DR Solo supports up to 6S batteries
    • Airspeed health checks vs GPS use 3D velocity
    • BDshot on the first four channels of boards with F103-based IOMCUs (e.g. Pixhawk 6X)
    • Dshot on all IOMCU channels on all boards with an IOMCU (e.g. all CubePilot autopilots)
    • Dshot commands (e.g. motor reversal abd beeps) and EDT supported on IOMCU
    • DroneCAN battery monitors calculate consumed energy if battery doesn’t provide directly
    • DroneCAN RC and Ghost RC protocol support
    • EFI MAVLink driver
    • Extended DShot Telemetry support (requires BLHeli32 ver 32.10 or BlueJay, set SERVO_DSHOT_ESC=3 or 4)
    • GPS L5 band health override to enable L5 signal use (see GPS_DRV_OPTIONS)
    • GPS-for-yaw works at lower update rate (3hz minimum)
    • GSOF GPS supports GPS_COM_PORT parameter
    • Hirth ICEngine support
    • ICE option to enable/disable starting while disarmed
    • ICE support for starter via relay
    • IMUDATA serial protocol outputs raw IMU data on serial port (only available using custom build server)
    • Innomaker LD06 360deg lidar support
    • Intelligent Energy fuel cells new protocol support
    • IRC Tramp supports 1G3 bands A and B
    • IRC Ghost support
    • JAE JRE-30 radar
    • KDECAN driver rewrite (params moved to KDE_, works on all vehicles)
    • MCP9601 temperature sensor support
    • NanoRadar NRA24 rangefinder support
    • NeoPixelsRGB support
    • NoopLoop TOFSense, TOFSenseF-I2c rangefinder support
    • OSD shows flashing horizon when inverted
    • OSD2 support (e.g. second OSD)
    • QMC5883P compass support
    • Relay refactored to support RELAYx_FUNCTION, RELAY_STATUS message support added
    • Reventech fuel level support (extends existing analog driver, see BATT_FL_xx parameters)
    • RPLidarS1 360 deg lidar support and improved reliability for all RPLidars
    • SBF GPS supports yaw from dual antennas
    • Temperature sensor using analog voltages supported
    • Trimble PX-1 support added as a GPS
    • Winch driver enhancements including stuck protection, option for spin-free on startup
  5. Control and navigation changes and enhancements

    • Auto missions can always be cleared while disarmed (would fail if mission still running)
    • DO_ENGINE_CONTROL allows starting engine even when disarmed
    • DO_SET_MISSION_CURRENT command can reset mission (see Reset Mission field)
    • DO_SET_SERVO, DO_REPEAT_SERVO work with servo outputs set to RCInxScaled
    • Fractional Loiter Turn Support in missions
    • HarmonicNotch supports up to 16 harmonics
    • JUMP command sends improved text msg to pilot (says where will jump to)
    • MAV_CMD_AIRFRAME_CONFIGURATION can control landing gear on all vehicles
    • MOT_OPTIONS allows voltage compensation to use raw battery voltages (instead of current corrected voltage)
    • PID controllers get DFF/D_FF (derivative feed-forward), NTF (target notch filter index) and NEF (error notch filter index)
    • PID controllers get PDMX param to limit P+D output (useful for large vehicles and/or slow actuators)
    • PID notch filter configured via new filter library using FILT parameters
    • RTL mode uses RTL_CLIMB_MIN even if within cone slope (previously always climbed 2m)
  6. Copter specific enhancements

    • MOT_SPOOL_TIM_DN allows slower spool down of motors
    • Precision landing gets fast descent option (see PLND_OPTIONS)
    • Throw mode min and max altitude support (see THROW_ALT_MIN/MAX)
    • TKOFF_TH_MAX allows lower throttle during takeoff
    • ZigZag mode sends position target to GCS
  7. TradHeli specific enhancements

    • Arming checks improved
    • Motor test removed (it was non-functional)
    • OSD shows main rotor RPM
    • RPM based dynamic notch can track below reference (e.g. below INS_HNTCH_FM_RAT)
    • Thrust linearization for DDFP tails
    • Heli_idle_control.lua closed loop throttle control Lua script
  8. Parameters renamed

    • COMPASS_TYPEMASK renamed to COMPASS_DISBLMSK
  9. ROS2 / DDS support

  10. Camera and gimbal enhancements

    • Calculates location where camera gimbal is pointing (see CAMERA_FOV_STATUS)
    • CAMx_MNT_INST allows specifying which mount camera is in
    • Camera lens (e.g. live video stream) selectable using RC aux function
    • Follow mode can point gimbal at lead vehicle
    • Circle mode can point gimbal at circle center (see CIRCLE_OPTIONS)
    • Interval timer (for taking pictures at timed intervals)
    • Image tracking support (ViewPro only)
    • MAVLink Gimbal Protocol v2 support for better GCS integration
    • MNTx_SYSID_DFLT allows easier pointing gimbal at another vehicle
    • MOUNT_CONTROL, MOUNT_CONFIGURE messages deprecated
    • RangeFinder support (only logged, only supported on Siyi, Viewpro)
    • Pilot’s RC input re-takes manual control of gimbal (e.g. switches to RC_TARGETING mode)
    • Siyi driver gets Zoom control, sends autopilot attitude and time (reduces leans)
    • Video recording may start when armed (see CAMx_OPTIONS)
    • ViewPro driver (replaces equivalent Lua driver)
    • Xacti camera gimbal support
    • Zoom percentage support (for both missions and GCS commands)
  11. Logging and reporting changes

    • Battery logging (e.g. BAT) includes health, temperature, state-of-health percentage
    • CAM and MNT messages contain camera gimbal’s desired and actual angles
    • INS_RAW_LOG_OPT allows raw, pre-filter and post-filter sensor data logging (alternative to “batch logging”, good for filtering analysis)
    • PID logging gets reset and I-term-set flags
    • Rangefinder logging (e.g. RFND) includes signal quality
    • RC aux functions sorted alphabetically for GCS
    • RC logging (RCI, RCI2) include valid input and failsafe flags
    • RTK GPS logging includes number of fragments used or discarded
  12. Scripting enhancements

    • Autopilot reboot support
    • Baro, Compass, IMU, IOMCU health check support
    • Battery cell voltage bindings
    • Battery driver support
    • BattEsimate.lua applet estimates SoC from voltage
    • Camera and Mount bindings improved
    • CAN input packet filtering reduces work required by Lua CAN drivers
    • DJI RS2/RS3 gimbal driver supports latest DJI firmware version (see mount-djirs2-driver.lua)
    • EFI drivers for DLA serial, InnoFlight Inject EFI driver
    • EFI bindings improved
    • Fence support
    • Generator drivers for Halo6000, Zhuhai SVFFI
    • GCS failsafe support
    • Hobbywing_DataLink driver (see Hobbywing_DataLink.lua)
    • is_landing, is_taking_off bindings
    • led_on_a_switch.lua sets LED brightness from RC switch
    • MAVLink sending and receiving support
    • Mission jump_to_landing_sequence binding
    • mount-poi.lua upgraded to applet, sends better feedback, can lock onto Location
    • Networking/Ethernet support
    • Proximity driver support
    • Rangefinder drivers can support signal quality
    • revert_param.lua applet for quickly reverting params during tuning
    • RockBlock.lua applet supports setting mode, fix for battery voltage reporting
    • Serial/UART reading performance improvement using readstring binding
    • sport_aerobatics.lua rudder control fixed
    • Thread priority can be set using SCR_THD_PRIORITY (useful for Lua drivers)
    • Wind alignment and head_wind speed bindings
  13. Safety related enhancements and fixes

    • Arm/Disarmed GPIO may be disabled using BRD_OPTIONS
    • Arming check of compass vs world magnetic model to detect metal in ground (see ARMING_MAGTHRESH)
    • Arming check of GPIO pin interrupt storm
    • Arming check of Lua script CRC
    • Arming check of mission loaded from SD card
    • Arming check of Relay pin conflicts
    • Arming check of emergency stop skipped if emergency stop aux function configured
    • Arming failures reported more quickly when changing from success to failed
    • ARMING_OPTIONS allows supressing “Armed”, “Disarmed” text messages
    • BRD_SAFETY_MASK extended to apply to CAN ESCs and servos
    • Buzzer noise for gyro calibration and arming checks passed
    • Dijkstras object avoidance supports “fast waypoints” (see AVOID_OPTIONS)
    • FENCE_OPTIONS supports union OR intersection of all polygon fences
    • FLTMODE_GCSBLOCK blocks GCS from changing vehicle to specified modes
    • GCS failsafe action to switch to Brake mode (see FS_GCS_ENABLE)
    • Main loop lockup recovery by forcing mutex release (only helps if caused by software bug)
    • Rally points supports altitude frame (AMSL, Relative or Terrain)
    • SERVO_RC_FS_MSK allows outputs using RC passthrough to move to SERVOx_TRIM on RC failsafe
    • TKOFF_RPM_MAX aborts takeoff if RPM is too high (for cases where a propeller has come off)
  14. System Enhancements

    • CAN port can support a second CAN protocol on the same bus (2nd protocol must be 11 bit, see CAN_Dn_PROTOCOL2)
    • CAN-FD support (allows faster data transfer rates)
    • Crash dump info logged if main thread locksup (helps with root cause analysis)
    • Ethernet/Networking support for UDP and TCP server and client (see NET_ENABLED) and PPP (see SERIALx_PROTOCOL)
    • Firmware flashing from SD card
    • Linux board SBUS input decoding made consistent with ChibiOS
    • Linux boards support DroneCAN
    • Parameter defaults stored in @ROMFS/defaults.parm
    • SD Card formatting supported on all boards
    • Second USB endpoint defaults to MAVLink (instead of SLCAN) except on CubePilot boards
    • Serial over DroneCAN (see CAN_D1_UC_SER_EN) useful for configuring F9P DroneCAN GPSs using uCenter
  15. Custom Build server include/exclude features extended to include

    • APJ Tools
    • Brake mode
    • Bootloader flashing
    • Button
    • Compass calibration
    • DroneCAN GPS
    • ExternalAHRS (e.g. MicroStrain, Vectornav)
    • Generator
    • Highmark Servo
    • Hobbywing ESCs
    • Kill IMU
    • Payload Place
    • Precision landing
    • Proximity sensor
    • RC Protocol
    • Relay
    • SBUS Output
    • ToneAlarm
    • Winch
  16. Developer specific items

    • ChibiOS upgrade to 21.11
    • UAVCAN replaced with DroneCAN
    • AUTOPILOT_VERSION_REQUEST message deprecated (use REQUEST_MESSAGE instead)
    • PREFLIGHT_SET_SENSOR_OFFSETS support deprecated (was unused by all known ground stations)
    • MISSION_SET_CURRENT message deprecated (use DO_SET_MISSION_CURRENT command instead)
    • MISSION_CURRENT message sends num commands and stopped/paused/running/complete state
    • Python version requirement increased to 3.6.9
    • mavlink_parse.py shows all suported mavlink messages
    • COMMAND_INT messages can be used for nearly all commands (previously COMMAND_LONG)
  17. Bug fixes:

    • 3DR Solo gimbal mavlink routing fixed
    • Airspeed health always checked before use (may not have been checked when using “affinity”)
    • Auto mode fix for DO_CHANGE_SPEED commands placed immediately after TAKEOFF (previously were ignored)
    • Bootloop fixed if INS_GYRO_FILTER set too high
    • Button Internal Error caused by floating pin or slow device power-up fixed
    • CAN Compass order maintained even if compass powered up after autopilot
    • Compass device IDs only saved when calibrated to ensure external compasses appear as primary on new boards
    • Cut corners more by defaulting WPNAV_ACCEL_C to 2x WPNAV_ACCEL
    • Currawong ECU EFI does not send exhaust gas temperature
    • DJI RS2/RS3 gimbal reported angle fix
    • DO_SET_ROI, ROI_LOCATION, ROI_NONE bug fix that could lead to gimbal pointing at old target
    • Generator parameter init fix (defaults might not always have been loaded correctly)
    • GPS_TC_BLEND parameter removed (it was unused)
    • Guided mode protection against targets with NaN values
    • Guided mode yaw fix (vehicle might rotate too slowly)
    • Harmonic Notch gets protection against extremely low notch filter frequencies
    • IE 650/800 Generators report fuel remaining
    • INS calibration prevents unlikely case of two calibrations running at same time
    • LPS2XH Baro supported over I2C fixed
    • MatekH743 storage eeprom size fixed
    • MAVLink routing fix to avoid processing packet meant for another vehicle
    • Mount properly enforces user defined angle limits
    • MPU6500 IMU filter corrected to 4k
    • NMEA output time and altitude fixed
    • OSD gets labels for all supported serial protocols
    • OSD RF panel format fixed
    • RobotisServo initialisation fix
    • RPM accuracy and time wrap handling improved
    • Sagetech ADSB MXS altitude fix (needs amsl, was sending alt-above-terrain)
    • SageTechMXS ADSB climb rate direction fixed
    • SBUS out exactly matches SBUS in decoding
    • Serial port RTS pins default to pulldown (SiK radios could getting stuck in bootloader mode)
    • SERIALx_ parameters removed for ports that can’t actually be used
    • Servo gimbal attitude reporting fix
    • Servo output fix when using scaled RC passthrough (e.g. SERVOx_FUNCTION = RCinXScaled)
    • Siyi continuous zoom stutter fixed
    • Siyi gimbal upside-down mode fixed (avoid bobbing if upside-down)
    • SmartRTL premature “buffer full” failure fixed
    • ST24 RC protocol fixed
    • STM32L496 CAN2 init fix (AP_Periph only?)
    • Tricopter, SingleCopter, CoaxCopter fins centered if using BLHeli/DShot
    • VFR_HUD climb rate reports best estimate during high vibration events (previously it would stop updating)
    • Visual Odometry healthy check fix in case of out-of-memory
    • VTX_MAX_POWER restored (allows setting radio’s power)
    • Yaw limit calculations fixed

In addition these changes were made during the beta period. These are mostly bug fixes and minor enhancements

  1. New Autopilots and Board specific changes

    • YJUAV_A6Ultra
    • AnyLeaf H7
    • added PixFlamingo F7 board
    • support ICM42688 on BlitzF745AIO
    • fixed IMU orientation of CubeRedSecondary
    • enable all FPV features on SpeedyBeeF405WING
    • added MicoAir405v2
    • add Orqa F405 Pro
  2. System level changes

    • fixed float rounding issue in HAL_Linux millis and micros functions
    • fixed loading of defaults.parm parameters for dynamic parameter subtrees
    • fixed discrimination between GHST and CRSF protocols
    • fixed bug in DroneCAN packet parsing for corrupt packets that could cause a crash
    • fixed handling of network sockets in scripting when used after close
    • fixed bit timing of CANFD buses
    • improved robustness of CRSF parser
    • reduced memory used by DDS/ROS2
    • added filesystem crc32 binding in lua scripting
    • support visual odometry quality metric and added autoswitching lua script
    • allow for expansion of fence storage to microSD for larger pologon fences
    • allow FTP upload of fence and rally points
    • fixed vehicle type of ship simulation for ship landing
    • make severity level depend on generator error level in IE 2400 generator
    • speed up initial GPS probe by using SERIALn_BAUD first
    • allow NanoRadar radar and proximity sensor to share the CAN bus
    • added MR72 CAN proximity sensor
    • only produce *_with_bl.hex not *.hex in builds if bootloader available
    • fixed check for GPS antenna separation in moving baseline yaw
    • added GPS_DRV_OPTIONS options for fully parsing RTCMv3 stream
    • fixed logging of RTCM fragments in GPS driver
    • fixed video recording while armed
    • robostness and logging improvements for ExternalAHRS
    • fixed RPM from bdshot on boards with IOMCU
    • fixed accel cal simple to remove unused IMUs
    • fixed a cache corruption issue with microSD card data on H7 based boards
    • rename parameter NET_ENABLED to NET_ENABLE
    • fixed FDCAN labels for adding new H7 boards
    • avoid logging dma.txt to save CPU
    • fixed roll/pitch in viewpro driver
    • added band X in VideoTX
    • fixed quaternion attitude reporting for Microstrain external AHRS
    • add RPLidarC1 proximity support
  3. Copter specific changes

    • added filter to EKF variances for EKF failsafe
    • check fence breaches more often on copter for smaller overrun
    • improved copter follow mode at close distances
    • fixed default for FLTD for yaw
    • fixed reset_target_and_rate method in attitude control
  4. Camera and gimbal enhancements

    • wait for non-zero camera version in SIYI driver
  5. Miscellaneous

    • do relay parameter conversion for parachute parameters if ever has been used
    • broaden acceptance criteria for GPS yaw measurement for moving baseline yaw

Thanks very much to the developers and beta testers who contributes to this release!

21 Likes

Hi! After this release I have a problem with one of my scripts. I have a line “mount:set_angle_target(0, 0, 0, 0, false)” which is used to set my gimbal to the drone foward direction but it is not working anymore. I did not change anything in the code. Is this broken or do I have to change something? Thanks

What board are you using?

1 Like

Hi. I am using the Matek H743 mini V3. The script is working but the function “mount:set_angle_target” does not work

I wanted to say thank you for your work. The immense effort that you publish in open access for the benefit of enthusiasts all over the world
 It deserves a monument.

1 Like

i have the same, thank you for each developer

2 Likes

Great news! Finally, it comes :grinning:

1 Like

Hi @Andre_Freitas,

thanks for the report, I’ve added the mount:set-angle-target issue to the 4.5 issues list. My off-the-cuff guess is that we’ve had to remove gimbal support from this board and it may require using the custom build server to create a special binary which includes it but I need to investigate to be sure.

Hi @Andre_Freitas,

Re the problems with mount:set_angle_target() not working I’ve just tested the mount-test.lua example script on a CubeOrangePlus with scripting enabled and it worked OK. I’ve also tested that the MatekH743 includes both mount and scripting and it seems OK to me (of course I may have missed something).

Just to rule out a typo in the script could you try running the mount-test.lua example script?

Ok I found what is happening. I will try to explain as best as I can.

After testing mount-test.lua I was surprised the gimbal moved as expected as you said. However, in my script it would not work.

Then I found the difference between the scripts. mount-test.lua sends mount:set_angle_target constantly after each 100ms update and if I try to force gimbal movement with RC sticks it always corrects position after I release the sticks. However, my script only sends mount:set_angle_target once. If I change my script to send mount:set_angle_target constantly as in mount-test.lua it works.

I think this must be related to this change:

I can go around this “problem” by changing my script so we can not say this is a bug. However, it can change the behaviour of other users scripts so one must be aware.

Hi.
What about IRC 2.5w support?

Foxeer are sending me a powerful VTX to test - will check I can get the max power working

I am having some issues with SBUS_out to my gimbal. It stopped working with 4.5 firmware (for some reason, my gimbal only recognizes CH7, and I tried different types of gimbals).
I have needed to downgrade to 4.4.4 to work properly with my gimbal.
I did not changed any parameter, just upgrade to 4.5: stop working. Downgrade to 4.4.4: works again!

Pixhawk 6C + Tarot Flir gimbal

Hello,
I am trying to connect the S1 RPlidar sensor and it continues to give me a pre-arm error: PRX1 no data, I did upgrade my software to 4.5.0, and on mission planner I selected PRX1_Type as “5”, is that value correct?

Look forward to your support, thanks.

I had the TX from the lidar going to the RX of the cube board and RX of the lidar going to the TX of the cube board. My baud rate was set 256000 and I was connecting it to the serial3 connection (GPS1), I also tried telem2 (serial2) and had the same results with PRX1 no data.

Hi @Aki_Kalantri,

Setup and configuration info for the RPLidar is here on the wiki. It should certainly work so if it doesn’t please provide an onboard log.

Hi @Prof_Leandro,

Thanks for the report. I’ve added this to the 4.5.0 issues list so it won’t be forgotten.

Hello @rmackay9 , I used those steps and it did not work, I did power the S1 RPlidar sensor independently too.

Here is the google drive link to the log file: shared - Google Drive

My GPS systems are disconnected therefore you would see the other errors but the main error PRX1 no data remains. I tried putting a switch as well, to turn on and off the sensor, but it is not responding and spinning the avoidance sensor.

Hope this supports?

Hello @rmackay9 , I have also attached my parameter file if that supports too, I was working to get the serial2 connection working.
paramlist.param (18.5 KB)