 NW802 kernel module
=====================

This kernel module is a driver for USB webcam based on the DivIO chipsets NW800/NW801/NW802.

This version is an hybrid version. It includes the almost latest code for image decoding ( which is REALLY faster and has a REALLY improved quality of image ) and the old ( almost obsolete ) usb/cam interaction core.

Due to the limitation of this cam control module, support is limited but this version does include some /proc interface that allows tweaking the cam registers 'on-the-fly' which allows to do tests and more important tweak some image register. For this, a handy GTK utils ( nw8xx_regedit ) is now provided.


How to use it ?
---------------

* Edit nw8xx_regedit.c, at the start there is some #define to choose your cam chip ( registers differs and the GTK utils doesn't do any autodetect ).
* Type :
 # make
 # su
 # modprobe videodev
 # insmod usbvideo.o
 # insmod nw802.o
* Launch xawtv ( or any V4L compatible app. Since the driver currently ignores quite a lot of V4L request like videosize, format, ... the app may give warning or refuses to work at all ... xawtv works, newer version of gnomemeeting don't ... )

The original init files do not support all cam's, so if you don't get any picture, see if you have one of this cams.

If you have a Plustek Opticam 500U ( or ProLink DS3303u WebCam).
----------------------------------------
Rename the nw801.init to something else ( nw801.init.old for example).
Then rename the DS3303u.init to nw801.init.
Open the nw802.c in a editor. Go to line 314.

It looks like this:
#define NW801_INIT_LEN 32

Change it to this:
#define NW801_INIT_LEN 31

Save the nw802.c.
Compile as described above under 'How to use it ?'.


If you have a Panasonic GP-KR651US.
----------------------------------------
Rename the nw802.init to something else ( nw802.init.old for example).
Then rename the kr651us.init to nw802.init.
Compile as described above under 'How to use it ?'.

If you have a iRez Kritter cam.
----------------------------------------
Rename the nw802.init to something else ( nw802.init.old for example).
Then rename the kritter.init to nw802.init.
Compile as described above under 'How to use it ?'.


If you have a D-link dru-350c cam.
----------------------------------------
Rename the nw802.init to something else ( nw802.init.old for example).
Then rename the d-link-350c.init to nw802.init.
Compile as described above under 'How to use it ?'.


If you have a The Scope USB Microscope M2 (ProScope).
----------------------------------------
Rename the nw802.init to something else ( nw802.init.old for example).
Then rename the proscope.init to nw802.init.
Compile as described above under 'How to use it ?'.


If you have a Conceptronic Video Pro 'CVIDEOPRO  USB Webcam CCD'.
----------------------------------------
Rename the nw802.init to something else ( nw802.init.old for example).
Then rename the cvideopro.init to nw802.init.
Compile as described above under 'How to use it ?'.


If you have a Trust SpaceCam120 or SpaceCam100 PORTABLE.
----------------------------------------
Rename the nw800.init to something else ( nw800.init.old for example).
Then rename the SpaceCam.init to nw800.init.
Open the nw802.c in a editor.
Go to line 127. It looks like this:
{ USB_DEVICE( 0x06a5, 0x0000 ) },		// Generic NW800

Change it to this:
{ USB_DEVICE( 0x06a5, 0xd800 ) },		// Generic NW800

Go to line 322. It looks like this:
#define NW800_INIT_LEN 65

Change it to this:
#define NW800_INIT_LEN 82

Save the nw802.c.
Compile as described above under 'How to use it ?'.

If your led goes out and no picture. Try the trust_space.init
and repeat the above. But set NW800_INIT_LEN 36 .


If you have a TwinkleCam.
----------------------------------------
Rename the nw800.init to something else ( nw800.init.old for example).
Then rename the Twinkle.init to nw800.init.
Open the nw802.c in a editor. Go to line 322.

It looks like this:
#define NW800_INIT_LEN 65

Change it to this:
#define NW800_INIT_LEN 95

Save the nw802.c.
Compile as described above under 'How to use it ?'.



Something is wrong ...
----------------------

Don't compile ?
* Check that you have kernel sources installed
* Be sure to use CVS version !!!! ALWAYS use CVS. Releases may not contains
  all the correct stuff for the most recent 2.4 kernel
* Try to use the usbvideo.h & usbvideo.c from your kernel tree

Don't work ?
* You may not have a supported camera. Ask the mailing list.

New Driver ?
------------

As I said this version is hybrid. It includes some part of the new driver that is being developed. This version is the last commit to CVS and the last release.

The new one will be called 'nw8xx'. As I said, the new image decoding stuff algorithm is already done ( need some minor tweaks ). The new cam interface is not ready yet. Kjell Claesson and I ( well, for the moment, it mostly Kjell ;) ) are working on reverse enginering of the cam registers and to analyze the logs provided by users.

The new features should includes :
 - 2.4 / 2.6 kernel support
 - Better cam support with automatic chip/cds/ccd detection
 - Image control + Auto white balance + Auto exposure
 - ...


FAQ :
----

 * I don't have a 2.4.x kernel !

   If you use a 2.0 or 2.2 ... Upgrade ! If you use 2.6 ... Well this current version, it's not supported. I don't intent to add it ( so don't send patches, some people already did it and it's being included in the new driver ).

 * When will the new driver be ready ?

  ... I don't know ;) ...

 * Why is the project called nw802 and not nw8xx ?

  Because at first, I wasn't planning on supporting more than NW802 ;) Then I followed the users demands and since peoples provided me with 'working' init sequence for other chips ...

 * I have other questions, where to ask ?

  Try the mailing list : nw802-main@sourceforge.net


Many tanks to :
---------------

 - Several guys on USB mailling list, kernel newbies chat, for their help ( sorry don't know their names )
 - Robert Peter for it's great help to add support for NW800 based cam.
 - Stefan Jenisch for the first working NW801 init sequence.
 - Kjell Claesson for it's help in supporting NW801 and now being a member of the project. Great job on register/logs analysis !

