Hobbynet SANE sn9c10x vidcam backend, under development

Main Index, webcam info, Info, links, documents, Camera info, Progress, Download, To Do list

Goal for this page is to collect data about the sn9c10x pc camera controller and to give
information about the SANE sn9c10x Vidcam backend.
Some parts of the sn9c10x and spca5xx kernel module and some userspace programs are expected to
be used for this backend zie links below. Intention is also to use first the usb bulk read
mode before trying to use the usb isochronous read mode.

Info, links, documents
1. Camera info: sn9c101 + tas5110c1b Sweex Mini Webcam
                sn9c102 + pas202b    Sitecom VP-001 Easycam
		                     BTC PC380
	                             VCOM PD-612
2. USB bridge manufactuers: Sonix
3. Sensor: TASCOPR TAS5110C1B
           Pixart PAS202
4. Programs: spca50x kernel driver Michel Xhaard (vl41)
	     sn9c10x Luca Risolia (v4l2)
             sn9c101 Bertrik Sikken (v4l1)
	     sonix.sourceforge.net (v4l1) homepage
	     sonix.sourceforge (v4l1)
	     sn9c101 userspace xof
	     sn9c101 NetBSD Takafumo Mizuno
	     sn9c102 Carlos Eduardo Medaglia Dyonisio
Return/Terug Top
Sweex Mini Webcam vid 0x0c45, pid 0x6005
Interface usb 1.1,
Optical Resolution: CIF (352x288), QCIF (176*144) , QVGA(320x240), QSIF(160x120).
		   fileformat: 
Program tested with:		   
Sweex Mini Webcam JA000030: Chip SN9C101
                            Sensor TAS5110C1B (32 pins chip)
		            Lens ?
sweex-miniwebcam-front.jpg
sweex-miniwebcam-back.jpg

Sitecom VP-001 Easycam webcam vid 0x0c45, pid 0x6028
Interface usb 1.1,
Optical Resolution: VGA (640x480), CIF (352x288), QCIF (176*144)?, QVGA(320x240)?, QSIF(160x120)?.
		   fileformat: 
Program tested with:(not yet)		   
Sitecom VP-001: Chip SN9C102
                Sensor PAS202 (28 pins chip) 
                Lens ?
sitecom-vp-001-usb-bridge.jpg
sitecom-vp-001-sensor.jpg

usb bridge-sensorlist, from info files

USB\VID_0c45 and PID_6005	; SN9C101 + TAS5110
USB\VID_0c45 and PID_6009	; SN9C101 + PAS106 

USB\VID_0c45 and PID_6024	; SN9C102 + TAS5130
USB\VID_0c45 and PID_6025	; SN9C102 + TAS5130
USB\VID_0c45 and PID_6025  Mi_00; sn9c103 + TAS5130   ???? see sn9c102 ???
USB\VID_0c45 and PID_6027       ; sn9c101 + OV7630
USB\VID_0c45 and PID_6028	; SN9C102 + PAS202 
USB\VID_0c45 and PID_6029	; SN9C102 + PAS106 
USB\VID_0c45 and PID_602a	; SN9C101 + HV7131 D/E
USB\VID_0c45 and PID_602c	; SN9C102 + OV7630
USB\VID_0c45 and PID_602d	; SN9C101 + HV7131 R

USB\VID_0c45 and PID_6030	; SN9C102 + MI0343 MI0360
USB\VID_0c45 and PID_603f	; SN9C101 + CISVF10

USB\VID_0c45 and PID_6040       ; SN9C102P + MI0360

USB\VID_0c45 and PID_607a       ; SN9C102P + OV7648
USB\VID_0c45 amd PID_607c       ; SN9C102P + HV7131R
USB\VID_0c45 and PID_607e       ; SN9C102P + OV7630

USB\VID_0c45 and PID_6082  Mi_00; sn9c103 + MI0343,MI0360
USB\VID_0c45 and PID_6083  Mi_00; sn9c103 + HY7131D/E
USB\VID_0c45 and PID_608c  Mi_00; sn9c103 + HY7131/R
USB\VID_0c45 and PID_608e  Mi_00; sn9c103 + CISVF10
USB\VID_0c45 and PID_608f  Mi_00; sn9c103 + OV7630

USB\VID_0c45 and PID_60a8  Mi_00; sn9c103 + PAS106
USB\VID_0c45 and PID_60aa  Mi_00; sn9c103 + TAS5130
USB\VID_0c45 and PID_60ab  Mi_00; sn9c103 + TAS5110
USB\VID_0c45 and PID_60af  Mi_00; sn9c103 + PAS202

USB\VID_0c45 and PID_60c0  MI_00; SN9C105 + MI0360

USB\VID_0c45 and PID_60fa  MI_00; SN9C105 + OV7648
USB\VID_0c45 and PID_60fc  MI_00; SN9C105 + HV7131R
USB\VID_0c45 and PID_60fe  MI_00; SN9C105 + OV7630

USB\VID_0c45 and PID_6100	; SN9C128 + MI0360 / MT9V111 / MI0360B
USB\VID_0c45 and PID_610a	; SN9C128 + OV7648
USB\VID_0c45 and PID_610c	; SN9C128 + HV7131R
USB\VID_0c45 and PID_610e	; SN9C128 + OV7630
USB\VID_0c45 and PID_610b	; SN9C128 + OV7660

USB\VID_0c45 and PID_6130       ; SN9C120 + MI0360
USB\VID_0c45 and PID_613a       ; SN9C120 + OV7648
USB\VID_0c45 and PID_613c       ; SN9C120 + HV7131R
USB\VID_0c45 and PID_613e       ; SN9C120 + OV7630

