This package supports:
1. Channel change over firewire, livetv and recording, for MCE and extenders
2. Channel change over serial port (DirecTV), livetv and recording, for MCE and extenders
3. Recording over firewire for MCE and extenders
4. Supports 1 or 2 STBs
It supports the following STBs for recording and channel change via firewire:
· Scientific-Atlanta 4200HD (Untested)
· Scientific-Atlanta 8000HD (Untested)
· Scientific-Atlanta 8300HD (Untested)
It supports the following STBs for recording via firewire:
· 169time STBs supporting the avx1
It supports the following DirecTV STBs (New and old command set) for channel change via serial port:
· DirecTV D10
· Hughes HIRD-B3
· Hughes HIRD-B4
· Hughes HIRD-D4
· Hughes HIRD-E4
· Hughes GCEBO
· Hughes GCEBOA
· Hughes HAH-SA
· Memorex MSD5000
· Optimus 5100
· RCA-DRD102RW
· RCA-DRD203RW
· RCA-DRD303RA
· RCA-DRD502RB
· RCA-DRD221RD
· RCA-DRD222RD
· RCA-DRD223RD
· RCA-DRD225RD
· RCA-DRD420RE
· RCA-DRD430RE
· RCA-DRD440RE
· RCA-DRD460RE
· RCA-DRD480RE
· RCA-DRD430RG
· RCA-DRD430RGA
· RCA-DRD450RG
· RCA-DRD450RGA
· RCA-DRD451RG
· RCA-DRD451RGA
· RCA-DRD485RG
· RCA-DRD435RH
· RCA-DRD455RH
· RCA-DRD486RH
· Sony SAT-A1
· Sony SAT-A2
· Sony SAT-B2
· Sony SAT-B3
· Sony SAT-A4
· Sony SAT-A50
· Sony SAT-B50
· Sony SAT-A55
· Sony SAT-B55
· Sony SAT-HD100
· Uniden UDS-100
· Uniden UDS-200
It will make SD and HD recordings over firewire. Firewire recordings include Closed Captioning.
It needs a MCE analogue tuner working for the STB you want to control; i.e. this package doesn't replace the need for the analogue tuner.
You must leave the IR receiver connected but if you use firewire or serial channel changing you should remove the IR blasters from the STBs and hide the IR emitters or you may unplug the IR blasters from the IR receiver but do not unplug the IR receiver.
When the MCE is using a STB, the MCE receives from the STB via the analogue tuner in the MCE. This video is SD composite or S-Video even if the show being received by the STB is in HD.
This package records from the STB in parallel to the MCE recording from the analogue tuner. It records from the STB via the firewire connection. This connection gives you a copy of what the STB receives, whether it is HD or SD.
The way the package works is that it monitors when MCE starts recording. It works out which tuner the MCE is using; from there it works out which firewire connection to use to talk to the correct STB. It then requests from the STB a 2nd copy of the show. This 2nd copy is put into a .dvr-ms file. When MCE stops the recording the firewire recording is also stopped. The meta-data in MCE recording is then copied into the firewire recording so the information such as Title, actors, etc. that MCE shows is also part of the firewire recording.
Once set up to use this package, there is little difference in using MCE. Recording is done using MCE as if you are recording as normal from a STB. The difference is you get a two recording for each show. If you only want one recording, see the FAQ for how to do this. You will always get 2 recordings during the recording of the show and you can stop the recording only via the MCE recording (the entry with the red mark).
If the show is protected with 5C=1 then recording via firewire fails and only the MCE recording exists. If the STB is a SA3250HD and the show is analogue, there is no firewire recording.
This package only works on MCE 2005. You can use a limited subset e.g. the command line apps on non-MCE Windows XP SP2 systems.
This package expects a working system with working STB(s), analogue tuner(s) and IR blaster system. It does not replace the STB, analogue tuner or IR blaster so make sure they are working correctly before you start.
The MCE machine will need a firewire connection for using the firewire recording or channel changer, and/or 2 serial ports for the DirecTV channel changer.
Thanks to DisabledTrucker @ www.avsforum.com who took my instructions (See FAQ) for mstapeo.sys and DFAs driver package and created a merged driver package that is included in firestb.msi.
Thanks to Zodiak @ dvbn.happysat.org who wrote the cccp.ax Closed Caption parser included in firestb.msi.
Thanks to Cancan101 @ www.thegreenbutton.com for the DirecTV Serial port application included in firestb.msi.
Thanks to everyone on www.thegreenbutton, forums.freytechnologies.com and www.avsforum.com who tested firestb.msi.
Download firestb.msi and run it, after the introduction dialog, you will see this dialog

