Here3 random I2C stuck communication

Hi, we recently received our another 100 units of Here3 and we have a strange issue with them.

So we connect them by I2C + Serial to our hardware (which was tested with some old Here 3 units and it works perfectly), turn on the autopilot and after some random time (can be 10 seconds, 10 minutes or 10 hours) it randomly stops the I2C communication with LEDs and Compass. The difference i seen between old Here3 units (which works perfectly for days) and the new ones is the firmware version (old ones: v1.5.33544151 and the new ones has: v1.8.AB157ABD) so i tried to flash firmware with Mission Planner and they got v1.7.3B7DB5CC, but I2C still get stuck after some random time.

After that we connected a logic analyzer to the i2c bus and we got the following (i’m attaching you one image + capture from Logic 2 software you can install it to view signals in detail, focus on channels 2 and 3).

So I2C bus simply stuck, LEDs and Compass stuck too and a simple software reboot of the autopilot don’t resolve the problem, we have to plug out the battery and then plug it in again (so it only works after the processor inside here3 is rebooted too).

Do you have any idea what’s the problem ?


compass-off-i2c.sal.zip (269.4 KB)

Here3 are not supposed to be used through I2C but in only in CAN.
Here is the docs : https://docs.cubepilot.org/user-guides/here-3/here-3-manual

@Julien, i consider this answer is not relevant, because i have another 100 quadcopters using Here 3 (I2C + Serial configuration) and they works just fine, but they have different firmware ( v1.5.33544151)

Did you change the cable and disassembled the housing? How did you change them to I2C mode?

Yes, we disassembled, switched to I2C then mount them in our own quadcopter casing. Like in the following picture. Also, yes, we changed the cable with another one.

Can you try to add a few seconds of BRD_BOOT_DELAY to the autopilot?

We already tried that, up to 10 seconds, it makes no difference.

Can you try a few earlier Ardupilot firmware to see if it behave the same?
Also, for those with this problem, are they working good under CAN mode?

Is there a reason why you are not using CAN? I have great experience with it in a commercial application, also much easier to wire.

Any version of Ardupilot we tried has the same issue. For sure it is related to Here3 units, not Ardupilot or autopilot hardware. In CAN mode they works for days without any problem.
So i finally found v1.5.33544151 firmware, flashed to 30 units and all works as expected now. So the problem was Here3 firmware…

We can’t use CAN because our custom board doesn’t support it right now, but we are working to add the feature as soon as possible.

It’s not common to have user using I2C mode on Here3.
We will look into what happened.

However, we suggest moving to CAN mode as soon as possible. The currently solution would be stick to the bug free version of firmware as you found v1.5.33544151 works.

Can you share how did you re flashed to previous version?

Send me a private message and i will share the firmware with you