Intermittent IMU failure (Config Error, Internal errors 0x4000)

Issues experienced:
We received a batch of Orange Cube Plus units near the end of last year and we have started to integrate them this past week. We have run into intermittent issues which we can’t reproduce with units from a previous batch of Cube Orange Plus units.

We receive the error message Config error: Fix problem and reboot. Sometimes the error messages PreArm: Internal errors 0x4000 I:213 spi_fail or Internal errors 0x4000 also appear (but these rarer). This error corresponds to missing HW_IDs of the IMUs (mostly Baro1, sometimes Compass as well) and in the rare occurrence, all values in the DEVID column are 0. The processor is failing to detect them. It is also possible to get these Cubes to boot up without any errors without changing the test setup.

Testing setup:
Testing was done on three different Cube Orange Plus units, FC1 and FC2 are brand new and FC4065 has been serving on a development test quadcopter for the past year. All three units have the classic external appearance (not the new matte anodized finish). We have not been able to replicate the issue on FC4065 (across more than 50 power cycles) whereas FC1 and FC2 fail on roughly half of the boot-up attempts.

FC1: CubeOrangePlus 0043003D 3032510B 37363931 (CU11S22003360)
FC2: CubeOrangePlus 00400041 30325113 37363931 (CU11S22A00397)
FC4065: CubeOrangePlus 0020003F 31395105 35393336

All three units are running: ArduCopter V4.3.5 (02ff7ea3), ChibiOS 66e5de0d
Frame: QUAD/X

We are running the units on an in-house custom carrier board which we have been using for the past year without any problems. We have not been able to reproduce the issue on a setup consisting of only the Cube Orange Plus and the CubePilot carrier board.

The issue presents itself regardless of connecting the Cube through only USB and/or powering the system using a bench top power supply.

We are using Mission Planner v1.3.81
We use custom parameters but the Cubes also fail with default parameters.

When testing, and a Cube enters the failed boot state it will with high likelihood remain in this state across rapid successive power cycles. It has been possible to get it out of this state in the following ways:

  1. Leave the system powered on for a couple of minutes (~10min) and then power cycle.
  2. Perform a clean flash.

The first method is not successful 100% of the time, but there is a definite correlation. They also do not solve the problem as the Cubes will eventually fail to boot up correctly again at some point in the next 10-15 power cycles (roughly spaced out over an hour).

I have set the flight controller to create logs in a disarmed state but when the error occurs it fails to write a log file.

Suspicions:
I have looked at forum posts describing similar errors, and although these have guided my debugging efforts, none of them have resulted in resolving the issues. My suspicions are, and take these with a spoon of salt, that either the IMUs are not powering up in time for the Cube to detect them on boot up (which could point to power delivery), or that there is an issue with the internal SPI bus itself (HW or SW side).

I am aware that not all Cube Orange Plus units have the same IMUs (as there are newer and older versions) so I am curious where other ICs e.g. the LDO supplying the IMUs have been changed somewhere along the line.

What I have tried to resolve the issue:

  • Extensively tested with ArduCopter 4.4.4 (I am aware that >V4.4 is recommended for the Orange plus)
  • Formatting the SD cards
  • Perform clean flashes with either Arduplane or Ardurover and then back to ArduCopter

Screenshots
FC1 config error:
FC1 Config_error

FC1 SPI error:

FC1 HW_IDs (successful boot)

FC4065 HW_IDs

FC1 HW_ID config error (failed boot)

Looking forward to any insights, TIA!

Hi @sidbh, just tagging you for visibility as this is an urgent matter. Could you please assist?

I am also in communication with the reseller but they are requesting a log file. As mentioned, the cube doesn’t write a log file (with LOG_DISARMED = 1) when this boot-up error occurs.

Kind regards

Hi @philip, @Michael_Oborne, @Eric_Xie, @Gene, @betty.lin, @Fins_up. I am tagging you all to bump visibility as I have not yet received any assistance. Kind regards

Hello @sidbh, @Michael_Oborne, @Eric_Xie, @Gene, @betty.lin, @Fins_up. This issue persists and I am circling back for your support.

Thanks

please run the latest code. 4.3.x is not supported on orange plus - has issues

Hi, as stated in the report above, the issue persists with the latest firmware (V4.4.4). Can you offer any insights into the issue and how to solve it?

@Franco I think you have two separate issues. Regarding the Config Error issue, have you set frame type etc? I believe the Initial Configuration is not done with cubes showing Config Error.

Regarding the spi_fail issue, can you enable LOG_DISARMED and share logs with the failure.