Pinnacle PCTV 300i

From LinuxTVWiki
Jump to navigation Jump to search

An hybrid Analog/DVB-T PCI card from Pinnacle

It is supported under Linux.


  • PCI Rev. 2.3 interface
  • Analog TV
  • Digital (DVB-T) TV
  • S-Video Input
  • VBI (Teletext)
  • Digital audio input (via alsa or oss module)
  • remote control

Card connectors

  • TV signal: IEC connector
  • Video Inputs: S-Video input (Mini-DIN), Composite video input (chinch)
  • IR-Remote input: 2.5 mm stereo socket
  • Audio output: four-pin plug-in connector, 2.8 mm grid (internal)

Components Used


Output of lspci -v

0000:04:08.0 Multimedia controller: Philips Semiconductors SAA7134 Video Broadcast Decoder (rev 01)
     Subsystem: Pinnacle Systems Inc. Pinnacle PCTV 300i DVB-T + PAL
     Flags: bus master, medium devsel, latency 32, IRQ 58
     Memory at faaffc00 (32-bit, non-prefetchable) [size=1K]
     Capabilities: [40] Power Management version 1

Making it Work


Normally the card needs no module options and is recognized as card=50 with tuner=33. It was said, that you have to load the tda9887 module before the tuner (mt2050), to get the analogue part going.

Sample Kernel Output

Linux video capture interface: v2.00
saa7130/34: v4l2 driver version 0.2.14 loaded
saa7134[0]: found at 0000:00:09.0, rev: 1, irq: 50, latency: 32, mmio: 0xfebff400
saa7134[0]: subsystem: 11bd:002d, board: Pinnacle PCTV 300i DVB-T + PAL [card=50,autodetected]
saa7134[0]: board init: gpio is c806000
saa7134[0]: i2c eeprom 00: bd 11 2d 00 f8 f8 1c 00 43 43 a9 1c 55 d2 b2 92
saa7134[0]: i2c eeprom 10: 00 f0 04 04 ff 20 ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 20: 01 40 01 02 03 ff 03 01 08 ff 00 25 ff ff ff ff
saa7134[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 40: ff 16 00 c0 86 3c 01 01 ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 60: 0c 22 17 44 03 0d 70 fa ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 70: 00 30 8d 18 08 4c ff ff 34 3c ff ff ff ff ff ff
tuner 3-0043: chip found @ 0x86 (saa7134[0])
tda9887 3-0043: tda988[5/6/7] found @ 0x43 (tuner)
tuner 3-0060: Chip ID is not zero. It is not a TEA5767
tuner 3-0060: chip found @ 0xc0 (saa7134[0])
tuner 3-0060: microtune: companycode=3cbf part=42 rev=2f
tuner 3-0060: microtune MT2050 found, OK
saa7134[0]: registered device video0 [v4l2]
saa7134[0]: registered device vbi0
saa7134[0]: pinnacle 300i dvb setup
DVB: registering new adapter (saa7134[0]).
DVB: registering frontend 0 (Zarlink MT352 DVB-T)...

Known Problems

Various people reported their Pinnacle 300i is not working on recent (2.6.15-15) kernels (90% of the time the mt2050 is not detected by microtune_init, and scanning fails even when it is detected).

As it was reported, the best working setup ever was with kernel and the video4linux-archive as of 27062005 from

At least one user has had good results using a 2.6.15 kernel: The missing mt2050 problem was solved by ensuring that tda9887 was loaded before tuner. The tuning failure problem should have been fixed in Feb 2006. As an alternative, a quick but ugly patch was to modify a line in mt20xx.c, from "if (V4L2_TUNER_DIGITAL_TV == t->mode) {" to "if (1) {". However, this edit breaks analogue tuning for mt20xx tuners. With these fix, dvb-t worked very well in Xine/Kaffeine but mplayer tended to lock up quite frequently (it looked like it was failing to recover from glitches in reception (does mplayer do this with other cards too?))

Note also that:

  • As of Jun 2006, tda9887 module has been merged into "tuner" module and doesn't exist anymore on its own. You can load "tuner" module with the same options of "tda9887".
  • Around Jan 2006, it was noticed that tda9887 needed port2 set to 1 to work; a patch was made for it. You could also try loading tda9887 module with "port2=1" option.
  • If you still experience problems, this could be due to an old V4L driver in your kernel. You don't need to get sorurces and compile a new kernel to update V4L; just get Mercurial (similar to CVS), use it to download latest V4L-DVB version, and compile it. You can then install the new V4L modules on top of your existing kernel (detailed instructions here on linuxtv).

Remote Control Support

  • Remote: has been disabled on Feb 2006 due to I2c hangs (check v4l-dvb Changelog for news)

External Links