<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.staging.zoneminder.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tuxokc</id>
	<title>ZoneMinder Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.staging.zoneminder.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tuxokc"/>
	<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/Special:Contributions/Tuxokc"/>
	<updated>2026-04-20T02:38:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=14762</id>
		<title>Digiflower</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=14762"/>
		<updated>2017-08-01T20:50:08Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: Fix  image links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&amp;#039;ve recently laid hands on a few Digi-Flower capture cards and found no indication that anyone has ever taken the time to poke at these cards with a digital multi-meter to discover how they are laid out.&lt;br /&gt;
&lt;br /&gt;
I have two versions, the DVR2000B-R02, and the DVR2510-MP2.&lt;br /&gt;
First ones were also sold as Huperlab DVR 2400 and probably Leadtek LTR-39608.&lt;br /&gt;
&lt;br /&gt;
[[Media:DVR2000B.jpg|Digi-Flower DVR-2000B-R02: 16 input; 4 Fusion BT878A chips]]&lt;br /&gt;
&lt;br /&gt;
The DVR2000B has four Fusion bt878A decoders and supports 16 composite inputs&lt;br /&gt;
&lt;br /&gt;
Each bt878A device controls a pair of M/D&amp;#039;ers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[1][A,B,C] (select pins)&lt;br /&gt;
      GPIO[18]    =&amp;gt; M/D[1][Enable]&lt;br /&gt;
&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[2][A,B,C] (select pins)&lt;br /&gt;
      GPIO[20]    =&amp;gt; M/D[2][Enable]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an input has been routed the signal is split between the bt878A&amp;#039;s MUX0 and a 4581CS Sync Separator.  As far as I can tell the only output of the 4581CS that is used is the Odd/Even field output that is routed to GPIO[15] on the respective 878A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                     74HC4051A&lt;br /&gt;
 Comp-In (1-8)  =&amp;gt; M/D[1] (X0-7) -&amp;gt; \   [ L/C/R ] (inductor/&lt;br /&gt;
                                     |= [network] capacitor/&lt;br /&gt;
 Comp-In (9-16) =&amp;gt; M/D[2] (X0-7) -&amp;gt; /             resistor)&lt;br /&gt;
&lt;br /&gt;
               4581CS Sync Separator&lt;br /&gt;
   L/C/R     /  Comp-In -&amp;gt; Odd/Even  =&amp;gt; GPIO[15]&lt;br /&gt;
 [network] =|&lt;br /&gt;
             \ 878A: MUX0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a fifth pair of Mux/Demux chips that are used to send one of 16 inputs to an RCA jack via a 6db video amp.  This routing function is controlled by an Atmel AT89C2051 (8051 family) micro controller.  I have not determined how to talk to the micro controller at this time.  The I2C pins of the first bt878A is connected to the serial port of the micro controller.&lt;br /&gt;
