Overview

Many cable providers are transitioning away from analog to digital service. For those customers not upgrading to digital TV's, they are providing free digital to analog converters (DTA's). Traditionally, their full featured set top boxes (STB's) received all sorts of information such as encryption keys, guide data, etc via an out of band (OOB) POD interface. This is a special receiver that tunes frequencies outside of the normal TV frequencies. One of the pieces of information that's transmitted is a table that maps station callsigns and virtual channels (the integer channels that the STB's present to the user and are used by TV Guide, Schedules Direct, zap2it, etc) to RFchannel.program number that clearQAM TV's use. For example, Schedules Direct and Comcast may say FOODTV is channel 35 but a clearQAM capable TV plugged directly into the line will report it as 78.4. This would also traditionally require one to use the MythTV channel editor and manually input the frequency and program number for each channel and associate the xmltvid. Since Comcast is handing out DTA's for free, they are severely cost reduced and don't have a POD interface. Instead, they are transmitting the virtual channel table in-band (i.e. tuneable with a conventional clearQAM tuner) to allow the DTA's to do the virtual channel mapping.

Myth Setup Ordering

Within mythtv-setup create the tuner cards and grabbers but don't do the "connections" yet

run scte65scan as described below

fill the database with the results

Go back to mythtv-setup and create the connections and set the starting channel to a valid channel

The scte65scan tool

scte65scan is a utility that will read the in-band virtual channel tables and automate the mapping of frequencies and program numbers to virtual channels and xmltvids.

( this link contains important information about compiling libhdhomerun and scte65scan versions prior to 0.3 for support of the latest Silicondust_HDHomeRun libraries )

Compiling scte65scan

Get a copy of the source code from the project's page and get a copy of libhdhomerun library and extract it inside the scte65scan directory.

Build the Executable

And finally build it:

$ make

Or for the HDHomeRun:

$ make -f Makefile.hdhr

IRC and HRC cable systems

scte65scan bundles the us-Cable-Standard-center-frequencies-QAM256 frequency table. Some cable systems use channel frequencies that are slightly offset from standard, and this requires a different frequency table known as either IRC or HRC.

You can determine which, if any offset, by experimenting with the HDHR GUI. On the Tuner tab in the selection box before channel number try scans with 'us-cable' (standard), 'us-hrc', or 'us-irc'. Whichever option leads to finding channels is the right option for your system.

You can obtain the other frequency tables from the dvb-apps package, which can be installed on an Ubuntu system like:

$ sudo aptitude install dvb-utils

You then find the other frequency tables at /usr/share/doc/dvb-utils/examples/scan/atsc.

Using scte65scan

A quick overview of the process is as follows:

Find the VCT_ID for your lineup. This can be done by obtaining a DTA or STB and reading it from the diagnostic page. Alternatively, it can also sometimes be found by inspection through an examination of the text-mode output of scte65scan. For example, run:

The next time it is run, mythfilldatabase will detect the virtual channel number in the 'freqid' and/or 'channum' field of the imported SQL and fill in the xmltvid for you if you are using Schedules Direct. Be sure to enable the channels at Schedules Direct prior to running mythfilldatabase. Alternatively, you can use the following SQL, which will also help by setting the callsigns to the same so that they don't double up in the UI:

The SQL that scte65scan generates assumes that it can start the mplexids for the transports can start at 1, which only works if this is the only DVB source in the database. The latest 0.3 version deals with this by multiplying the sourceid by 1000 and adding it to the RF channel number to generate mplexid's much like mythtv generates channel ID's by multiplying the sourceid by 1000 and adding it to the cable channel number. Otherwise you'll get conflicts, so you'll have to manually adjust the mplexid values to an unused range.

Fixing channel usage results

It's a good idea to use the channel editor either in mythtv-setup or in mythweb to edit the various channels to make them work properly. In particular, if your device has found both analog and digital channels Myth will pick the first channel available which is likely to be the SD version. If you delete the SD versions and leave only the HD versions for the appropriate sourceid then you'll ensure you actually get HD recordings.

scte65scan-0.2.1 may not generate a complete frequency table if any of your channels are broadcast on the same frequency as your VCT data. If you use the -p option to scan for ATSC PSIP data and find that certain channels will not tune, check the PSIP section of your vct.sql file for those channels. If the frequency referenced in the WHERE clauses for those channels doesn't exist in the frequency table section (dtv_multiplex table) you will have to add a record manually by duplicating the last INSERT statement in that section, incrementing the mplexid value for this new record and changing the frequency to match the frequency of your missing channel(s). You will need to re-import your vct.sql file after making this change.

How to determine the VCT_ID using scte65scan

This is probably the easiest way to obtain the VCT_ID using the same tool you'll use later for scanning. Simply run it using something like this:

Note that there may be multiple tables that are very similar, with the tables for multiple towns. In some cases, the most obvious differences will be in the local town channels. In some cases, using the wrong table will result in receiving the public access channels for the wrong town; apparently Comcast will send the same signal to multiple towns and configure the cable boxes to use a different table depending on where it is installed.

How to determine VCT_ID using a Full Set Top Box

For those without DTAs, it is still possible to determine the VCT_ID using most set top boxes. This method is tested on Motorola DCH-3200s and DCH-6200s, but should work for other Motorola models as well.

Power on your box.

Press "Power" on the remote to turn off the box. IMMEDIATELY press "OK" on the remote. You should see a long list of menus numbered d01-d18.

Select option d6, "Current Channel Status."

You should see VCT ID listed on this page. It may only be one or two digits, which should correspond to the last one or two digits in the VCT_ID. You can run the scte65scan tool with no options to see the available tables. If the VCT_ID on your set top box is "10" and the scte65scan program shows that one of the VCTs is 3010, then this is your VCT_ID. Take note of both the decimal and hex VCT_ID and enter them in the table below.

Update 10/31/09: Pace DC50X box you get from comcast may no longer have the screens listed in the screen shots above.
Step 3 above will be different. Use the channel up or down button to go to the Virtual Channel Map and press enter on the remote, it will give you the channel list, complete with frequencies. (along the top of the screen will give the VCT ID)

VCT_ID by Location

Please post your Zip code, city, and VCT_ID in the table below to allow others without DTAs to determine a probable/possible VCT_ID choice.

Important! All locales will see multiple VCT_IDs, only one of them applies to your locale. That is the point of this table. See the instructions above and only post one VCT_ID: the one for your exact location. Please do not post all the VCT_IDs you see! Rarely, the same ZIP code can overlap locales and have different VCT_IDs. This is why it is essential that you provide all information to distinguish one from the next.

Note: Please put each ZIP code in a new entry. Adding extra ZIP codes to an existing entry breaks sorting of the table. Please do not leave any fields blank. Figuring out the decimal and hex values are explained above.

Note: As requested (long ago), the table now includes a provider column since this article originally mentioned only Comcast and it applies to other providers. It's probably safe to assume all entries are for Comcast unless otherwise posted. Please go back and add the provider for your area.