Mythtv on Burlington Telecom
Burlington Telecom (BT) is a local cable TV provider and ISP based in Burlington, Vermont USA. They offer fiber to your home, and cable television is delivered over CAT5 ethernet, into an IPTV cable box. Despite the fact that Burlington Telecom is a smaller, local provider which uses less popular equipment -- it is possible to have a MythTV setup using their equipment.
Contents
Scope
This HOW-TO document covers how to setup MythTV for use with Burlington Telecom high-definition television through using the following software and hardware:
- Fedora Linux Distribution
- Hauppauge HD-PVR
- MCE Remote
- ADB-3800W Set top box (STB), provided by BT
This document DOES NOT cover how to setup MythTV as an IPTV receiver with the CAT5 provided by BT. However, it has been documented in the MythTV mailing lists that this was accomplished in late 2006. However at this time it is un-tested and there may be some DRM-like encryption. If one is able to accomplish this (or fails at it), please update this wiki article with your findings.
Nor does this cover the Amino standard definition STB, however it may be possible by altering some of the directions. If you are able to accomplish this, please update this wiki article.
This article also stops at the point where the linux box outputs from it's video card to your television. However the MythTV wiki offers a great deal of insight into this. Also if you follow the Fedora based instructions in this guide -- the article about Installing MythTV on Fedora offers a great deal of information on how to setup a nVidia graphics card under Fedora.
Additionally, outside of Burlington Telecom, this HOW-TO may be useful for others using a ADB-3800W STB.
General Hardware Connections
In this setup, we will use component output from the STB to to the HD-PVR. The connection will be as follows:
- CAT5 delivered from BT into home, into ethernet switch provided by BT.
- CAT5 cable from ethernet switch into ADB-3800W set-top box.
- Component cable output from ADB-3800W input into Hauppauge HD-PVR
- Hauppauge HD-PVR USB output into linux box USB.
- Output from linux box via video card into your TV.
Software Configuration
In order to get started, it is recommend that you follow that guides that are available regarding Installing MythTV on Fedora and also the setup portions in the article on the Hauppauge HD-PVR
Note: As of June 2011 the HD-PVR does NOT have the correct codes for controlling the ADB-3800W STB. Also the HD-PVR at this time does not have the correct driver support with lirc_zilog to learn IR codes. In order to control the ADB-3800W STB one must use a MCE Remote kit (with an IR blaster) in order to send IR codes to the STB
IR Transmission to ADB-3800W
Follow the instructions to install the MCEUSB remote with lirc, again very fine instruction is given from the MCE Remote article. Once you confirm that your device is recognized with your system with:
lsusb
and that the proper driver modules are installed with:
lsmod | grep mceusb
You can move along towards setting up your lirc configuration to blast the codes to STB provided by BT. Firstly configure the actual MCE Remote, using an lircd.conf downloaded from [1]. After that is installed, you will need to add a section to your lircd.conf (in /etc/lirc/).
This set of raw codes has been shown to control the numbers 0-9 on the STB. At this time the OK & Enter buttons for the STB have not been successfully captured, but inputting just a string of numbers that match a valid number on the STB will cause the STB to successfully change channels.
# this config file was automatically generated # using lirc-0.9.0(default) on Wed Jun 29 18:09:51 2011 # # contributed by: Doug Smith # # brand: N/A # model no. of remote control: # (n/a, the remote provided with the STB is a universal remote # which is programmed by the cable provider) # devices being controlled by this remote: ADB-3800W (which is an IPTV set-top box) # begin remote name blaster flags RAW_CODES eps 30 aeps 100 gap 81191 begin raw_codes name KEY_0 1000 900 600 1300 350 600 350 900 350 900 350 850 400 850 350 900 300 900 350 1200 400 1500 350 300 350 550 350 900 350 1850 350 900 300 6350 950 950 600 1250 350 600 350 900 350 850 400 850 350 900 350 900 350 900 300 1200 350 1500 350 250 350 600 350 900 350 1850 350 900 350 name KEY_1 1000 900 650 1250 350 600 350 900 350 900 350 900 350 900 300 950 250 1200 350 900 350 1250 350 600 300 550 300 950 300 1800 400 900 300 6350 1000 900 550 1200 350 600 350 900 350 900 300 950 300 900 350 900 350 1200 300 950 300 1250 350 600 350 600 350 900 350 1850 350 900 350 name KEY_2 1000 900 600 1300 350 600 350 900 350 900 350 900 350 900 300 950 250 1200 350 1200 300 950 300 600 300 550 300 950 300 900 350 900 300 6350 1000 900 600 1250 350 600 350 900 350 900 350 900 300 950 300 900 350 1200 300 1250 300 900 350 600 350 600 300 900 350 900 350 900 350 name KEY_3 1000 900 650 1250 350 600 300 900 350 900 350 900 350 900 300 950 250 1200 350 1550 350 600 300 600 300 550 300 950 300 900 350 1200 300 6350 1000 900 600 1250 350 600 350 900 350 900 350 900 350 900 300 950 300 1200 300 1550 350 600 350 600 300 550 300 950 300 900 350 1200 350 name KEY_4 950 950 600 1250 350 600 350 900 350 900 350 850 350 900 350 900 300 900 350 1200 400 1500 600 950 350 900 350 1850 350 600 350 name KEY_5 1000 900 600 1250 350 600 350 900 350 900 350 850 400 850 350 900 300 900 350 1550 350 1200 600 950 350 900 350 1850 300 900 350 name KEY_6 1000 900 650 1250 350 600 350 900 350 900 350 900 350 900 300 950 250 900 350 1850 350 900 650 900 300 950 300 950 350 900 350 name KEY_7 1000 900 650 1250 350 600 350 900 350 900 350 900 350 900 300 950 250 1200 350 600 350 1850 650 900 300 950 300 900 350 1200 350 name KEY_8 1000 900 650 1250 350 600 350 900 350 900 350 900 350 900 300 950 250 1200 350 900 350 1550 650 900 300 950 300 900 350 1500 300 name KEY_9 1000 900 650 1250 350 600 350 900 350 900 350 900 350 900 300 950 250 1200 350 1200 300 1250 650 900 350 900 300 950 300 1850 300 name KEY_CHANNELUP 1000 900 650 1250 350 600 300 900 350 900 350 900 350 900 300 950 250 900 350 1850 350 600 300 600 300 600 300 950 300 1850 300 250 300 6350 1000 900 600 1250 350 600 300 900 350 900 350 900 350 900 350 900 300 950 250 1850 300 600 300 550 300 600 300 950 300 1850 300 250 350 name KEY_CHANNELDOWN 1000 900 650 1250 350 600 300 900 350 900 350 900 350 900 300 950 250 1250 350 1550 350 900 350 600 350 250 300 950 300 1200 350 1250 250 6350 950 900 550 1300 300 600 300 900 350 900 350 900 350 900 350 900 300 1250 300 1550 300 900 350 600 350 250 300 950 300 1250 350 1200 300 end raw_codes end remote
NB: You must restart your lirc service to have these changes take effect. In fedora:
service lirc restart
You may then test that the IR blaster is transmitting these codes by once issuing:
irsend SEND_ONCE blaster KEY_3
And seeing that you have changed the channel to channel 3.
SchedulesDirect.org
Burlington Telecom schedules are in fact listed by [2], simply create an account and while logged in choose to "Add a new lineup" and select 05401 for your zip code. There should be a listing for "Burlington Telecom Digital".
You will then need to run:
mythfilldatabase
(This will take a long time to run)
External Channel Change Script
While running mythtv-setup, you must specify an "external channel change script" which is in your input sources. A script shown to work with how schedulesdirect.org has populated the mythconverg schedules database (using the default settings while running mythfilldatabase) follows.
Create this script as /usr/local/bin/channel.pl & set the "external channel change script" in mythtv-setup to /usr/local/bin/channel.pl
#!/usr/bin/perl # ---- Channel changing script for MythTV for use with Burlington Telecom (and may well work with other providers) # ---- Author: Doug Smith (6/29/2011) # $logfile = "/home/your_user/channel.out"; # uncomment this line and the bottom three lines to enable logging. # Initialize variables $output = ""; $idx = -1; $channel = 0; # Cycle through each command line argument. foreach $a(@ARGV) { $idx++; if ($idx == 0) { # it's the channel, which sits as the first command line argument; grab it $channel = $a; } # $output .= $idx.": ".$a."\n"; # uncomment if debugging. } if ($channel != 0) { # Cycle each number passed by command line argument and send the IR code for it to the STB with the irsend command. for ($i = 0; $i < length($channel); $i++) { $number = substr($channel,$i,1); $output .= "sending ir code: KEY_".$number."\n"; `irsend SEND_ONCE blaster KEY_$number`; } } else { $output .= "Channel = 0, This is an error\n"; } # ------ Uncomment below to enable logging. # open (MYFILE, '>>'.$logfile); # print MYFILE $output."\n"; # close (MYFILE);
Be sure to make sure the script is executable by running:
chmod 0755 /usr/local/bin/channel.pl