Home        Store        Docs        Blog

BluROV2 awesome!

(andy) #1

Well I got my bluerov2 and assembled. I have to say theres some amazing engineering going on here. But I do have 1 thing I should bring up. The props are held in by 2 metric socket screw. They are not that tight from the factory. Make sure you remove all the screws , threadlock them, and tighten them up. Otherwise I have no problems.

I do have one question. What is the T - hose for? Looks like its for venting or filling?

(Richard) #2


Keep us posted on the electronics and control setup. There are so many posts on here indicating significant difficulty in getting the control systems to operate correctly. I have been hesitant to leave my homebrew project USR2 for a BlueROV because of this. Documentation seems to change on a daily basis.


(TCIII) #3


You need to be careful using thread locker where plastic parts are involved as thread locker can dissolve plastic.



(andy) #4

Ok I figured out what the hose is for. Its just for a vacuum check to ensure the enclosure isn’t leaking. Thanks for having the forethought to include that. Beats removing the electronics and dropping it to depths for real world checking (which is a complete waste of time too).


Regarding the electronics, I’m still waiting for my battery so no testing for me until I get that. But as for the software, it looks pretty straightforward. Loading the raspberry pi image, then loading the ArduSub firmware to the pixhawk. Install QGroundControl and then do some magic and you should be set.

Looks like the directions mainly point to a lot of feature riched sites and it can get confusing. Especially with the state of changes. I’ll see if I can write a quick tutorial to get it going (of course this is coming from someone who has never touched an ROV before but have a EE background and can write code).

Just one question for the bluerobotics guys, for the ardusub firmware, I see PX4-bluerov but is there going to be PX4-bluerov2 firmware ? Or is it the PX4-vectored / PX4-vectored6dof ?



(andy) #5

Just an update.

Looks like everything you need is really on


But for the firmware for the pixhawk, you’ll need ArduSub-v2-vectored.px4 (could be already loaded if you ordered the advance kit) Don’t load the 6-DOF , that is for an 8 thruster config.



(Paul) #6

@Richard - I think some of the issues people ran into with the software was because both qGround Control and ArduSub were still a “work in progress”. It worked, but required several work arounds to configure it properly and the documentation was rather sparse. I know, I had the very first beta kit. :wink: Fortunately, Rusty et al have made huge progress on the software and it is considerably easier to configure than before and it includes features you’d only find on some very high end ROVs. I recommend you give it a try, it’ll be worth the effort. :slight_smile:

(Rusty) #7

Hi Andy,

Thanks for the post! Sounds like you’re figuring everything out. We’re working on the documentation every day trying to make it clearer and easier. If there’s anything that’s missing or unclear, please let me know and we’ll get it resolved right away.

There’s a lot of stuff going on and it’s pretty complicated overall, so it’s difficult to write clear instructions and include everything without making it super long.


(andy) #8

Ok I got it working last night pretty quickly. I spent most of my time debugging network issues but I’m not going to get into that. Here is some rough directions to quickly get it up and going if you have the Advanced BluRov2 with pixhawk, raspberry pi, lights, and a mac.

I tried changing the IP address to something other then (was going to put it on my local land) but it looks like the software is hard coded to send its output via UDP broadcast to and video is also sent to . So unless I modify some of the code (which I may end up doing) your best to just leave it at for now until you get it up and running.


High level overview:
PX4 controls the ROV -> Raspberry Pi Proxies PX4 via USB/serial and converts
to Ethernet -> FathomX just converts ethernet to 1 pair of wires -> Host
computer with QgroundControl that is the client side software for control and

for the Pixhawk autopilot
use the ArduSub-v2-vectored.px4 file
for the raspberry pi
for the PC

  1. raspberry pi eth0 -> FathomX --> teather wire -> FathomX -> Ethernet on host
    apply power directly from battery to both fathemx. You may use a spare pair of wire on the teather cable.

  2. Ensure there is link light on the fathomX and raspberry pi. If having
    trouble with links, I recommend you hook up HDMI cable to raspberry pi along
    with keyboard and start troubleshooting.

  3. Once the network is working, you can ssh pi@
    or ping from host

  4. software comes preloaded but you should update… This next step assumes your sharing internet connection from your Mac between the public network interface and the private one with

