Honestech Vidbox NW03
Jump to navigation
Jump to search
A USB video and audio capture device with no tuner. It only has Composite and S-Video inputs.
Currently unsupported by Linux without patching the V4L tree. Once patched it works well with Composite input, but S-Video hasn't been tested.
Overview/Features
- Three phono (RCA jack) inputs for Composite, which use the standard Red/White/Yellow colour scheme.
- Four pin mini-DIN socket for S-Video input.
- Based on the Empia EM2860 chip, therefore uses V4L's em28xx driver.
- USB Id eb1a:5006
Components Used
Verified by opening the box:
- Empia EM2860 USB Video Capture Device.
- Empia EMP202 Dual-Channel AC'97 Codec.
- Philips SAA7113H Video Input Processor.
- BL24C02 Serial EEPROM.
Current Status
- Needs patching to work.
- After patching, works with the Composite video and audio inputs.
- S-Video input untested.
To Make It Work
There are three issues with V4L and this device:
- The EMP202 is identified as a SIGMATEL chip by the driver.
- The USB Id is not recognised by the driver.
- Once recognised, the inputs are not configured correctly.
Patching V4L
The following two patches were against a local clone of git://linuxtv.org/media_build.git
This first patch addresses the 1st issue - incorrectly identified audio chip:
diff --git a/linux/drivers/media/video/em28xx/em28xx-core.c b/linux/drivers/media/video/em28xx/em28xx-core.c index 804a4ab..2982a06 100644 --- a/linux/drivers/media/video/em28xx/em28xx-core.c +++ b/linux/drivers/media/video/em28xx/em28xx-core.c @@ -568,7 +568,7 @@ int em28xx_audio_setup(struct em28xx *dev) em28xx_warn("AC97 features = 0x%04x\n", feat); /* Try to identify what audio processor we have */ - if ((vid == 0xffffffff) && (feat == 0x6a90)) + if (((vid == 0xffffffff) || (vid == 0x83847650)) && (feat == 0x6a90)) dev->audio_mode.ac97 = EM28XX_AC97_EM202; else if ((vid >> 8) == 0x838476) dev->audio_mode.ac97 = EM28XX_AC97_SIGMATEL;
The second patch adds the USB Id to the driver and configures it to work with Composite and audio inputs:
diff --git a/linux/drivers/media/video/em28xx/em28xx-cards.c b/linux/drivers/media/video/em28xx/em28xx-cards.c index 1704da0..4f55962 100644 --- a/linux/drivers/media/video/em28xx/em28xx-cards.c +++ b/linux/drivers/media/video/em28xx/em28xx-cards.c @@ -1888,6 +1888,22 @@ struct em28xx_board em28xx_boards[] = { .has_dvb = 1, .ir_codes = RC_MAP_PINNACLE_PCTV_HD, }, + /* eb1a:5006 Honestech VIDBOX NW03 + * Empia EM2860, Philips SAA7113, Empia EMP202, No Tuner */ + [EM2860_BOARD_HT_VIDBOX_NW03] = { + .name = "Honestech Vidbox NW03", + .tuner_type = TUNER_ABSENT, + .decoder = EM28XX_SAA711X, + .input = { { + .type = EM28XX_VMUX_COMPOSITE1, + .vmux = SAA7115_COMPOSITE0, + .amux = EM28XX_AMUX_LINE_IN, + }, { + .type = EM28XX_VMUX_SVIDEO, + .vmux = SAA7115_SVIDEO3, /* S-VIDEO needs confirming */ + .amux = EM28XX_AMUX_LINE_IN, + } }, + }, }; const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); @@ -2027,6 +2043,8 @@ struct usb_device_id em28xx_id_table[] = { .driver_info = EM28174_BOARD_PCTV_460E }, { USB_DEVICE(0x2040, 0x1605), .driver_info = EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C }, + { USB_DEVICE(0xeb1a, 0x5006), + .driver_info = EM2860_BOARD_HT_VIDBOX_NW03 }, { }, }; MODULE_DEVICE_TABLE(usb, em28xx_id_table); diff --git a/linux/drivers/media/video/em28xx/em28xx.h b/linux/drivers/media/video/em28xx/em28xx.h index b1199ef..2dbb12c 100644 --- a/linux/drivers/media/video/em28xx/em28xx.h +++ b/linux/drivers/media/video/em28xx/em28xx.h @@ -124,6 +124,7 @@ #define EM28174_BOARD_PCTV_460E 80 #define EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C 81 #define EM2884_BOARD_CINERGY_HTC_STICK 82 +#define EM2860_BOARD_HT_VIDBOX_NW03 83 /* Limits minimum and default number of buffers */ #define EM28XX_MIN_BUF 4
Testing
If all goes well, then kernel logs should show something similar to the following:
[16272.860265] usb 2-1.3: new high speed USB device number 8 using ehci_hcd [16272.959939] em28xx: New device USB VIDBOX Audio @ 480 Mbps (eb1a:5006, interface 0, class 0) [16272.960144] em28xx #0: chip ID is em2860 [16273.090566] em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 06 50 50 00 20 03 6a 24 8e 28 [16273.090582] em28xx #0: i2c eeprom 10: 00 00 24 57 06 02 00 00 00 00 00 00 00 00 00 00 [16273.090597] em28xx #0: i2c eeprom 20: 02 00 01 00 f0 10 01 00 00 00 00 00 5b 00 00 00 [16273.090611] em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 00 00 00 00 [16273.090625] em28xx #0: i2c eeprom 40: 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 [16273.090639] em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [16273.090653] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 24 03 55 00 53 00 [16273.090667] em28xx #0: i2c eeprom 70: 42 00 20 00 56 00 49 00 44 00 42 00 4f 00 58 00 [16273.090681] em28xx #0: i2c eeprom 80: 20 00 41 00 75 00 64 00 69 00 6f 00 00 00 28 03 [16273.090695] em28xx #0: i2c eeprom 90: 55 00 53 00 42 00 32 00 2e 00 30 00 20 00 56 00 [16273.090709] em28xx #0: i2c eeprom a0: 49 00 44 00 42 00 4f 00 58 00 20 00 4e 00 57 00 [16273.090723] em28xx #0: i2c eeprom b0: 30 00 33 00 00 00 00 00 00 00 00 00 00 00 00 00 [16273.090737] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [16273.090750] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [16273.090764] em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [16273.090778] em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [16273.090794] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0x5129e4d9 [16273.090797] em28xx #0: EEPROM info: [16273.090799] em28xx #0: AC97 audio (5 sample rates) [16273.090802] em28xx #0: 500mA max power [16273.090805] em28xx #0: Table at 0x24, strings=0x246a, 0x288e, 0x0000 [16273.092559] em28xx #0: Identified as Honestech Vidbox NW03 (card=83) [16273.451720] saa7115 15-0025: saa7113 found (1f7113d0e100000) @ 0x4a (em28xx #0) [16274.218157] em28xx #0: Config register raw data: 0x50 [16274.241863] em28xx #0: AC97 vendor ID = 0x83847650 [16274.253844] em28xx #0: AC97 features = 0x6a90 [16274.253848] em28xx #0: Empia 202 AC97 audio processor detected [16274.713049] em28xx #0: v4l2 driver version 0.1.3 [16275.735250] em28xx #0: V4L2 video device registered as video0 [16275.735256] em28xx #0: V4L2 VBI device registered as vbi0