Correcting code style for the rest
[microdia.git] / README
blob86972703ffb81114900b3f5ad65843eaebba1b01
1 Microdia USB 2.0 Webcam Drivers
2 ===============================
4 This Driver is essentially a fork of the Syntek Webcam drivers for Linux by Nicolas,
5 specifically to accomodate Microdia chipset based Webcams.
7 Warning : 
8 The Microdia USB 2.0 Webcam Drivers for Microdia chipset based Webcams is currently under development.
9 Using this driver can result in damage. Use this driver only if you know what you are doing.
11 ---------------------------------------------------------------------------------------------------
13 Table of contents :
15 1. Requirements
17 2. Compilation
18  2.1 Documentation
19  2.2 Kernel module
21 3. Installation
23 4. Usage
24  4.1 Option "fps" module
25  4.2 Options "hflip" and "vflip" module
26  4.3 Options "contrast", "colour", "whiteness" and "brightness"
27  4.4 Use the "sysfs"
29 5. Status of project
31 6. Test experimental
33 7. Debug
34  7.1. 'lsusb' output
35  7.2. USB logs from Windows
36  7.3. USB logs from Linux
37  7.4. Enable module traces
39 8. Licence
41 ---------------------------------------------------------------------------------------------------
43 1. Requirements
45 Kernel 2.6.18 or higher
46 Doxygen in order to compile the documentation
48 ---------------------------------------------------------------------------------------------------
50 2. Compilation
52  2.1 Documentation
54    To build documentation :
55    $ make doc
56    $ make cleandoc
58  2.2 Kernel module
60    To build the kernel module :
61    $ make
62      or
63    $ make driver
65    $ make clean
67 ---------------------------------------------------------------------------------------------------
69 3. Installation
71 TODO...
73 ---------------------------------------------------------------------------------------------------
75 4. Usage
77  4.1 Option "fps" module
79    The microdia module waits the option "fps" (10, 15, 20, 25, 30) :
80    $ modprobe microdia fps=30
82    By default, the fps is set to '25'.
84  4.2 Options "hflip" and "vflip" module
86    The microdia module waits the options "hflip" and "vflip" (values are 0 or 1):
87    $ modprobe microdia hflip=0 vflip=1
89    By default, the hflip and vflip are set to '1'.
91  4.3 Options "contrast", "colour", "brightness" and "whiteness"
93    The microdia module waits the options "contrast", "colour", "brightness" and "whiteness" :
94    $ modprobe microdia contrast=0x7F00 colour=0x7F00
96    By default, the value of these options is set to '0x7F00'.
98  4.4 Use the "sysfs"
100    In the directory : /sys/class/video4linux/videoX (by sample video0), you
101    can read and write some parameters :
102    $ cat hflip
103    $ echo 0 > hflip
105    To display informations about driver :
106    $ cat informations
108          It is a register editor implemented. You can display and change the camera registers.
109          To use this register editor see follow examples below: 
111          0) open a shell and move to your video device (normaly video0)
112           $ cd /sys/class/video4linux/video0 
114          1) Set and display register adress 0x11b8 
115           $ echo 11b8 > adr     // set the adress value to 0x11b8
116           $ cat adr             // command to display the adress value
117           $ 0x11b8              // output
119          2) display the value from register 0x11b8 
120           $ cat reg             // command to display the register value
121           $ 0x11b8 = 0x3a       // output
123          3) Set value from register 0x11b8 to 0x10 
124           $ echo 10 > reg 
127          I2C Interface:
129          4) I2C Interface: set read/write count, 
130             (how many bytes we want to read/write = 1/2) 
131                         (we are using the adr value for this)
133                 $ echo 1 > adr        // we want only to read / write one byte 
135          5) I2C Interface: set i2c slave to 0x30 
136           $ echo 30 > i2cslave  // set the I2c slave adress to 0x30
137           $ cat i2cslave        // command to display the I2cadress value
138           $ 0x30                // output
140          6) I2C Interface: set i2c adress to 0x12 
141           $ echo 12 > i2cadr    // set the I2cadress value to 0x12
142           $ cat i2cadr          // command to display the I2cadress value
143           $ 0x12                // output
145          7) I2C Interface: Display I2c-register 0x12 (0x22 isn't valid, count is (1)) 
146           $ cat i2creg          // command to display the I2c register value
147           $ I2C-register 0x12 = 0x40 0x22 (1) 
149          8) I2C Interface: Set I2c-register
150          (you have to enter the values for 2 registers)
151          
152           $ echo 4100 > i2creg  // set the I2c register value to 0x41
153           $ cat i2creg          // command to display the I2c register value
154           $ I2C-register 0x12 = 0x41 0x22 (1) 
159 ---------------------------------------------------------------------------------------------------
161 5. Status
163 The kernel module is currently under active development.
165 The driver supports following webcam models :
166 - 0x0c45:0x6242 :
167 - 0x0c45:0x624e :
168 - 0x0c45:0x624f :
169 - 0x0c45:0x6260 :
170 - 0x0c45:0x6270 :
171 - 0x0c45:0x627b :
172 - 0x0c45:0x6288 :
173 - 0x0c45:0x6128 :
175 To request support, please contact us on Microdia Mailing List:
177     http://groups.google.com/group/microdia
179 ---------------------------------------------------------------------------------------------------
181 6. Test experimental
183 To build and load the driver, follow the steps :
185 $ make -f Makefile clean
186 $ make -f Makefile
187 $ modprobe videodev
188 $ insmod microdia.ko
190 To test the driver with the V4L v1 API (map methode) :
192 $ camorama -D --width=640 --height=480 
194 To test the driver with the V4L v1 API (read methode) :
196 $ camorama -D -R --width=640 --height=480 
198 To test the driver with the V4L v2 :
200 $ xawtv
202 To use mplayer / mencoder :
204 $ mplayer tv:// -tv driver=v4l:width=640:height=480
205 $ mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=rgb24:device=/dev/video0
206 $ mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=yuy2:device=/dev/video0
207 $ mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=uyvy:device=/dev/video0
209 $ mencoder tv:// -tv driver=v4l:width=640:height=480:outfmt=rgb24:device=/dev/video0 -nosound -ovc lavc -o out.avi
210 $ mencoder tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=rgb24:device=/dev/video0 -nosound -ovc lavc -o out.avi
212 ---------------------------------------------------------------------------------------------------
214 7. Debug
216  7.1. 'lsusb' output
218    [root@Dahlia driver]$ lsusb
219    Bus 005 Device 003: ID 0c45:624f Microdia                    <== Our Webcam 
220    Bus 005 Device 001: ID 0000:0000  
221    Bus 004 Device 001: ID 0000:0000  
222    Bus 003 Device 002: ID 08ff:2580 AuthenTec, Inc. 
223    Bus 003 Device 001: ID 0000:0000  
224    Bus 002 Device 001: ID 0000:0000  
225    Bus 001 Device 004: ID 0a5c:2101 Broadcom Corp. 
226    Bus 001 Device 001: ID 0000:0000  
228    [root@Dahlia driver]$ lsusb -d 0c45:624f -vvv > lsusb.txt
230  7.2. USB logs from Windows
231    There are 3 useful USB logs :
232    - Log 1 : when you plug your webcam
233    - Log 2 : when you run VideoView.exe (with the default settings)
234    - Log 3 : when you run VideoView.exe, then change the resolution to 1280x1024
236  7.3. USB logs from Linux
237    Use the kernel module usbmon (enable option debugfs in the kernel)
239  7.4. Enable module traces
240    You can enable : CONFIG_MICRODIA_DEBUG and CONFIG_MICRODIA_DEBUG_STREAM
242 ---------------------------------------------------------------------------------------------------
244 8. Licence
246 Microdia USB 2.0 Webcam Driver is distributed under the GPL licence (version 2 or later).