OpenPnP-Capture: no frame captured

8 views
Skip to first unread message

Jan

unread,
Nov 28, 2025, 6:33:34 AM (18 hours ago) Nov 28
to OpenPnP
Hi All!
I'm trying to find out why my two cameras can not be used on a single
host controller on Win11 (I know this is not recommended). Both are ELPs
with multiple resolutions and many interfaces with different bandwidth
requirements.
When I start OpenPnP, I find "Camera <...> thread <...> started" twice
in the log and I get a preview image on the first camera. The second is
just black (not the error image).
In OpenPnP I can see, that Cap_openStream() is called on each camera
and that it quickly returns with 0 for the first and takes longer for
the second but also returns 0. Cap_hasNewFrame() never returns 1 for the
the second camera.
I've used USB Device Tree Viewer V4.5.0 to check the USB configuration
details and can see, that the first camera has two pipes open. The
second ("pipe[1]") is reported as EndpointID=1, wMaxPacketSize=0x13fc
and bInterval=1. That corresponds to bAlternateSetting=0x03 of Interface
1, which is the configuration with the highest bandwidth requirements.
For the second camera I don't see an active second pipe. I'd say that
the camera has no active streaming connection. Using an external camera
viewer I can not connect to the camera. So I'd conclude that
OpenPnP-capture has an open handle on the camera preventing others from
using it.
The question is now, why is there no error message indicating that
OpenPnP-capture can not capture from this camera and why is
OpenPnP-capture not able to choose a different configuration for the
streaming interface that has less bandwidth requirements?
Final note: I'd love to see that OpenPnP prefers Bottom over Top
cameras by acquiring more bandwidth for bottom vision. However, at
present cameras seem to be created and initialized directly from
machine.xml in which the order is probably given by the order of
assigning them when first configuring the machine.

Jan

BTW: The same issue happens if the cameras are forced to be initialized
the other way around.

vespaman

unread,
Nov 28, 2025, 8:30:56 AM (16 hours ago) Nov 28
to OpenPnP
Hi Jan,

While I have only experience of Linux, I think this is a kernel driver thing, maybe USB limitation. When the device is opened, it will require the camera device and the needed bus speed. At this point, the needed bus speed is not known, it takes most device need.
On Linux, you can see the second camera being knocked off the USB bus in the kernel log.
I have never seen a working configuration with the 'dynamic' bus speed allocation you are expecting to see. 
(Not saying this does not exist, just my own experiences with the cheap USB cameras I have used)

On my previous computer, a PCIe USB3 adapter card did the trick, but maybe you cannot make place for such.

 - Micael
Reply all
Reply to author
Forward
0 new messages