Programming my ROV a step further

Thanks for the response :slight_smile:

Pymavlink is a Python interface to working with the mavlink protocol, so the code in those examples is indeed Python.

The Bluerobotics ROV system is designed to be modular, in both software and hardware, so while it’s true that modifications/customisations require some understanding of the inner workings, you’ll find that many modifications can be done without needing to know how all the parts work :slight_smile:

As an example, all the bluerobotics accessories (thruster ESCs, lights, gripper, etc) are controlled with a PWM signal with a pulse-width of 1100 to 1900 microseconds. That consistent interface means that if you have an actuator or light which can be controlled with that signal you can easily plug it into the pixhawk (assuming you have a port available) and connect to it/control it through QGroundControl (QGC) by adding an extra ‘servo’ control. For that kind of addition you only need to know the electrical requirements of your device, and one feature of QGC, which means it doesn’t require any knowledge of ArduSub or mavlink, or the companion software.

Bluerobotics provides some information about a suitable underwater GPS, and they have some extra information on how to connect one to ardusub.

Adding custom sensors is a bit more complicated, and may require working with pymavlink and possibly modifying QGC, but it depends quite a bit on how you want to view, use, and/or record your sensor results.

Definitely a good place to start! This forum is great for getting help with any components you don’t understand or are struggling to get working. As mentioned earlier, if there’s anything you find that seems missing from the documentation, I’d be interested in what you’re trying to achieve and how the documentation could be improved to better support that :slight_smile: