Copter-4.5.1 released!

Copter-4.5.1 has been released as the official version for multicopters and helicopters and can be downloaded using MP, QGC or directly downloaded from firmware.ardupilot.org.

This release includes just one small but critical bug fix to the CSRF driver. That change is listed in the ReleaseNotes and copied below.

  • Critical bug in the CRSF R/C protocol parser that can lead to a hardfault and a vehicle crashing. A similar fix was applied to the GHST protocol, although we believe that GHST could not be affected by the bug, so this was just a precaution.

If you are flying 4.5.0 and use the CRSF RC we strongly recommend upgrading immediately to 4.5.1.

Thanks and enjoy!

2 Likes

I have 3 out of 12 Pixhawk V6Xs got IOMCU error after upgraded from 4.2.3(factory version)/4.4.4 to 4.5.0/4.5.1.

The relative error messages:
IOMCU: 0 0 0
Config Error: Failed to update IO firmware
Config Error: fix problem then reboot

I’ve tried holding the safety switch while plugging the usb cable. Then it showed:
IOMCU: 0 0 0
PreArm: IOMCU is unhealthy

After that I reboot the FC normally, it showed the same error messages again:
IOMCU: 0 0 0
Config Error: Failed to update IO firmware
Config Error: fix problem then reboot

Could that be due to a bug or just hardware issues?

There are some timing challenges updating to the new iomcu firmware. I am surprised that holding down the safety switch while powering did not work for you. Its worth reflashing 4.4 and then doing the safety switch trick to see if that resolves it. Do you get a rapidly flashing light when holding the safety switch?

Hi,

I flashed 4.4.4 firmware on one of the faulty FCs and did the safety switch trick. Then it worked normally. However, the same problem occurred when I flashed 4.5.1 firmware once again.

I’m not sure which light you’re referring to. If you mean the safety switch LED, it is not on for about the first 10 seconds after power on.

A long shot, but please can you try setting BRD_IO_DSHOT to 1 and then try the safety switch trick again. It should not make any difference since what you are experiencing is a failure at the bootloader level, but worth checking just in case. Setting that flag tries to install a different version of the IOMCU firmware that uses different clocking. Its the CUAV board you are trying to upgrade correct?

2 Likes

Yes it’s a CUAV board. I did what you suggest but it didn’t make a difference.

Could a similar (in previous FW versions) have been causing my CRSF nano problem? It appears its firmware gets corrupted, mostly as the link rate drops from 150 to 50 Hz. It does not occur without an active FC link. After it occurs the RX needs a firmware reload. I have 3 RX all with the same problem and I see some other people starting to report it.

I don’t think this is related

So another thing to try is to replace the bootloader it ships with with the ardupilot bootloader which is much more reliable. If you connect in mission planner and hit “update bootloader” you can get the AP version. I have found the PX4 compatible bootloader has some very weird timing issues.

1 Like

@ROSStargh,

Just to assist with @andyp1per’s suggestion here are the instructions on how to upgrade the bootloader using MP.

Also, can you post your parameters? I am wondering whether the startup of anything else could be affecting the timing.

After uploading the new firmware you should get a tone from windows and then the yellow light on the base board (marked IO and in between the green and blue lights) should flash very rapidly as the IOMCU firmware is updated. If you are not getting this flashing then it probably means the IOMCU is not entering bootloader mode.

I tried that before, there was a pop out message “Upgraded bootloader”. So I guess the bootloader is already the latest?

The FCs were upgraded immediately after being unpacked. Also I always do a parameter reset after upgrading the firmware. Upgrading with the default param loaded didn’t help though. I can provide both the stock param and the default param.
CUAV stock.param (18.2 KB)
v4.5.1 default.param (15.1 KB)

Yes, I can get the flash either after a firmware upgrade or when holding down the safety switch while powering.

Can you possibly try again with mavproxy connected? It gives a bit more debug info than mission planner. I can also send you a debug build that might give a bit more information about what is going on.

Messages on MAVProxy console:
Got COMMAND_ACK: FLASH_BOOTLOADER: ACCEPTED
AP: Bootloader up-to-date

Please send me the debug build if necessary.

Sorry, I wasn’t clear - too many bootloaders! Its the IOMCU messages on upgrade that I am interested in. So:

  1. Downgrade to 4.4, wait for iomcu firmware to update
  2. Reboot
  3. Upgrade to 4.5
  4. Attach mavproxy when the FC reboots and see what IOMCU messages you get. It should say something about upgrading the iomcu firmware

As a short cut you may simply be able to do step (4) if you already have 4.5 installed. If you don’t get any messages then that would be puzzling.

I copied these messages on the mavproxy console. But I find it the same as what I saw before on MP.
1-V4.4.4.txt (1.1 KB)
2-V4.5.1(after upgrade).txt (839 Bytes)
3-V4.5.1(reboot).txt (547 Bytes)
4-V4.5.1(reboot holding down the switch).txt (931 Bytes)

There are no debug messages in there - mavproxy should be showing the iomcu debug messages. What platform is this on?

It’s the windows version from ArduPilot firmware : /Tools/MAVProxy