[mythtv-users] Multiple D10s

Rich West Rich.West at wesmo.com
Wed Mar 14 18:26:45 UTC 2007

Kevin Plew wrote:
> Rich West wrote:
>> Josh wrote:
>>> Kevin Plew wrote:
>>>> Hello all- I searched the archives and didn't find anything pertaining 
>>>> to controlling multiple Directv D10-100s. I have a PVR-500 with one D10 
>>>> connected to each input and am trying to figure out how to get Myth to 
>>>> control them.
>>> I have 2 serial cables plugged into the LSDP on the back of both my 
>>> D10's using a couple of directv.pl scripts to change the channels and 
>>> it's been working great for over a year now. If you have a IR blaster 
>>> there is documentation for doing it that way also.
>> The D10 has a "Low Speed Data Port" (a good thing).  I had to figure out
>> what the heck was meant by LSDP and I have (and use) 3 set top boxes
>> with these ports.. Some times, abbreviations only serve to confuse
>> rather than to clarify.The Low Speed Data Port is really a 4-pin
>> phone-style port, just a heck of a lot smaller.  If you look, you will
>> see it has the same connector as the coil handset cord on your
>> non-cordless phone (still have one of those?).  This makes it a bit of a
>> pain to deal with, but you can get it to work. :)
>> Anyhow, you can either buy a cable to convert from the low speed data
>> port to a serial port or you can make one.
>> Check out this site: http://www.dtvcontrol.com/index.aspx?content=cable
>> You can either buy the adapter from them, or, using the pin-out listed
>> on the site, you can make your own.  I took an old headset cable, two
>> serial to RJ-45 adapters, and a short RJ-45 ethernet cable and:
>> o Cut the headset cable in half, giving me two pieces of the same
>> approx. length
>> o Cut the RJ-45 cable in half giving me two pieces of the same approx.
>> length.
>> o Cut back the outer sheathing on the RJ-45 cables at the point where I
>> cut it in half.
>> o Cut back the outer sheathing on the headset cables at the point where
>> I cut it half (this was a pain)
>> o Cut back the sheathing on the individual exposed wires on the RJ-45
>> cables and the headset cables.
>> o Plugged the RJ-45 cables in to the Serial-RJ45 adapters.
>> o Using a 9-volt battery and a cheap DC tester, I mapped out what pins
>> on the serial side of the adapter mapped to which exposed wires on the
>> cut end of the RJ45 cable.
>> o Then, following the pinout on the dtvcontrol.com site, I hand twisted
>> the appropriate wires together and electrical-taped it to hold.
>> The result wasn't real pretty and dealing with the tiny wires in the
>> headset cable can be frustrating, but it worked and only cost me my time
>> and the price of the headset cable (my wife got mad that I took the
>> headset cable from the phone by the computer. :) ).  I got the
>> serial->RJ45 adapters from work (we have a gazillion of them) as well as
>> the short (2-ft) RJ-45 cable.  I repeated the entire procedure to make
>> one more cable (so I have half of a headset cable lying around at home).
>> Whichever way you go about it, you will end up with the low speed data
>> port converted to a serial port.  With that, you can either connect it
>> directly to an available serial port on your machine, or you can connect
>> it to a USB-to-Serial port adapter.  More than likely, you don't have
>> more than one or two serial ports on your machine, and if you want to
>> drive multiple D10's, you'll need to get your hands on the USB-to-Serial
>> port adapters.
>> I bought three of these USB to Serial port adapters, for $9.99 each with
>> free shipping and they worked like a charm:
>> http://www.emtcompany.com/products/adapters/dxubdb9-usb-to-serial-db9-adapter-cable.htm
>> Now, I am not saying you can't get them elsewhere.. just that they
>> worked for me (and they were at the right price point!). :)
>> Then, I wrote a small wrapper script around the directv.pl script called
>> "change_channel":
>> -----
>> #!/bin/sh
>> if [ "X$1" = "X" ] || [ "X$2" = "X" ]; then
>>         echo "Usage: $0 <port> <channel number>"
>>         echo
>>         exit;
>> fi
>> /usr/local/bin/directv.pl port $1 setup_channel $2 hide
>> -----
>> And, finally, from within mythtv, I set up the change channel command to
>> be "/usr/local/bin/change_channel /dev/ttyUSB0" for the first one,
>> "/usr/local/bin/change_channel /dev/ttyUSB1" and so on.
>> Now, you might ask "Why not just call directv.pl directly?  Why use the
>> wrapper script?"  Good question.. and I have a good answer. :)  With my
>> set top box (I don't know if this is the case with any others), I want
>> to hide the set top box's on-screen-display when a channel is changed. 
>> If I don't, that on-screen-display hangs around for an obscenely long
>> amount of time.  "setup_channel" is supposed to take care of this, but
>> it doesn't seem to work for me.  Additionally, the script can take the
>> options out of order (eg: port /dev/ttyUSB0 hide setup_channel 29), but
>> I couldn't get it to hide the on-screen-display no matter how I
>> organized the options.  The only one that worked is the one in the
>> wrapper script.
>> Now, because mythtv wants to append the channel number at the end of the
>> channel change command, the wrapper script was needed.. :)
>> I hope this helps.
>> -Rich
>> _______________________________________________
>> mythtv-users mailing list
>> mythtv-users at mythtv.org
>> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users
> Rich- I can't wait to start cutting. I agree that this should be posted. 
> Lots of good work here.

I guess I was just being cheap about the whole thing, which is what
drove me to do it myself.  I figured that it could do it with the pieces
that I had laying around, thus saving a little $$ which I could turn
around and invest in more drives. :)

I updated the wiki entry titled "Controlling DirecTV STB via USB" to
include the information above, and I renamed the entry to "Controlling
DirecTV Set Top Box via USB or Serial".


More information about the mythtv-users mailing list