&lt;br /&gt;
There is also a set of 8 external device I/O ports to send or receive On/Off signals from motion detectors or drive alarm circuits, and an on board WatchDog relay output.  These are controlled by GPIO[3-10,12-13] of the first 878A.&lt;br /&gt;
&lt;br /&gt;
Anko no longer lists these cards: http://www.anko-tech.com/&lt;br /&gt;
&lt;br /&gt;
lspci data for the DVR2000B ( these numbers seem very generic.. how can the specific card be known?)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 PCI bridge [0604]: Hint Corp HB6 Universal PCI-PCI bridge (non-transparent mode) [3388:0021] (rev 11)&lt;br /&gt;
03:0c.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0c.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0d.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0d.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0e.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0e.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0f.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0f.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve been able to get the DVR2000B working with this patch on linux-2.6.32 kernel----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff -uNrp kernel-2.6.32.orig/drivers/media/video/bt8xx/bttv-cards.c kernel-2.6.32.new/drivers/media/video/bt8xx/bttv-cards.c&lt;br /&gt;
--- kernel-2.6.32.orig/drivers/media/video/bt8xx/bttv-cards.c	2010-03-31 18:11:38.506042269 -0600&lt;br /&gt;
+++ kernel-2.6.32.new/drivers/media/video/bt8xx/bttv-cards.c	2010-04-01 10:32:31.399044056 -0600&lt;br /&gt;
@@ -68,6 +68,8 @@ static void tibetCS16_init(struct bttv *&lt;br /&gt;
 static void kodicom4400r_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 static void kodicom4400r_init(struct bttv *btv);&lt;br /&gt;
 &lt;br /&gt;
+static void digiflower_dvr2000b_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
+&lt;br /&gt;
 static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 &lt;br /&gt;
@@ -326,6 +328,7 @@ static struct CARD {&lt;br /&gt;
 	{ 0x763d800b, BTTV_BOARD_GEOVISION_GV800S_SL,	&amp;quot;GeoVision GV-800(S) (slave)&amp;quot; },&lt;br /&gt;
 	{ 0x763d800c, BTTV_BOARD_GEOVISION_GV800S_SL,	&amp;quot;GeoVision GV-800(S) (slave)&amp;quot; },&lt;br /&gt;
 	{ 0x763d800d, BTTV_BOARD_GEOVISION_GV800S_SL,	&amp;quot;GeoVision GV-800(S) (slave)&amp;quot; },&lt;br /&gt;
+	{ 0x00000000, BTTV_BOARD_DIGIFLOWER_DVR2000B,	&amp;quot;Digi-Flower DVR2000B&amp;quot; },&lt;br /&gt;
 &lt;br /&gt;
 	{ 0x15401830, BTTV_BOARD_PV183,         &amp;quot;Provideo PV183-1&amp;quot; },&lt;br /&gt;
 	{ 0x15401831, BTTV_BOARD_PV183,         &amp;quot;Provideo PV183-2&amp;quot; },&lt;br /&gt;
@@ -2912,6 +2915,25 @@ struct tvcard bttv_tvcards[] = {&lt;br /&gt;
 		.tuner_type     = TUNER_ABSENT,&lt;br /&gt;
 		.tuner_addr	= ADDR_UNSET,&lt;br /&gt;
 	},&lt;br /&gt;
+	[BTTV_BOARD_DIGIFLOWER_DVR2000B] = {&lt;br /&gt;
+		.name           = &amp;quot;Digi-Flower DVR2000B (master?)&amp;quot;,&lt;br /&gt;
+		.video_inputs   = 16,&lt;br /&gt;
+		/* .audio_inputs   = 0, */&lt;br /&gt;
+		/* .tuner          = UNSET, */&lt;br /&gt;
+		.svhs           = NO_SVHS,&lt;br /&gt;
+		.tuner_type	= TUNER_ABSENT,&lt;br /&gt;
+		.tuner_addr	= ADDR_UNSET,&lt;br /&gt;
+		/* .radio_addr	= ADDR_UNSET, */&lt;br /&gt;
+		.no_gpioirq	= 1,&lt;br /&gt;
+		.gpiomask2	= 0x140007,&lt;br /&gt;
+		.muxsel		= MUXSEL(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2),&lt;br /&gt;
+		.muxsel_hook	= digiflower_dvr2000b_muxsel,&lt;br /&gt;
+		.gpiomux	= { 0, 0, 0, 0 }, /* card has no audio */&lt;br /&gt;
+		.no_msp34xx	= 1,&lt;br /&gt;
+		.no_tda9875	= 1,&lt;br /&gt;
+		.no_tda7432	= 1,&lt;br /&gt;
+		.pll            = PLL_28,&lt;br /&gt;
+	},&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);&lt;br /&gt;
@@ -4548,6 +4570,21 @@ static void kodicom4400r_init(struct btt&lt;br /&gt;
 	master[btv-&amp;gt;c.nr+2] = btv;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
+/* DB1 = Top connector fan-out.  DB2 = Bottom connector fan-out. */&lt;br /&gt;
+#define DB1    0x100000 &lt;br /&gt;
+#define DB2    0x040000&lt;br /&gt;
+&lt;br /&gt;
+static void digiflower_dvr2000b_muxsel(struct bttv *btv, unsigned int input)&lt;br /&gt;
+{&lt;br /&gt;
+	static const int masks[] = {&lt;br /&gt;
+		DB1,   DB1|1, DB1|2, DB1|3,&lt;br /&gt;
+		DB1|4, DB1|5, DB1|6, DB1|7,&lt;br /&gt;
+		DB2,   DB2|1, DB2|2, DB2|3,&lt;br /&gt;
+		DB2|4, DB2|5, DB2|6, DB2|7,&lt;br /&gt;
+	};&lt;br /&gt;
+	gpio_write(masks[input%16]);&lt;br /&gt;
+}&lt;br /&gt;
+&lt;br /&gt;
 /* The Grandtec X-Guard framegrabber card uses two Dual 4-channel&lt;br /&gt;
  * video multiplexers to provide up to 16 video inputs. These&lt;br /&gt;
  * multiplexers are controlled by the lower 8 GPIO pins of the&lt;br /&gt;
diff -uNrp kernel-2.6.32.orig/drivers/media/video/bt8xx/bttv.h kernel-2.6.32.new/drivers/media/video/bt8xx/bttv.h&lt;br /&gt;
--- kernel-2.6.32.orig/drivers/media/video/bt8xx/bttv.h	2010-03-31 23:22:03.987043302 -0600&lt;br /&gt;
+++ kernel-2.6.32.new/drivers/media/video/bt8xx/bttv.h	2010-03-31 23:21:45.412041507 -0600&lt;br /&gt;
@@ -185,6 +185,7 @@&lt;br /&gt;
 #define BTTV_BOARD_GEOVISION_GV800S	   0x9d&lt;br /&gt;
 #define BTTV_BOARD_GEOVISION_GV800S_SL	   0x9e&lt;br /&gt;
 #define BTTV_BOARD_PV183                   0x9f&lt;br /&gt;
+#define BTTV_BOARD_DIGIFLOWER_DVR2000B     0xa0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /* more card-specific defines */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:DVR2510-th.jpg|Digi-Flower DVR-2510-MP2: 16 input; 2 Fusion BT878A chips]]&lt;br /&gt;
&lt;br /&gt;
The DVR2510 has two Fusion BT878A chips.  A total of 16 composite inputs that are supported.  Eight inputs are routed to each 878A chip, so only one M/D is needed for each 878A.&lt;br /&gt;
&lt;br /&gt;
The two additional M/D are used to route inputs to the composite out monitor connection.  This card differs most from its larger cousin in that the Enable pins of the M/D&amp;#039;s are connected to the Atmel micro-controller, so the card is not usable until the micro-controller has been initialized.  This won&amp;#039;t be possible until a logic analyzer can be brought to bear on the problem.&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Linksys&amp;diff=6556</id>
		<title>Linksys</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Linksys&amp;diff=6556"/>
		<updated>2015-02-14T17:26:14Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: Undo SPAM links revision 5630 by Tonyguards (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WVC-210 PTZ&lt;br /&gt;
&lt;br /&gt;
remote host path = /img/video.mjpeg&lt;br /&gt;
&lt;br /&gt;
http://www.zoneminder.com/forums/viewtopic.php?t=13484&amp;amp;highlight=cameras&lt;br /&gt;
&lt;br /&gt;
WVC2300 / PVC2300&lt;br /&gt;
&lt;br /&gt;
A few options for these cameras:&lt;br /&gt;
&lt;br /&gt;
*Base hit uses still image snapshots:&lt;br /&gt;
**Remote Host Name: user:password@ip.ad.dr.ess&lt;br /&gt;
**Remote Host Path: img/snapshot.cgi?size=3&amp;amp;quality=1&lt;br /&gt;
***size=1-3 (160x120, 320x240, 640x480)&lt;br /&gt;
***quality=1-5(very high - very low)&lt;br /&gt;
*Even better solution is to use pushed jpegs:&lt;br /&gt;
**Remote Host Name: user:password@ip.ad.dr.ess&lt;br /&gt;
**Remote Host Path: img/mjpeg.jpg&lt;br /&gt;
**Use the web administration UI for the camera to set size, quality and framerate throttling&lt;br /&gt;
*Would like to use ffmpeg, however this seems to be giving problems - partial image scans etc&lt;br /&gt;
**Source Path: http://user:password@ip.ad.dr.ess/img/video.asf&lt;br /&gt;
**Seems to use size and quality settings from the administration website&lt;br /&gt;
*What doesnt work&lt;br /&gt;
**img/video.mjpeg (and other similar urls).  Generally barfs on zm_remote_camera_http.cpp:134, and I cant be bothered debugging it.&lt;br /&gt;
*Other notes&lt;br /&gt;
**See [http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamMjpegStreamDumps] for information from the &amp;#039;motion&amp;#039; application (scroll down to Linksys WVC54G which gave me some hints)&lt;br /&gt;
&lt;br /&gt;
WVC54GC &lt;br /&gt;
&lt;br /&gt;
*Source Type: ffmpeg&lt;br /&gt;
*Source Path: http://##.##.##.##/img/mjpeg.cgi&lt;br /&gt;
&lt;br /&gt;
[[Category:Network Cameras]]&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=3770</id>
		<title>Digiflower</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=3770"/>
		<updated>2010-06-02T00:51:35Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&amp;#039;ve recently laid hands on a few Digi-Flower capture cards and found no indication that anyone has ever taken the time to poke at these cards with a digital multi-meter to discover how they are laid out.&lt;br /&gt;
&lt;br /&gt;
I have two versions, the DVR2000B-R02, and the DVR2510-MP2.&lt;br /&gt;
&lt;br /&gt;
[[Image:DVR2000B-th.jpg|Digi-Flower DVR-2000B-R02: 16 input; 4 Fusion BT878A chips]]&lt;br /&gt;
&lt;br /&gt;
The DVR2000B has four Fusion bt878A decoders and supports 16 composite inputs&lt;br /&gt;
&lt;br /&gt;
Each bt878A device controls a pair of M/D&amp;#039;ers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[1][A,B,C] (select pins)&lt;br /&gt;
      GPIO[18]    =&amp;gt; M/D[1][Enable]&lt;br /&gt;
&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[2][A,B,C] (select pins)&lt;br /&gt;
      GPIO[20]    =&amp;gt; M/D[2][Enable]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an input has been routed the signal is split between the bt878A&amp;#039;s MUX0 and a 4581CS Sync Separator.  As far as I can tell the only output of the 4581CS that is used is the Odd/Even field output that is routed to GPIO[15] on the respective 878A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                     74HC4051A&lt;br /&gt;
 Comp-In (1-8)  =&amp;gt; M/D[1] (X0-7) -&amp;gt; \   [ L/C/R ] (inductor/&lt;br /&gt;
                                     |= [network] capacitor/&lt;br /&gt;
 Comp-In (9-16) =&amp;gt; M/D[2] (X0-7) -&amp;gt; /             resistor)&lt;br /&gt;
&lt;br /&gt;
               4581CS Sync Separator&lt;br /&gt;
   L/C/R     /  Comp-In -&amp;gt; Odd/Even  =&amp;gt; GPIO[15]&lt;br /&gt;
 [network] =|&lt;br /&gt;
             \ 878A: MUX0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a fifth pair of Mux/Demux chips that are used to send one of 16 inputs to an RCA jack via a 6db video amp.  This routing function is controlled by an Atmel AT89C2051 (8051 family) micro controller.  I have not determined how to talk to the micro controller at this time.  The I2C pins of the first bt878A is connected to the serial port of the micro controller.&lt;br /&gt;
&lt;br /&gt;
There is also a set of 8 external device I/O ports to send or receive On/Off signals from motion detectors or drive alarm circuits, and an on board WatchDog relay output.  These are controlled by GPIO[3-10,12-13] of the first 878A.&lt;br /&gt;
&lt;br /&gt;
Anko no longer lists these cards: http://www.anko-tech.com/&lt;br /&gt;
&lt;br /&gt;
lspci data for the DVR2000B ( these numbers seem very generic.. how can the specific card be known?)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 PCI bridge [0604]: Hint Corp HB6 Universal PCI-PCI bridge (non-transparent mode) [3388:0021] (rev 11)&lt;br /&gt;
03:0c.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0c.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0d.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0d.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0e.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0e.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0f.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0f.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve been able to get the DVR2000B working with this patch on linux-2.6.32 kernel----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff -uNrp kernel-2.6.32.orig/drivers/media/video/bt8xx/bttv-cards.c kernel-2.6.32.new/drivers/media/video/bt8xx/bttv-cards.c&lt;br /&gt;
--- kernel-2.6.32.orig/drivers/media/video/bt8xx/bttv-cards.c	2010-03-31 18:11:38.506042269 -0600&lt;br /&gt;
+++ kernel-2.6.32.new/drivers/media/video/bt8xx/bttv-cards.c	2010-04-01 10:32:31.399044056 -0600&lt;br /&gt;
@@ -68,6 +68,8 @@ static void tibetCS16_init(struct bttv *&lt;br /&gt;
 static void kodicom4400r_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 static void kodicom4400r_init(struct bttv *btv);&lt;br /&gt;
 &lt;br /&gt;
+static void digiflower_dvr2000b_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
+&lt;br /&gt;
 static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 &lt;br /&gt;
@@ -326,6 +328,7 @@ static struct CARD {&lt;br /&gt;
 	{ 0x763d800b, BTTV_BOARD_GEOVISION_GV800S_SL,	&amp;quot;GeoVision GV-800(S) (slave)&amp;quot; },&lt;br /&gt;
 	{ 0x763d800c, BTTV_BOARD_GEOVISION_GV800S_SL,	&amp;quot;GeoVision GV-800(S) (slave)&amp;quot; },&lt;br /&gt;
 	{ 0x763d800d, BTTV_BOARD_GEOVISION_GV800S_SL,	&amp;quot;GeoVision GV-800(S) (slave)&amp;quot; },&lt;br /&gt;
+	{ 0x00000000, BTTV_BOARD_DIGIFLOWER_DVR2000B,	&amp;quot;Digi-Flower DVR2000B&amp;quot; },&lt;br /&gt;
 &lt;br /&gt;
 	{ 0x15401830, BTTV_BOARD_PV183,         &amp;quot;Provideo PV183-1&amp;quot; },&lt;br /&gt;
 	{ 0x15401831, BTTV_BOARD_PV183,         &amp;quot;Provideo PV183-2&amp;quot; },&lt;br /&gt;
@@ -2912,6 +2915,25 @@ struct tvcard bttv_tvcards[] = {&lt;br /&gt;
 		.tuner_type     = TUNER_ABSENT,&lt;br /&gt;
 		.tuner_addr	= ADDR_UNSET,&lt;br /&gt;
 	},&lt;br /&gt;
+	[BTTV_BOARD_DIGIFLOWER_DVR2000B] = {&lt;br /&gt;
+		.name           = &amp;quot;Digi-Flower DVR2000B (master?)&amp;quot;,&lt;br /&gt;
+		.video_inputs   = 16,&lt;br /&gt;
+		/* .audio_inputs   = 0, */&lt;br /&gt;
+		/* .tuner          = UNSET, */&lt;br /&gt;
+		.svhs           = NO_SVHS,&lt;br /&gt;
+		.tuner_type	= TUNER_ABSENT,&lt;br /&gt;
+		.tuner_addr	= ADDR_UNSET,&lt;br /&gt;
+		/* .radio_addr	= ADDR_UNSET, */&lt;br /&gt;
+		.no_gpioirq	= 1,&lt;br /&gt;
+		.gpiomask2	= 0x140007,&lt;br /&gt;
+		.muxsel		= MUXSEL(2, 6, 10, 14, 2, 6, 10, 14, 2, 6, 10, 14, 2, 6, 10, 14),&lt;br /&gt;
+		.muxsel_hook	= digiflower_dvr2000b_muxsel,&lt;br /&gt;
+		.gpiomux	= { 0, 0, 0, 0 }, /* card has no audio */&lt;br /&gt;
+		.no_msp34xx	= 1,&lt;br /&gt;
+		.no_tda9875	= 1,&lt;br /&gt;
+		.no_tda7432	= 1,&lt;br /&gt;
+		.pll            = PLL_28,&lt;br /&gt;
+	},&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);&lt;br /&gt;
@@ -4548,6 +4570,21 @@ static void kodicom4400r_init(struct btt&lt;br /&gt;
 	master[btv-&amp;gt;c.nr+2] = btv;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
+/* DB1 = Top connector fan-out.  DB2 = Bottom connector fan-out. */&lt;br /&gt;
+#define DB1    0x100000 &lt;br /&gt;
+#define DB2    0x040000&lt;br /&gt;
+&lt;br /&gt;
+static void digiflower_dvr2000b_muxsel(struct bttv *btv, unsigned int input)&lt;br /&gt;
+{&lt;br /&gt;
+	static const int masks[] = {&lt;br /&gt;
+		DB1,   DB1|1, DB1|2, DB1|3,&lt;br /&gt;
+		DB1|4, DB1|5, DB1|6, DB1|7,&lt;br /&gt;
+		DB2,   DB2|1, DB2|2, DB2|3,&lt;br /&gt;
+		DB2|4, DB2|5, DB2|6, DB2|7,&lt;br /&gt;
+	};&lt;br /&gt;
+	gpio_write(masks[input%16]);&lt;br /&gt;
+}&lt;br /&gt;
+&lt;br /&gt;
 /* The Grandtec X-Guard framegrabber card uses two Dual 4-channel&lt;br /&gt;
  * video multiplexers to provide up to 16 video inputs. These&lt;br /&gt;
  * multiplexers are controlled by the lower 8 GPIO pins of the&lt;br /&gt;
diff -uNrp kernel-2.6.32.orig/drivers/media/video/bt8xx/bttv.h kernel-2.6.32.new/drivers/media/video/bt8xx/bttv.h&lt;br /&gt;
--- kernel-2.6.32.orig/drivers/media/video/bt8xx/bttv.h	2010-03-31 23:22:03.987043302 -0600&lt;br /&gt;
+++ kernel-2.6.32.new/drivers/media/video/bt8xx/bttv.h	2010-03-31 23:21:45.412041507 -0600&lt;br /&gt;
@@ -185,6 +185,7 @@&lt;br /&gt;
 #define BTTV_BOARD_GEOVISION_GV800S	   0x9d&lt;br /&gt;
 #define BTTV_BOARD_GEOVISION_GV800S_SL	   0x9e&lt;br /&gt;
 #define BTTV_BOARD_PV183                   0x9f&lt;br /&gt;
+#define BTTV_BOARD_DIGIFLOWER_DVR2000B     0xa0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /* more card-specific defines */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DVR2510-th.jpg|Digi-Flower DVR-2510-MP2: 16 input; 2 Fusion BT878A chips]]&lt;br /&gt;
&lt;br /&gt;
The DVR2510 has two Fusion BT878A chips.  A total of 16 composite inputs that are supported.  Eight inputs are routed to each 878A chip, so only one M/D is needed for each 878A.&lt;br /&gt;
&lt;br /&gt;
The two additional M/D are used to route inputs to the composite out monitor connection.  This card differs most from its larger cousin in that the Enable pins of the M/D&amp;#039;s are connected to the Atmel micro-controller, so the card is not usable until the micro-controller has been initialized.  This won&amp;#039;t be possible until a logic analyzer can be brought to bear on the problem.&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=3769</id>
		<title>Digiflower</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=3769"/>
		<updated>2010-06-01T23:45:38Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&amp;#039;ve recently laid hands on a few Digi-Flower capture cards and found no indication that anyone has ever taken the time to poke at these cards with a digital multi-meter to discover how they are laid out.&lt;br /&gt;
&lt;br /&gt;
I have two versions, the DVR2000B-R02, and the DVR2510-MP2.&lt;br /&gt;
&lt;br /&gt;
[[Image:DVR2000B-th.jpg|Digi-Flower DVR-2000B-R02: 16 input; 4 Fusion BT878A chips]]&lt;br /&gt;
&lt;br /&gt;
The DVR2000B has four Fusion bt878A decoders.  The DVR2000B supports 16 composite inputs&lt;br /&gt;
&lt;br /&gt;
They both can support 16 composite inputs that are multiplexed through pairs of 74HC4051A Analog Multiplexer/Demultiplexers.  Which of the 16 inputs is routed to any of the four bt878A&amp;#039;s is controlled by GPIO pins.&lt;br /&gt;
&lt;br /&gt;
Each bt878A device controls a pair of M/D&amp;#039;ers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[1][A,B,C] (select pins)&lt;br /&gt;
      GPIO[18]    =&amp;gt; M/D[1][Enable]&lt;br /&gt;
&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[2][A,B,C] (select pins)&lt;br /&gt;
      GPIO[20]    =&amp;gt; M/D[2][Enable]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an input has been routed the signal is split between the bt878A&amp;#039;s MUX0 and a 4581CS Sync Separator.  As far as I can tell the only output of the 4581CS that is used is the Odd/Even field output that is routed to GPIO[15] on the respective 878A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                     74HC4051A&lt;br /&gt;
 Comp-In (1-8)  =&amp;gt; M/D[1] (X0-7) -&amp;gt; \   [ L/C/R ] (inductor/&lt;br /&gt;
                                     |= [network] capacitor/&lt;br /&gt;
 Comp-In (9-16) =&amp;gt; M/D[2] (X0-7) -&amp;gt; /             resistor)&lt;br /&gt;
&lt;br /&gt;
               4581CS Sync Separator&lt;br /&gt;
   L/C/R     /  Comp-In -&amp;gt; Odd/Even  =&amp;gt; GPIO[15]&lt;br /&gt;
 [network] =|&lt;br /&gt;
             \ 878A: MUX0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a fifth pair of Mux/Demux chips that are used to send one of 16 inputs to an RCA jack via a 6db video amp.  This routing function is controlled by an Atmel AT89C2051 (8051 family) micro controller.  I have not determined how to talk to the micro controller at this time.  The I2C pins of the first bt878A is connected to the serial port of the micro controller.&lt;br /&gt;
&lt;br /&gt;
There is also a set of 8 external device I/O ports to send or receive On/Off signals from motion detectors or drive alarm circuits, and an on board WatchDog relay output.  These are controlled by GPIO[3-10,12-13] of the first 878A.&lt;br /&gt;
&lt;br /&gt;
More information on the Digi-Flower DVR2000B (DVR2510 is not listed here) cards available from Anko: http://www.anko-tech.com/products/df2000.htm&lt;br /&gt;
&lt;br /&gt;
lspci data for the DVR2000B ( these numbers seem very generic.. how can the specific card be known?)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 PCI bridge [0604]: Hint Corp HB6 Universal PCI-PCI bridge (non-transparent mode) [3388:0021] (rev 11)&lt;br /&gt;
03:0c.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0c.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0d.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0d.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0e.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0e.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0f.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0f.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve been able to get the DVR2000B working with this patch on linux-2.6.24 kernel----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- drivers/media/video/bt8xx/bttv.h.orig	2008-08-19 12:20:13.000000000 -0500&lt;br /&gt;
+++ drivers/media/video/bt8xx/bttv.h	2008-08-19 12:15:32.000000000 -0500&lt;br /&gt;
@@ -173,6 +173,7 @@&lt;br /&gt;
 #define BTTV_BOARD_VOODOOTV_200		   0x93&lt;br /&gt;
 #define BTTV_BOARD_DVICO_FUSIONHDTV_2	   0x94&lt;br /&gt;
 #define BTTV_BOARD_TYPHOON_TVTUNERPCI	   0x95&lt;br /&gt;
+#define BTTV_BOARD_DIGIFLOWER_DVR2000B     0x96&lt;br /&gt;
 &lt;br /&gt;
 /* more card-specific defines */&lt;br /&gt;
 #define PT2254_L_CHANNEL 0x10&lt;br /&gt;
--- drivers/media/video/bt8xx/bttv-cards.c.orig	2008-08-19 12:02:31.000000000 -0500&lt;br /&gt;
+++ drivers/media/video/bt8xx/bttv-cards.c	2008-08-19 12:52:58.000000000 -0500&lt;br /&gt;
@@ -81,6 +81,8 @@ static void tibetCS16_init(struct bttv *&lt;br /&gt;
 static void kodicom4400r_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 static void kodicom4400r_init(struct bttv *btv);&lt;br /&gt;
 &lt;br /&gt;
+static void digiflower_dvr2000b_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
+&lt;br /&gt;
 static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 &lt;br /&gt;
@@ -314,6 +316,7 @@ static struct CARD {&lt;br /&gt;
 	{ 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE,    &amp;quot;DViCO FusionHDTV 5 Lite&amp;quot; },&lt;br /&gt;
 	{ 0x00261822, BTTV_BOARD_TWINHAN_DST,	&amp;quot;DNTV Live! Mini &amp;quot;},&lt;br /&gt;
 	{ 0xd200dbc0, BTTV_BOARD_DVICO_FUSIONHDTV_2,	&amp;quot;DViCO FusionHDTV 2&amp;quot; },&lt;br /&gt;
+	{ 0x00000000, BTTV_BOARD_DIGIFLOWER_DVR2000B,	&amp;quot;Digi-Flower DVR2000B&amp;quot; },&lt;br /&gt;
 &lt;br /&gt;
 	{ 0, -1, NULL }&lt;br /&gt;
 };&lt;br /&gt;
@@ -3005,6 +3008,25 @@ struct tvcard bttv_tvcards[] = {&lt;br /&gt;
 		.tuner_addr     = ADDR_UNSET,&lt;br /&gt;
 		.radio_addr     = ADDR_UNSET,&lt;br /&gt;
 	},&lt;br /&gt;
+	[BTTV_BOARD_DIGIFLOWER_DVR2000B] = {&lt;br /&gt;
+		.name           = &amp;quot;Digi-Flower DVR2000B (master?)&amp;quot;,&lt;br /&gt;
+		.video_inputs   = 16,&lt;br /&gt;
+		.audio_inputs   = 0,&lt;br /&gt;
+		.tuner          = UNSET,&lt;br /&gt;
+		.svhs           = UNSET,&lt;br /&gt;
+		.tuner_type     = TUNER_ABSENT,&lt;br /&gt;
+		.tuner_addr	= ADDR_UNSET,&lt;br /&gt;
+		.radio_addr     = ADDR_UNSET,&lt;br /&gt;
+		.no_gpioirq     = 1,&lt;br /&gt;
+		.gpiomask2      = 0x140007,&lt;br /&gt;
+		.muxsel         = { 2,6,10,14, 2,6,10,14, 2,6,10,14, 2,6,10,14 },&lt;br /&gt;
+		.muxsel_hook	= digiflower_dvr2000b_muxsel,&lt;br /&gt;
+                .gpiomux        = { 0, 0, 0, 0 }, /* card has no audio */&lt;br /&gt;
+		.no_msp34xx     = 1,&lt;br /&gt;
+		.no_tda9875     = 1,&lt;br /&gt;
+		.no_tda7432     = 1,&lt;br /&gt;
+		.pll            = PLL_28,&lt;br /&gt;
+	},&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);&lt;br /&gt;
@@ -4887,6 +4909,21 @@ static void kodicom4400r_init(struct btt&lt;br /&gt;
 	master[btv-&amp;gt;c.nr+2] = btv;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
+/* DB1 = Top connector fan-out.  DB2 = Bottom connector fan-out. */&lt;br /&gt;
+#define DB1    0x100000 &lt;br /&gt;
+#define DB2    0x040000&lt;br /&gt;
+&lt;br /&gt;
+static void digiflower_dvr2000b_muxsel(struct bttv *btv, unsigned int input)&lt;br /&gt;
+{&lt;br /&gt;
+	static const int masks[] = {&lt;br /&gt;
+		DB1,   DB1|1, DB1|2, DB1|3,&lt;br /&gt;
+		DB1|4, DB1|5, DB1|6, DB1|7,&lt;br /&gt;
+		DB2,   DB2|1, DB2|2, DB2|3,&lt;br /&gt;
+		DB2|4, DB2|5, DB2|6, DB2|7,&lt;br /&gt;
+	};&lt;br /&gt;
+	gpio_write(masks[input%16]);&lt;br /&gt;
+}&lt;br /&gt;
+&lt;br /&gt;
 /* The Grandtec X-Guard framegrabber card uses two Dual 4-channel&lt;br /&gt;
  * video multiplexers to provide up to 16 video inputs. These&lt;br /&gt;
  * multiplexers are controlled by the lower 8 GPIO pins of the&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DVR2510-th.jpg|Digi-Flower DVR-2510-MP2: 16 input; 2 Fusion BT878A chips]]&lt;br /&gt;
&lt;br /&gt;
The DVR2510 has two Fusion BT878A chips. Eight inputs are routed to each 878A chip, so only one M/D is needed for each 878A.  The two additional M/D are used to route inputs to the composite out monitor connection.  This card differs most from its larger cousin in that the Enable pins of the M/D&amp;#039;s are connected to the Atmel micro-controller, so the card is not usable until the micro-controller has been initialized.&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:DVR2510-th.jpg&amp;diff=3768</id>
		<title>File:DVR2510-th.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:DVR2510-th.jpg&amp;diff=3768"/>
		<updated>2010-06-01T23:21:41Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: Digiflower DVR2510-MP2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Digiflower DVR2510-MP2&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=2660</id>
		<title>Digiflower</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=2660"/>
		<updated>2008-09-02T02:51:29Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: Add the patch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:DVR2000B-th.jpg|Digi-Flower DVR-2000B-R02: 16 input; 4 Fusion BT878A chips]]&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve recently laid hands on a few Digi-Flower capture cards and found no indication that anyone has ever taken the time to poke at these cards with a digital multi-meter to discover how they are laid out.&lt;br /&gt;
&lt;br /&gt;
I have two versions, the DVR2000B-R02, and the DVR2510-MP2.  The DVR2000B has four Fusion bt878A decoders, while the DVR2510 has two. I&amp;#039;m going to concentrate on the DVR2000B.  The smaller 2510 seems to have the odd numbered fanout inputs on the first chip, and the even numbered inputs on the second.    &lt;br /&gt;
&lt;br /&gt;
They both can support 16 composite inputs that are multiplexed through pairs of 74HC4051A Analog Multiplexer/Demultiplexers.  Which of the 16 inputs is routed to any of the four bt878A&amp;#039;s is controlled by GPIO pins.&lt;br /&gt;
&lt;br /&gt;
Each bt878A device controls a pair of M/D&amp;#039;ers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[1][A,B,C] (select pins)&lt;br /&gt;
      GPIO[18]    =&amp;gt; M/D[1][Enable]&lt;br /&gt;
&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[2][A,B,C] (select pins)&lt;br /&gt;
      GPIO[20]    =&amp;gt; M/D[2][Enable]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an input has been routed the signal is split between the bt878A&amp;#039;s MUX0 and a 4581CS Sync Separator.  As far as I can tell the only output of the 4581CS that is used is the Odd/Even field output that is routed to GPIO[15] on the respective 878A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                     74HC4051A&lt;br /&gt;
 Comp-In (1-8)  =&amp;gt; M/D[1] (X0-7) -&amp;gt; \   [ L/C/R ] (inductor/&lt;br /&gt;
                                     |= [network] capacitor/&lt;br /&gt;
 Comp-In (9-16) =&amp;gt; M/D[2] (X0-7) -&amp;gt; /             resistor)&lt;br /&gt;
&lt;br /&gt;
               4581CS Sync Separator&lt;br /&gt;
   L/C/R     /  Comp-In -&amp;gt; Odd/Even  =&amp;gt; GPIO[15]&lt;br /&gt;
 [network] =|&lt;br /&gt;
             \ 878A: MUX0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a fifth pair of Mux/Demux chips that are used to send one of 16 inputs to an RCA jack via a 6db video amp.  This routing function is controlled by an Atmel AT89C2051 (8051 family) micro controller.  I have not determined how to talk to the micro controller at this time.  The I2C pins of the first bt878A is connected to the serial port of the micro controller.&lt;br /&gt;
&lt;br /&gt;
There is also a set of 8 external device I/O ports to send or receive On/Off signals from motion detectors or drive alarm circuits, and an on board WatchDog relay output.  These are controlled by GPIO[3-10,12-13] of the first 878A.&lt;br /&gt;
&lt;br /&gt;
More information on the Digi-Flower DVR2000B (DVR2510 is not listed here) cards available from Anko: http://www.anko-tech.com/products/df2000.htm&lt;br /&gt;
&lt;br /&gt;
lspci data for the DVR2000B ( these numbers seem very generic.. how can the specific card be known?)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 PCI bridge [0604]: Hint Corp HB6 Universal PCI-PCI bridge (non-transparent mode) [3388:0021] (rev 11)&lt;br /&gt;
03:0c.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0c.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0d.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0d.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0e.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0e.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0f.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0f.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve been able to get the DVR2000B working with this patch on linux-2.6.24 kernel----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- drivers/media/video/bt8xx/bttv.h.orig	2008-08-19 12:20:13.000000000 -0500&lt;br /&gt;
+++ drivers/media/video/bt8xx/bttv.h	2008-08-19 12:15:32.000000000 -0500&lt;br /&gt;
@@ -173,6 +173,7 @@&lt;br /&gt;
 #define BTTV_BOARD_VOODOOTV_200		   0x93&lt;br /&gt;
 #define BTTV_BOARD_DVICO_FUSIONHDTV_2	   0x94&lt;br /&gt;
 #define BTTV_BOARD_TYPHOON_TVTUNERPCI	   0x95&lt;br /&gt;
+#define BTTV_BOARD_DIGIFLOWER_DVR2000B     0x96&lt;br /&gt;
 &lt;br /&gt;
 /* more card-specific defines */&lt;br /&gt;
 #define PT2254_L_CHANNEL 0x10&lt;br /&gt;
--- drivers/media/video/bt8xx/bttv-cards.c.orig	2008-08-19 12:02:31.000000000 -0500&lt;br /&gt;
+++ drivers/media/video/bt8xx/bttv-cards.c	2008-08-19 12:52:58.000000000 -0500&lt;br /&gt;
@@ -81,6 +81,8 @@ static void tibetCS16_init(struct bttv *&lt;br /&gt;
 static void kodicom4400r_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 static void kodicom4400r_init(struct bttv *btv);&lt;br /&gt;
 &lt;br /&gt;
+static void digiflower_dvr2000b_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
+&lt;br /&gt;
 static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input);&lt;br /&gt;
 &lt;br /&gt;
@@ -314,6 +316,7 @@ static struct CARD {&lt;br /&gt;
 	{ 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE,    &amp;quot;DViCO FusionHDTV 5 Lite&amp;quot; },&lt;br /&gt;
 	{ 0x00261822, BTTV_BOARD_TWINHAN_DST,	&amp;quot;DNTV Live! Mini &amp;quot;},&lt;br /&gt;
 	{ 0xd200dbc0, BTTV_BOARD_DVICO_FUSIONHDTV_2,	&amp;quot;DViCO FusionHDTV 2&amp;quot; },&lt;br /&gt;
+	{ 0x00000000, BTTV_BOARD_DIGIFLOWER_DVR2000B,	&amp;quot;Digi-Flower DVR2000B&amp;quot; },&lt;br /&gt;
 &lt;br /&gt;
 	{ 0, -1, NULL }&lt;br /&gt;
 };&lt;br /&gt;
@@ -3005,6 +3008,25 @@ struct tvcard bttv_tvcards[] = {&lt;br /&gt;
 		.tuner_addr     = ADDR_UNSET,&lt;br /&gt;
 		.radio_addr     = ADDR_UNSET,&lt;br /&gt;
 	},&lt;br /&gt;
+	[BTTV_BOARD_DIGIFLOWER_DVR2000B] = {&lt;br /&gt;
+		.name           = &amp;quot;Digi-Flower DVR2000B (master?)&amp;quot;,&lt;br /&gt;
+		.video_inputs   = 16,&lt;br /&gt;
+		.audio_inputs   = 0,&lt;br /&gt;
+		.tuner          = UNSET,&lt;br /&gt;
+		.svhs           = UNSET,&lt;br /&gt;
+		.tuner_type     = TUNER_ABSENT,&lt;br /&gt;
+		.tuner_addr	= ADDR_UNSET,&lt;br /&gt;
+		.radio_addr     = ADDR_UNSET,&lt;br /&gt;
+		.no_gpioirq     = 1,&lt;br /&gt;
+		.gpiomask2      = 0x140007,&lt;br /&gt;
+		.muxsel         = { 2,6,10,14, 2,6,10,14, 2,6,10,14, 2,6,10,14 },&lt;br /&gt;
+		.muxsel_hook	= digiflower_dvr2000b_muxsel,&lt;br /&gt;
+                .gpiomux        = { 0, 0, 0, 0 }, /* card has no audio */&lt;br /&gt;
+		.no_msp34xx     = 1,&lt;br /&gt;
+		.no_tda9875     = 1,&lt;br /&gt;
+		.no_tda7432     = 1,&lt;br /&gt;
+		.pll            = PLL_28,&lt;br /&gt;
+	},&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);&lt;br /&gt;
@@ -4887,6 +4909,21 @@ static void kodicom4400r_init(struct btt&lt;br /&gt;
 	master[btv-&amp;gt;c.nr+2] = btv;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
+/* DB1 = Top connector fan-out.  DB2 = Bottom connector fan-out. */&lt;br /&gt;
+#define DB1    0x100000 &lt;br /&gt;
+#define DB2    0x040000&lt;br /&gt;
+&lt;br /&gt;
+static void digiflower_dvr2000b_muxsel(struct bttv *btv, unsigned int input)&lt;br /&gt;
+{&lt;br /&gt;
+	static const int masks[] = {&lt;br /&gt;
+		DB1,   DB1|1, DB1|2, DB1|3,&lt;br /&gt;
+		DB1|4, DB1|5, DB1|6, DB1|7,&lt;br /&gt;
+		DB2,   DB2|1, DB2|2, DB2|3,&lt;br /&gt;
+		DB2|4, DB2|5, DB2|6, DB2|7,&lt;br /&gt;
+	};&lt;br /&gt;
+	gpio_write(masks[input%16]);&lt;br /&gt;
+}&lt;br /&gt;
+&lt;br /&gt;
 /* The Grandtec X-Guard framegrabber card uses two Dual 4-channel&lt;br /&gt;
  * video multiplexers to provide up to 16 video inputs. These&lt;br /&gt;
  * multiplexers are controlled by the lower 8 GPIO pins of the&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:DVR2000B-th.jpg&amp;diff=2659</id>
		<title>File:DVR2000B-th.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:DVR2000B-th.jpg&amp;diff=2659"/>
		<updated>2008-09-02T02:26:05Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Digi-Flower DVR-2000B-R02: 16 input; 4 Fusion BT878A chips&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=2658</id>
		<title>Digiflower</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=2658"/>
		<updated>2008-09-02T02:21:27Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:DVR2000B-th.jpg]]&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve recently laid hands on a few Digi-Flower capture cards and found no indication that anyone has ever taken the time to poke at these cards with a digital multi-meter to discover how they are laid out.&lt;br /&gt;
&lt;br /&gt;
I have two versions, the DVR2000B-R02, and the DVR2510-MP2.  The DVR2000B has four Fusion bt878A decoders, while the DVR2510 has two. I&amp;#039;m going to concentrate on the DVR2000B.  The smaller 2510 seems to have the odd numbered fanout inputs on the first chip, and the even numbered inputs on the second.    &lt;br /&gt;
&lt;br /&gt;
They both can support 16 composite inputs that are multiplexed through pairs of 74HC4051A Analog Multiplexer/Demultiplexers.  Which of the 16 inputs is routed to any of the four bt878A&amp;#039;s is controlled by GPIO pins.&lt;br /&gt;
&lt;br /&gt;
Each bt878A device controls a pair of M/D&amp;#039;ers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[1][A,B,C] (select pins)&lt;br /&gt;
      GPIO[18]    =&amp;gt; M/D[1][Enable]&lt;br /&gt;
&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[2][A,B,C] (select pins)&lt;br /&gt;
      GPIO[20]    =&amp;gt; M/D[2][Enable]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an input has been routed the signal is split between the bt878A&amp;#039;s MUX0 and a 4581CS Sync Separator.  As far as I can tell the only output of the 4581CS that is used is the Odd/Even field output that is routed to GPIO[15] on the respective 878A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                     74HC4051A&lt;br /&gt;
 Comp-In (1-8)  =&amp;gt; M/D[1] (X0-7) -&amp;gt; \   [ L/C/R ] (inductor/&lt;br /&gt;
                                     |= [network] capacitor/&lt;br /&gt;
 Comp-In (9-16) =&amp;gt; M/D[2] (X0-7) -&amp;gt; /             resistor)&lt;br /&gt;
&lt;br /&gt;
               4581CS Sync Separator&lt;br /&gt;
   L/C/R     /  Comp-In -&amp;gt; Odd/Even  =&amp;gt; GPIO[15]&lt;br /&gt;
 [network] =|&lt;br /&gt;
             \ 878A: MUX0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve been able to get the DVR2000B working with this patch ----&lt;br /&gt;
&lt;br /&gt;
There is also a fifth pair of Mux/Demux chips that are used to send one of 16 inputs to an RCA jack via a 6db video amp.  This routing function is controlled by an Atmel AT89C2051 (8051 family) micro controller.  I have not determined how to talk to the micro controller at this time.  The I2C pins of the first bt878A is connected to the serial port of the micro controller.&lt;br /&gt;
&lt;br /&gt;
There is also a set of 8 external device I/O ports to send or receive On/Off signals from motion detectors or drive alarm circuits, and an on board WatchDog relay output.  These are controlled by GPIO[3-10,12-13] of the first 878A.&lt;br /&gt;
&lt;br /&gt;
More information on the Digi-Flower DVR2000B (DVR2510 is not listed here) cards available from Anko: http://www.anko-tech.com/products/df2000.htm&lt;br /&gt;
&lt;br /&gt;
lspci data for the DVR2000B ( these numbers seem very generic.. how can the specific card be known?)&lt;br /&gt;
&lt;br /&gt;
02:00.0 PCI bridge [0604]: Hint Corp HB6 Universal PCI-PCI bridge (non-transparent mode) [3388:0021] (rev 11)&lt;br /&gt;
03:0c.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0c.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0d.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0d.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0e.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0e.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0f.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0f.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:DVR2000B-th.jpg&amp;diff=2657</id>
		<title>File:DVR2000B-th.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:DVR2000B-th.jpg&amp;diff=2657"/>
		<updated>2008-09-02T02:20:09Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: 16 input; 4 Fusion BT878A chips&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;16 input; 4 Fusion BT878A chips&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=2656</id>
		<title>Digiflower</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Digiflower&amp;diff=2656"/>
		<updated>2008-09-02T02:12:58Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: Digi-flower DVR-2000B&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:DVR2000B.jpg]]&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve recently laid hands on a few Digi-Flower capture cards and found no indication that anyone has ever taken the time to poke at these cards with a digital multi-meter to discover how they are laid out.&lt;br /&gt;
&lt;br /&gt;
I have two versions, the DVR2000B-R02, and the DVR2510-MP2.  The DVR2000B has four Fusion bt878A decoders, while the DVR2510 has two. I&amp;#039;m going to concentrate on the DVR2000B.  The smaller 2510 seems to have the odd numbered fanout inputs on the first chip, and the even numbered inputs on the second.    &lt;br /&gt;
&lt;br /&gt;
They both can support 16 composite inputs that are multiplexed through pairs of 74HC4051A Analog Multiplexer/Demultiplexers.  Which of the 16 inputs is routed to any of the four bt878A&amp;#039;s is controlled by GPIO pins.&lt;br /&gt;
&lt;br /&gt;
Each bt878A device controls a pair of M/D&amp;#039;ers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[1][A,B,C] (select pins)&lt;br /&gt;
      GPIO[18]    =&amp;gt; M/D[1][Enable]&lt;br /&gt;
&lt;br /&gt;
      GPIO[0,1,2] =&amp;gt; M/D[2][A,B,C] (select pins)&lt;br /&gt;
      GPIO[20]    =&amp;gt; M/D[2][Enable]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an input has been routed the signal is split between the bt878A&amp;#039;s MUX0 and a 4581CS Sync Separator.  As far as I can tell the only output of the 4581CS that is used is the Odd/Even field output that is routed to GPIO[15] on the respective 878A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                     74HC4051A&lt;br /&gt;
 Comp-In (1-8)  =&amp;gt; M/D[1] (X0-7) -&amp;gt; \   [ L/C/R ] (inductor/&lt;br /&gt;
                                     |= [network] capacitor/&lt;br /&gt;
 Comp-In (9-16) =&amp;gt; M/D[2] (X0-7) -&amp;gt; /             resistor)&lt;br /&gt;
&lt;br /&gt;
               4581CS Sync Separator&lt;br /&gt;
   L/C/R     /  Comp-In -&amp;gt; Odd/Even  =&amp;gt; GPIO[15]&lt;br /&gt;
 [network] =|&lt;br /&gt;
             \ 878A: MUX0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve been able to get the DVR2000B working with this patch ----&lt;br /&gt;
&lt;br /&gt;
There is also a fifth pair of Mux/Demux chips that are used to send one of 16 inputs to an RCA jack via a 6db video amp.  This routing function is controlled by an Atmel AT89C2051 (8051 family) micro controller.  I have not determined how to talk to the micro controller at this time.  The I2C pins of the first bt878A is connected to the serial port of the micro controller.&lt;br /&gt;
&lt;br /&gt;
There is also a set of 8 external device I/O ports to send or receive On/Off signals from motion detectors or drive alarm circuits, and an on board WatchDog relay output.  These are controlled by GPIO[3-10,12-13] of the first 878A.&lt;br /&gt;
&lt;br /&gt;
More information on the Digi-Flower DVR2000B (DVR2510 is not listed here) cards available from Anko: http://www.anko-tech.com/products/df2000.htm&lt;br /&gt;
&lt;br /&gt;
lspci data for the DVR2000B ( these numbers seem very generic.. how can the specific card be known?)&lt;br /&gt;
&lt;br /&gt;
02:00.0 PCI bridge [0604]: Hint Corp HB6 Universal PCI-PCI bridge (non-transparent mode) [3388:0021] (rev 11)&lt;br /&gt;
03:0c.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0c.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0d.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0d.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0e.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0e.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;br /&gt;
03:0f.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)&lt;br /&gt;
03:0f.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:DVR2000B.jpg&amp;diff=2655</id>
		<title>File:DVR2000B.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:DVR2000B.jpg&amp;diff=2655"/>
		<updated>2008-09-01T22:06:51Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: 16 inputs, 4 bt878 chips&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;16 inputs, 4 bt878 chips&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Hardware_Compatibility_List&amp;diff=2654</id>
		<title>Hardware Compatibility List</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Hardware_Compatibility_List&amp;diff=2654"/>
		<updated>2008-09-01T21:46:46Z</updated>

		<summary type="html">&lt;p&gt;Tuxokc: /* Link to Digiflower page */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zoneminder will work with almost any capture card that is supported by the linux kernel.&lt;br /&gt;
&lt;br /&gt;
AKA; HCL, Hardware Compatibility List&lt;br /&gt;
&lt;br /&gt;
== Capture Cards ==&lt;br /&gt;
&lt;br /&gt;
[[Pico2000]] - 4 port card, one chip bt878, around 2 fps when using all channels&lt;br /&gt;
&lt;br /&gt;
[[Bt878_4chip_8inputs]] - I don&amp;#039;t know the name for it, 4 chips bt878, 8 inputs, around 5 fps when using 2 inputs per chip&lt;br /&gt;
&lt;br /&gt;
[[:Image:Karta.jpg| bt878 8 chip 8 input]] - options bttv card=77,77,77,77,77,77,77,77&lt;br /&gt;
 &lt;br /&gt;
[[Hauppauge]]&lt;br /&gt;
&lt;br /&gt;
[[Ituner Spectra 8]] [http://www.ituner.com/spectra.htm]&lt;br /&gt;
&lt;br /&gt;
[[Linux Media Labs LMLBT44]] [http://www.linuxmedialabs.com]&lt;br /&gt;
&lt;br /&gt;
[[Hawkeye]]&lt;br /&gt;
&lt;br /&gt;
[[Avermedia]]&lt;br /&gt;
&lt;br /&gt;
[[TView 95/99]]&lt;br /&gt;
&lt;br /&gt;
[[WinFast TV2000 XP]]&lt;br /&gt;
&lt;br /&gt;
[[Osprey 100]]&lt;br /&gt;
&lt;br /&gt;
[[Grandtec Grand X Guard]] [http://www.grandtec.com/xguard.htm]&lt;br /&gt;
&lt;br /&gt;
[[Kodicom 4400r]]&lt;br /&gt;
&lt;br /&gt;
Leadtek WinFast VC 100 - the cheapest bt878 model with no tuner on it, just Com/Svideo in.&lt;br /&gt;
&lt;br /&gt;
[[Digiflower]]&lt;br /&gt;
&lt;br /&gt;
Most other BTTV (bt878, bt848) cards, see /usr/src/linux/Documentation/video4linux/bttv/CARDLIST on your system for a list of some of them.&lt;br /&gt;
&lt;br /&gt;
A note on the bt8x8-based TV-tuner cards: these usually have beside the tuner input, also a Composite and an S-Video input. You can hook up 2 analog cameras to these, and access from ZoneMinder both of them as individual cameras, at max 15Fps. You don&amp;#039;t need two separate TV cards for two cameras!&lt;br /&gt;
&lt;br /&gt;
== Analog Cameras ==&lt;br /&gt;
&lt;br /&gt;
Any regular composite or S-video camera connected via a supported capture card.  Some analog cameras feature camera control - ZM supports several of these camera&amp;#039;s Pan/Tilt/Zoom functions via serial port control, as well as camera Presets, Focus, Iris, etc.&lt;br /&gt;
*[[PicturetelControlScript | PictureTel PTZ2N]].&lt;br /&gt;
&lt;br /&gt;
== Network Cameras ==&lt;br /&gt;
For Network Cams to work they need to be able to stream MJPEG without the requirement of activex controls. If you see the requirement for the camera calls for IE then there is a good chance it may not work. The other option is to grab JPEG images if the camera supports that option which will work but at a lower frame rate.&lt;br /&gt;
&lt;br /&gt;
* [[Axis]] (just about all recent models, including support for PTZ functions)&lt;br /&gt;
&lt;br /&gt;
* [[D-Link]] &lt;br /&gt;
&lt;br /&gt;
* [[Airlink 101]] &lt;br /&gt;
&lt;br /&gt;
* [[Conceptronic]] &lt;br /&gt;
&lt;br /&gt;
* [[Gadspot]] GS9603 IP Camera with Pan/Tilt, As well as the GS1600(H).&lt;br /&gt;
&lt;br /&gt;
* [[Grandtec]] [[Grandtec_WLAN_Camera|WLAN Camera]] WiFi or III - acceptable indoor quality, no infrared-filter (better nightvision) cheap!&lt;br /&gt;
&lt;br /&gt;
* [[Intellinet]]  IPCamera with the new firmware.&lt;br /&gt;
* Old Intellinet IPCamera (model MWNC-100) with this (http://www.zoneminder.com/forums/viewtopic.php?t=7500) protocol adapter. &lt;br /&gt;
&lt;br /&gt;
* [[Level One]] [[WCS-1090]]&lt;br /&gt;
&lt;br /&gt;
* OvisLink AirLive WL-5400CAM&lt;br /&gt;
&lt;br /&gt;
* [[Panasonic]] &lt;br /&gt;
&lt;br /&gt;
* [[Sony]] SNC-M1 and SNC-M3 wired and wireless - including PTZ support.  Possibly other Sony SNC-, RZ-,  and IP- series?&lt;br /&gt;
&lt;br /&gt;
* [[Trendnet]] TV-IP200 / TV-IP200W, TV-IP300 and the TV-IP400 / TV-IP400W with PTZ control support. &lt;br /&gt;
&lt;br /&gt;
* [[Veo Observer IP NetCam]] / Orite IP-Cam IC-301 / Sweex IP Network Camera JA200010 / other clones&lt;br /&gt;
&lt;br /&gt;
* Any network camera that allows access to single JPEG image grabs or &amp;#039;&amp;#039;&amp;#039;some but not all&amp;#039;&amp;#039;&amp;#039; multi-part JPEG feeds.&lt;br /&gt;
&lt;br /&gt;
== Network Digitizers ==&lt;br /&gt;
&lt;br /&gt;
Like Network Cameras, these devices produce a video stream - but they accept an analog video input from a camera or other video source.&lt;br /&gt;
&lt;br /&gt;
*The [[IP9100 | Aviosys IP9100, Models A, B and Plus]] has four analog video inputs.  It produces a ZM compatible video stream from one of the inputs, which is selectable via an HTTP GET command.  There might even be a control script for ZM that lets you select the active video input using &amp;#039;&amp;#039;ZM&amp;#039;s Camera Control Presets!&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== USB Cameras ==&lt;br /&gt;
&lt;br /&gt;
*Just Zoom USB cam&lt;br /&gt;
&lt;br /&gt;
*Creative Webcam Pro, Webcam 3&lt;br /&gt;
&lt;br /&gt;
*[[Logitech QuickCam Express]], QuickCam Pro 3000, QuickCam Communicate STX&lt;br /&gt;
&lt;br /&gt;
*Logitech Quickcam Orbit/Sphere (experimental basic pan/tilt control has also published for testing and hacking [http://www.zoneminder.com/forums/viewtopic.php?t=9788])&lt;br /&gt;
&lt;br /&gt;
*[[Philips]] &lt;br /&gt;
&lt;br /&gt;
*Any OV511 based USB camera [http://alpha.dyndns.org/ov511/cameras.html]&lt;br /&gt;
&lt;br /&gt;
*Any CPIA based USB camera [http://webcam.sourceforge.net]&lt;br /&gt;
&lt;br /&gt;
*[[LabTec WebCam Pro]]&lt;br /&gt;
&lt;br /&gt;
* Indirectly supports any [[Uvc | UVC/V4L2]] supported cam such as Logitech Quickcam Pro 5000 using [[Uvc | UVC Streaming]] .&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Note that most USB cameras that can use Video4Linux, and so can be used by ZoneMinder, have older chipsets and can be hard to find new.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Note that PWC drivers are not included in the kernel. Some distribution&amp;#039;s add them in and other may not. Here are some relevant links.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 [http://www.smcc.demon.nl/webcam/ Old Maintainer]&lt;br /&gt;
 [http://www.saillard.org/linux/pwc/ Current PWC Maintainer]&lt;br /&gt;
&lt;br /&gt;
== X10 Devices ==&lt;br /&gt;
The only device that really needs to be compatable with ZM is the Transceiver, all other x10 devices comunicate through that device.&lt;br /&gt;
*[[CM11]] Bi-Directional Transceiver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other X10 notes:&lt;br /&gt;
&lt;br /&gt;
[http://www.zoneminder.com/forums/viewtopic.php?t=6423&amp;amp;highlight=x10 Topic 6423]&lt;br /&gt;
&lt;br /&gt;
[http://www.zoneminder.com/forums/viewtopic.php?t=7082&amp;amp;highlight=x10 Topic 7082]&lt;br /&gt;
&lt;br /&gt;
== All other hardware as supported by Linux ==&lt;br /&gt;
To find out if your hardware is supported, check the HCL at [http://www.linuxquestions.org/hcl/ linuxquestions.org]&lt;br /&gt;
&lt;br /&gt;
[http://kmuto.jp/debian/hcl/ Debian]&lt;br /&gt;
&lt;br /&gt;
[http://fedoraproject.org/wiki/HCL Fedora]  [http://fedora-linux.nl/wiki/index.php/HCL Fedora Unofficial HCL]&lt;br /&gt;
&lt;br /&gt;
[http://www.mandriva.com/hardware Mandriva]&lt;br /&gt;
&lt;br /&gt;
[https://hardware.redhat.com/hwcert/index.cgi RedHat]&lt;br /&gt;
&lt;br /&gt;
[http://en.opensuse.org/Hardware Suse]&lt;br /&gt;
&lt;br /&gt;
[http://doc.gwos.org/index.php/HCL Ubuntu]&lt;/div&gt;</summary>
		<author><name>Tuxokc</name></author>
	</entry>
</feed>