Comcast recently shipped me 3 Digital converter boxes to support the upcoming switch to an all Digital Signal.
Unfortunately the digital signal requires using the new digital converter boxes to change channels. This is a huge inconvenience to anyone using a 3rd party DVR as well as for anyone who recently purchased a new digital TV which features like PIP as these features are likely not to work with the new converter boxes.
Luckily for those of us running MythTV, we just need to make some minor changes to get our Home-Brew DVR work with the new converter Boxes.
This How-To only covers the changes needed to get your MythTV box working with the new PACE DTA converter box. This tutorial assumes you have an existing working MythTV installation and does not cover initial setup and configuration of Myth.
My Setup Looks like this:
- OS: Ubuntu Hardy 8.04
- TV Capture Device: WinTV-PVR external USB
- Remote: WinTV-PVR (Microsoft Media Center USB Phillips)
- Cable DTA: PACEDTA

Your setup may differ, but hopefully this tutorial will work for you as well.
The only thing the new digital converter box breaks is the ability for Myth to change to the appropriate channel. The PACEDTA requires that my tuner stay on channel 3 or 4 and that I change channels using the remote provided with the PACEDTA. So basically we just need to configure Myth to send the same signal to the PACEDTA that the included remote would send when we change the channel. So the first thing we need to do is an external IR transmitter working via Lirc.
I assume you already have an external remote setup to control your MythTV box and that you have Lirc already installed.
If you do not, see this tutorial https://help.ubuntu.com/community/InstallLirc/Hardy
1. Install the Remote IR Transmitter
Your encoder card most likely came with an external Infrared Transmitter. Check your box, they can be very tiny.
1.1 Plug your external IR Transmitter into your encoder card. On my WinTV-PVR this is actually located on the back of the IR Transmitter.
1.2 Restart Lirc
sudo /etc/init.d/lircd restart
2. Configure and test the Remote IR Transmitter
2.1 Configure Lirc to talk to the remote transmitter
sudo dpkg-reconfigure lirc
Select your remote control for the first option, and then select your transmitter as the second option. For my configuration I select the following:
- Windows Media Center Remotes (new version Philips et al.) for the Remote and
- Microsoft Windows Media Center V2 (usb) : Motorola Cable box for the transmitter
Note: If you are not asked to select an IR Transmitter you may need to reboot.
Also Note: the second portion of the IR Transmitter selection is not important, we will fix that in a minute. For now it is just important that we get the proper device.
2.2 Test the IR Transmitter
In order to test your transmitter we need to take a peek at /etc/lirc.conf and then peek at the conf for the transmitter.
cat /etc/lirc/lircd.conf
Form me the part that references the transmitter is an include
#Configuration for the Microsoft Windows Media Center V2 (usb) : Motorola Cable box transmitter:
include /usr/share/lirc/transmitters/motorola/dctxxxx.conf
So I need to cat this file to get the device name for the transmitter
cat /usr/share/lirc/transmitters/motorola/dctxxxx.conf
#
# this config file was automatically generated
# using lirc-0.6.6(serial) on Fri Mar 28 22:46:44 2003
#
# contributed by shane bradley
#
#
#
# brand: Motorola
# model no. of remote control: DCT2000
# devices being controlled by this remote:
#
begin remote
name DCT2000
bits 16
flags SPACE_ENC|CONST_LENGTH
Note the name which in this case is DCT2000. With this information we can manually tell Lirc to send an infared signal to test that the transmitter is working.
type:
irsend SEND_ONCE DCT2000 1
Where DCT2000 is the name of your device. You should see a red light flash on your transmitter. If you do not see a light flash, maybe your transmitter doesn't have a light. Another way to test for a signal is to film the transmitter with a video camera. You will see a glow when the transmitter sends an ir signal.
OK, so you have Lirc talking to your transmitter - Sweet.
3. Create a config file for the PACEDTA
Since the config file we chose when setting up the transmitter was for a motorola cable box, the PACEDTA box will not understand the signals we are currently generating.
3.1 save the following to /usr/share/lirc/transmitters/pace/pace.conf or dowload it here pace.conf_and_change-channel-lirc.pl.zip
# contributed by Mike Silliman
#
# brand: Pace
# supported devices: Pace DC50X (Comcast Digital Transport Adapter)
#
# Protocol: XMP-R
# Device: 62.16
begin remote
name DC50X
flags RAW_CODES
eps 30
aeps 100
gap 80412
begin raw_codes
name 1
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 2656 210 763
210 763 210 763 210 894
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1578 210 1841
210 763 210 763 210 894
210 763 210 763 210
name 2
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 2524 210 763
210 763 210 763 210 1026
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1446 210 1841
210 763 210 763 210 1026
210 763 210 763 210
name 3
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 2393 210 763
210 763 210 763 210 1157
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1315 210 1841
210 763 210 763 210 1157
210 763 210 763 210
name 4
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 2261 210 763
210 763 210 763 210 1315
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1157 210 1841
210 763 210 763 210 1315
210 763 210 763 210
name 5
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 2130 210 763
210 763 210 763 210 1446
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1026 210 1841
210 763 210 763 210 1446
210 763 210 763 210
name 6
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1972 210 763
210 763 210 763 210 1578
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 894 210 1841
210 763 210 763 210 1578
210 763 210 763 210
name 7
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1841 210 763
210 763 210 763 210 1709
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 763 210 1841
210 763 210 763 210 1709
210 763 210 763 210
name 8
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1709 210 763
210 763 210 763 210 1841
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 2787 210 1841
210 763 210 763 210 1841
210 763 210 763 210
name 9
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1578 210 763
210 763 210 763 210 1972
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 2656 210 1841
210 763 210 763 210 1972
210 763 210 763 210
name 0
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 2787 210 763
210 763 210 763 210 763
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1709 210 1841
210 763 210 763 210 763
210 763 210 763 210
name Enter
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 1841 210 763
210 763 210 1026 210 1446
210 763 210 763 210 80413
210 894 210 1709 210 763
210 2787 210 1315 210 1315
210 1157 210 2656 210 13805
210 894 210 763 210 1841
210 763 210 1026 210 1446
210 763 210 763 210
end raw_codes
end remote
Note: the device name in this config is DC50X. We will use this device name later on. If you change it you will also need to change it in the change-channel-lirc.pl perl script below.
3.2 Update /etc/lirc/lircd.conf to include this file instead of the previous one.
sudo nano /etc/lirc/lircd.conf
change
include /usr/share/lirc/transmitters/motorola/dctxxxx.conf
to read
include /usr/share/lirc/transmitters/pace/pace.conf
3.3 Plugin the external IR Reciever to the PACEDTA
Your PACE DTA from comcast should have included an external IR Receiver. According to other Tivo how-to's this is required for the PACEDTA to receive external IR signals.
This doesn't make a whole lot of sense, but I did not test without it. Also, to avoid interference from other remotes it is a good idea to just tape your external IR Transmitter from your capture card to your PACE external IR Receiver. Tape them together so that the transmitter/receiver parts are facing each other. Then you can put them wherever like behind your desk or entertainment center.
4. Now we need to create a simple perl script so Myth can change channels
4.1 copy and paste the following to /usr/local/bin/change-channel-lirc.pl or dowload it here pace.conf_and_change-channel-lirc.pl.zip
#!/usr/bin/perl
# Created by regx
# Simple perl script to change channels for Myth
# make sure to set this string to
# the corresponding remote in /etc/lircd.conf
$remote_name = 'DC50X';
$channel=$ARGV[0];
@channel = split(//,$channel);
foreach(@channel){
#print $_ . "\n";
`irsend SEND_ONCE $remote_name $_`;
}
sleep 1;
`irsend SEND_ONCE $remote_name ENTER`;
4.2 make the script executable
sudo chmod +x /usr/local/bin/change-channel-lirc.pl
5. Last step - Configure MythTV
Now just configure MythTV to use the Perl script to change channels and preset the tuner to the channel your tuner needs to be on for the cable box to work. The default is channel 3.
5.1 Open MythTV Backend Setup
mythtv-setup
Select Input Connections and enter change-channel-lirc.pl for the External channel change command. Enter 3 for Preset tuner to channel.
Here is a screen shot of my configuration.
If you run into problems, you can start MythTV at this point and test. I can open other windows on top of MythTV because I am running compiz, but you might have to configure MythTV so that it runs in window mode. With MythTV running you can run the Perl script and pass a channel as an argument.
change-channel-lirc.pl 13
You should see the cable box on screen display show that it is changing the channel.
Enjoy!
| Attachment | Size |
|---|---|
| pace.conf_and_change-channel-lirc.pl.zip | 1.01 KB |





Title
Hi
Title
Hi
Could you post the codes for
Could you post the codes for channel up (+) and channel down (-)?
I got everything else working!
Pace DC50X and Motorola DTA100 Lirc Configs
lirc configs for both the Motorola DTA100 and the Pace DC50X here:
http://lirc.sourceforge.net/remotes/motorola/DTA100
and a copy here:
http://lirc.sourceforge.net/remotes/pace/DTA100
Misc Thoughts About The DC50X
I have two different IR blasters running the DC50X under Myth. One using the MCE transmitter and one using the Iguana transmitter. I use the lircd config file shown on this page with the MCE transmitter because it works with the system-default version of LIRC that comes pre-installed on Mythbuntu 9.04. Since the Iguana transmitter required that I build LIRC anyway, I built 0.8.6 and thought I would try the config file at: http://mythtv.org/pipermail/mythtv-users/2010-January/278281.html (which uses XMP, which only works under 0.8.6 and greater). That works too.
I'd test everything at each step of the way. Mostly, this is a house of cards and the slightest mistake causes it to break with nary a peep as to what went wrong. Testing each step will give you a clue. The last step should be to verify that the channel changer script fires the IR blasters. With the MCE blaster you can see it with the naked eye. For the Iguana blaster, I used the trick of observing it through a digital camera viewfinder. Once that works, you can tape the blaster and the DTA's remote receiver into a homemade optocoupler with some black tape. A tube roughly the size of the receiver and about 3/4" long with something stuffed in the other end to hold the IR blaster works great.
Here's my shell script for sending channel changes to the IR transmitter. Uses the config info in hardware.conf and will work with any transmitter (1-4). Also, I like to use names for my remote buttons so it translates (1 -> One, 2 -> Two, etc.):
#! /bin/sh
# Shell script used to send channel change commands to a set top box (STB)
# or digital transport adapter (DTA) via LIRC.
#
# This script is commonly used by applications such as Myth TV to change
# the channels on a STB/DTA when the STB/DTA must be used to convert the
# channels that a subscriber can see to a single channel (e.g. when
# digital channels are to be viewed by the application on channel 3 with
# an analog decoder card).
#
# The application invokes this script and passes the channel number to it
# as the first parameter. This script deconstructs the channel number and
# decides what command sequence the STB/DTA's remote would have to send in
# order to change to that channel (typically its the channel number,
# followed by the Enter button). It sends the channel change commands to
# the STB/DTA through the IR blaster that was started by lircd. The
# information necessary to do this is obtained from the lircd config file
# /etc/lirc/hardware.conf.
#
# If you need to send commands to a different IR emitter than number 1,
# you can alias this script and use the aliases to send to any emitter
# from 1 thru 4. You must set up the aliases as follows:
#
# ln -s IRChangeChannel IR1ChangeChannel
# ln -s IRChangeChannel IR2ChangeChannel
# ln -s IRChangeChannel IR3ChangeChannel
# ln -s IRChangeChannel IR4ChangeChannel
#
# You can then send commands to the alternate emitters as follows:
#
# /path/to/scripts/IR1ChangeChannel 12
# /path/to/scripts/IR2ChangeChannel 22
# .
# .
# .
#
# Because of the nature of the way that the program name is determined,
# you must use some kind of path prefix on the name (i.e. at the very
# least, use "./IR3ChangeChannel 44").
#
# Note that, unless you are using stereo emitters on the IguanaIR, the two
# emitters on the stick are IR1 and IR3 (two and four are *not* used).
##########################################################################
# Where we load irsend from (depends whether this is a system install or a
# local build).
#ew LOAD_PATH=/usr/bin
LOAD_PATH=/usr/local/bin
test -f ${LOAD_PATH}/irsend || exit 0
# The user can symlink to this program to use an emitter other than 1. We
# figure this out from our invoking program name.
Emitter=0
ProgName=`echo $0 | sed -r s:.+/\([^/]+\)$:\\\1:`
if [ ! -n "$ProgName" ] || [ "$ProgName" = "IRChangeChannel" ]; then
Emitter=1
else
case "$ProgName" in
IR1ChangeChannel)
Emitter=1
;;
IR2ChangeChannel)
Emitter=2
;;
IR3ChangeChannel)
Emitter=3
;;
IR4ChangeChannel)
Emitter=4
;;
*)
Emitter=1
esac
fi
# Let's get the config file that was used to start lircd with. It will
# tell us what remote we're using (hopefully).
if [ -f /etc/lirc/hardware.conf ]; then
. /etc/lirc/hardware.conf
fi
# We need a remote name.
if [ -z "$TRANSMITTER" ] || [ "$TRANSMITTER" = "none" ]; then
exit 0
fi
# If there's a transmitter device or driver defined, the lirc init script
# started a second copy of lircd.
if [ ! -z "$TRANSMITTER_DEVICE" ] \
|| [ ! -z "$TRANSMITTER_DRIVER" ]; then
DevArgs="--device=/dev/lircd1"
else
DevArgs="--device=/dev/lircd"
fi
# Select the appropriate IR emitter on the device.
${LOAD_PATH}/irsend $DevArgs set_transmitters $Emitter
# Send the channel number.
for Digit in $(echo $1 | sed -e 's/./& /g'); do
case "$Digit" in
1)
Key="One"
;;
2)
Key="Two"
;;
3)
Key="Three"
;;
4)
Key="Four"
;;
5)
Key="Five"
;;
6)
Key="Six"
;;
7)
Key="Seven"
;;
8)
Key="Eight"
;;
9)
Key="Nine"
;;
*)
Key="Zero"
esac
${LOAD_PATH}/irsend $DevArgs send_once $TRANSMITTER $Key
sleep 0.5
done
# Send the enter key.
${LOAD_PATH}/irsend --device=/dev/lircd SEND_ONCE $TRANSMITTER Enter
RE: Misc Thoughts About The DC50X
Will the conf file at http://mythtv.org/pipermail/mythtv-users/2010-January/278281.html work with this shell script? I am really a novice, but it seems like the naming of the keys is different?? With the conf file, I can use sudo irsend SEND_ONCE MotorolaDTA100-PaceDC50X KEY_CHANNELUP and it will change channels. If I try to do it through MythTV with this shell script or use IR1ChangeChannel 12, etc, I get no channel change and no message back at the prompt. Do I have a disconnect here?
RE: Misc Thoughts About The DC50X
Will the conf file at http://mythtv.org/pipermail/mythtv-users/2010-January/278281.html work with this shell script? I am really a novice, but it seems like the naming of the keys is different?? With the conf file, I can use sudo irsend SEND_ONCE MotorolaDTA100-PaceDC50X KEY_CHANNELUP and it will change channels. If I try to do it through MythTV with this shell script or use IR1ChangeChannel 12, etc, I get no channel change and no message back at the prompt. Do I have a disconnect here?
RE: Misc Thoughts About The DC50X
Will the conf file at http://mythtv.org/pipermail/mythtv-users/2010-January/278281.html work with this shell script? I am really a novice, but it seems like the naming of the keys is different?? With the conf file, I can use sudo irsend SEND_ONCE MotorolaDTA100-PaceDC50X KEY_CHANNELUP and it will change channels. If I try to do it through MythTV with this shell script or use IR1ChangeChannel 12, etc, I get no channel change and no message back at the prompt. Do I have a disconnect here?
New Pace DC50X lirc Config
A new lirc config has been posted here that works with the Pace DC50X:
http://mythtv.org/pipermail/mythtv-users/2010-January/278281.html
Note that it uses the XMP protocol and requires lirc 0.8.6 or later.
serial IR Blaster
Thanks a bunch for the post. Very helpful.
I assume the steps are different if I want to use a serial blaster like found here: http://www.irblaster.info/
What I will be doing is connecting the coax-out from the Pace to the coax-in of my Hauppauge PVR-250 analog tuner (fixed to channel 3 or 4 in this case). I will not be using any of the IR features of the PVR-250. In fact, my PVR-250 only has an IR receiver, not an emitter. I use the PVR-250 receiver as a means for controlling myth menus from my universal remote.
Anyway, in my case, would I just need to update my /etc/lirc.conf with the Pace entry? And then I know I need to install lirc_serial in addition to the lirc_i2c I am using now. And then I would have 2 lirc devices in use. Then, I would pair up the serial IR emitter with the Pace receiver. And, I hope, see results.
Thoughts?
Larry
That should work. Let me
That should work. Let me know how it turns out.
Thanks
the change channel script works great with the config file. I just got my DTA two weeks ago and finished testing a homebrew serial transmitter this week. Your post made the final config easy. My non-standard serial port config made talking to lirc a bit of a headache.
Not working for me
I spent most of last night trying to get this to work.
I am using the MCE usb remote that I got with my tuner card to do the transmitting. The transmitter/blaster works great to control my cable box (motorola), however, I am having lots of issues getting this .conf to work. I have plugged the DTA directly into my TV for testing before trying to get it to work with MythTV.
I am seeing very strange results, like when I type "change-channel-lirc.pl 30", I see 3 come up, then get canceled, then 0 pops up. When I type a single "9", it generates between 0 and 3 "8"s. Most of the numbers seem to generate between 0 and 3-5 repeats, not always even of the correct number. I initially thought that it was a transmitter issue, and tried a number of things. I tried taping the blaster to the box and moving it around. I tried using the extender that came with the DTA, I even popped the extender out of the plastic shell and taped the blaster directly to it. Same results, although I got very poor transmission of codes at times.
Any ideas as to what I can do to troubleshoot this? When I issue `irsend LIST DC50X ""`, the output looks suspicious:
IRSEND: 000000001 1
whereas the other remotes I have all have the response as a longer hexadecimal code.
Thanks,
Jim
RF Code changes?
It is possible that the rf codes on newer boxes have changed. What is the model number for your unit.If your unit is the same as mine, I can guarantee the above works. You are right about the RF codes. The rf codes for my box are huge muli-line blocks where as all my other devices use a single line hexidecimal string.
Pace DC50X part number
Here is the part number for my DTA. Both units I have are the same part number and behave the same to the configuration file.
Part # B3748416000
Thanks,
Jim
Re part number
I could not find any lirc IR codes for your part number. Is there a model number that is less specific.
It does look like there are multiple versions with different ir codes, so I imagine this is the problem.
Finding the original codes for this post was difficult because I couldn't get them directly from the device with ir record.
RF Code Changes?
Hi,
I will check the model number and send it this evening when I get home.
I also have a second DC50X that I will attempt to swap in to see if it behaves the same or different.
I have tried messing with some of the parameters in the config like eps, aeps, and repeats, but no silver bullet. It is strange that almost all the information I have found indicates success, but mine is being such a pain.
I am getting more and more disenchanted with Comcast over this. I am well aware that my configuration is not supported, but they truly seem to go out of their way to make things difficult.
Thanks,
Jim
Lifesaver
It works great! Thanks! I had a hard time finding the right codes elsewhere!
Thank you very much for
Thank you very much for this! Very helpful!!
Post new comment