OpenROV IMU 2.0



This is an open-source, low-cost sensor module that enables highly accurate depth, compass heading, roll, and pitch to be added to the OpenROV cockpit. Having this additional telemetry will greatly help with navigation, gathering relevant scientific data, and allows for closed-loop control commands that will make the OpenROV much easier to fly such as compass heading hold and depth hold. This module is added to the I2C auxiliary wires and can be integrated either during the build process or after the build is completed.’

Store link for the IMU


30 bar depth sensor (~305 meters)
Auto-calibrating compass functionality that trues to magnetic north
On board sensor fusion for high frequency updates with no computation required by the host


Makes depth, heading, water temperature and accelerometer/gyrometer telemetry available to the ROV via I2C which is displayed in the OpenROV cockpit
Can be built with the same tools and methods as used with the OpenROV kit
Ready to use on OpenROV versions 2.5, 2.6, and 2.7.

This upgrade kit comes with:

Acrylic housing
PCB with 9-axis inertial measurement unit (IMU), magnetometer, and pressure sensor
Adhesive lined heatshrink tubing
Hookup wire

ROV Suite 30.0.2 released
IMU interface documentation

Built in support for IMU 2.0 in the openrov cockpit software is now available in the 30.0.2 update.

It is automatically detected so you don’t have to mess with the AConfig.h file. The system currently displays a lot of diagnostic information in the telemetry stream. One of those items is the status of the automatic sensor calibration. Those items are


The values go between 0 (not calibrated) to (3) fully calibrated. Once the CALIB_SYS hits 2, the compass should be facing magnetic North.

You will also notice some selftest values that will be failed in the telemetry stream… you can safely ignore them as those tests only work on initial power-on but we are doing an internal reset which invalidates the first set of tests.

ROV Suite 30.0.2 released

Hi Brian
I succesfully flashed 30.0.2. it worked fine (except for my gamepads there is still no improvement)
then I installed my new IMU2.0. from that moment on, nothing worked a

nymore (even the camera is just black. I made a screenshot from the right side of the cockpit saying that my IMU failed?
so, what shall I do? cut it off again?



Can you triple check that the clock and signal lines did not get reversed when connecting the IMU. That mpu_init failed error is related to the IMU 1 code which historically through this type of error when the I2C lines were crossed.


Hi Brian
You were right! I actually mixed up the cables. I looked at the pictures when soldering the cables, but had turned around the board, so all of them where changed. I now changed it back and noticed that the pressure sensor is working, but the compass is not. Does that mean I grilled it?


@Hubertus I thought I was having the same issue with only the pressure sensor working and not the compass. I thought the compass chip failed. I tossed it in the water anyway and it auto-calibrated after that. Not sure what the issue was, but it works fine now.

In order to auto-calibrate, the IMU needs to make at least one 360 degree rotation.


In the telemetry there are a bunch of BNO055.* readings. There are two sets of test reports. The 2nd test set needs to be pass. Do they?


You were right Kevin. Suddenly it seems to work well. Looking forward to diving again.


No diving so far: I cannot get my IMU to work again. In addition I have a very starnge behaviour of my cockpit software: after around three minutes the connection button turns red and the LEDs start flashing, just as if I closed the cockpit. I can however still see the image and control the motors! Accessing the dashboard also works.
Re-uploading the software to the Arduino did not change anything.
I post a picture of the readings concerning the IMU. Is that OK Brian?
One thing I forgot to mention last time, whe I reported that my IMU was now working: I did cut the wires of the IMU, because I wanted to try the old one, but then decided to try the new one again and resoldered it. I did this while the ROV was still running and suddenly the new IMU worked. Could that be of importance?
I am a bit frustrated, because I would like to go back to diving instead of playing in the workshop.


The odd behavior you noted is another issue. More annoying than anything else…