VOXL UVC Server not connecting



  • I have been trying to connect my UVC camera to view either in VLC or in QGC.
    I thought if I followed the guide for the VOXL UVC Server, that it would work or at least get me in the right direction.
    When I enter;

    voxl:~$ voxl-uvc-server
    

    nothing happens.

    voxl:~$ voxl-version
    --------------------------------------------------------------------------------
    system-image: 3.8.0
    kernel:       #1 SMP PREEMPT Tue Apr 26 18:08:39 UTC 2022 3.18.71-perf
    --------------------------------------------------------------------------------
    hw version:   VOXL
    --------------------------------------------------------------------------------
    voxl-suite:   0.8.1
    0.7.0
    --------------------------------------------------------------------------------
    voxl:~$ voxl-inspect-services
     Service Name             |  Enabled  |   Running   |  CPU Usage
    -------------------------------------------------------------------
     docker-autorun           | Disabled  | Not Running |  
     docker-daemon            | Disabled  | Not Running |  
     modallink-relink         | Disabled  | Not Running |  
     voxl-camera-server       |  Enabled  |   Running   |    18.0
     voxl-cpu-monitor         |  Enabled  |   Running   |     0.0
     voxl-dfs-server          |  Enabled  | Not Running |  
     voxl-imu-server          |  Enabled  |   Running   |     2.0
     voxl-mavlink-server      |  Enabled  |   Running   |     2.0
     voxl-modem               | Disabled  | Not Running |  
     voxl-portal              |  Enabled  |   Running   |     0.0
     voxl-qvio-server         |  Enabled  |   Running   |     8.0
     voxl-rangefinder-server  | Disabled  | Not Running |  
     voxl-streamer            | Disabled  | Not Running |  
     voxl-tag-detector        |  Enabled  | Not Running |  
     voxl-tflite-server       | Disabled  | Not Running |  
     voxl-time-sync           | Disabled  | Not Running |  
     voxl-vision-px4          |  Enabled  |   Running   |     2.0
     voxl-wait-for-fs         |  Enabled  |  Completed  |  
    voxl:~$ cd /home/root/ipk
    voxl:~/ipk$ opkg update
    Downloading http://voxl-packages.modalai.com/dists/apq8096/stable/binary-arm64//Packages.gz.
    Updated source 'modalai'.
    voxl:~/ipk$ opkg install voxl-uvc-server
    Package voxl-uvc-server (0.1.1) installed in root is up to date.
    voxl:~/ipk$ cd
    voxl:~$ voxl-uvc-server
    ^Cvoxl:~$ 
    voxl:~$ voxl-uvc-server -m
    Enabling MPA debug messages
    ^Chelper thread received sigusr 10
    channel 0 request thread closing
    voxl:~$ 
    voxl:~$ voxl-uvc-server -d
    Enabling debug messages
    voxl-uvc-server starting
    Image resolution 640x480, 30 fps chosen
    UVC initialized
    Device found
    Device opened
    uvc_get_stream_ctrl_format_size succeeded for format 0
    Streaming starting
    Got frame callback! frame_format = 3, width = 640, height = 480, length = 614400, ptr = (nil)
     * got image 30
     * got image 60
     * got image 90
     * got image 120
     * got image 150
     * got image 180
     * got image 210
     * got image 240
     * got image 270
    ^CGot SIGINT, exiting
    Done streaming
    UVC exited
    voxl-uvc-server ending
    voxl:~$ 
    
    

  • Dev Team

    @Kris What do you get if you try voxl-uvc-server -s?



  • Hi, @Eric-Katzfey.
    This is what I get.

    voxl:~$ voxl-uvc-server -s
    *** START DEVICE LIST ***
    
    Found device 1
    
    Got device descriptor for 0bda:3035 200901010001
    
    Found device 0bda:3035
    
    DEVICE CONFIGURATION (0bda:3035/200901010001) ---
    Status: idle
    VideoControl:
    	bcdUVC: 0x0100
    VideoStreaming(1):
    	bEndpointAddress: 129
    	Formats:
    	MJPEGFormat(1)
    		  bits per pixel: 0
    		  GUID: 4d4a5047000000000000000000000000 (MJPG)
    		  default frame: 1
    		  aspect ratio: 0x0
    		  interlace flags: 00
    		  copy protect: 00
    			FrameDescriptor(1)
    			  capabilities: 00
    			  size: 1920x1080
    			  bit rate: 995328000-995328000
    			  max frame size: 4147200
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(2)
    			  capabilities: 00
    			  size: 640x480
    			  bit rate: 147456000-147456000
    			  max frame size: 614400
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(3)
    			  capabilities: 00
    			  size: 800x600
    			  bit rate: 230400000-230400000
    			  max frame size: 960000
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(4)
    			  capabilities: 00
    			  size: 1024x768
    			  bit rate: 377487360-377487360
    			  max frame size: 1572864
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(5)
    			  capabilities: 00
    			  size: 1280x720
    			  bit rate: 442368000-442368000
    			  max frame size: 1843200
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(6)
    			  capabilities: 00
    			  size: 1280x960
    			  bit rate: 589824000-589824000
    			  max frame size: 2457600
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(7)
    			  capabilities: 00
    			  size: 1920x1070
    			  bit rate: 986112000-986112000
    			  max frame size: 4108800
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(8)
    			  capabilities: 00
    			  size: 2048x1536
    			  bit rate: 1509949440-1509949440
    			  max frame size: 6291456
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(9)
    			  capabilities: 00
    			  size: 2592x1944
    			  bit rate: -1876320256--1876320256
    			  max frame size: 10077696
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(10)
    			  capabilities: 00
    			  size: 1920x1080
    			  bit rate: 995328000-995328000
    			  max frame size: 4147200
    			  default interval: 1/30
    			  interval[0]: 1/30
    			StillFrameDescriptor
    			  bEndPointAddress: 00
    			  wWidth(1) = 1920
    			  wHeight(1) = 1080
    			  wWidth(2) = 640
    			  wHeight(2) = 480
    			  wWidth(3) = 640
    			  wHeight(3) = 480
    			  wWidth(4) = 640
    			  wHeight(4) = 480
    			  wWidth(5) = 640
    			  wHeight(5) = 480
    			  wWidth(6) = 640
    			  wHeight(6) = 480
    			  wWidth(7) = 640
    			  wHeight(7) = 480
    			  wWidth(8) = 640
    			  wHeight(8) = 480
    			  wWidth(9) = 640
    			  wHeight(9) = 480
    	UncompressedFormat(2)
    		  bits per pixel: 16
    		  GUID: 5955593200001000800000aa00389b71 (YUY2)
    		  default frame: 1
    		  aspect ratio: 0x0
    		  interlace flags: 00
    		  copy protect: 00
    			FrameDescriptor(1)
    			  capabilities: 00
    			  size: 1920x1080
    			  bit rate: 99532800-99532800
    			  max frame size: 4147200
    			  default interval: 1/3
    			  interval[0]: 1/3
    			FrameDescriptor(2)
    			  capabilities: 00
    			  size: 640x480
    			  bit rate: 147456000-147456000
    			  max frame size: 614400
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(3)
    			  capabilities: 00
    			  size: 1280x720
    			  bit rate: 117964800-117964800
    			  max frame size: 1843200
    			  default interval: 1/8
    			  interval[0]: 1/8
    			FrameDescriptor(4)
    			  capabilities: 00
    			  size: 800x600
    			  bit rate: 153600000-153600000
    			  max frame size: 960000
    			  default interval: 1/20
    			  interval[0]: 1/20
    			FrameDescriptor(5)
    			  capabilities: 00
    			  size: 1280x960
    			  bit rate: 157286400-157286400
    			  max frame size: 2457600
    			  default interval: 1/8
    			  interval[0]: 1/8
    			FrameDescriptor(6)
    			  capabilities: 00
    			  size: 2048x1536
    			  bit rate: 150994944-150994944
    			  max frame size: 6291456
    			  default interval: 1/3
    			  interval[0]: 1/3
    			FrameDescriptor(7)
    			  capabilities: 00
    			  size: 2592x1944
    			  bit rate: 161243136-161243136
    			  max frame size: 10077696
    voxl:~$ lsusb
    Bus 001 Device 003: ID 0bda:3035 Realtek Semiconductor Corp. 
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    voxl:~$ voxl-uvc-server -s
    *** START DEVICE LIST ***
    
    Found device 1
    
    Got device descriptor for 0bda:3035 200901010001
    
    Found device 0bda:3035
    
    DEVICE CONFIGURATION (0bda:3035/200901010001) ---
    Status: idle
    VideoControl:
    	bcdUVC: 0x0100
    VideoStreaming(1):
    	bEndpointAddress: 129
    	Formats:
    	MJPEGFormat(1)
    		  bits per pixel: 0
    		  GUID: 4d4a5047000000000000000000000000 (MJPG)
    		  default frame: 1
    		  aspect ratio: 0x0
    		  interlace flags: 00
    		  copy protect: 00
    			FrameDescriptor(1)
    			  capabilities: 00
    			  size: 1920x1080
    			  bit rate: 995328000-995328000
    			  max frame size: 4147200
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(2)
    			  capabilities: 00
    			  size: 640x480
    			  bit rate: 147456000-147456000
    			  max frame size: 614400
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(3)
    			  capabilities: 00
    			  size: 800x600
    			  bit rate: 230400000-230400000
    			  max frame size: 960000
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(4)
    			  capabilities: 00
    			  size: 1024x768
    			  bit rate: 377487360-377487360
    			  max frame size: 1572864
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(5)
    			  capabilities: 00
    			  size: 1280x720
    			  bit rate: 442368000-442368000
    			  max frame size: 1843200
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(6)
    			  capabilities: 00
    			  size: 1280x960
    			  bit rate: 589824000-589824000
    			  max frame size: 2457600
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(7)
    			  capabilities: 00
    			  size: 1920x1070
    			  bit rate: 986112000-986112000
    			  max frame size: 4108800
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(8)
    			  capabilities: 00
    			  size: 2048x1536
    			  bit rate: 1509949440-1509949440
    			  max frame size: 6291456
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(9)
    			  capabilities: 00
    			  size: 2592x1944
    			  bit rate: -1876320256--1876320256
    			  max frame size: 10077696
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(10)
    			  capabilities: 00
    			  size: 1920x1080
    			  bit rate: 995328000-995328000
    			  max frame size: 4147200
    			  default interval: 1/30
    			  interval[0]: 1/30
    			StillFrameDescriptor
    			  bEndPointAddress: 00
    			  wWidth(1) = 1920
    			  wHeight(1) = 1080
    			  wWidth(2) = 640
    			  wHeight(2) = 480
    			  wWidth(3) = 640
    			  wHeight(3) = 480
    			  wWidth(4) = 640
    			  wHeight(4) = 480
    			  wWidth(5) = 640
    			  wHeight(5) = 480
    			  wWidth(6) = 640
    			  wHeight(6) = 480
    			  wWidth(7) = 640
    			  wHeight(7) = 480
    			  wWidth(8) = 640
    			  wHeight(8) = 480
    			  wWidth(9) = 640
    			  wHeight(9) = 480
    	UncompressedFormat(2)
    		  bits per pixel: 16
    		  GUID: 5955593200001000800000aa00389b71 (YUY2)
    		  default frame: 1
    		  aspect ratio: 0x0
    		  interlace flags: 00
    		  copy protect: 00
    			FrameDescriptor(1)
    			  capabilities: 00
    			  size: 1920x1080
    			  bit rate: 99532800-99532800
    			  max frame size: 4147200
    			  default interval: 1/3
    			  interval[0]: 1/3
    			FrameDescriptor(2)
    			  capabilities: 00
    			  size: 640x480
    			  bit rate: 147456000-147456000
    			  max frame size: 614400
    			  default interval: 1/30
    			  interval[0]: 1/30
    			FrameDescriptor(3)
    			  capabilities: 00
    			  size: 1280x720
    			  bit rate: 117964800-117964800
    			  max frame size: 1843200
    			  default interval: 1/8
    			  interval[0]: 1/8
    			FrameDescriptor(4)
    			  capabilities: 00
    			  size: 800x600
    			  bit rate: 153600000-153600000
    			  max frame size: 960000
    			  default interval: 1/20
    			  interval[0]: 1/20
    			FrameDescriptor(5)
    			  capabilities: 00
    			  size: 1280x960
    			  bit rate: 157286400-157286400
    			  max frame size: 2457600
    			  default interval: 1/8
    			  interval[0]: 1/8
    			FrameDescriptor(6)
    			  capabilities: 00
    			  size: 2048x1536
    			  bit rate: 150994944-150994944
    			  max frame size: 6291456
    			  default interval: 1/3
    			  interval[0]: 1/3
    			FrameDescriptor(7)
    			  capabilities: 00
    			  size: 2592x1944
    			  bit rate: 161243136-161243136
    			  max frame size: 10077696
    			  default interval: 1/2
    			  interval[0]: 1/2
    			FrameDescriptor(8)
    			  capabilities: 00
    			  size: 1920x1080
    			  bit rate: 99532800-99532800
    			  max frame size: 4147200
    			  default interval: 1/3
    			  interval[0]: 1/3
    			StillFrameDescriptor
    			  bEndPointAddress: 00
    			  wWidth(1) = 640
    			  wHeight(1) = 480
    			  wWidth(2) = 1920
    			  wHeight(2) = 1080
    			  wWidth(3) = 1280
    			  wHeight(3) = 720
    			  wWidth(4) = 2592
    			  wHeight(4) = 1944
    END DEVICE CONFIGURATION
    
    *** END DEVICE LIST ***
    voxl:~$ 
    
    
    voxl:~$ lsusb
    Bus 001 Device 003: ID 0bda:3035 Realtek Semiconductor Corp. 
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    
    

  • Dev Team

    @Kris Okay, that all looks good. What about voxl-uvc-server -d -m?



  • @Eric-Katzfey

    voxl:~$ voxl-uvc-server -d -m
    Enabling debug messages
    Enabling MPA debug messages
    voxl-uvc-server starting
    Image resolution 640x480, 30 fps chosen
    UVC initialized
    Device found
    Device opened
    uvc_get_stream_ctrl_format_size succeeded for format 0
    Streaming starting
    Got frame callback! frame_format = 3, width = 640, height = 480, length = 614400, ptr = (nil)
     * got image 30
     * got image 60
     * got image 90
     * got image 120
     * got image 150
     * got image 180
     * got image 210
     * got image 240
     * got image 270
     * got image 300
     * got image 330
     * got image 360
     * got image 390
     * got image 420
     * got image 450
     * got image 480
     * got image 510
     * got image 540
     * got image 570
     * got image 600
     * got image 630
     * got image 660
     * got image 690
     * got image 720
     * got image 750
     * got image 780
     * got image 810
     * got image 840
     * got image 870
     * got image 900
     * got image 930
     * got image 960
     * got image 990
    ^CGot SIGINT, exiting
    helper thread received sigusr 10
    channel 0 request thread closing
    Done streaming
    UVC exited
    voxl-uvc-server ending
    voxl:~$ 
    
    

  • Dev Team

    @Kris Okay, so that shows that voxl-uvc-server is running.



  • @Eric-Katzfey
    What do I need to do to view the images/video from my UVC camera?

    voxl:~$ show-video-device-info.sh
    /dev/video2: USB Camera 0bda:3035
    
    

  • Dev Team

    @Kris You run voxl-uvc-server to get the frames from the camera. See docs.modalai.com/voxl-uvc-server for more information. Then you run voxl-streamer -c uvc-generic to create an RTSP stream that can be viewed remotely using VLC or QGC. Se docs.modalai.com/voxl-streamer for more information.



  • @Eric-Katzfey
    This is where I am a little confused. Do I need to SSH into VOXL and run the

    voxl:~$ voxl-uvc-server
    

    in one terminal. Then open a new terminal, SSH into VOXL again and run

    voxl:~$ voxl-streamer -c uvc-generic
    


  • @Eric-Katzfey Ok, Thank you!!! I finally got it working 👍


  • Dev Team

    @Kris I usually use adb shell to setup two separate sessions. I run voxl-uvc-server in one and voxl-streamer in the other.



  • @Eric-Katzfey How can I change the frame rates, etc.
    Or edit the config files?



  • @Eric-Katzfey I am trying to get better quality because I need to record via some type of Screen Recorder. I would prefer to save the recorded videos to an SD card, but I don't think that is possible.


  • Dev Team

    @Kris Yes, you can edit the config files to change resolution, frame rate, etc.


  • Dev Team

    @Kris We don't currently have a way to save to SD card from the UVC camera. However, you can create your own code to do this. This is a feature that we will be adding in the future.



  • @Eric-Katzfey Would I edit the config files from the "uvc-geneirc" at the top or the "uvc-video" at the bottom of the config files?


  • Dev Team

    @Kris If you are using the uvc-generic configuration then that is the one that you would edit.



  • @Eric-Katzfey Got it 👍
    Thank you for your help and quick responses 😊



  • WOW what a great thread, so on time for me Thanks Kris


Log in to reply