Linux support for Digicom Digitune-S (vp7049, UDTT7049)
The adapter can also be found under these names:
- Twinhan/Azurewave DTV-DVB UDTT7049
- Think Xtra Hollywood DVB-T USB2.0
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?
$ 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.