Pinnacle Expresscard 320CX and linux

v4l driver under developement...

A few days ago I purchased a Pinnacle Expresscard 320CX for my laptop, because it was the only I found with analog signal input. I hoped it would be supported under linux but of course, it was not the case. So I decided to try to build my driver. I created this page to document a little the steps I've been doing.

Before you ask: right now there's nothing working!!!

Update of February: ok, dvb-t seems to work!!

Since it's my first driver and I don't know anything about v4l I've been posting to v4l mailing lists without any answer for the moment (that's what happens often with open source; no help, no information, no documentation). I think it's a new card and expresscard it's not so standard, so it will be difficult to have people developing the driver.

Progress;

First; connect the device (obious). I saw nothing to dmessg (there's no driver) but someting on lsusb, so I think it can be managed as a usb tunner (I hope it's a usb based expresscard). The device descriptors on usb are 0x2304 (pinnacle vendor id) and 0x022e (product id). That's all for my starting point. Needless to say that with so much information I could do nothing, so I disassembled the card to know wich chips it's using, here there are some photos (click on them for a better resolution).

Nothing interesting in front view, just connectors and a chip under a big heatsink wich I couldn't remove (I think it's something related to RF, perhaps the tunner...).

Here there are a lot of interesting things, and of course the chips; they are Dibcom 7700C1, conexant CX25843, AT028 and WM8782. The first is the core of the device and DVB part; it has (according to -P datasheet) a DVB-T demodulator from the tunner input and a TV-USB bridge for the Analog TV Receiver. The second is the Analog TV Receiver wich also does the conversion for the composite or S-Video in. I don't know what is AT028 but seeing 4 pins connected to ground it must be some kind of serial eeprom perhaps. Finally WM8782 is a stereo audio ADC for the audio input.

Let's tweak a little the drivers

Next step was to download v4l source from mercurial and modify dvb-usb-ids.h and dib0700_devices.c to have the device added. With this I obtain a nice result; my device is detected, loads firmware (wich I previously downloaded) and blue led lights!!! Have a look at my precious dmessg.

The only problem is that i2c is not working (and I think it's needed for the tunner). I'm stuck here by the moment, and I have no idea in how to add the analog part, so I need help!. If you are interested please join v4l mailing lists.

Update 1 (8 Jan 08)

I managed to remove the heatsink and as I thought below is the tuner, an Xceive xc3028, so for this reason i2c was not working, I was trying to speak with the wrong person...

Update 2 (24 Jan 08)

After some contacts with developers, now focussing on adding the dvb-t stuff to the driver. Analog seems more complex, since conexant's chip must also be controlled... starting the implementation of the driver.

Update 3 (17 Feb 08) DVB-T Working!!!

Now dvb-t works. Basically xc3028 stuff has been integrated on the dibcom frontend by Hans-Frieder for the Cinergy USB XT HS driver, which is what I was trying to do. After some tests I managed to get the card working changing GPIO6 to 0 state. If you want to get your device working you need to compile v4l drivers with a patch applied. I will generate that patch soon. Just a snapshot of the device working on kaffeine with OSD;

Update 4 (8 March 08) Instructions on how to get it working

As I told in the previous update dvb-t seems to work perfectly. To get it working you have to follow this steps; v4l patch instructions

Update 5 (22 March 08) patch released for some dibcom based cards

Yesterday I just released a patch wich add some cards, including this one. I hope it will be introduced in the current v4l source, and in kernel, soon. To have a look on how to make it working have a look at the link just above.

Next step would be analog...