I’ve been testing with the AirSDK functionalities and with access through adb to the drone PC. This got me wandering if it is possible to develop custom payload hardware and interface it with the drone via the USB-C port on the battery.
I noticed that USB devices are recognized by the pc but there are no super user privileges to access external devices.
Is it possible to develop AirSDK missions with interface to external devices or run independent processes onboard for this purpose?
Since the 7.5.0 firmware, a lot of common USB-Serial devices are now recognized by the drone, and made available to the “autopilot” user (which runs the AirSDK missions & services). You can check the availability of those devices using the developer shell on a drone, since the shell is run with the same rights as any AirSDK mission.
As an example, plugging an arduino board to the battery creates a /dev/ttyACM0 device with read/write access to the autopilot user. Any mission can then open this device and read/write data as it would do on a standard linux computer.
This feature is not yet fully documented as it is still a work in progress, as we plan to support more type of devices in future versions.