I’m developing a new flight controller based on H743 and it works great until a strange issue happens, after power it on (it can take 2 minutes or 5 hours, really random) communication with the sensors stops, just SPI & I2C, never happened for UARTS.
Flight controller sensors specs:
Accels/Internal compass - MPU6000 (SPI3) & MPU9250 (SPI4)
GPS / External compass - Hex Here3 (USART2, I2C1)
Baro - DPS310 (I2C2)
Wifi - ESP07S (UART7)
Telemetry - SI4432 (SPI1)
Most of the times the error is: PreArm: Compass not healthy which refers to the compass inside Here 3 (I2C1), in this case a reboot from GCS will not solve the problem, I have to unplug the battery for few seconds and reconnect it. If this happens, the I2C LEDs inside Here3 stuck too.
Other times it can be PreArm: Gyros not healthy which refers to MPU6000 (SPI3), in this case a simple reboot from GCS will solve the problem.
It never happened when it was armed, but maybe i didn’t tested it enough. Tried multiple versions of Arducopter 4.0, 4.1, 4.2 and with all of them i had the same issue. I suspect it to be a DMA issue or maybe a mistake in my hwdef file.
Do you have any ideas what it can be ?