What USB camera might we want in the next OpenROV Kit or AddOn


It’s that time again and I am reviewing the camera’s that are available to see what might be a good candidate for including in the kit in the future. Know of any kick add usb camera’s that might fit the bill? Read on…

Interestingly the list of capabilities we want in a camera has not changed all that much from the discussion 2+ years ago:

Continuing the discussion from Ideal Hobbyist Webcam:

So based on what we have seen so far here is the short list of capabilities we are looking for in a camera. Let us know if we missed something or if you happen to know of camera’s that might fit the bill

  • At least 720p
  • High Dynamic Range (To help with the high contrast situations)
  • Linux UVC driver compatible
  • On board h.264 compression
  • On board MJPEG compression
  • Fully controllable through the Linux UVC driver: White balance, Gain, Min/Max shutter speed
  • USB connector
  • Binning control for low light situations
  • Support for 110 to 120 degree lens
  • Support for one of the USB modes in the following order of preference: Isochronous, Bulk
  • If using isochronous mode, only reserves what the compressed feed likely needs
  • Small form factor
  • Sub $50 in quantity for a kit Camera, no real limit for potential add-on camera
  • Power consumption < 400ma

GoPro underwater Structure from Motion (SfM) / Photogrammetry

Well, the Logitech Pro C920 has on-board h.264 encoding, and Derek Molloy has some very nice tutorials on using video-for-linux (v4l2) to interact and stream it using the BBB. It takes very little CPU overhead as I recall. It’s a little larger, but I think it could be disassembled so that the little arm that secures it to your computer monitor is gone. Have you guys ever evaluated or worked with that camera?



…it violates your sub-$50 criterion though. Amazon.com has them for $70 right now.



How about gimbal mountable? Then looking into the future we can have a Pan / Tilt camera that can operate with head tracking goggles :smile:


Based on what @badevguru and @Joakim_Karlsson had done with the C920 at Tahoe, I decided to try it for myself in my E-tube. The first picture is the Genius F100 and the second is the Logitech C920. I have the C920 flush with the camera mount, so it is a bit recessed compared to the F100.

First difference is the Field of View. It is much narrower on the C920.
Second difference (not shown) is that the C920 is much faster due to the H.264 encoding.
Third, the C920 has an auto-focus feature. Not sure how useful it will be, but I’ll try it out. I’m not exactly racing around in this thing.

Alternate camera: latency fluctuates dramatically

Yea, the C930 is the wide-angle version of the logitech camera that gets you to 90 degrees. For reference the Genius cam is 120 degrees.


My mistake, the C920 has a 78 degree field of view. I’ll go order one of the C930e’s next. I really like the faster camera and if FOV is the trade off, that’s ok with me.

Is the BBB streaming at 720p or 1080p as it is right now?


SXGA, 1280 x 1024 :wink:


Another option is to build our own camera solution. The BeagleBone uses the Sitara chipset which does not support MIPI (the high speed serial interface used natively by most camera chipsets). TI however released this chipset: http://www.quicklogic.com/solutions/catalog-cssps/cam-if/ that bridges mini in to the General Purpose Memory Interface which is available in the Sitara chipsets.

So if we find a lens + processing chipset we like, we can skip the USB and plug it in directly to the beagle bone. This is theory gives us access to better performance camera options at the same price point.


I’ve been doing more camera research; going off of @badevguru specifications:

Existing camera solutions

Image Processing SoCs

These chips interface with the image sensor, do the encoding (H.264, MJPEG) as well as other processing (de-warping, noise reduction, other fancy things), and provide the camera interfaces that we can use (UVC, USB, etc.).

  • Ambarella: Manufactures chipsets for sports/aerial cameras, as well as wearable cameras
  • Geo Semiconductor: US Chipset manufacturer
  • G6500 chips that do H.264 encoding, as well as HDR processing and fisheye dewarping.
  • Vimicro: Chinese camera processors
    • from UVC list, might be a lower cost option?

Camera Board Vendors/ODM/OEM

Here are a few companies that sell camera boards ready to go and/or ODM/OEM services to design+manufacture cameras


Hello Kevin! Could you maybe share your cockpit and camera source codes with me? im trying to integrate c920 in my OpenROV project but so far i could only get one frozen frame in my cockpit.

Thanks very much =)


Of course, I’m using the most updated image 30.0.2. It also worked on the previous image 30.0.0. I have also upgraded my camera to a C930e to get the wider field of view. A word of caution, DO NOT remove the camera internals from the case, you will get a weird watermarked image on your video. You can still get in there to remove the camera base, but make sure you put it all back together afterwards.


Dude, you have a remarkable work there… Congrats :grinning: .
So if i understood correctly, you have just installed the camera without any modification in the source code? did it work like this, out of the box?



Yes, I just plugged in the new camera without any modifications to the source code. It starts up as normal. No modifications other than removing the base stand.

Brian installed the H.264 codec awhile back on the OpenROV image so nearly any H.264 camera should work, but I’ve only tested the C920 and C930e cameras. Nothing else meets my requirements. One last note, the autofocus will still be on. Some find it annoying, but it’s a non-issue for me. I would rather the camera be faster. I have my GoPro slung underneath for HD recording.


Just for full transparency. As of 30.0.x, the system used MJPEG streaming
for all video. That includes the logitech 920/930. As long as the USB
camera attached supports the linux UVC driver, the system will
automatically configure it to send out data as mjpeg.

I am actively working on native h.264 support. That will open up some new
features that everyone will enjoy. The major hurdle to h.264 is need to
convert the h.264 video to a live streaming mp4 format for low latency
viewing in cockpit.


@Kevin_K and @badevguru thanks very much for the answers. I think I’m having problems with the camera because I´m actually trying to run the OpenRov software just with my Beaglebone connected (since I don’t have the controller board yet). Is that possible? I mean, can the cockpit run without errors without having the Controller board present? As I said before, I can only get the initial snapshot (frame) from the camera. My guess is that the thread is somewhere stuck in a loop trying to connect with the Arduino board, and the streaming process is somehow left behind or has not even started. Is there any way to acknowledge /correct such behaviour?

Thanks guys! Such an active and friendly forum!


There is no issue running the software on a beaglebone without the controller board, but I would suggest using the external 5V supply as you may stuggle with the USB port not providing enough power for the beaglebone and camera. The beaglebone + camera (c920) that I am using on my desk peaks at around 500mA during startup and camera initialisation which is the typical current limit for USB ports.


Thanks Adam! hm that’s a bummer… Why is not working then? I have the 5V supply connected to my BBB. Are there any reported problems regarding cockpit and firefox?


That was exactly the problem… With Chrome everthing runs perfectly. Thanks guys!


Hi All,
Im still waiting to buy a OpenROV & the new kickstarted looks great (make it sooner please lol) but Im just not hearing much talk about Oculus Rift? In the 1st Quarter of 2016 we will have the 1st Consumer version of the Rift!!! This is going to be an explosion of tech advancements & its here now. Microsoft & Mark Zuckerberg don’t invest if its not worth it?? So please tell me that we are head of things & already have plans for a 3D stereo capable camera for a Immersed experience using it with the new Rift? Rift also has open source software for all to use & a team of people to assist. It seems pretty obvious to me that this is the direction we should be heading as a minimum.

By the time Trident is released to the Public, how many people will already own,use or have on order a Oculus Rift? So it seems to me that the Trident should be Oculus Rift ready by its 1st release date or at least have the option of selecting the added camera update version for it?