Em28xx devices

From LinuxTVWiki
Jump to navigation Jump to search

This article discusses some USB interface chipset families produced by EMPIA, and, in addition, addresses the driver that support these chips.

How to compile the latest em28xx driver?

See the How to Obtain, Build and Install V4L-DVB Device Drivers article


Boards

How to identify my USB vendor/product id?

 shell> lsusb
If you can't recognize the vendor/product id from your device contact linux-media mail-list

Validated boards

What's it?

 We use this term to advise that boards were tested by user or developer.

Table of validated boards

Define Name Vendor/Product ID Supported modes
EM2820_BOARD_KWORLD_PVRTV2800RF
Kworld PVR TV 2800 RF
-
Analog
EM2820_BOARD_TERRATEC_CINERGY_250
Terratec Cinergy 250 USB
0x0ccd:0x0036
Analog
EM2820_BOARD_PINNACLE_USB_2
Pinnacle PCTV USB 2
0x2304:0x0208
Analog
EM2820_BOARD_HAUPPAUGE_WINTV_USB_2
Hauppauge WinTV USB 2
0x2040, 0x4201
Analog
EM2820_BOARD_HAUPPAUGE_WINTV_USB_2
Hauppauge WinTV USB 2
0x2040:0x4200
Analog
EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900
Hauppauge WinTV HVR 900
0x2040:0x6500
Analog/DVB
EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2
Hauppauge WinTV HVR 900 (R2)
0x2040:0x6502
Analog/DVB
EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950
HCW HVR-980
0x2040:0x6513
Analog/DVB
EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950
HP HVR-950
0x2040:0x6517
Analog/DVB
EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950
RP HVR-950
0x2040:0x651b
Analog/DVB
EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950
HCW HVR-850
0x2040:0x651f
Analog/DVB
EM2880_BOARD_PINNACLE_PCTV_HD_PRO
Pinnacle PCTV HD Pro Stick
0x2304:0x0227
Analog/DVB
EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600
AMD ATI TV Wonder HD 600
0x0438:0xb002
Analog/DVB
EM2880_BOARD_TERRATEC_HYBRID_XS
Terratec Hybrid XS
0x0ccd:0x0042
Analog/DVB
EM2880_BOARD_TERRATEC_PRODIGY_XS
Terratec Prodigy XS
0x0ccd:0x0047
Analog
EM2820_BOARD_MSI_VOX_USB_2
MSI VOX USB 2.0
-
Analog
EM2800_BOARD_TERRATEC_CINERGY_200
Terratec Cinergy 200 USB
0xeb1a:0x2800
Analog
EM2800_BOARD_GRABBEEX_USB2800
eMPIA Technology, Inc. GrabBeeX+ Video Encoder
0xeb1a:0x2801
Analog
EM2800_BOARD_LEADTEK_WINFAST_USBII
Leadtek Winfast USB II
0x0413:0x6023
Analog
EM2800_BOARD_KWORLD_USB2800
Kworld USB2800
-
Analog
EM2820_BOARD_PINNACLE_DVC_90
Pinnacle Dazzle DVC 90/DVC 100
0x2304:0x0207
Analog
EM2884_BOARD_PCTV_520E
PCTVSystems QuatroStick-nano 520e
0x2013:0x0251
DVB
EM2800_BOARD_VGEAR_POCKETTV
V-Gear PocketTV
-
Analog
EM2820_BOARD_PROLINK_PLAYTV_USB2
Pixelview Prolink PlayTV USB 2.0
0xeb1a:0x2821
Analog
EM2860_BOARD_POINTNIX_INTRAORAL_CAMERA
PointNix Intra-Oral Camera
-
Analog
EM2820_BOARD_COMPRO_VIDEOMATE_FORYOU
Compro VideoMate ForYou/Stereo
0x185b:0x2041
Analog


Not Validated boards

What's it?

 Not validated means: that your device was added to kernel but
 no developer has the hardware to test. If you would like to help
 and inform that your hardware works (or not) please see the section
 How to validate my vendor/product id at upstream kernel

Table of NOT validated boards

