Copter-4.0.4-rc1 released for beta testing

Copter-4.0.4-rc1 has been released for beta testing and can be downloaded from the ground stations (MP, QGC, etc) using the beta firmwares link.

This release has quite a few bug fixes and enhancements which are listed in the ReleaseNotes and also copied below.

Changes from 4.0.3

  1. Bug Fixes:
    a) I/O CPU fix so safety remains off after inflight reboot (Critical fix)
    b) Acro mode yaw expo supports values under 0.5 (see ACRO_Y_EXPO param)
    c) Auto mode Loiter-Turn commands points towards center
    d) Change-Speed commands applied smoothly
    e) Compass scaling factor threshhold increased
    f) EKF compass variance reporting to GCS made consistent with onboard logs
    g) Gimbal control using RC input ignores RCx_TRIM param
    h) Holybro Durandal buzzer fix
    i) Parameter reset fix caused by Eeprom race condition
    j) Read-only parameter write failure msg only sent once to GCS
    k) Compass declination can be overriden with COMPASS_DEC param (and EKF stops using world magnetic tables)
    l) Terrain database (SRTM) file fix (will cause all terrain to be reloaded after upgrade)
  2. Bootloader update to reduce chance of param resets during firmware load
  3. Compass ordering and prioritisation improvements
  4. Flight controller support:
    a) CUAV-Nora
    b) CUAV-X7
    c) MatekSys H743
    e) mRo Nexus
    d) R9Pilot
  5. GPS moving baseline (aka Yaw from GPS) for UBlox F9 and M9 GPSs (see wiki here)
  6. Graupner Hott telemetry support
  7. Landing detector filter improvement improves detection on hard surfaces
  8. Object Avoidances Fixes and improvements:
    a) BendyRuler runs more slowly to reduce CPU load and reduce timeouts
    b) Dijkstra’s avoidance works with more fence points
    c) Proximity drivers (i.e. 360deg lidar) simplified to reduce CPU load
  9. ProfiLED LEDs support
  10. Smart Battery improvements:
    a) Cycle count added
    b) NeoDesign battery support
    c) SUI battery support
  11. Other enhancements:
    a) Betaflight X frame type support
    b) Landing gear auto deploy/retract configurable using LGR_OPTIONS param
    c) MOT_PWM_MIN/MAX pre-arm check (checks fail if only one has been set)
    d) Solo gimbal and camera control improvements
    e) USB IDs updated to new ArduPilot specific IDs

Because this is quite a large change please be careful when testing and be ready to re-take control in a manual mode. Also if you have any problems please report them below or create a new topic (perhaps prefix the topic subject line with "AC404: " so it’s easier for me to pickup which issues are releated to this beta.

Thanks very much in advance to those who can help us with this testing!


Hey @rmackay9
Installed this on CubePurple. The default IMU heater temp says 45.

I have loaded this firmware on a Pixhawk 4 Mini and can take it out for flights in the next couple days. Anything specific I should test for?

Would be nice to know what are sui and neo smart batteries.
Great job as usual.


Tried to write a fence to the aircraft (PH4-Mini) and it returned this error (which subsequently crashed MP). Was working fine in 4.03 - so may be an issue regarding this new beta.

Could you please elaborate on the solo gimbal improvements? Does it apply to all mavlink controlled gimbals?

Will the yaw from the F9 and M9 GPS be able to replace a compass module?

For the parameter reset problem on orange cube, are there any additional changes? Because we still had with the 4.04 dev and the bootloader upgrade random resets. And the bootloader seems to be the same as 4.04dev.

Hi guys, just an observation on then new compass order option it may be worth adding labels for Compass 1,2 and 3. While logic says the top one is 1 users may not take it that way.


HOTT telemetry doesn’t work in this version. It was working without problems in 4.04 dev firmware from 21.05.2020

1 Like

In compass tab in Mission Planner I have 3 compasses but I think I should have 2. I have one in Cube Orange and one in Drotek Sirius GPS which is connected by I2C.

1 Like

There is one on the SPI bus likely in the Flight Controller IMU if it’s an AK09916. Which FC?

Hi, thanks to all the developers who are doing this masterpiece :raised_hands:
Question, was the fix for NTF_LED_LEN added to this pre release?

1 Like

Hey all,

Went out and did about 2 hours of flights on my S500 w/ PX4-Mini loaded w/ the beta. Flew great in all modes I used (stabilize, alt-hold, loiter, auto, RTL, land) and found no issues at all.

The compass page structure is a little bit confusing to me. It may just be because I am so used to the older format, but some documentation regarding the new screen may be helpful.


maybe some wording in compass page to help us would be good

4.04-rc1 Compass offset auto missing in MP… Compass calibration fails to save if you hit accept. compass calibration looses offset information. compass fails to calibrate under relaxed. Radio fails when GPS is unhealthy.

1 Like

I think the new page is great

This is how it works:

System tells you at the top what compass chips it found and on which bus. With the arrows on the right you can bring whatever compass you want on top or on bottom. Compass will be 1,2 and 3 depending on the list you can modify in descending order.
Than on the bottom you can tell the system wich of the 3 compasses to use or not.

So to summarize: List on top can move up and down compasses to make them 1,2 and three in descending order, than at bottom of list tell the system wich compasses to use, than calibrate.

I think it is years ahead of old way of handling compasses. Now you can tell the system exactly wich compass is 1, 2 and 3 and wich to use.

Basicly the system is telling you: “hey i found this compasses, please tell me wich one is first, second and third and which to use”.

If you have any more doubts ask please.


I agree with you 100%,but there are people out there that do not know which is correct order,so maybe revert back to the old way and have this as an advance option,as lots on here will not really understand how or which way to select them

1 Like

Thanks for the explanation. The main gripe I had was with figuring out where to set yaw_offset for a compass and which compasses are externally vs internally mounted. I think it has something to do with the Bus - but yeah I am a bit lost.