Scte65scan
Contents
Overview
Comcast is transitioning away from analog to digital. 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. In its stead, 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.
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 for support of the Silicondust_HDHomeRun on Mythbuntu 9.10 )
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 diretory.
# tar xzf scte65scan-0.2.1.tgz # cd scte65scan-0.2.1 # tar xzf libhdhomerun_VERSION.tgz
HDHomeRun Specific Steps
Then modify the Makefile.hdhr file to fix a few things. First, add the following line near the top:
LIBOBJS += $(HDHR_DIR)/hdhomerun_sock_posix.o $(HDHR_DIR)/hdhomerun_os_posix.o
And then add the -lrt library to the LDFLAGS line so it reads:
LDFLAGS += -lpthread -lrt
Build the Executable
And finally build it:
# make
Or for the HDHomeRun:
# make -f Makefile.hdhr
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 ./scte65scan -H FFFFFFFF,0 us-Cable-Standard-center-frequencies-QAM256 and look in the output for the VCT_ID for your channels)
- Generate SQL for importing into MythTV (e.g. `scte65scan -f3 -V your_VCT_ID itfile > vct.sql`
- If you seem to be missing channels (e.g. your local broadcast HD), try the -p option to scan the full channel table (e.g. via HDHomeRun `scan -H FFFFFFFF -p -f3,9 -V 3092 us-Cable-Standard-center-frequencies-QAM256 > vct.sql`)
- Import the SQL into MythTV (e.g. `mysql mythconverg < vct.sql`)
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:
SET @scte_source = <<scte source id>>; SET @sd_source = <<SD source id>>; UPDATE channel SET callsign=REPLACE(REPLACE(REPLACE(callsign, ' HD', 'DT'), '-HD', 'DT'), '-DT', 'DT') WHERE sourceid=@scte_source; UPDATE channel AS c1, channel AS c2 SET c1.channum = c2.channum, c1.xmltvid = c2.xmltvid, c1.name = c2.name, c1.icon = c2.icon WHERE c1.sourceid = @scte_source AND c2.sourceid = @sd_source AND c1.callsign = c2.callsign; UPDATE channel AS c1, channel AS c2 SET c1.callsign = c2.callsign, c1.xmltvid = c2.xmltvid, c1.name = c2.name, c1.icon = c2.icon WHERE c1.sourceid = @scte_source AND c2.sourceid = @sd_source AND c1.channum = c2.channum;
There are several things that are tricky about this.
- 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 SVN 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.
Here is an example that worked for an hdhomerun tuner in Santa Clara CA:
./scte65scan -H FFFFFFFF -f3 -V 3058 us-Cable-Standard-center-frequencies-QAM256 > vct.sql
mysql -u mythtv -p mythconverg < vct.sql
For more information, visit the
scte65scan project page
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:
./scte65scan -H FFFFFFFF,0 us-Cable-Standard-center-frequencies-QAM256 > tables.txt
And then the VCT_ID will likely be right above the channels in the output.
The output (with the VCT_ID in green) will look something like:
VCT_ID 3042 (0x0be2) at 243012500hz, version 11 VC CD.PROG M# NAME ==================== 2 28.9 4 HSN 3 27.1 4 KCRA (Econo Basic link) ...
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.
How to determine VCT_ID using the Pace DC50X
- Make sure the unit is on.
- Hold down the INFO button until you see the diagnostics screen.
- Press +/- until you see the VCT_ID. This should be the 2nd screen
Here are screenshots and unboxing:
http://picasaweb.google.com/virgegx/ComcastDTAUnboxing#5276142959144255586
Here is the mythtv-user post about scte65scan:
http://www.gossamer-threads.com/lists/mythtv/users/382657?search_string=scte65scan;#382657
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.
State | City | Zip Code | VCT_ID (decimal) | VCT_ID (hex) |
California | Fremont | 94536 | 3078 | 0x0c06 |
California | Livermore | 94551 | 3038 | 0x0bde |
California | Davis | 95616 | 3042 | 0x0be2 |
California | Dublin | 94568 | 3038 | 0x0bde |
California | Danville | 94526 | 3053 | 0x0bed |
California | Foster City | 94404 | 3082 | 0x0c0a |
California | Martinez | 94553 | 3055 | 0x0bef |
California | Fairfield | 94534 | 3087 | 0x0c0f |
California | Fairfield | 94533 | 3087 | 0x0c0f |
California | Suisun | 94585 | 3087 | 0x0c0f |
California | Los Gatos | 95032 | 3010 | 0x0bc2 |
California | Milpitas | 95035 | 3020 | 0x0bcc |
California | San Carlos | 94070 | 3086 | 0x0c0e |
California | Woodside | 94062 | 3062 | 0x0bf6 |
California | Mountain View | 94040 | 3059 | 0x0bf3 |
California | Mountain View | 94041 | 3059 | 0x0bf3 |
California | Mountain View | 94043 | 3059 | 0x0bf3 |
California | Pleasanton | 94566 | 3038 | 0x0bde |
California | San Francisco | 94110 | 3013 | 0x0bc5 |
California | San Jose | 95119 | 3065 | 0x0bf9 |
California | San Jose | 95124 | 3001 | 0x0bb9 |
California | San Jose | 95132 | 3065 | 0x0bf9 |
California | San Jose | 95136 | 3001 | 0x0bb9 |
California | San Jose | 95136 | 3065 | 0x0bf9 |
California | Santa Clara | 95051 | 3058 | 0x0bf2 |
California | Santa Clara | 95054 | 3058 | 0x0bf2 |
California | Santa Rosa | 95405 | 3003 | 0x0bbb |
California | Seaside | 93955 | 3092 | 0x0c14 |
California | Sunnyvale | 94087 | 3018 | 0x0bca |
California | Sunnyvale | 94085 | 3018 | 0x0bca |
California | Union City | 94587 | 3090 | 0x0c12 |
Delaware | Newark | 19711 | 3060 | 0x0bf4 |
Georgia | Alpharetta | 30009 | 3006 | 0x0bbe |
Georgia | Buckhead | 30342 | 3019 | 0x0bcb |
Georgia | Dunwoody | 30338 | 3022 | 0x0bce |
Georgia | Marietta | 30066 | 3021 | 0x0bcd |
Georgia | Tucker | 30084 | 3001 | 0x0bb9 |
Illinois | Champaign | 61820 | 3012 | 0x0bc4 |
Illinois | Park Ridge | 60068 | 3015 | 0x0bc7 |
Illinois | Lisle | 60532 | 3052 | 0x0bec |
Illinois | Darien | 60561 | 3040 | 0x0be0 |
Maryland | Baltimore | 21209 | 3011 | 0x0bc3 |
Maryland | Hanover | 21076 | 3003 | 0x0bbb |
Maryland | Silver Spring | 20904 | 3012 | 0x0bc4 |
Maryland | Timonium | 21093 | 3011 | 0x0bc3 |
Maryland | Waldorf | 20602 | 3028 | 0x0bd4 |
Massachusetts | Ashland | 01721 | 3022 | 0x0bce |
Massachusetts | Bedford | 01730 | 3002 | 0x0bba |
Massachusetts | Bolton | 01740 | 3005 | 0x0bbd |
Massachusetts | Wayland | 01778 | 3003 | 0x0bbb |
Massachusetts | Cambridge | 02139 | 3029 | 0x0bd5 |
Massachusetts | Cambridge | 02140 | 3029 | 0x0bd5 |
Massachusetts | Florence | 01062 | 3025 | 0x0bd1 |
Massachusetts | Haverhill | 01835 | 3004 | 0x0bbc |
Massachusetts | Marlborough | 01752 | 3022 | 0x0bce |
Massachusetts | North Attleboro | 02760 | 3017 | 0x0bc9 |
Massachusetts | Northampton | 01060 | 3025 | 0x0bd1 |
Massachusetts | Norton | 02766 | 3017 | 0x0bc9 |
Massachusetts | Norwood | 02062 | 3020 | 0x0bcc |
Michigan | Ann Arbor | 48104 | 3023 | 0x0bcf |
Michigan | Brighton | 48114 | 3016 | 0x0bc8 |
Michigan | Grand Rapids | 49508 | 3003 | 0x0bbb |
Michigan | Lansing | 48917 | 3018 | 0x0bca |
Michigan | Plymouth | 48170 | 3001 | 0x0bb9 |
Michigan | Algonac | 48001 | 3005 | 0x0bbd |
New Jersey | Skillman | 08558 | 3001 | 0x0bb9 |
Oregon | Portland | 97212 | 3011 | 0x0bc3 |
Oregon | Lake Oswego | 97035 | 3003 | 0x0bbb |
Oregon | Tualatin Valley | 97006 | 3003 | 0x0bbb |
Oregon | Gresham | 97080 | 3034 | 0x0bda |
Oregon | Lebanon | 97355 | 3009 | 0x0bc1 |
Oregon | Corvallis | 97333 | 3029 | 0x0bd5 |
Pennsylvania | Holland | 19053 | 3009 | 0x0BC1 |
Pennsylvania | Norristown | 19403 | 3052 | 0x0BEC |
Tennessee | Chattanooga | 37416 | 3028 | 0x0bd4 |
Washington | Auburn | 98002 | 3100 | 0x0c1c |
Washington | Bothell | 98021 | 3042 | 0x0be2 |
Washington | Bothell | 98011 | 3113 | 0x0c29 |
Washington | Everett | 98208 | 3127 | 0x0c37 |
Washington | Kirkland | 98033 | 3116 | 0x0c2c |
Washington | Redmond | 98053 | 3117 | 0x0c2d |
Washington | Seattle | 98118 | 3092 | 0x0c14 |
Washington | Olympia | 98502 | 3020 | 0x0bcc |
Washington | Spokane Valley | 99037 | 3021 | 0x0bcd |
California | Oakland | 94618 | 3072 | 0x0c00 |
Iowa | Iowa City | 52245 | 3110 | 0x0c26 |
California | Cupertino | 95014 | 3055 | 0x0bef |
California | San Mateo | 94403 | 3081 | 0x0C09 |
California | El Cerrito | 94530 | 3069 | 0x0BFD |