ssh pi@
not sure what git repo is shipped with the rov but mine had a few missing files like flash_px4.py. to fix:
mv companion companion.orig
git clone https://github.com/bluerobotics/companion.git
git --work-tree=/home/pi/companion --git-dir=/home/pi/companion/.git pull origin master
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo apt-get install python-dev python-pip
sudo pip install dronekit dronekit-sitl # also installs pymavlink
sudo pip install mavproxy
sudo apt-get install gstreamer1.0

  1. update the px4 firmware with vectored bluerobotics firmware file
    you must use qgroundcontrol.app to upload firmware. flash_px4.py isn’t really that reliable.
    ensure your rov is unplugged and connect a usb cable to your computer
    directly to the pixhawk4

  2. launch qgroundcontrol
    Sensors -> Accelerometer -> Autopilot orientation -> Roll90
    Parameters -> ARMING_CHECK Disabled
    Power -> Analog Voltage and Current
    Battery Capacity -> 10000mah
    Power sensor: Power module 90A
    Flight modes -> flight mode 1 -> Manual
    flight mode 2 -> Stabilize
    flight mode 3 -> Depthhold
    camera -> gimbal tilt -> output channel 10
    Input channel RC8
    Servo Reverse check
    gimbal angle limits min -45 max 45
    servo pwm min 800 max 2200
    gimbal settings -> type - > servo
    default mode -> RC targeting

Parameters ->
RC7_FUNCTION RCIN9 <— if you have lights setup
PILOT_ACCEL_Z 50 cm/s/s

(Rusty) #9

Hi Andy,

Thanks for the write-up! This is helpful and I’ll incorporate some of this into the main instructions. I have a few comments also:

  1. I see you moved the “companion” folder and made a new one. That’s fine if you want to back up, but you can also just enter companion folder and run “git pull” to get the most recent version.

  2. All of the other setup instructions, like installing mavproxy and dronekit is already done on the SD card that comes with the Advanced Electronics Kit. You shouldn’t have to do that.

  3. flash_px4.py, in my experience, is very reliable, but sometimes you have to wait for it to get access to the Pixhawk. Sometimes it takes 30-45 seconds before it starts programming. I just wrote this script a few weeks ago so there may be ways to improve that still.

  4. Also, just a quick note, the mavproxy is set up to send to, which means it will broadcast to all addresses that start with 192.168.2. The video gets really slow when it is broadcast so it is only sent directly to the host computer at

Let me know if you think of any other helpful tips that you’ve found!


(andy) #10

Rusty, fyi I did a git pull and it didn’t pull down the files I was expecting. I think the repo that its pointing to is different ( I didn’t actually try to debug this.) As shipped there is no flash_px4.py and git pull didn’t help.

flash_px4.py for me was extremely unreliable. I was able to flash it through qgc with 1 try. With flash_px4.py I tried for 15 min doing all kinds of things. I’d be happy to setup vpn and gotomeeting or something and let you have at it but qgc is the sure way to get it to work.

Regarding the network. I’m ok with broadcast and unicast for video. I think you did the right thing. Not everyone is a network engineer so keep it simple.

However if you had 1 script where I can feed it host IP, bluerov2 IP, netmask, and gateway, I would be eternally grateful. The reason is I could simply plug the ROV into my network at home and be able to access it via the local network. And without changing my IP I could also just pick everything up and take it to my boat. The ROV would also be online so no need to share internet connections and nat thru a host computer. No big deal if you don’t do this, I can probably hack up a script to do just that. The only part I don’t like is I would have to maintain this script if there was any code changes on your side.


Anyway looking forward to getting this thing in the water. Not sure what to expect in San Francisco but I’ll test this right outside the golden gate bridge when the weather conditions are better. So far I’m extremely happy with this and for anybody else worried about getting the electronics going, don’t. Its easy.






(Rusty) #11


Thanks for the response. I’m not sure why git pull didn’t work. It should be referenced to the right repo. The flash_px4.py file was added recently so it won’t show up until after the git pull.

I’m also curious why flash_px4.py wasn’t working well for you. I’ve uploaded with it ~50 times but mostly on one setup. I’m not sure if there could be any differences between setups that cause that.

In the future we’ll probably have a graphical tool in a web browser that can be used to adjust IP and streaming settings to make this easier. It’s also possible to set up the wifi network so that it connects to wifi when you have it at home. That might help.



(Jake) #12

Thanks for sharing your build experience Andy! I just received my kit. It was packaged well and the engineering work does look amazing as you described. Getting started on my building now.