Define Name Vendor/Product ID Status
EM2750_BOARD_DLCW_130
Huaqi DLCW-130
-
Not validated (change it)
EM2820_BOARD_DLINK_USB_TV
D-Link DUB-T210 TV Tuner
0x2001:0xf112
Not validated (change it)
EM2820_BOARD_HERCULES_SMART_TV_USB2
Hercules Smart TV USB 2.0
-
Not validated (change it)
EM2820_BOARD_PINNACLE_USB_2_FM1216ME
Pinnacle PCTV USB 2 (Philips FM1216ME)
-
Not validated (change it)
EM2820_BOARD_GADMEI_UTV310
Gadmei UTV310
-
Not validated (change it)
EM2820_BOARD_LEADTEK_WINFAST_USBII_DELUXE
Leadtek Winfast USB II Deluxe
-
Not validated (change it)
EM2820_BOARD_PINNACLE_DVC_100
Pinnacle Dazzle DVC 100
-
Not validated (change it)
EM2820_BOARD_VIDEOLOGY_20K14XUSB
Videology 20K14XUSB USB2.0
-
Not validated (change it)
EM2821_BOARD_PROLINK_PLAYTV_USB2
SIIG AVTuner-PVR/Prolink PlayTV USB 2.0
-
Not validated (change it)
EM2821_BOARD_SUPERCOMP_USB_2
Supercomp USB 2.0 TV
-
Not validated (change it)
EM2821_BOARD_USBGEAR_VD204
Usbgear VD204v9
-
Not validated (change it)
EM2860_BOARD_NETGMBH_CAM
NetGMBH Cam
-
Not validated (change it)
EM2860_BOARD_TYPHOON_DVD_MAKER
Typhoon DVD Maker
-
Not validated (change it)
EM2860_BOARD_GADMEI_UTV330
Gadmei UTV330
-
Not validated (change it)
EM2860_BOARD_TERRATEC_HYBRID_XS
Terratec Cinergy A Hybrid XS
0x0ccd, 0x004f
Not validated (change it)
EM2861_BOARD_KWORLD_PVRTV_300U
KWorld PVRTV 300U
0xeb1a, 0xe300
Not validated (change it)
EM2861_BOARD_YAKUMO_MOVIE_MIXER
Yakumo MovieMixer
-
Not validated (change it)
EM2861_BOARD_PLEXTOR_PX_TV100U
Plextor ConvertX PX-TV100U
0x093b:0xa005
Not validated (change it)
EM2863_BOARD_SILVERCREST_VG2000
SilverCrest USB-Video-Grabber VG 2000
0xeb1a:0x2863
Validated (change it)
EM2870_BOARD_TERRATEC_XS
Terratec Cinergy T XS
0x0ccd:0x0043
Not validated (change it)
EM2870_BOARD_TERRATEC_XS_MT2060
Terratec Cinergy T XS (MT2060)
-
Not validated (change it)
EM2870_BOARD_KWORLD_350U
Kworld 350 U DVB-T
0xeb1a:0xe350
Not validated (change it)
EM2870_BOARD_KWORLD_355U
Kworld 355 U DVB-T
0xeb1a:0xe355
Not validated (change it)
EM2870_BOARD_PINNACLE_PCTV_DVB
Pinnacle PCTV DVB-T
-
Not validated (change it)
EM2870_BOARD_COMPRO_VIDEOMATE
Compro, VideoMate U3
0x185b:0x2870
Not validated (change it)
EM2880_BOARD_TERRATEC_HYBRID_XS_FR
Terratec Hybrid XS Secam
0x0ccd:0x004c
Not validated (change it)
EM2880_BOARD_MSI_DIGIVOX_AD
MSI DigiVox A/D
0xeb1a:0xe310
Not validated (change it)
EM2880_BOARD_MSI_DIGIVOX_AD_II
MSI DigiVox A/D II
0xeb1a:0xe320
Not validated (change it)
EM2880_BOARD_KWORLD_DVB_305U
KWorld DVB-T 305U
0xeb1a:0xe305
Not validated (change it)
EM2880_BOARD_KWORLD_DVB_310U
KWorld DVB-T 310U
0xeb1a:e310
Not validated (change it)
EM2881_BOARD_DNT_DA2_HYBRID
DNT DA2 Hybrid
-
Not validated (change it)
EM2881_BOARD_PINNACLE_HYBRID_PRO
Pinnacle Hybrid Pro
-
Not validated (change it)
EM2882_BOARD_PINNACLE_HYBRID_PRO
Pinnacle Hybrid Pro (2)
0x2304:0x0226
Not validated (change it)
EM2882_BOARD_KWORLD_VS_DVBT
Kworld VS-DVB-T 323UR
0xeb1a:0xe323
Not validated (change it)
EM2882_BOARD_TERRATEC_HYBRID_XS
Terratec Hybrid XS (em2882)
0x0ccd:0x005e
Not validated (change it)
EM2883_BOARD_KWORLD_HYBRID_A316
Kworld PlusTV HD Hybrid 330
0xeb1a:0xa316
Not validated (change it)

How to validate my vendor/product id at upstream kernel?

  • Example:
 From: foobar
 To: linux-media@...
 Subject: em28xx: new board id [0b1a:2821]
