Sunday, July 13, 2014

Monterey 4.0 Feature Preview: ROV Configuration File

Time permitting, I'm planning on posting little blog entries about each of Monterey's new major features.  Since Monterey 4.0 is still in progress, any of these features may change before the final release.

ROV Configuration File
A problem with Monterey 3.0 and earlier is that in order to customize the ROV configuration, you had to re-compile Monterey from source.  Well, that is a ridiculous requirement for such a common operation.  With Monterey 4.0 and on you will be able to use a JSON file to configure your ROV.

rov.json configuration file
The configuration file is located in the same folder as Monterey, although default settings can be loaded if the config file cannot be found.  Because it is a simple JSON file, it is easy for humans to read and edit it, so there is no configuration application.

With the relay JSON objects, you can specify a name that will be used in the UI.

With the servo JSON objects, you can specify a name, minimum value, maximum value, and a default (starting) value.

With the sensor JSON objects, you can specify the name of the sensor and the units.

Motor layout
This is where you specify if your ROV is a vector or a tank ROV.

Max depth
This is where you specify the max depth of your ROV.  The units for this measurement are the same units for your depth sensor.

The UI is automatically configured to display the right amount of buttons, sliders and sensor displays based on your config file.  Also, the received UDP packet format is based on your config file.  The order that Monterey expects the sensor values to be in is specified in the order of the sensor JSON objects (in this case, Monterey would expect to get depth, voltage, current and heading in that order).  Monterey automatically adds any needed values to the sent packet (motors, relays and then servos, in that order).

Certain UI elements, like the depth and heading tickers, are only updated from their respective sensors.  The look for sensors labeled depth and heading, respectively.  If you don't have those sensors in your ROV config file, the UI will still display the widgets but they won't update with useful information.

Thanks for stopping by!



  1. Hi Chris,
    I hope you well.

    Are you going to add gyroscope data with visualization (like a plane board, for example)?

    Best regards,

  2. Hi Timur,

    I'd like to add that at some point, but I'm having to put a temporary hold on the development of Monterey because of school and work. That being said, pull requests are always welcomed. :)


  3. Awesome Blog. Thanks. Do keep posting such good blogs. Thanks for sharing Informative posts.
    iPhone App Development

  4. Hi Chris,
    it's a pity (
    One question, is Monterey work with rpi only? My Arduino Mega was didn't connect.

    Best regards,

    1. Hi Timur,

      The RPi is used for streaming video and the Arduino is used for actually controlling the ROV'S motors and accessories.