Using the ArduPilot onboard OSD is possible on board types that have an external SPI port accessible, including Pixhawk. All it requires is a MAX7456 type OSD SPI breakout board like this:
and a few lines added in the respective board’s hwdef.
All OSD code processing is done onboard your flightcontroller. There’s no firmware processing for the OSD board required as it only carries the video chip circuitry. OSD settings handling is done via parameters just like with onboard OSD type hardware.
I have added OSD hardware to a revomini board using the SPI pins accessible on OPLink port:
@Rolf has done this on a pixhawk (fmuv3):
required changes to hwdef are:
- adding the respective CS pin define
- adding the OSD to the SPI device table
- setting the OSD active and making the build system add the required font binaries:
see onboard OSD type flight controllers’ hwdefs for reference.
there might be other solutions coming up to support external backends to ArduPilot OSD on hardware without video overlay chipsets. this one imho is fairly easy to do on current code base and adds a noticeable amount of convenience and functionality compared to using 328p type standalone OSD hardware.