Why webcams won’t work with Image Acquisition tool when connected via USB hub?


I am currently doing a project that involves 3D reconstruction using a camera array.

I have 16 Microsoft HD-3000 webcams, Matlab R2017a on Windows 7 (64bit) OS.

I need the pictures to be taken simultaneously, which I found out is impossible with those webcams. Therefore I am recording short ‘overlapping videos’, measuring time difference between individual cameras triggering and ultimately extracting specific frames from the videos.

So far I have wrote a matlab code which detects how many cameras are plugged to the computer, then set camera parameters, records videos, saves them into the folder and measures time differences.

The code works fine when the cameras are plugged directly via computer’s USB ports (tested on max. 8 cameras at a time since that is how many USB ports my computer has). However when I try plugging in the cameras via USB hub (StarTech), it won’t work. It detects the cameras, sets parameters for each of them and ‘tries’ to take a video (it even gives me time difference), but the videos never appear on the drive. I am also getting following warning at the very beginning of running the code:

“Warning: An object in OBJ could not be started, was already started, or is invalid. “

All cameras are accessible and available for the preview in Image Acquisition Toolbox.

FYI, the USB Hub was supposed to be socket-powered, however it doesn’t seem to work and I was testing it while powered from the computer.

Do you have any idea how to make it work? I have been struggling with this for the last couple of days.


Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

In my experience, it would not be uncommon for a computer with 8 USB ports to internally have 3 USB busses split over 2 USB controllers, with the second controller also handling the keyboard and mouse and Bluetooth.

For frame-level synchronization, ideally each camera should be on its own USB 3.0 bus. I would not consider putting more than 2 cameras on the same USB 2.0 bus (and would expect occasional glitches); I might generally be willing to test with 3 cameras on the same USB 3.0 bus but certainly not for real-time work — and since those particular webcams only have USB 2.0 capacity, USB 3.0 ports would have to hold their speed down to USB 2.0 so with a USB 3.0 bus you would, in such a case, only get the benefit of a faster controller that might have more memory.

USB hubs are not really transparent to the USB process. You can examine your USB configuration and you will see each hub and you will see the ports attached to each of its ports.




Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store