Using OpenRov software with the raspberry Pi


Hi guys, I,m building an ROV for a 2nd year project. I,m wanting to run Openrov software to display the video feed from the Pi NOIR camera and the Adafruit LSM303 I2C sensor. Is the Pi capable of doing this?

Are there any guides online about this?



Hi Dave,

We’re currently working on an image for the Raspberry Pi 2/3. I expect an experimental release in the next couple of weeks. It is possible to spin one up yourself, but we haven’t written any guides on how to do so. I’m not sure about whether or not you’ll be able to get the Pi NOIR camera to work out of the box, as I haven’t worked with it, but as far as capability goes, those two things are possible if you figure out the necessary code/modifications. You can look at the code for the other I2C sensors we use, such as the BNO055, to figure out how to interface them with the MCU, but you could also directly use the Pi’s I2C interface if you find the right pins and enable it.


Hi Charles, thanks for the reply. I,ll be needing it in a few weeks so pleased about the release! I don,t know anything about code yet (more mechanically minded), so I have a lot to learn. I,ll be posting up my progress with it when I start.


No worries, just going to cross reference the other Pi thread here in case there is something you might find useful in it:


I,ve just had a read through it, helped a lot :wink: I,ll be subscribing to it!


Be aware that due to a bug in the I2C driver for the Raspberry Pi, using the BNO055 with it is a massive pain in the butt. The BNO055 uses i2c clock stretching and the Pi does not support this correctly. From personal experience, getting data form the BNO055 is possible, but is often corrupted and needs lots of cleaning to make it useful.


Hi Tim, are there any other gyro and compass sensors you recommend?


If you are planning on using an MCU (arduino or otherwise), you can just connect your sensors to that and communicate with the RPi over serial (the normal OpenROV configuration). You can also communicate with the BNO055 using its UART mode, if you don’t plan on using the RPi’s UART for an MCU or something else.


As @charlesdc says, you can use the BNO either via it’s UART (I’ve not tried) or though an arduino. You can use the BNO on the Pi I2C bus, but it’s very fussy. I can reliably get about 14-bits of data from it, so as long as you’re prepared to read and write it a byte at a time, you’re probably okay. Hardly ideal and much slower of course.


Are most people using a Beaglebone black to run OpenROV then? Would this be the easier option?


Yes, as packaged, the OpenROV cockpit software runs on the Beaglebone Black. The BBB is connected to an ATMega2560 over UART, and most sensors are connected to the ATMega over I2C. At the current time, we don’t connect any sensors directly to the BBB, though there is nothing to stop you from doing so.


We do sell the OpenROV Dev Kit which is just the electronics part of the OpenROV platform. This might be of use to you, or buying components separately from us. As @charlesdc mentioned, right now all the software is written primarily for direct implementation with our existing hardware, but very open to expandability and running in different configurations.


I use the PI (the Compute Module) for the specific purposes of utilizing the dual camera interface it has.


So if I was to buy;

OpenROV controller board 2.8
Mega2560 R3 ATMega2560 - 16AU Board
OpenROV topside interface
OpenROV compass/depth sensor

Would these work together successfully?

I,m not using ESC controlled motors, so would I need the controller board?


Can anyone confirm these will be suitable for my build before I buy them?


You wouldn’t need the ATMega2560. Our controllerboard has one built in that connects to the Beaglebone Black when you mate it to the controllerboard. The controllerboard is designed to control motors through ESCs, so not knowing your needs, I’m not really able to be say if it could be solved with some modifications on the software or hardware end.


They will all work together successfully, but its going to take some work on your part to hook them all together. The controller board has more than just the Arduino Mega and the ESCs on it- it also has power switching, +5 and +3.3V power supplies, drivers for external loads (the lights), and a level shifter to convert the Mega 5V I2C bus to the 3.3V I2C bus required by the compass/depth sensor. None of these are rocket science- you can download the schematic off of our GitHub site and figure out what you require on your own. If this all sounds like a fun project to you, then just buy the individual pieces and enjoy the project. If you would prefer to have something running without all the fuss, then I’d recommend getting a controller board, even if you don’t need the ESCs.

Note that you don’t need the topside interface if you’re communicating to your project over Cat5 cable or the like. You only need the topside if you use the HomePlug protocol to talk over your tether. If you do this, you need to add a set of Homeplug adapters to your shopping list.


If you just want the controller board, without the ESCs, we have some of the 2.7 Controller Boards that never had ESCs put on. The 2.7 controller board is very similar to the 2.8 Controller Board. You can see the full list of changes on the 2.8 Schematic.

If this is something you are interested in, PM me and we can work out the details.


Hey guys, thanks for the help. You,ve probably answered newbie questions like this many times before!

My ROV is using a relay system to control the motors. Battery is on the surface, relays are on the ROV. The signal to the relays is via an ethernet cable.

Brian I,ll PM you.


Hi Charles.
I’m also very interested in running the cockpit software on a raspberry pi. I’m not currently an owner of an R.O.V. but I’ve backed the Trident and I would really like to run the video feed from the Trident to an existing sonar display on my boat. The sonar display only has composite video input and since the raspberry pi has composite output this seems like the way to go. Connecting a gamepad to the raspberry pi and having a split screen with both sidescan sonar and the Trident camera would be really cool.

Am I correct in assuming that the Trident will run the same cockpit software as your other R:O:Vs? If so I’d like to ask how the port is coming along?

Keep up the good work.