View Categories

Logitech QuickCam Orbit Sphere AF

Note: there are diffrent PCB’s/internal manufactors for these webcams


Information #

  • idVendor=046d
  • idProduct=08b5

dmesg #

usb 6-1: new full-speed USB device number 3 using ohci-platform
usb 6-1: New USB device found, idVendor=046d, idProduct=08b5, bcdDevice= 0.03
usb 6-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
mc: Linux media interface: v0.10
videodev: Linux video capture interface: v2.00
pwc: Logitech QuickCam Orbit/Sphere USB webcam detected.
pwc: Registered as video0.
input: PWC snapshot button as /devices/platform/soc/1c1b400.usb/usb6/6-1/input/input1
usbcore: registered new interface driver Philips webcam
usbcore: registered new interface driver snd-usb-audio

v4l2-ctl –list-formats-ext #

ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'PWC2' (Raw Philips Webcam Type (New), compressed)
                Size: Discrete 160x120
                Size: Discrete 320x240
                Size: Discrete 640x480
        [1]: 'YU12' (Planar YUV 4:2:0)
                Size: Discrete 160x120
                        Interval: Discrete 0.200s (5.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.200s (5.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.200s (5.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)

v4l2-ctl –list-ctrls #

User Controls

                     brightness 0x00980900 (int)    : min=0 max=127 step=1 default=62 value=62 flags=slider
                       contrast 0x00980901 (int)    : min=0 max=63 step=1 default=32 value=32 flags=slider
                     saturation 0x00980902 (int)    : min=-100 max=100 step=1 default=0 value=0 flags=slider
        white_balance_automatic 0x0098090c (menu)   : min=0 max=4 default=4 value=4 (Auto Mode) flags=update
                    red_balance 0x0098090e (int)    : min=0 max=255 step=1 default=128 value=173 flags=inactive, slider, volatile
                   blue_balance 0x0098090f (int)    : min=0 max=255 step=1 default=128 value=123 flags=inactive, slider, volatile
                          gamma 0x00980910 (int)    : min=0 max=31 step=1 default=24 value=24 flags=slider
                       exposure 0x00980911 (int)    : min=0 max=255 step=1 default=241 value=241 flags=inactive, volatile
                 gain_automatic 0x00980912 (bool)   : default=1 value=1 flags=update
                           gain 0x00980913 (int)    : min=0 max=63 step=1 default=7 value=7 flags=inactive, volatile
         backlight_compensation 0x0098091c (bool)   : default=1 value=1
                  color_effects 0x0098091f (menu)   : min=0 max=1 default=0 value=0 (None)
               band_stop_filter 0x00980921 (bool)   : default=0 value=0
                   auto_contour 0x0098f900 (bool)   : default=0 value=0 flags=update
                        contour 0x0098f901 (int)    : min=0 max=63 step=1 default=32 value=32 flags=slider
        dynamic_noise_reduction 0x0098f902 (int)    : min=0 max=3 step=1 default=1 value=1
       auto_white_balance_speed 0x0098f903 (int)    : min=1 max=32 step=1 default=1 value=1
       auto_white_balance_delay 0x0098f904 (int)    : min=0 max=63 step=1 default=0 value=0
             save_user_settings 0x0098f905 (button) : value=0 flags=write-only, execute-on-write
          restore_user_settings 0x0098f906 (button) : value=0 flags=update, write-only, execute-on-write
       restore_factory_settings 0x0098f907 (button) : value=0 flags=update, write-only, execute-on-write

Camera Controls

                   pan_relative 0x009a0904 (int)    : min=-4480 max=4480 step=64 default=0 value=0 flags=write-only, execute-on-write
                  tilt_relative 0x009a0905 (int)    : min=-1920 max=1920 step=64 default=0 value=0 flags=write-only, execute-on-write
                      pan_reset 0x009a0906 (button) : value=0 flags=write-only, execute-on-write
                     tilt_reset 0x009a0907 (button) : value=0 flags=write-only, execute-on-write

Information #

  • idVendor=046d
  • idProduct=08cc

dmesg #

usb 3-1: new high-speed USB device number 5 using ehci-platform
usb 3-1: config 1 interface 3 altsetting 1 endpoint 0x86 has invalid wMaxPacketSize 0
usb 3-1: config 1 interface 3 altsetting 2 endpoint 0x86 has invalid wMaxPacketSize 0
usb 3-1: New USB device found, idVendor=046d, idProduct=08cc, bcdDevice= 0.05
usb 3-1: New USB device strings: Mfr=0, Product=0, SerialNumber=2
usb 3-1: SerialNumber: EA53F3A1
usb 3-1: Warning! Unlikely big volume range (=3072), cval->res is probably wrong.
usb 3-1: [5] FU [Mic Capture Volume] ch = 1, val = 4608/7680/1
usb 3-1: Found UVC 1.00 device <unnamed> (046d:08cc)
input: UVC Camera (046d:08cc) as /devices/platform/soc/1c1b000.usb/usb3/3-1/3-1:1.0/input/input3
usbcore: registered new interface driver uvcvideo
usb 3-1: reset high-speed USB device number 5 using ehci-platform

v4l2-ctl –list-formats-ext #

ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'MJPG' (Motion-JPEG, compressed)
                Size: Discrete 160x120
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 176x144
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 352x288
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 960x720
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
        [1]: 'YUYV' (YUYV 4:2:2)
                Size: Discrete 160x120
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 176x144
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 352x288
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 960x720
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1280x960
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)

v4l2-ctl –list-ctrls #

User Controls

                     brightness 0x00980900 (int)    : min=0 max=255 step=1 default=127 value=127
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=32 value=32
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=28 value=28
        white_balance_automatic 0x0098090c (bool)   : default=1 value=1
                           gain 0x00980913 (int)    : min=0 max=255 step=1 default=0 value=0
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=2 value=2 (60 Hz)
      white_balance_temperature 0x0098091a (int)    : min=0 max=10000 step=10 default=4000 value=4000 flags=inactive
                      sharpness 0x0098091b (int)    : min=0 max=255 step=1 default=180 value=180
         backlight_compensation 0x0098091c (int)    : min=0 max=2 step=1 default=1 value=1

Camera Controls

                  auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=3 (Aperture Priority Mode)
         exposure_time_absolute 0x009a0902 (int)    : min=1 max=10000 step=1 default=166 value=166 flags=inactive
     exposure_dynamic_framerate 0x009a0903 (bool)   : default=0 value=0

After patch (see below)

User Controls

                     brightness 0x00980900 (int)    : min=0 max=255 step=1 default=127 value=127
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=32 value=32
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=28 value=28
        white_balance_automatic 0x0098090c (bool)   : default=1 value=1
                           gain 0x00980913 (int)    : min=0 max=255 step=1 default=0 value=0
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=2 value=2 (60 Hz)
      white_balance_temperature 0x0098091a (int)    : min=0 max=10000 step=10 default=4000 value=4000 flags=inactive
                      sharpness 0x0098091b (int)    : min=0 max=255 step=1 default=180 value=180
         backlight_compensation 0x0098091c (int)    : min=0 max=2 step=1 default=1 value=1

Camera Controls

                  auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=3 (Aperture Priority Mode)
         exposure_time_absolute 0x009a0902 (int)    : min=1 max=10000 step=1 default=166 value=166 flags=inactive
     exposure_dynamic_framerate 0x009a0903 (bool)   : default=0 value=0
                   pan_relative 0x009a0904 (int)    : min=-4480 max=4480 step=0 default=0 value=0 flags=write-only
                  tilt_relative 0x009a0905 (int)    : min=-1920 max=1920 step=0 default=0 value=0 flags=write-only
                      pan_reset 0x009a0906 (button) : value=0 flags=write-only
                     tilt_reset 0x009a0907 (button) : value=0 flags=write-only
                      led1_mode 0x0a046d05 (menu)   : min=0 max=3 default=3 value=3 (Auto)
                 led1_frequency 0x0a046d06 (int)    : min=0 max=255 step=1 default=0 value=0
       disable_video_processing 0x0a046d71 (bool)   : default=0 value=0
             raw_bits_per_pixel 0x0a046d72 (int)    : min=0 max=1 step=1 default=1 value=1

PAN/TILT #

You can pan this camera, please use the console command a few times to turn the camera max limit:

v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=500
v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=500
v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=500
v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=500
v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=500
v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=500
v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=500

Now the camera is in the max limit position, you can see in the output above the range is “min=-4480 max=4480” so now we have set the “home/starting” point we can turn the camera precicely to the “middle/default” point:

v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=-4480

And another to turn it the other way

v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=-4480

You can tilt this camera, please use the console command a few times to turn the camera max limit:

v4l2-ctl -d /dev/video0 --set-ctrl "tilt_relative"=500
v4l2-ctl -d /dev/video0 --set-ctrl "tilt_relative"=500
v4l2-ctl -d /dev/video0 --set-ctrl "tilt_relative"=500
v4l2-ctl -d /dev/video0 --set-ctrl "tilt_relative"=500

Now the camera is in the max limit position, you can see in the output above the range is “min=-1920 max=1920” so now we have set the “home/starting” point we can tilt the camera precicely to the “middle/default” point:

v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=-1920

And another to turn it the other way

v4l2-ctl -d /dev/video0 --set-ctrl "pan_relative"=-1920

If there is no PAN/TILT control

if there is no pan/tilt control like for example on the “idProduct=08cc” models, you can use these commands to get the controls

if you get this error

UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)

Then install these packages

sudo apt install libwebcam0 uvcdynctrl

Now import the logitech IOCTL bindings

uvcdynctrl --import=/usr/share/uvcdynctrl/data/046d/logitech.xml

Now, you should have pan/tilt bindings!


LED control #

To flash the led once you cen send the command:

v4l2-ctl -d /dev/video0 --set-ctrl "led1_mode"=1

or

 v4l2-ctl -d /dev/video0 --set-ctrl "led1_frequency"=255

Source #

https://joshcurry.co.uk/posts/pan-tilt-controls-not-available-on-logitech-orbit-sphere-af-on-linux