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