Jump to content
User 604

4x USB A Camera

Recommended Posts

Hi,

Just got my new Tinker Board 2S and installed the Debian 11 image (v3.0.6-20230627) on the emmc. All seems to be working.

I need to connect 4x Basler USB3 cameras using the USB A. Since 2S has 3 USB A ports, I used a USB A to USB C adapter for the 4th camera. Tinker Board doc says the USB C port is OTG. Do I need to change any configuration to disable OTG for my use case? I tried gstreamer plugin (https://github.com/basler/gst-plugin-pylon) to capture from the cameras, but everything seems extremely slow. A simple command line "gst-launch-1.0 pylonsrc ! fakesink" even takes a long time, feels like hanging. Any thoughts?

Share this post


Link to post
Share on other sites

hello @User 604

do you have the product name/ serial of the basler usb3 cameras you're using so i can have a look at the specifications and support?

Share this post


Link to post
Share on other sites

hello @User 604

On 9/2/2023 at 1:26 PM, User 604 said:

I need to connect 4x Basler USB3 cameras using the USB A. Since 2S has 3 USB A ports, I used a USB A to USB C adapter for the 4th camera

3x USB A ≈13.5W, USB C ≈7.5W; please make sure the adapter that you use provides sufficient power. OTG for USB C means both host mode and device mode are supported at the same time, so no need for extra configuration, if the camera that connects to the USB C port's been detected/ recognized. However please keep in mind that the 4 USB A ports use the same host controller via an usb hub so they share the same bandwith; the USB C uses another host controller and therefore doesn't share the same bandwith with the 4 USB A ports.

 

On 9/2/2023 at 1:26 PM, User 604 said:

I tried gstreamer plugin (https://github.com/basler/gst-plugin-pylon) to capture from the cameras, but everything seems extremely slow. A simple command line "gst-launch-1.0 pylonsrc ! fakesink" even takes a long time, feels like hanging. Any thoughts?

please try this command and see if the issue still persists:

gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=NV12,width=640,height=480 ! videoconvert ! autovideosink

reference: https://tinker-board.asus.com/doc_tb.html#camera/ 

 

Share this post


Link to post
Share on other sites

4 Basler USB3 Vision cameras are connected, but during our testing, we only started gs-launch-1.0 using the camera [0] and [1]:

[0]: 23298703    acA2440-35um    
[1]: 23299426    acA2440-35um    
[2]: 23844311    daA2500-14um    
[3]: 40120759    daA3840-45um    

 

We use the official power adapter that comes with Tinker Board 2s.

 

Share this post


Link to post
Share on other sites

$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=NV12,width=640,height=480 ! videoconvert ! autovideosink
Setting pipeline to PAUSED ...
No protocol specified
No protocol specified
arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '4'.Using mplane plugin for capture
Pipeline is live and does not need PREROLL ...
Got context from element 'autovideosink0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayGBM\)\ gldisplaygbm0";
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to allocate required memory.
Additional debug info:
../sys/v4l2/gstv4l2src.c(700): gst_v4l2src_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.038114558
Setting pipeline to NULL ...
Freeing pipeline ...

 

The command completed immediately.

Share this post


Link to post
Share on other sites

hello @User 604

1. did you get camera preview sucessfully when you executed command?

gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=NV12,width=640,height=480 ! videoconvert ! autovideosink

 

2. seems like the cameras you use don't support NV12 format, also the cameras used are not specified in the commands. 

please use this command to check the cameras' video nodes: 

v4l2-ctl --list-devices

and then use this commend to check if you can get a preview smoothly: 

gst-launch-1.0 v4l2src device=/dev/videoN ! videoconvert ! autovideosink

^ /dev/videoN -- please change the 'N' to the actual # of the video node you're using

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...