08/19/08: This code is known to work with Motorola DCH-3200 set top boxes as well. See updates below.
DOWNLOAD: dowload the source code here.
The dct6200wrapper external tuner plugin is a dead simple wrapper of a C command line tool, 6200ch.c, written by Stacey D. Son, available in the MythTV source distribution that will change channels via a firewire cable connection on the Motorola DCT62XX family of set top boxes. To get it running, you need to buy a firewire cable that will connect the dct6200 cable box to your freevo box. Buy a cable that allows you to use either the large plug size or small plug size on both ends to ensure that the cable is compatible with both your cable box and freevo box.
Without the work of Stacey D. Son, this plug in would be useless, so a big tip of the hat to Stacey for the great work.
To get this working in Freevo, here are some instructions.
$ plugreport
Host Adapter 0
==============
Node 0 GUID 0x0011d8000161acb7
------------------------------
libiec61883 error: error reading oMPR
libiec61883 error: error reading iMPR
Node 1 GUID 0x0019a6fffef3b548
------------------------------
oMPR n_plugs=1, data_rate=2, bcast_channel=63
oPCR[0] online=1, bcast_connection=0, n_p2p_connections=0
channel=0, data_rate=2, overhead_id=0, payload=376
iMPR n_plugs=0, data_rate=2
If you don't see this information, the firewire port on your cable
box may not be on -- you will have to try to get your cable company
to turn it on for you -- good luck :(
#define DCH3200_VENDOR_ID1 0x00001fc4
#define DCH3200_MODEL_ID1 0x0000d330
And then change the source to use the new constants. Contact
me if you need help.
gcc -o 6200ch 6200ch.c -lrom1394 -lavc1394 -lraw1394
$ ./6200ch -v 39
starting with node: 1
node 1: vendor_id = 0x000019a6 model_id = 0x0000620a
AV/C Command: 039 = Op1=0x00487C20 Op2=0x00487C23 Op3=0x00487C29
Depending on the results of plugreport, you may have to add
the -n NODE_NUMBER and/or -p PORT_NUMBER switches to get this
working:
$ ./6200ch -v -p 0 -n 1 5
starting with node: 1
node 1: vendor_id = 0x000019a6 model_id = 0x0000620a
AV/C Command: 005 = Op1=0x00487C20 Op2=0x00487C20 Op3=0x00487C25
DCT6200_COMMAND=/path/where/you/installed/6200ch
DCT6200_ARGS="-p 0 -n 1" (if you need to override the port and/or node
number that is compiled into the 6200ch program)
plugin_external_tuner = plugin.activate('tv.dct6200wrapper')
In addition, you will need to set VIDEO_GROUPS to use the external tuner
by changing the tuner_type to 'external', as in this example:
VIDEO_GROUPS = [
VideoGroup(vdev=TV_DEVICE,
adev=AUDIO_DEVICE,
input_type='tuner',
tuner_type='external',
input_num=4,
tuner_norm=CONF.tv,
tuner_chan=3,
tuner_chanlist=CONF.chanlist,
desc='IVTV Video Group',
group_type='ivtv',
recordable=True),
]