Hi,
I've made tests with my Pixelview board:
Model: Prolink PlayTV USB 2.0 Vendor/Product id: [0b1a:2821].
Tests made:
- Analog [Worked] - DVB [this board doesn't support dvb mode]
Tested-by: foobar <foobar@foobar.com>
~foobar

Otherwise, if you had any issue, please contact linux-media mail-list.

If some features doesn't work (i.e: audio, dvb, s-video)

Should I call whom?

 Please contact linux-media mail-list.

Usbsnoop

 If you were asked to sniff your device, use these instructions

About em28xx models

em2800/em2820/em2821/em2840

  • used on older analog only device designs. These chips have support for USB Audio Class; so, audio module is snd-usb-audio

em2820/em2840 based devices

em2860

EM2860 supports Video decoder Audio decoder and VBI

em2860 based devices

em2863 based devices

em2870/2871/2872/2873

  • supports DVB/ATSC (but with no analog support). This is targeted at digital only devices.

EM2870 devices include:

em2874

  • next generation version of the em2870 design - they moved around a bunch of registers compared to em2870/2880 and the chip itself supports two transport streams (although most designs will probably only use one stream).
  • KWorld UB435-Q USB ATSC TV Stick

em2880/2881/2883

  • supports DVB/ATSC. Doesn't provide USB Audio Class. Instead, digital audio is provided via an USB Vendor Class; so, these chips require the em28xx-alsa module for digital audio to work.

em2880 based devices

em2710/em2750 based devices

em276x/em277x/em278x based devices

  • latest bridge generation for camera devices
  • optional UVC (USB video class) support
  • supports MPEG video format
  • supports several advanced camera functionalities, such as autofocus, image statistics etc.


Known devices:
SpeedLink VAD Laplace webcam (em2765 + OV2640)

em25xx

  • seems to be the Chinese market versions of the em276x/7x/8x bridges

em28284

Some Misc stuff

The following needs to be cleaned up and/or integrated into the article:

Sample Kernel Output for Pinnacle PCTV nanoStick T2 on kernel 3.6r2 with latest drivers

[    6.784732] media: Linux media interface: v0.10
[    6.786876] Linux video capture interface: v2.00

... You may see the following section IF you are using the latest drivers:

[    6.786879] WARNING: You are using an experimental version of the media stack.
	As the driver is backported to an older kernel, it doesn't offer
	enough quality for its usage in production.
	Use it with care.
Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
	8f7e91a31fb95c50880c76505b416630c0326d93 [media] smiapp-pll: Constify limits argument to smiapp_pll_calculate()
	6ec84a28f5f40e3ebef5d8186c4b11b10aa295d7 [media] smiapp-pll: Create a structure for OP and VT limits
	f5984bbdf402b586581bc292a5449f17ce4b8209 [media] smiapp-pll: Parallel bus support
[    6.793364] em28xx: New device PCTV Systems PCTV 290e @ 480 Mbps (2013:024f, interface 0, class 0)
[    6.793366] em28xx: DVB interface 0 found
[    6.793479] em28xx #0: chip ID is em28174

...

[    7.087134] em28xx #0: Identified as PCTV nanoStick T2 290e (card=78)
[    7.087137] em28xx #0: v4l2 driver version 0.1.3
[    7.092015] em28xx #0: V4L2 video device registered as video0
[    7.092408] usbcore: registered new interface driver em28xx
[    7.192689] cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.9 loaded

... 

[    7.219209] WARNING: You are using an experimental version of the media stack.
	As the driver is backported to an older kernel, it doesn't offer
	enough quality for its usage in production.
	Use it with care.
Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
	8f7e91a31fb95c50880c76505b416630c0326d93 [media] smiapp-pll: Constify limits argument to smiapp_pll_calculate()
	6ec84a28f5f40e3ebef5d8186c4b11b10aa295d7 [media] smiapp-pll: Create a structure for OP and VT limits
	f5984bbdf402b586581bc292a5449f17ce4b8209 [media] smiapp-pll: Parallel bus support
[    7.281849] tda18271 3-0060: creating new instance
[    7.286351] TDA18271HD/C2 detected @ 3-0060
[    7.415159] IR Sony protocol handler initialized
[    7.454729] DVB: registering new adapter (em28xx #0)
[    7.454737] usb 1-7: DVB: registering adapter 1 frontend 0 (Sony CXD2820R)...
[    7.455024] em28xx #0: Successfully loaded em28xx-dvb
[    7.455027] Em28xx: Initialized (Em28xx dvb Extension) extension

...

[    7.514020] Registered IR keymap rc-pinnacle-pctv-hd
[    7.514192] input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:04.1/usb1/1-7/rc/rc1/input8
[    7.514312] rc1: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:04.1/usb1/1-7/rc/rc1
[    7.517100] Em28xx: Initialized (Em28xx Input Extension) extension
[    7.529406] lirc_dev: IR Remote Control driver registered, major 241 

Feature Support

  • No firmware is required for em28xx ICs ... note: though em28xx based devices paired with some tuners will need firmware for the tuner (i.e. there are em28xx based devices paired with a XCeive XC3028 or XC2028 tuner, which require a generic firmware from Xceive).

About Driver

  • Development -- originally by four: Ludovico Cavedon, Markus Rechberger, Mauro Carvalho Chehab, Sascha Sommer.
  • One of the authors, Markus Rechberger, is now developing only closed source binary drivers.

External Links

Additional Help

Contact developers at linux-media mail-list