It lives!
I never narrowed down the root cause of the crash. I’m chalking it up to $h!t happens and moving on. I replaced the ESC with a HobbyWing X-Rotor, and I didn’t like it. It was less feature rich than the Lumenier Elite with less heat sinking, and it seemed to be the cause of the yaw instability I mentioned above, which was still present even after I replaced the suspect motor. So I got yet another Lumenier Elite ESC, and all is well. I have little basis for comparison, but the Lumenier seems like a really nice ESC.
The micro MinimOSD board finally showed up off the slow boat (fair warning, if you order from the link I gave, it takes at least a month to arrive in the US). That caused another problem…I ran out of serial ports! I had MAVLink2 on SERIAL1, FrSky telemetry on SERIAL2, GPS on SERIAL3, and ESC telemetry on SERIAL4.
So I elected to remove the ESC serial telemetry, use that port for MAVLink1, enable BDSHOT, and mess with the OSD, which was pretty easy to get set up. I flashed it with MWOSD using a 5V FTDI interface. Then I paid the couple of GBP for the license to write settings to the EEPROM. The software was easy enough to use, and it’s super configurable. I used what looked like some reasonable default profile settings and called it good enough. When the copter is disarmed, you can follow some on screen prompts to use the transmitter sticks to navigate a series of menus.
Because I’m interested in freeing the limited serial ports in other projects, this was a perfect place to experiment a bit with UAVCAN. The Here+ V2 looks like it has an option for CAN bus operation, but it appears that was a future roadmap thing and was never actually enabled. If it’s supposed to work, I couldn’t make it happen. But I did find the mRO UAVCAN Node, which will convert many ArduPilot compatible serial and I2C devices to the UAVCAN protocol. It was entirely unnecessary for this project, but I wanted to experiment, so I ordered one. Once I set CAN_D1_PROTOCOL = 1 in addition to the settings on the documentation page, it worked right away without further setup, including RTK injection and the integrated I2C compass. The notification LEDs on the Here+ aren’t working, even with the UAVCAN bit set in the NTF_LED_TYPES parameter, but I can live without that. With SERIAL3 freed up, I reconnected ESC serial telemetry there. I was also able to split the button pins off of the Here+ connector and connect them to their previous locations on the GPS1 connector, so the hardware safety switch still works, even with SERIAL3_PROTOCOL = 16. It was a really interesting exercise and may prove handy again someday!
I have some more ideas about video capture, but I’ll save that for another post. This one is already longwinded!