DeepWater Exploration Camera Control Software

Hi all!

DeepWater Exploration has released dwe-controls (DeepwaterExploration/exploreHD_Controls on github), our open source camera control software! We have made a lot of changes since our alpha stages of development including supporting docker-based installs, making it easy to use with BlueOS.

Our installation guide with docker is on our github: GitHub - DeepwaterExploration/exploreHD_Controls: Web Based UVC Control Driver for the DeepWater Exploration exploreHD and HDCam and is completely plug and play with BlueOS.

Streaming is now supported with all cameras, while before it was only available with the exploreHD. The exploreHD still gets exclusive UVC controls via a custom firmware and is now capable of even more low bitrate-required applications!

Additionally, you can read our article on receiving multiple streams here, which includes our custom fork of QGroundControl capable of receiving up to 4 streams at once: ArduSub Companion Setup for exploreHD - DeepWater Exploration docs

The software works on any Linux capable platform, including Raspberry Pi, Desktop Use, etc. It can be interfaced with over the web browser making it ideal for ROV use, but we are excited to see other uses you can come up with!

Below is a screenshot with an exploreHD:
screenshot with exploreHD

(Also… we now have dark mode!)
Dark Mode

Here is the single docker-based installation command:

curl -fsSL https://raw.githubusercontent.com/DeepwaterExploration/exploreHD_Controls/main/scripts/install-docker.sh | sudo -E bash -

We hope you get a chance to test out our software with your own camera setups and let us know what you think!

1 Like

Hi @brandonDWE, cool to see! :slight_smile:

I’m trying to understand what this software is for. Is it a general purpose camera manager like the one built into BlueOS, or does it have some specifics that are required to be able to run the DWE cameras or something?

If your camera’s bitrate options and variable bitrate toggle present themselves as UVC controls they should already be configurable with the BlueOS camera manager, so I’m wondering whether this would still be necessary / useful for BlueOS users :slight_smile:

@EliotBR

Thank you!

Our software uses UVC extension unit controls which are not normally available from standard software. This is because our camera uses a custom firmware that implements additional controls such as bitrate, h264 quality, and variable bitrate which cannot be interfaced with in BlueOS.

The ability to stream has also been added for use cases that may not be using the latest BlueOS software such as in MATE ROV where such users still may be interested in bitrate control and streaming.

Hopefully that makes sense! Let me know if you have any further questions and I would be happy to answer. :smiley:

1 Like

This isn’t something I’ve looked into before, but it’s very interesting to me.

Are the extension controls for your cameras proprietary in some way (e.g. intentionally made to not be accessible from other software), or are “extension controls” something that BlueOS could potentially be made to support in a general way, such that your cameras (and others that may use different extension controls) can be more fully supported? :slight_smile:

I read through that docs link and I’m struggling a bit to determine

  • whether it’s possible for XU controls to be supported “generally”, and
  • whether all XU controls require some form of device-specific driver on the computer, or if they can be detected/queried from the device

I’m curious what would be required for your cameras to be easily and fully controllable from BlueOS without needing to run a separate camera manager just to support the extra controls :slight_smile:

1 Like

Hi @Brandon!

Thanks for sharing your project and make it compatible with BlueOS!

mavlink-camera-manager works with this V4L library to access the capabilities/controls. That indeed supports UVC drivers for V4L, but depends how your driver access the UX controls, if it’s via a driver-specific ioctl interface or via a XU control to V4L2 controls mapping.

I believe if the controls are accessible via v4l2-ctl --all it should work with our software, otherwise a simple mapping between XU control and V4L2 will make the camera much more versatile and compatible with almost all cameras software around there, including our camera manager.

3 Likes