Select the required options:
· Firewire Recorder/Channel Changer Application is MyTray.exe. It is required to record or channel change via firewire. Installation will create a shortcut in Startup so it is run each time the machine is booted.
· DirecTV Channel Changer Serial Application is MyTrays.exe. It is required to channel change via serial port for DirecTV STBs. Installation will create a shortcut in Startup so it is run each time the machine is booted.
· Firewire Command line apps are channel.exe and channelw.exe. These are used during initial installation of firewire if you have 2 STBs to find out which STB is which, or used for SageTV systems.
· Firewire Drivers are inf and sys files. These are used by firewire STBs to record and to send channel change commands.
If you selected to install Firewire Drivers you may be prompted with the following dialog

If so, select “Continue Anyway” to install the Firewire drivers.
Once the installation is complete, you will be prompted to reboot.
If you are using the DirecTV Serial Port application you also need to install .NET framework, if it’s not installed.
When you plug in the STB via firewire, 3 devices will be detected: Unknown, AV/C Tuner and AV/C Panel. Cancel the New Hardware wizard for the Unknown device.
Next you should see AV/C Panel Device or AV/C Tuner Device as the hardware that was found. Choose Install the software automatically (Recommended) and click Next.
Click on Yes if Update Driver Warning appears. Choose Continue Anyway to ignore warning about untested driver and finally click on Finish.
Repeat for the 3rd device
Once all the drivers are installed, go to the device manager and disable the Unknown device
Run Start Menu->All Programs->Timmmoore Firewire STB->Cmd
Run “channel –v”
(Only enter the stuff between the quotes, not including the quotes)
You should see something like
Firewire STB channel changer V1.0.8, by timmmoore
Device 1 Channel 1 Timeout 0 Dec 0
1 "FireBus MPEG2TS Tuner Subunit Device"
'Motorola AV/C Tuner Device'
"@device:pnp:\\?\avc#motorola&dct-6200&typ_5&id_0#376ed3feff5c0e00#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" 0
2 "FireBus MPEG2TS Tuner Subunit Device"
'Motorola AV/C Tuner Device'
"@device:pnp:\\?\avc#motorola&dct-6200&typ_5&id_0#84fea2feff9f0f00#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" 0
3 "Motorola AV/C Panel Device"
'Motorola AVC Panel Device'
UniqueID '376ed3feff5c0e00'
VendorID 'e5c'
ModelID '620a'
VendorText 'MOTOROLA'
ModelText 'DCT-6200'
"@device:pnp:\\?\avc#motorola&dct-6200&typ_9&id_0#376ed3feff5c0e00#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" 1
4 "Motorola AV/C Panel Device"
'Motorola AVC Panel Device'
UniqueID '84fea2feff9f0f00'
VendorID 'f9f'
ModelID '620a'
VendorText 'MOTOROLA'
ModelText 'DCT-6200'
"@device:pnp:\\?\avc#motorola&dct-6200&typ_9&id_0#84fea2feff9f0f00#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" 1
5 'NVTV'
"@device:pnp:\\?\pci#ven_123f&dev_8120&subsys_024810de&rev_b1#5&1ea1f09a&0&2048f0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\capture" 0
6 'NVTV'
"@device:pnp:\\?\pci#ven_123f&dev_8120&subsys_024810de&rev_b1#5&1ea1f09a&0&2848f0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\capture" 0
7 'VBox Vb35xx Capture'
"@device:pnp:\\?\usb#vid_14f3&pid_a560#600010003d#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{07ddc96b-774d-4438-aa05-23ea13e922eb}" 0
Device Id ""
Device Version "2.1.0"
Look for Motorola AV/C Panel Device; you will see it occurs twice for device 3 and 4, one for each of my STBs
Try
Channel –v 3 59
This will send a change channel command to channel 59 to device 3. Look at your STBs to see if they obey the command and if you have more than one STB which STB is which. If you want to use it with MCE note the UniqueID for each STBs and how it maps to which STB and also note which STB is tuner 1 and tuner 2 in MCE.
You can see in the list, device 1 and 2 are the AVC tuner firewire devices, 3 and 4 are the AVC panel devices. 5 and 6 are for my dual NVIDIA tuner card and 7 is for my USB VBox HTDV box
If you just want to use the command line application you are done, if you want a command line without a cmd box then channelw.exe takes the same arguments without outputting any text and output opening a cmd window. If you are controlling channel.exe or channelw.exe from another program you may want to use the –n parameter and replace the Device number by the UniqueID. Adding or removing devices will not affect the UniqueID but will affect the device number. To find out the parameters for channel.exe and channelw.exe, type channel -h, you should see:
D:\fire>channel /?
channel: Change channel via firewire, timmmoore Copyright 2005
Firewire STB channel changer V1.0.7, by timmmoore
channel -v -tN -aM -d -n Device Channel
-v: verbose
-aN: alternate commands, N = 0, 1, 2, 3, 4
0: send channel as a single command (doesn't work while streaming)
1: send channel as a 3 press key commands
2: send channel as a 3 press/release key commands (default)
3: send channel as a 3 release key commands
4: send channel as a single command (works with SA3250)
-tN: timeout in milliseconds between digits for -a1,2,3 (default: 50)
-f: force commands to be sent on non-supported devices
-d: decimal, send channel as a decimal single key
-n: device number is firewire unique name
Note: Channel by default checks the firewire device and picks the correct command. Parameters should only be needed during testing of a new device.
Firestb.msi creates a shortcut in Startup so MyTray.exe is run each time the machine boots.
Go to the system tray and double click the MyTray icon. You should see a dialog containing 2 combo-boxes, one for tuner 1 and one for tuner2. If you only have 1 tuner installed, you may only see 1 combo-box.
MyTray will have selected a UniqueID for each combobox. If you only have one tuner the UniqueID will be correct. If you have two tuners check that the UniqueID selected matches with that found with channel.
MCE should now be configured to use firewire and which tuner is which firewire device.
Remove the IR blasters from the front of the STBs (don’t unplug them) and hide them.
Try changing channel in MCE
Once channel changing is working you can try recording over firewire.
Open the MyTray dialog and enable "Recording over firewire"
This enables recording over firewire in parallel to MCE recording from the analogue tuner. You will see 2 recordings in MCE’s Recorded TV list. One will say it is DTV and the other will not. The DTV is the recording over firewire. It will record both SD and HD channels.
There is a second check box “Move MCE recordings if Firewire recordings complete successfully”, if this is checked, MCE recordings will be renamed to .dvr-ms-mce and moved into a subdirectory “Old” in the “Recorded TV” directory. If this is selected only a single recording will be seen in MCE’s Recorded TV list and they will not be marked DTV.
The check box “Enable LiveTV does not work yet.
Limitations:
1. Only works for recording, LiveTV doesn't use the firewire tuners
Thanks to Cancan101 for this application.
Firestb.msi creates a shortcut in Startup so MyTrays.exe is run each time the machine boots.
First make sure there are 2 or more COM ports listed under each Tuner list.
The software has the ability to auto-detect which serial port is assigned to which tuner (as Media Center identifies them). To do this, go to Media center. Set each tuner to a unique channel. Do this by going to a channel, hitting record, and then hitting channel up. Make sure the tuners properly change channels. Now click "auto-set" Hopefully a COM1 port from each column will be selected. IF not, you are going to have to guess and check. Now click run. That's it. The text box below is where errors are displayed. Currently the software only supports the new command set. I have the code for the old command set, but I have NO idea if it works as I have no device on which to test it.
The "monitor only?" option will show pop-ups of what the software would be going if you had it using the serial port.
Currently you must have two tuners. If you don't, use Dan Glass' software.
MCE should now be configured to use serial and which tuner is which serial device.
Remove the IR blasters from the front of the STBs and hide them or unplug them.
6/10/2005
1. Fixed A/V with extenders changing channel
2. Added support for channel change on SA3250HD
6/12/2005
1. Missing channel changes which happens quickly after pressing record
2. Added support for recording from www.169time.com STBs
3. Added support for SA4200 under the assumption it’s the same as the SA3250HD (Not tested)
6/13/2005
1. Closed Captions now in recordings, thanks to Zodiak for the cccp.ax filter
2. Missing channel changes which happens quickly after pressing record (another case)
6/14/2005
1. Recording twice the same show on same channel at same time fails
2. Doesn’t always allocate a tuner when starting a LiveTV session
6/15/2005
1. Scheduled recording starting at the same time as a livetv channel change, recording given wrong tuner
2. Scheduled recording may sometimes get wrong tuner, when livetv stopped
6/16/2005
1. Re-load the combo-boxes each time the dialog is opened
2. Added Registry setting to allow the filename Prefix to be changed
3. Close button on dialog now minimizes; to close, right click on system tray icon and select close
4. Now packaged as a MSI installer
6/17/2005
1. Integrated DirecTV serial channel changing into MSI installer
6/19/2005
1. Changed order audio, video and CC goes into StreamBufferSink, works with WMP and MCE
2. Fixed check for AverMedia Tuner
3. Fixed a case where recording was using LiveTV tuner when it shouldn’t
6/20/2005
1. UnMap the audio PID from MyTray filter once the audio format has been found
2. Fixed the 6/19/2005.3 fix, messed up LiveTV
3. Testing a fix for not always seeing PIDs (starting graph twice). This doesn’t break anything so leave in.
6/21/2005
1. Changed name of memory mapped file MyTray opens to be session global
2. Fixed issue if livetv on 2 or more devices using the same tuner and change channel on one, may not change correctly on the STB
3. Added a registry setting for Closed Caption on/off
4. Added a registry setting for the directory name that firewire recordings are made in.
6/22/2005
1. 6/19/2005.1 broken CC in MCE; fixed but breaks WMP. Haven’t been able to get CC in MCE and have WMP play video, use ClosedCaption registry setting to decide between Closed Captioning and playing in WMP.
6/23/2005
1. Make sure MCE recording is not moved to “Old” directory if firewire recording failed.
2. Delete firewire recording if its not complete, i.e. 5C=1 cases
6/24/2005
1. Fixed channel.exe and channelw.exe to do supported check correctly without –v parameter
6/25/2005
1. Added support for EnabledForMCE and ignore tuners that are disabled
2. Added support for WatchOrder/Preferred, RecordOrder/Preferred, the STB order maybe changed from before this was enabled
3. Fixed an issue with livetv sharing tuner with a recording
4. Fixed an issue of freeing tuners when extender is switched off
5. Added –n to channel.exe and channelw.exe to specify firewire UniqueID rather than device number
6. Included an updated version of mytrays.exe
6/26/2005
1. Fixed 6/25/2005.3, MCE shares with recording but not livetv
2. Fixed 6/21/2005.2, multiple session conflict only worked if all had tuners, now works if only some sessions had tuners
3. Fixed 6/21/2005.2, copied channel incorrectly when changing channel with multiple sessions
4. Fixed recording conflict needing to take livetv tuner delaying until start of show
6/27/2005
1. Fixed a recording tuner allocation problem when there are 2 livetv sessions and a scheduled recording is started. If one of the livetv sessions is stopped the wrong tuner is picked for the recording
2. Added a registry setting to enable/disable the DTV flag in the firewire recording
3. Added a registry setting to enable/disable the ATSC flag in the firewire recording
4. Updated audio parser to get audio_acmod and lfeon parameters from audio stream. Change Directshow graph create code to set the number of channels correctly on the MPEG2 demux audio output pin from audio_acmod and lfeon parameters
6/28/2005
1. Fixed a problem where the MCE recording file is not found
2. Time the timeout between sending digits to the STB for channel change, if the timeout was too long, retry since the STB will timeout
3. Check that the MCE recording has all the metadata before we copy to the firewire recording
4. Fixed an issue where tuner wasn’t being freed and a new tuner allocated when channel number changed between < 1000 and >= 1000 (ATSC)
5. Lower the priority of the metadata copying thread so it doesn’t interfere with other recordings/channel changes
6/29/2005
1. Retry copying metadata if failed to set attribute
6/30/2005
1. Fixed metadata failing if 2 recordings finish at the same time
7/01/2005
1. Fixed creating firewire recording directory
7/02/2005
1. Changed what is done with mce recordings when moved to OLD directory, renamed to .dvr-ms-mce so MCE doesn’t see them
2. Changed order to moves to cover art now appear in Recorded TV details for firewire recordings if MCE recordings are moved to OLD directory
3. If MCE records are to be moved firewire recordings are not marked with DTV and ATSC
4. Added checkbox to UI to enable move MCE recordings to OLD directory
5. Fixed a case where recording took a livetv tuner and channel didn’t change correctly
7/03/2005
1. Integrated LiveTV changes into MyTray, checkbox to enable LiveTV. LiveTV streams to temporary StreamBufferSink. Temporary files deleted on shutdown and startup. Changes to modify MCE play graph not integrated
7/04/2005
1. Fixed a case where recording took a livetv tuner and channel didn’t change correctly
7/05/2005
1. Switched to Visual Studio 2005 Beta 2, fixed a number of changes between beta 1 and beta 2
2. Added check for no firewire devices configured but system has valid analogue tuners and firewire devices, just assign them to each other. For 1 device works, for 2 devices may be in wrong order and user must change
3. Added sbsins.dll to package
7/06/2005
1. Fixed not setting number of ATSC tuners correctly, if no ATSC tuners
2. Fixed 6/28/2005.4
3. Handle case of all LiveTV sessions using a tuner are stopped. Tuner is free for record to use
4. Fixed issue if never get pid and leave on channel, continuous errors in log, stop reading pids after 20sec
5. Updated runtime dlls to go with new version of Visual Studio
7/07/2005
1. Fixed 2 issues with 7/05/2005.1
7/08/2005
1. Fixed another issue with 7/05/2005.1
7/11/2005
1. Fixed an issue with logging of subtitles
7/13/2005
1. Fixed an issue with 6/25/2005.4
7/16/2005
1. Created a DLL version of channel.exe and added to package
2. Add support for SA8000HD and SA8300HD (Untested)
7/20/2005
1. Added option to delete MCE recordings if firewire recording is successful
7/22/2005
1. Modified channel.exe, etc. to support channel numbers >= 1000
2. Modified installer to install or update the .inf file
7/23/2005
1. Fixed a problem with 7/05/2005.2
I believe this is possible and I am working on it.
It should be possible, but since I don’t have a 3rd STB and it is not obvious how the tuner allocation will work with more than 2 tuners, it is not currently supported.
The recordings that are recorded via firewire are in the format that is sent from the cable company, so HD is HD. This does mean large files; an HD recording is often 7.5Gbytes per hour.
Note: While digital SD and HD are sent directly from the Cable Company without the STB changing it; analogue SD channels are encoded by the STB and different STBs will encode differently. I have seen the same show via 2 STBs (both DCT-6200) with different encoding.
This package doesn’t bypass 5C protection. If a channel has been 5C protected by the cable company then you will not be able to record the show using this package. The normal SD recording made by MCE will still be available.
To check whether 5C is enabled for a channel on a DCT-6200, 6208, 6412:
There are 2 types of SA3250HD, to check whether 5C is enabled for a channel depends on the type (try the instructions for one type and if it doesn’t work try the other).
For a SA3250HD with SARA software:
· On the box itself (not using the remote), press and hold the "+" button for a few seconds, the "envelope" light will come on blinking. (the + button is the "bulls-eye" in the middle of the 4 "arrow" keys).
· Press the "info" key next
· 19 pages of data are available. Use the left / right navigation keys to move thru pages. Firewire port status is last or second to last page. SA will show CCI/EMI state rather than use the "5c" nomenclature. This is shown channel by channel so you must change channels to check state of the channel of interest
· Quit by pressing the "exit" key on the front panel.
For a SA3205HD with Passport software:
· Go to your diagnostic channel (try 996)
· Press "exit" on the STB, a new screen opens
· Scroll down to 1394, it will display info for the last channel you tuned to
If 5C is enabled then firewire recording will not work for that channel.
This is correct; this package records a 2nd recording. You can tell the difference in that the firewire recording will show up in MCE as a DTV recording.
If you select the check box “Move MCE recordings if Firewire recordings complete successfully”, MCE recordings will be renamed to .dvr-ms-mce and moved into a subdirectory called “Old” in the Recorded TV directory. The subdirectory will be automatically created. MCE recordings will only be moved if the firewire recording completes successfully.
Note: The MCE recordings are not deleted, but are renamed to .dvr-ms-mce.
Make sure “Move MCE recordings if firewire completes successfully” is unchecked, otherwise the MCE recording is moved out of the Recorded TV directory and it is difficult to tell if the recording is a firewire recording or the MCE recording. Once you are sure firewire recording is working then check Move MCE recording.
If “Move MCE recordings” is unchecked and there are not two recordings per recording then the firewire recording is failing. There are four reasons this make fail:
· “Enable firewire recording” is not checked
· STBs do not have firewire enabled. Check that you have firewire tuners and AV/C Panel devices in the device manager, also check the FAQ for 5C to access the STB firewire settings
· The show is protected, if the cable company has set 5C=1 for that show that there will be no firewire recording. See the FAQ on 5C to see how to check for this
· The show is analogue and the STB is SA3250HD. Unlike the Motorola STBs, the SA3250HD doesn’t contain a MPEG2 encoder and doesn’t encode analogue channels for firewire
Sometimes J, it depends on the transmission from the cable company. I have seen 5.1 sound but many shows are only 2 channel.
Yes, this should work. See “Media Center Tuner Priority” for a utility that controls these parameters.
Mytray.exe has not recognized any supported STB or analogue tuners. Is MCE correctly recording as normal from STBs, changing channel on the STB via IR? This needs to work before trying to use this STB Controller. Once MCE is working with STBs, then install this package. If channel.exe works then PM me the output from channel –v and the tuner.txt and tuner.log files.
Tunertracker.dll and MyTray.exe doesn’t handle PnP notifications. Reboot when you add or remove analogue tuners. Once you have rebooted if MyTray still doesn’t see the tuner see the previous question.
Tunertracker.dll and mytray.exe write log files, tuner.txt and tuner.log. These files exist in the temporary directory, to find the directory do Start Menu->Run, Cmd, OK. Then type “cd %temp%” this directory is the temporary directory. If you are trying to use explorer, you will need to enable “Show hidden files and directories” in the tools->options.
No, this package is recording a 2nd copy of any recording you ask MCE do from a STB. The guide used is the same guide as the normal STB guide.
Yes, in the recorded TV listing, you will see an entry next to the current recording starting with “Fire “. This will be the firewire recording. Playing this file will play the firewire recording while it is being recorded.
The dvr-ms file contains Closed Caption information; this seems to confuse the video decoder (at least NVIDIA) in Media Player. If you want recordings that play in WMP you need to disable Closed Caption in the firewire recording. See the registry settings.
This package contains the application from Cancan101 to change channels of DirecTV STBs via serial ports.
There are two options for recording:
1. www.169time.com sell firewire DirecTV STBs or upgrades to existing DirecTV STBs. This upgrade only supports recording but MyTray.exe will support recording from these firewire enabled DirecTV STBs.
2. http://www.nextcomwireless.com/R5000/home.htm use USB 2.0 instead of firewire but provide a driver that supplies MPEG2-TS so should work for recording but has not been tested.
If it’s a Firewire STB maybe, if it has a firewire AVC Panel device force the Motorola AVC Panel device driver to be installed. Then try
channel –v
find the AVC panel device number and then try
channel –v –f D C
and see if the channel changes. If yes PM me the output from the above command and I will add it to channel and mytray.exe. If not try
channel –v –f –a0 D C
channel –v –f –a1 D C
channel –v –f –a2 D C
channel –v –f –a3 D C
channel –v –f –a4 D C
Again look after each command to see if the channel changes. If yes, PM me the output from the command and I will add it to channel and mytray.exe. If not, PM me for some other things to try.
If the STB doesn’t support firewire but supports serial port or another way to control the device, e.g. see DirecTV, then it is possible to use tunertracker.dll and write an application to send the commands. See API to Tunertracker.dll later in the FAQs.
This package only supports firewire. If the commands to change channels over USB are known, it would be possible to write an application using the output of tunertracker but mytray.exe does not do this.
First check that Recording is enabled in MyTray.exe dialog. Check %temp%\tuner.log for the message “ERROR - Failed to run Control, 800705aa ERROR_NO_SYSTEM_RESOURCES.”. Reboot and try recording again, if the same message is in %temp%\tuner.log, then install Windows XP SP2 1394/firewire patch.
The AV/C Panel device seems to be an emulation of the front panel of the STB and so accepts the channel change commands. The firewire tuner device does not support change channel commands and using the –f parameter to force the firewire tuner device to be used will blue screen the machine.
There are 5 pieces to the system:
1. mstapeo.sys: this is a firewire driver that supports the GetTransportBasicParameters command, which is used to send channel change commands to the STB.
2. tunertracker.dll: this is registered with ehmsas.exe. ehmsas.exe is a MCE process that generates events when different operations are carried out by MCE. It was meant to allow people to display information on a Front Panel Display but has been used for other purposes. Normally ehmsas.exe does not work for extenders but support for channel change for extenders is enabled via a registry key. There is one ehmsas.exe process running for MCE and one for each extender running, within each process tunertracker.dll is loaded and running. The various copies of tunertracker.dll communicate to the tunertracker.dll that is loaded in the MCE ehmsas.exe. This tunertracker.dll is considered the master. The master tunertracker creates a memory mapped file that contains its decision on the tuners in use and which channels each tuner is using. In addition, information about the show title, whether the tuner is being used for live TV, recording or both, etc. is held in the memory mapped file.
3. MyTray.exe: this runs as an application by the MCE. It opens and monitors the memory mapped file created by tunertracker. When information in this file changes, e.g. the channel changes on a tuner it looks up which firewire device maps to the tuner, looks up which firewire command should be used for that type of device and sends the command to the device. When a recording starts, it searches for the MCE created recording, then sets up a DirectShow graph from the correct firewire tuner to a StreamBufferSink and creates a dvr-ms file of a similar name to the MCE recording. MyTray also acts as two DirectShow filters, one reads the MPEG2 transport stream (with the help of the Microsoft MPEG2 De-multiplexer), finds the correct PIDS for video and audio, the other reads the start of the audio stream to find the correct format for audio, then maps the audio and video streams to the StreamBufferSink. When the recording finishes it copies the various meta-data that MCE adds to its recording into the firewire recording and moves the file to MCEs Recorded TV directory. This allows MCE to display the recording including meta-data within its UI.
4. cccp.ax: this was written by zodiak@dvbn, for parsing CC from video streams for DVB but it works great for splitting a MPEG2 Elementary Stream into Video and CC for Cable STBs. This split needs to be done since MCE requires Video and CC to be stored separately in the dvr-ms file. Thanks to Zodiak for all the work he must have put into developing this filter. For more information about this filter http://dvbn.happysat.org/viewtopic.php?t=19184
5. MyTrays.exe: Is similar to MyTray.exe, it is an application. It opens and monitors the memory mapped file created by tunertracker. When information in this file changes, e.g. the channel changes on a tuner it looks up which DirecTV device maps to the tuner, looks up which serial command should be used for that type of device and sends the command to the device via the correct serial port.
6. Sbsins.dll: This is a DLL that is inserted into the ehshell.exe process. This is done by opening the ehshell.exe process and writing code that loads the DLL directly into the process space. The reason this DLL is inserted into the ehshell.exe process is you can’t insert filters into the ehshell.exe DirectShow graph from out of proc. This DLL exposes support to allow the MCE LiveTV DirectShow graphs to be manipulated. It loads the firewire LiveTV temporary .dvr-ms files into the MCE LiveTV graph and modifies the graph as needed e.g. change the audio decoder to one that supports AC3.
The capture graph that MyTray creates when recording looks like:

Note: During startup of the recording, the Audio Pin from the MPEG2 De-multiplexer is routed elsewhere, so the Audio Elementary Stream can be parsed to find the format of the AC3 stream.
If you want to control another device similar to a STB or DirecTV box then it is possible to reuse tunertracker.dll which does the work of tracking which tuner MCE is using and which channel each tuner is on.
Tunertacker.dll creates a memory mapped file called TunerTracker. You need to map 8 bytes of the memory mapped file.
The structure of the memory is 4 WORDs. The 2nd WORD contains 0 or the channel for the 1st tuner. The 4th WORD contains 0 or the channel for the 2nd tuner.
I use a timer to monitor for changes to the memory mapped file and when the channel changes send the correct commands to change the channel for the correct tuner.
If you want more details of the interface to Tunertracker.dll and how to use it, send me a PM.
Channel.dll exports a function
extern"C" __declspec( dllexport ) int SendChannelNumber(char* channel, char* prefix)
The first parameter is a string containing any arguments in the same format as passed to channel.exe. The second parameter is not used. Arguments can also be supplied from the registry
HKLM\SOFTWARE\timmmoore\channel\Arguments
This is a string which is created the first time SendChannelNumber is called if it doesn’t exist. The string passed as the channel parameter is concatenated to the string from the registry with a space between.
Note: It is also possible to execute channel.exe or channelw.exe with the correct arguments. Channel.exe will open a cmd box to execute whereas channelw.exe will not.
There are some registry settings that may be useful:
1. By default mytray.exe tracks the last 2 channels for each tuner and uses channel up/down and last channel commands if possible. If you use the STB remote as well as MCE then you should disable this feature. Add a DWORD called FastChannel to the key HKLM\Software\Timmmoore\MCETray and set it to 0.
2. The default timeout between key presses for channel change is 50ms. This seems to be working for everyone. (The default in channel is also 50ms). If you need to change this, first test using channel, you can use the -tNN parameter with channel to set the timeout to NN. For MCE add a DWORD called Timeout to the key HKLM\Software\Timmmoore\MCETray and set it to the timeout value needed.
3. The default filename prefix on firewire recording is “Fire “. If you wish to change the prefix, add a String called Prefix to the key HKLM\Software\Timmmoore\MCETray and set it to the prefix string required.
4. The default directory name that firewire recordings are made in is “Fire”. If you wish to change the directory, add a String call Directory to the key HKLM\Software\Timmmoore\MCETray and set it to the directory name required.
5. By default Closed Captioning is recorded into the dvr-ms file. MCE will use the Closed Captioning. Windows Media Player doesn’t play firewire dvr-ms files that include Closed Captioning. If you don’t want to record Closed Captioning in the dvr-ms file so recordings can be played by WMP, add a DWORD called “ClosedCaption” to the key HKLM\Software\Timmmoore\MCETray and set it to 0.
6. By default all STB channels are attempted to be recorded over firewire, if the recording fails and “Move MCE recordings if Firewire recordings complete successfully” is checked the MCE recording will not be moved. If it is required to skip firewire recording on a channel then create a registry key “SkipChannels” as a string. A space separated list of channel numbers can be entered into the string. These channels will be skipped for firewire recording and firewire LiveTV.
Yes, the applications channel.exe and channelw.exe are not used with MCE. They are used for testing and for non-MCE use. Channel.exe is a console application which is most useful for debugging. Channelw.exe is a windows application, takes the same arguments as channel.exe but doesn’t need a command window and doesn’t output any messages. See Firewire install for SageTV for details on how to use channelw.exe for the SageTV. See Setting up BTV to control your STB via Firewire for Beyond TV, except channel.dll is available in the firewire cmd directory.
It is possible but not supported. There is a debug mode in mytray.exe that I use for debugging on a non-MCE machine that allows me to enter a channel and record. If you need to record from firewire to dvr-ms, let me know and I will look at supporting this option. Another possibility is to record the MPEG2TS using Capdvhs and then to convert to dvr-ms using TSConverter. You also might want to read http://replayguide.sourceforge.net/dct6412/.
There have been problems reported with Sony VAIO PCs running MCE 2005. These are the instructions from essexgreen who has made this package work with a Sony VAIO.
1. Set VAIO Media Center Software not to run when Windows starts and to turn it off
2. Go to the process list and kill vzfw.exe and vzcdbsvc.exe
3. Go to c:\program files\common files\Sony Shared\Vaio Entertainment Platform\Vzcbd and rename vzcdbsvc.exe to vzcdbsvc0.exe and reboot
Depends a lot on what you are trying to do, however, for an example, my setup is as follows:
Shuttle G5 8300, P4 3.4GHz, 2G RAM - modified to make it quieter
~1.1TB disk – combination of internal SATA and external firewire disks
Dual NVIDIA tuner, VBox USB-A 2560
ATI X700 256M, ATI 5.3 drivers
2 Motorola DCT-6200 STBs
Syntax Olevia 37” LCD
PSOne LCD modified for VGA use as a Front Panel Display with a custom FPD application
The PC and LCD are connected via DVI. The PC and PSOne are connected via VGA. I use Powerstrip to get the correct settings for both LCDs
The STBs are connected to NVIDIA tuner via S-Video cables and audio cables
The STBs are also connected to PC via Firewire
Audio is via SPDIF from Shuttle to Logitech Z680 speakers
Other things of interest:
I use VolumeTracker to copy the MCE volume to SPDIF
I use Speedfan for temperature monitoring and XPCTools for fan control
I use ATITray for temperature and fan control of the ATI X700
I use a modified version of MediaDisplay sample in the MCE SDK for displaying MCE information, Speedfan temperature and ATITray temperature onto a PSOne VGA screen for use as a Front Panel Display
I use PerfectDisk for defragmentation on the disks every night; I found this is required with the number of simultaneous streams I am recording
The quickest way to get mstapeo.sys is to download it from the link at the top of the document. If not the following are the details of how to create it:
Copy mstape.sys from XP SP2 to mstapeo.sys in meistb drivers’ directory
Edit using a hex editor
Offset 130 is 04 BC 01 00 change to 0a 11 01 00
Offset 18bf is 8b f0 3b f7 0f 8c a0 01 00 00 change to 90 90 90 90 90 90 90 90 90 90
Offset 1a76 is 8b c6 change to 33 c0
Save the file
The following instructions create an mstapeo.sys for SP1a.
Copy mstape.sys from XP SP1a to mstapeo.sys in meistb drivers’ directory
Edit using a hex editor
Offset 138 is CC 03 change to D1 58
Offset 17ad is 8b f0 3b f7 0f 8c a0 01 00 00 change to 90 90 90 90 90 90 90 90 90 90
Offset 1964 is 8b c6 change to 33 C0
Save the file