1.3M
USB\VID_0c45 and PID_6240       ; SN9C201 + MI1300
USB\VID_0c45 and PID_6242       ; SN9C201 + MI1310
USB\VID_0c45 and PID_624e       ; SN9C201 + SOI968
USB\VID_0c45 and PID_624f       ; SN9C201 + OV9650
USB\VID_0c45 and PID_627f       ; EEPROM

VGA Sensor
USB\VID_0c45 and PID_6270       ; SN9C201 + MI0360
USB\VID_0c45 and PID_627c       ; SN9C201 + HV7131R
USB\VID_0c45 and PID_627b       ; SN9C201 + OV7660
USB\VID_0c45 and PID_627f       ; EEPROM
 
;
; Usb2.0 PC Camera with Audio Function
;
USB\VID_0c45 and PID_6280 and MI_00       ; SN9C202 + MI1300
USB\VID_0c45 and PID_6282 and MI_00       ; SN9C202 + MI1310
USB\VID_0c45 and PID_628e and MI_00       ; SN9C202 + SOI968
USB\VID_0c45 and PID_628f and MI_00       ; SN9C202 + OV9650
USB\VID_0c45 and PID_628a and MI_00       ; SN9C202 + ICM107
USB\VID_0c45 and PID_62b0 and MI_00       ; SN9C202 + MI0360
USB\VID_0c45 and PID_62bc and MI_00       ; SN9C202 + HV7131R
USB\VID_0c45 and PID_62bb and MI_00       ; SN9C202 + Ov7660
 

For using these pre alpha files SANE sn9c10x backend the following files need to be patched/placed:

sane backends (use version 1.0.18 or higher):
placed in backend directory:              sn9c10x.c, sn9c10x.h, sn9c10x.conf.in,
placed in doc/descriptions directory:     sn9c10x.desc file.
patched in backend directory:             Makefile.in, 
					  dll.conf.in (added sn9c10x)
patched                                   configure.in (add to list BACKENDS: sn9c10x)
patched in tools/udev                     libsane.rules (add line with vid and pid webcam)

Run:                                      autoconf

patched Makefile.in:                backend/Makefile.in 
                                    add lines after "# We must not build SANE backend libraries ..":
                                    libsane-sn9c10x.la: ../sanei/sanei_constrain_value.lo
                                    libsane-sn9c10x.la: ../sanei/sanei_usb.lo
				    Check/add by DISTFILES: sn9c10x.c sn9c10x.h sn9c10x.conf.in
	   
Run "./configure --sysconfdir=/etc --prefix=/usr --mandir=/usr/share",
    "make", and "make install" (as root) as usual.

sane-frontend (use SANE version 1.0.14 or higher):

Use "export SANE_DEBUG_SN9C10X=255" to enable debugging.

Check file permisions from (for example 0666): (hotplug) /proc/bus/usb/0xx/0yy or
                                               (udev)    /dev/bus/usb/0xx/0yy
					       
If you want to add your device, just add code until the backend works.

sane-frontend (use version 1.0.14 or higher):

system
patched /etc/hotplug/              blacklist (add line with: sn9c102, gspca or spca5xx)

see also download link

At this moment there are two frontends which can be used with the sn9c10x backend:
1. xcam: xcam -B for display (no streaming video (SANE bugreport 300832) only snapshots in 
   display and save to file is possible).
   If a modified version is used, only streaming frames is possible 
   remove first "stop_camera ();" line in routine "input_available".
2. scanimage: for writing in batch mode to files (files can be one file
   each time overwritten or each time a frame is written to a new file).
   scanimage -B -d sn9c10x:libusb:001:002 --batch=out.pnm --batch-count 5 --mode "Color RGB"
   for different files use =out%d.pnm
3. saned: not tested yet.
4. USB network?   see usbip

Using other frontends will be a problem, no idea if for example
writing a gstreamer-sane plugin will be a lot of work and/or difficult.
Another solution could be to use a frontend which can read the file from
scanimage which is refreshed at a rate of .. fps.
Return/Terug Top
Progress

20-05-2007 .. 22-05-2007 Gray image reading possible, working on RGB decompression.
                         and sn9c101 + TAS5110C1B sensor init mode
02-03-2005 .. 04-03-2005 Added sn9c102 + PAS202B sensor init (done).
                         Debuging image size, see first screenshot;
			 sn9c102-pas202b.jpg size ~50k] 
22-01-2005 .. 22-01-2005 Added sensor selection, debuging sn9c101 + TAS5110C1B sensor init (done).
                         Debuging image size, see first screenshot;
			 sn9c10x-screenshot-text-0c45-6005.jpg size ~50k] 
20-01-2005 .. 21-01-2005 Working on skeleton files sn9c10x.c, sn9c10x.h and sn9c10x.conf.(ready)
                         Added commands for sn9c101 + PAS106B sensor (ready, but not tested)
30-03-2005 sn9c102.txt lsusb -vv output
16-01-2005 sn9c101.txt lsusb -vv output
15-01-2005 Start of webpage, some test done (lsusb -v, sane-find-scanner -v -v,
           xcam, xawtv, camorama, spacagui, gtkam, gphoto2).
	   sn9c102 kernel module for webcam function, images 352x288 (2.6.10 kernel and videolive frontend)
Return/Terug Top
Download
15-01-2005 See Downloads page
Return/Terug Top
TO DO list
1. Working on RGB decompression
2. Work on sn9c101 + TAS5110C1B sensor debuging image size.
3. Correct setup sn9c101 + PAS106B sensor if its tested by ?.
4. Work on sn9c102 + PAS202B setup
Return/Terug Top

Copyright © 2005 - 2007. Alle rechten voorbehouden, Revisie: 18 Juni 2007.