Missing compass on one boot

I’m running AC4.3.1 on a copter that I’ve had for a while. I got a few flights in yesterday, and on one attempt, it didn’t recognize the one useable compass. These were the first flights on 4.3.1. The first flight worked fine. I swapped batteries and powered back up, and the red EKF icon remained in MissionPlanner, preventing arming. When it didn’t clear after 10 or 15 minutes, I cycled power, and then the EKF was happy, and I got in another flight.

In post, in the logs, I can see that Mag0 readings are all zero on the attempt with bad EKF. That’s the compass mounted on the GPS module, and the only one that is useable. The others are disabled due to noise. I’ve never seen this issue before. Does anyone have experience with something like this? If it makes a difference, it is a PixRacer R15 and an mRobotics ublox SAM GPS module.

Please update to ArduCopter 4.3.6 ASAP.
4.3.1 is outdated.

Thanks for the feedback. The system is in the field and cannot be updated at present. To be clear, are you suggesting that version 4.3.1 had a known error that would occasionally cause it to drop sensors on I2C, or were you just making a general statement that it is best keep FW updated?

I know that’s not a CAN GPS and compass, but try:
BRD_BOOT_DELAY,3000
I just use this on everything now since I sometimes had trouble with power-ups from battery sparks and interference (I guess).
Since those units are a bare board, you’d even be able to add an extra capacitor across the +5v and 0v in case that helps. Or see if you can check and smooth the supply from the regulator (power brick) that supplies the flight controller.

There are some important fixes in recent firmware updates, but I’m not sure if any were I2C-compass specific.

Thanks Shawn. I thought it might be a race condition, so the delay sounds useful. I’ll update when it’s back in the shop, but I can’t have guys in the field trying to do that.