Linux support for Digicom Digitune-S (vp7049, UDTT7049)

Support for the Digicom Digitune-S DVB-T USB stick will land in linux 3.9, the patch I sent was accepted along with other small refactorings.

The adapter can also be found under these names:

A dump of the USB communication of the Windows driver is attached, it was captured using SniffUSB 2.0 and it can be made more readable using the parse-sniffusb2.pl tool from v4l-utils.

I used the dump also to figure out some details about the hardware: before writing any code I had to know what hardware components the adapter was using; the USB bridge (ULi M9206) and the frontend (MT352CG) could be seen clearly when opening the plastic case, but the tuner was protected by a metal shield and I couldn't easily find out what it was by reading the labels printed on the chip, so I tried to look at the USB communication to see if there were any clues, in particular these bits were useful:

40 23 c0 00 80 00 00 00 >>> 
40 23 00 00 00 00 00 00 >>> 
40 23 c1 00 80 00 00 00 >>> 
c0 23 00 00 60 00 01 00 <<< 63

I thought they had something to do with some chip identification, and in fact by following the m920x driver code you can derive that this communication means more or less: “read the register at address 0x00 of the I2C device at address 0x60”; the returned value was 0x63 and by grepping through the kernel code for that value this turned out to be the same value used in the mt2060 driver for the PART_REV constant, that was enough to understand what tuner the device was using and make the jigsaw complete.

At that point adding support for the adapter was easy as all the drivers of the single components were already in the kernel, even the remote control mapping was there: separation of responsibility and modularity are good; what a surprise, eh?

The firmware was extracted from the USB dumps too, by first using parse-sniffusb2.pl:

$ v4l-utils/contrib/parse-sniffusb2.pl usbsnoop-digicom-digitune-s-dump.log_ > parsed-Digitune-S-dump.log

and then by runing m920x_parse.pl on the pre-processed log with this command line:

$ perl v4l-utils/contrib/m920x/m920x_parse.pl -i us2 -m fw < parsed-Digitune-S-dump.log
$ mv fw dvb-usb-vp7049-0.95.fw

While testing the adapter I've found out that signal reception improves when the little antenna with the magnetic base is on top of some metal object, I put mine on top of a candy tin box and I can get a few more channels, from what I read the physical principle that makes this work is the one of the ground plane of a monopole antenna.

Note to world: if you want any hardware of yours to be working under linux, just find a way to have some kernel hackers put their hands on it; the rest will come by itself.


CommentiCondividi contenuti

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Ulteriori informazioni sulle opzioni di formattazione

CAPTCHA
Questa domanda serve a verificare che il form non venga inviato da procedure automatizzate
c
s
7
s
y
8
Enter the code without spaces.