Home        Store        Learn        Blog

Cameras have multiple IDs

When doing lsusb on a Raspberry pi, the three Low-Light USB Cameras we ordered have the same number. Is this intentional? It doesn’t work with the video streaming software we are using. I define one camera as a video source and it works. I unplug it, restart the stream, and the second camera turns on from the same source. It is not an issue with the pi because I have tried with multiple cameras at the same time and it works as expected. Is there a way to change their IDs to make them appear separate to the pi?

Edit: adding image of lsusb

Hi @Daniel,

If the camera internal usb driver has the same PID (Product ID) and VID (Vendor ID) this will happen.
For camera identification, you have two options:

  • Change the PID and VID and add a new driver for it based in the new value
  • Use the USB bus position to identify each camera

Could you explain how to do these? If you mean using /dev/v4l/by-path/ as a video source, it doesn’t work.

And out of curiosity, how many cameras does the BlueROV2 use?

by-path should work, can you explain what is the problem ?

1, we don’t have support to multiple cameras yet, is a work in progress and should be available when ready.

We are using Motion as our way of video streaming. I can add one camera with the by-path method, but once I add another one, the second stream can not load. If I switch their spots (first camera on stream 2 and second camera on stream 1), then stream 1 loads, and stream 2 can not. I have a different camera on stream 3 and everything works fine with it.

Just to make it clear, you have a single camera that provides two video feeds (stream 1 and stream 2) ? and a second camera for (stream 3) ?
If that’s the case, keep in mind that usually a single USB camera can’t provide multiple streams.
But, if you create a gstreamer pipeline per video using by-path it should work, if so, it may be a problem with Motion.

I have three cameras. Two are the same. They are the Low Light HD USB Camera - Low-Light HD USB Camera with Wide-Angle, Low Distortion Lens. And the third one is a generic webcam I used to test if it was a software or hardware issue with the pi.

I have tried installing gstreamer but it can’t download two dependencies, and therefore it’s not installing.

I have 8 cameras.

I bought 7 cheap FPV starlight (no IR-cut lens) cameras off Amazon, and 1 used Panasonic SDR T55 camcorder with 78x optical zoom off eBay ($50-ish) for my main camera. I plugged them into an inexpensive security-system DVR that i stripped down to fit inside my WTC. Plug the DVR’s ethernet port into a 4-port router (or switch), then use the FathomX boards to send it up the tether. Open a browser window, sign into the DVR’s IP, watch all 8 cameras in realtime. (Except i use eKL ethernet-over-coax adapters instead of the FathomX boards)

Simple, Easy, and it just Works.

So you have a DVR in your ROV with a network switch? This solution will not work for me because I are using usb cameras. And there isn’t enough room for a DVR in my ROV. What I need is to change the IDs if the cameras.

At the risk of going a bit off-topic or offending someone, i will keep trying to help.

Perhaps i misunderstood your goal.

If your goal is to configure the USB cameras you have, I can’t help you.

If your goal is to get multiple video streams topside so you can see what is going on, try thinking outside the box and following my previous advice. They make small DVR’s for vehicle use, and you can remove the case and put just the circuit board in the WTC of your ROV, if it will fit. Perhaps get one that only supports 4 cameras, if that is enough for you. Likewise strip down the network switch.

Another way would be to put a second WTC on the ROV with the DVR board in that. I dunno what you have exactly. I knew i didn’t want a toy ROV, so i built mine the size of a chest freezer, with a 3’ (1m) long, 7" (17.8cm) diameter WTC. Because like she said, size really does matter.

If this won’t work for you, sorry i couldn’t help.