Hermione’s been out and about using the full X8; her first flight shot her into the air at hyper-speed due to a FIFO-overflow that the code didn’t catch. With the code fixed and a replacement motor installed, I tried again. After a couple of reasonable flights proving the X8 PIDs needed no tuning, they then started to fail for a couple of reasons:
- FIFO overflows
- I2C I/O errors
Both types were caught and killed the flights, but why were they happening?
- The FIFO errors I think are due simply because I’m now pushing the limits of my A+’ performance; adding an exception to ensure the FIFO was processed as a priority when the FIFO fills over 50% has resolved that. However…
- The I2C I/O errors seem (after lots of testing) to be related to the Garmin LiDAR-Lite. If it’s plugged in, regardless of whether I’m sampling it or not, I get the I2C I/O errors. If it’s unplugged, all works perfectly.
I have various things to try out:
- It could be due to the extra power-draw when it’s plugged in. Easy to test as I’ve just bought a huge 4S2P 6600mA LiPo:
- It could be confirmation of a rumour I’d heard up that the LiDAR-Lite V2 wasn’t good at sharing the I2C bus with anyone else – I hope the V3 doesn’t suffer from the same.
- It could be due to noise on the bus caused by the 20cm long cables. I picked up some stuff from my PX4FLOW investigations about wiring requirements for long cables.
- Mentioned in the PX4FLOW docs, and also in the Garmin LiDAR Lite V3 instructions is the need for a decoupling capacitor between Vcc and ground.
If / when I can get the Garmin working together with the IMU, then it’s all systems go for sustained zero drift flights.