MythTV & Satellite TV

I recently purchased an ExtremeView xv3300 from EFTA.us. I highly recommend their service: Shipping was fast and prices were great. To link it in with my current mythtv system, I needed to build/buy an irblaster, and hook it up to lirc to blink the codes to the set top box. Then I needed to configure my capture card to record channels 2-70 from local cable tv, and 80+ from the s-video input and the satellite set top box.

Step 1: Record the remote codes from the Extremeview. This proved to be the most difficult step, since I don’t normally use a remote with my myth machines. Configuring LIRC to use any of my hardware was a royal pain. Finally the codes have been recorded, and are available here

# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.2(default) on Sun Aug 26 16:14:43 2007
#
# contributed by Allen Chemist
#
# brand: ExtremeView xv3300 Satellite Receiver
# model no. of remote control: One with four coloured buttons below the up,down,left,right,ok area.
# devices being controlled by this remote: Satellite STB
#

begin remote

name extreme2
bits 16
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100

header 8967 4466
one 512 1726
zero 512 593
ptrail 512
repeat 8969 2226
pre_data_bits 16
pre_data 0x807F
gap 107644
toggle_bit_mask 0x0

begin codes
MUTE 0xEA15
POWER 0xFA05
TV_RADIO 0xF807
CC 0x10EF
SAT_LIST 0xE817
TV_SAT 0xDA25
FAV 0x9867
CH_LIST 0x6897
MENU 0x38C7
GUIDE 0x58A7
INFO 0x28D7
EXIT 0x52AD
CH_UP 0x18E7
VOL_DN 0x827D
OK 0xA25D
VOL_UP 0x926D
CH_DN 0x629D
PAUSE 0x906F
ZOOM 0xB04F
AUDIO 0x00FF
SLEEP 0x30CF
1 0x6A95
2 0x5AA5
3 0x7A85
4 0xAA55
5 0x9A65
6 0xBA45
7 0x2AD5
8 0x1AE5
9 0x3AC5
0 0xD827
FIND 0xB847
TIMER 0x40BF
MOSAIC 0xA857
RECALL 0x42BD
CH_3_4 0x807F
SIGNAL 0x7887
end codes
end remote

Once this was recorded, I setup lirc to use lirc_serial and the irblaster (Yes this would have been easy to build, but given my history with LIRC I wanted something I knew would work). I put the above file in /etc/lirc/lircd.conf. You can test by issuing the command
irsend SEND_ONCE extreme2 POWER
which should cycle the power on the set top box.

Step 2 was to setup the channel changer shell script, so mythtv could say “Change to channel 321”, then the script splits the 321 into 3-2-1 and blinks the codes out. The script is below:

#!/bin/sh
REMOTE_NAME=extreme2
for digit in $(echo $1 | sed -e ‘s/./& /g’); do
/usr/bin/irsend SEND_ONCE $REMOTE_NAME $digit
sleep 0.6 # note, you may have to tweak this if it misses digits
done

/usr/bin/irsend SEND_ONCE $REMOTE_NAME OK
/usr/bin/irsend SEND_ONCE $REMOTE_NAME EXIT

The above script was copied from the internet, but I can’t locate the original author. I also added an “OK” and “Exit” to the end of the script, to force it to change channels faster, and get rid of the OSD so you don’t see it at the beginning of the recording.

I put this in /usr/bin/change_channel.sh.

Step 3: update my lineups at schedulesdirect. This will take a long time, since I don’t get all dish network channels, and picking and choosing what I receive from the 100s of channels dish offers.

Step 4: Configure mythtv to switch inputs. This was done inside mythtv-setup. Since I will be using my Hauppauge 350 capture card, this was already setup and recording cable tv. I plugged the satellite into the s-video input, then added the Satellite into ‘Video Sources’ screen using DataDirect. Under Input Connections, I linked S-Video with the Satellite defined in the Video Sources. On this screen I also specified the change_channel.sh script from above, as the external channel change command. Since I am using s-video, I don’t have to define a “Preset Tuner to Channel”, this is used if you needed to watch satellite on “channel 3”, using the TV Tuner input. During heavy rain, because I am so far north and have such a small dish, the satellite loses signal. I set the “Input Priority” on this screen to a negative number, then if there is a conflict between something on cable and something on satellite, Myth will choose cable (since it is more reliable).

From here everything worked nicely. Occasionally it tunes to the wrong channel (i.e. misses a digit from the IR blaster), but this is rare. A bit of tweaking on either the delay between digits or the position of the IR LED should fix this problem.