The Personal Blog of Stephen Sekula

Lessons Learned: MythTV and the Comcast/Motorola DCT700

Now that digital cable seems well under the control of sTeVo, my MythTV box [1], I thought it would be helpful to post some of my lessons learned in this process.

Lesson 1: MythTV is robust and flexible. The dedicated team of MythTV developers have made an adaptable product. The fact that the software was ready to go, letting the tuner change the channel or an external IR emitter control the cable box, is a testament to the foresight of the team. Modifying MythTV to use the new emitter was as easy as following a short web page, and was the least of my problems [2].

Lesson 2: Digital cable signals are not robust. The fact that something in the cable wiring of our rented cottage causes attenuation or corruption of digital cable signals suggests that the new digital cable system is teetering on the verge of success. It makes me wonder what I’m spending $70 on every month. Yes, I now have 4-5 public TV stations on which I can get a later showing of the Lehrer News Hour. But who cares, when I have to go through undergrad-quality lab techniques to get the signal stabilized? I’d rather have fewer channels and a system robust against small problems (e.g. the analog system) than a big buffet of grade Z digital comestibles.

Lesson 3: Changing the channel is a tricky business. First, to control the DCT700 you need an LIRC remote transmitter definition file. I found one that solves the infamous “zero” problem, where sending “0” doesn’t work (making it hard to get to channel 10, for instance!) [3]. I found a very nice script containing the raw key codes for the remote, with extra code characters that FIX the “0” problem [4]. I also added the “exit” raw code to this file, which is given by:

name exit
9000    4400     550    2200     550    4400
550    2200     550    2200     550    4400
550    2200     550    2150     550    2200
550    2200     550    2150     550    2200
550    2200     550    4400     550    2200
550    4400     550    4450     550

This is really a necessary code, because often when the signal doesn’t get transmitted cleanly to the DCT700 it leaves menus on the digital cable screen that make changing the channel a second time impossible. This prevents all future channel change commands from working. You need to be able to tell the box to exit this state.

The other part of this lesson is the delicate timing, and repetition of commands, needed to make a successful, guaranteed channel change. The DCT is SLOOOOW, and inaccurate. I found that I had to write my own channel change script, enforcing the following sequence of commands: “Change to channel XYZ, sleep for 1 second, send the exit code, sleep for 0.3 seconds, change the channel to XYZ one more time, sleep for 1 second, send the exit command, sleep for 0.3 seconds, send the exit command again.” This sequence helps to guarantee the channel change, and the removal of menus from the screen during recording. This is ESPECIALLY necessary if your IR transmitter isn’t quite placed over the “sweet spot” of the DCT700 receiver.

I hope this help anyone else making the switch. For giggles, I uploaded the channel change script; you’re welcome to it [5].





[5] changechannel script