exploreHD camera not recognised by Raspberry Pi 3B (BlueROV companion)

Hi everyone,

We got the exploreHD camera for our BlueROV and I am currently trying to test everything with the Advanced ROV Electronics Package for ArduSub. However, the camera does not seem to be recognised by the Pi.

I have updated the camera to the latest firmware, the software on the Pi is the BlueRobotics Companion Software version 0.30 and I am using the latest recommended version of QGroundControl. I have also followed the instructions to set up the camera with Ardusub from your repository here:

When I connect the camera that comes with the BlueROV, I can see the video stream fine via QGC. On the Pi, the command v4l2-ctl --list-devices returns

pi@raspberrypi:~ $ v4l2-ctl --list-devices
H264 USB Camera (usb-3f980000.usb-1.2):
        /dev/video0
        /dev/video1

I then disconnect the power, unplug the BlueROV camera and plug in the exploreHD camera, before finally turning the power back on. Now, QGC keeps showing WAITING FOR VIDEO and the command v4l2-ctl --list-devices returns

pi@raspberrypi:~ $ v4l2-ctl --list-devices
Failed to open /dev/video0: No such file or directory

What coud be the reason for this? Did I miss a step somewhere?

2 Likes

Hello!

With the new firmware update, you no longer need the drivers installed in exploreHD_Controls. It will just be plug and play.

Either way, it should still show up as a video device regardless of the firmware that the camera is running. Does the camera show up when you plug it in to a laptop with the with the same USB soldered connector?

Could you take a screenshot too of WebUI when you just have the exploreHD connected?

Thanks!

2 Likes

Thank you for your reply @Joseph!

Okay, so just to be sure I have run make clean and then deleted the folder from /scripts/ and the four extra lines from start_video.sh, and then restarted the Pi.

Yes, when I unplug it from the Pi and plug it into my laptop, I can see the video fine in the Windows Camera app.

No problem, here it is:

2 Likes

Hello! Thanks for the screenshot. Sorry, I should’ve specified, I mean open the camera tab and take a screenshot of what you see when you select the devices drop down menu.

Thanks!

2 Likes

Oh I see, sorry about that. The dropdown menu does not contain any entries.

2 Likes

Hmmm that is very odd to me. I feel like settings like gstreamer options and format are fixed and would show up regardless if a camera is plug in but I will experiment more later today and report back. Either way it makes very little sense why you get a stream when plugging into a computer but not on the Pi.

When you used the default USB camera from the BlueROV, did you connect it to the same port?

The only thing I can think of is maybe there is a soldering issue with the USB connector where its causing a short when you bend it into the housing for the RPi but not a problem when on computer.

Do you mind sending a photo of your setup on the Pi with the soldering on the USB connector?

Thanks!

2 Likes

Yeah this seems to be rather random behaviour :sweat_smile:
Weird behaviour 1: when I refresh the camera page often enough, finally gstreamer options are shown (but still no entries in the dropdown menu). They look like this:

! h264parse
! queue
! rtph264pay config-interval=10 pt=96
! udpsink host=192.168.2.1 port=5600

I always plugged the exploreHD camera into the same USB port as the BlueROV camera.
Weird behaviour 2: after a while, my BlueROV camera stopped working occasionally.

So I am using a different USB port now. And the BlueROV camera is working again! So I plugged the exploreHD camera into the new USB port.
Weird behaviour 3: the exploreHD camera now works occasionally. I can see it appear and disappear on the camera page and on the Pi:

pi@raspberrypi:~ $ v4l2-ctl --list-devices
Failed to open /dev/video0: No such file or directory
pi@raspberrypi:~ $ v4l2-ctl --list-devices
exploreHD USB Camera (usb-3f980000.usb-1.2):
        /dev/video0
        /dev/video1
pi@raspberrypi:~ $ v4l2-ctl --list-devices
Failed to open /dev/video0: No such file or directory
pi@raspberrypi:~ $ v4l2-ctl --list-devices
Failed to open /dev/video0: No such file or directory

I dug a little deeper and noticed that the exploreHD camera is now recognised as USB device. (This was not the case when I had plugged it into the other USB port.) However, it keeps changing its device ID.

terminal output
pi@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 0483:5740 STMicroelectronics STM32F407
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 0483:5740 STMicroelectronics STM32F407
Bus 001 Device 033: ID 0c45:6366 Microdia
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 047: ID 0c45:6366 Microdia
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 052: ID 0c45:6366 Microdia
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 056: ID 0c45:6366 Microdia
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 056: ID 0c45:6366 Microdia
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 062: ID 0c45:6366 Microdia
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 062: ID 0c45:6366 Microdia
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 063: ID 0c45:6366:Microdia
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 066: ID 0c45:6366 Microdia
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 069: ID 0c45:6366 Microdia
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
pi@raspberrypi:~ $ lsusb -d 0c45:
Bus 001 Device 076: ID 0c45:6366 Microdia

I am starting to suspect a power issue. How much mA does the exploreHD camera usually draw? Could it be that it is not getting enough from the Pi so that it connects and drops and reconnects all the time?

Here are a couple of photos of our setup. I hope this shows what you were looking for.

2 Likes

Yeah that does seem a bit strange :hushed:

I can’t really see if there are issues with the soldering work since its heat shrink but I don’t think that’s the issue. I would try plugging it into your laptop again, wiggling the USB connector part with Camera App open and see if the video cuts out. It is also odd that you get this issue occasionally with the ELP camera.

In terms of power consumption, it would be the same as the or similar to the ELP camera from Blue. USB devices will not draw more than 500mA. Are you powering the Pi with a supply of at least 3A? Also make sure that the cables are high gauge enough for the current. We tested connecting 3 different exploreHD on a RPi 3+ with no issues running it for hours.

If the exploreHD passes the USB wiggle test on the laptop, The only conclusion I can make from this is the PI has issues. Maybe try it on a different port of the Pi?

Hope this helps! :slight_smile:

3 Likes

Thank you for your patience :slightly_smiling_face:

First, I swapped out our power supply, it should now deliver constant 2A (we had 500 mA before). However, I observed the same behaviour as described above, so power supply is less likely to be the cause.

Then :point_down:

This :point_up_2:

When showing it through the Windows Camera app, the camera passes out every time I even just slightly touch the USB connector, right where the white cable tie was put around the wires :exploding_head:
I’ll see how fast I can get this fixed with the holidays approaching but will report back once we have done some more work on this. Let’s hope we have found the culprit :grin:

3 Likes

Hello!

I was looking further at the photo and I noticed that you use header jumper cables. I think that may also be causing the disconnection issue.

I recommend trying these connectors out and seeing if they could work. Just be careful because the label is not very well shown. Just make sure it the polarity don’t get reversed, the data wont damage the camera :slight_smile:

2 Likes

Hi there and Happy New Year!

I just wanted to let you know that changing the USB connector did indeed resolve our issues with the camera’s connection and we can now stream fine :slightly_smiling_face:

4 Likes