MCE 2005 STB Controller

Firewire recording/channel change, Serial DirecTV channel change, USB R5000HD recording/channel change


This package supports:

1.  Channel change over firewire for livetv and recording, works with MCE and extenders

2.  Channel change over serial port (DirecTV) for livetv and recording, works with MCE and extenders

3.  Channel change over USB (R5000HD and USB Sky Controller) for livetv and recording, works with MCE and extenders

4.  Recording over firewire for MCE and extenders

5.  Recording over USB (R5000HD) for MCE and extenders

6.  Supports 1 to 4 STBs (UI only configures 2)

7.  Configuration via MCE->More Programs

8.  Vista RC1 with limitations – 32bit only, UAC must be disabled

Note: until recently there was a bug in recording that meant recordings had the incorrect header. The latest versions of firestb record correctly. Vista RC1 (not earlier) will play these incorrect recordings but “Recorded TV” thumbnails will not be shown, see first FAQ for how to fix this problem.



It supports the following STBs for recording and channel change via firewire:

·         Motorola DCT-3412 (Tested – channel change)

·         Motorola QIP-6200 (Tested – channel change)

·         Motorola DCT-6200

·         Motorola DCT-6208

·         Motorola DCT-6412

·         Motorola DCT-6416 (Untested)

·         Motorola BMC-9012 (Tested – channel change)

·         Motorola BMC-9022 (Untested)

·         Scientific-Atlanta 3250HD

·         Scientific-Atlanta 4200HD

·         Scientific-Atlanta 8000HD (Untested)

·         Scientific-Atlanta 8300HD

Note: You must disable UAC for MyTray to work on Vista.


It supports the following STBs for recording via firewire:

·         169time STBs supporting the avx1


It supports the following STBs for channel change and recording via USB:

·         Nextcom R5000HD STBs supporting USB


It supports channel change of Sky STBs using the following controller:

·         USB Sky STB change channel controller


It supports external executable programs that can change channel, e.g. Sky Redeye (Untested).


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 runs in parallel to an existing MCE STB analogue tuner, you must have a working STB system before starting; this package needs MCE to record from the STB via the analogue tuner; 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.

What does it do?

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 DCT-3412, SA3250HD, SA8000HD or SA8300HD 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 to use the firewire recording or channel changing, and/or 2 serial ports for the DirecTV channel changer.

The MCE machine will need a USB connection to use the NextCom STBs for channel changing as well as the NextCom drivers and application package. If this package is installed using the default configuration it will be found automatically.


Thanks to DisabledTrucker @ 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 @ who wrote the Closed Caption parser included in firestb.msi.


Thanks to Cancan101 @ for the DirecTV Serial port application included in firestb.msi.


Thanks to everyone on www.thegreenbutton,, and who tested firestb.msi.


Download firestb.msi or firestb-vistarc1.msi and run it. Firestb-vistarc1.msi is the later version and works on Vista RC1. It should also work on MCE 2005 but has not been tested, though several bugs were fixed that would also affect MCE 2005. After the introduction dialog, you will see this dialog



Select the required options:

·         Firewire/USB 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.


Vista’s dialog is different but you need to select the option to install the drivers.


If you are using the DirecTV Serial Port application you also need to install .NET framework, if it’s not installed.


If you are using the NextCom STB you also need to install the NextCom drivers and application package and HDTVPump.

MCE Updates

I would recommend you install the following updates on MCE 2005:

MPEG2 Decoder

For Vista RC1 use the in build MPEG2 decoder.

For MCE 2005, you should already have an MPEG2 decoder installed to use Media Center for recording/playback and livetv. However, several of the earlier MPEG2 decoders don’t handle firewire recordings. The following are known to work:

·         NVIDIA MPEG2 1.02.196


Firewire Driver Installation

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.

The driver should then be installed, click on Finish when prompted.


Repeat for the 3rd device


Once all the drivers are installed, go to the device manager and disable the Unknown device


Note: The 3rd device may be installed as Motorola Vendor Device in which case is does not need to be disabled.

Firewire Channel Change Testing

If you have 1 STB MyTray will configure itself automatically. With 2 STBs MyTray will configure itself but may get the STBs the wrong way round. The following is a way to test the STB channel changing directly.


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.9, 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



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.9, 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, SA8X00)

-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.

MCE Channel Changing via Firewire

Firestb.msi creates a shortcut in Startup so MyTray.exe is run each time the machine boots.


MyTray can be configured from MCE->More Programs->Firewire/USB STB Settings. From this page you can enable recording, configure the handling of the MCE recordings and pick with STB is which. The check box “LiveTV” is disabled and does not work yet.


MyTray can also be configured from the MyTray application. 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.

MCE Recording via 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 combobox containing some options for the MCE recording: "Do nothing with MCE recording", "Move MCE recording if Firewire sucessful" and "Delete MCE recording if Firewire sucessful".

If "Do nothing with MCE recording" is selected there will be two recordings in the MCE’s Recording TV” list. The Firewire recording will be marked DTV.

If "Move MCE recording if Firewire sucessful" is selected, 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 the recordings will not be marked DTV.

If "Delete MCE recording if Firewire sucessful" is selected, MCE recordings will be deleted after they have been used to copy metadata to the firewire recording. If this is selected only a single recording will be seen in MCE’s Recorded TV list and the recording will not be marked DTV.


The check box “Enable LiveTV” is disabled and does not work yet.



1.  Only works for recording, LiveTV doesn't use the firewire tuners

MCE DirecTV Serial Channel Changing

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.

MCE NextCom USB Channel Changing

You need to install the NextCom application and driver package and plug in the STB, See for details. You need version 2.2 or above of the NextCom application.

When you open the MyTray dialog and select a tuner combobox you should see an entry “R5000HD”, select this entry to use the R5000HD STB.

NextCom do not support multiple STBs, nor do they support a way to select which device to use when executing their application so only a single NextCom STB is supported.

If the NextCom application has been installed in the default directory (C:\Program Files\R5000HD) MCE channel change will now work.

If you have installed the application in a different directory then use regedit to add a String called “ChannelChange0” or “ChannelChange1” to the key HKLM\Software\Timmmoore\MCETray. The string should be set to the path to the NextCom executable r5000hd.exe, for example if installed in the directory “d:\R5000”, ChannelChange0 will need to be set to “d:\r5000\r5000hd.exe”.

USB Sky Heenan Controller

The USB Sky Controller can be used to control Sky STBs. It plugs into the MCE machine and it does not require any drivers. Once the USB Sky Controller is installed, MyTray.exe will have two new options in the combo boxes “USB Sky” and “USB Sky Plus”, selecting one of these options for a tuner will cause the USB Sky controller to be used for channel change for this tuner. Joseph Heenan supplies controllers that support 1 or 2 STBs. MyTray supports 1 USB Sky controller for either 1 or 2 STBs, i.e. MyTray does not support using two 1 port USB Sky controllers.

External program for channel change

If you want to use tunertracker to track the channels on 1 or 2 STBs and use an external program to change channels, you can configure MyTray.exe to do this. This needs to be configured via the registry at the moment. Add a String called “ChannelChange0” (first tuner) and “ChannelChange1” (second tuner) to the key HKLM\Software\Timmmoore\MCETray and set it to the command line to be executed including parameters. MyTray will replace certain parameters:

·         %T which is replaced with 0 (for the first tuner) or 1 (for the second tuner)

·         %C which is replaced with the channel number as a single string

·         %D which is replaced with a single digit, the executable is then executed 3 times, once for each digit, e.g. for channel 123, the executable will be executed once with 1, then with 2 and finally with 3, leading zeros will not be executed, e.g. 12 will be executed as 1, 2

·         %0D which is replaced with a single digit, the executable is then executed 3 times, once for each digit, e.g. for channel 123, the executable will be executed once with 1, then with 2 and finally with 3, leading zeros will be executed, e.g. 12 will be executed as 0, 1, 2

Change History


1.  Fixed A/V with extenders changing channel

2.  Added support for channel change on SA3250HD


1.  Missing channel changes which happens quickly after pressing record

2.  Added support for recording from STBs

3.  Added support for SA4200 under the assumption it’s the same as the SA3250HD (Not tested)


1.  Closed Captions now in recordings, thanks to Zodiak for the filter

2.  Missing channel changes which happens quickly after pressing record (another case)


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


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


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


1.  Integrated DirecTV serial channel changing into MSI installer


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


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.


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.


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.


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


1.  Fixed channel.exe and channelw.exe to do supported check correctly without –v parameter


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


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


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


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


1.  Retry copying metadata if failed to set attribute


1.  Fixed metadata failing if 2 recordings finish at the same time


1.  Fixed creating firewire recording directory


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


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


1.  Fixed a case where recording took a livetv tuner and channel didn’t change correctly


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


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


1.  Fixed 2 issues with 7/05/2005.1


1.  Fixed another issue with 7/05/2005.1


1.  Fixed an issue with logging of subtitles


1.  Fixed an issue with 6/25/2005.4


1.  Created a DLL version of channel.exe and added to package

2.  Add support for SA8000HD and SA8300HD (Untested)


1.  Added option to delete MCE recordings if firewire recording is successful


1.  Modified channel.exe, etc. to support channel numbers >= 1000

2.  Modified installer to install or update the .inf file


1.  Fixed a problem with 7/05/2005.2

2.  Updated readme.htm for driver installation changes

3.  Added registry key for Max STB channel number


1.  Fixed a problem with reading devpath from registry in MyTray

2.  Check if multiple remote clients running MyTray.exe and only the first controls the STBs


1.  Added support to run MyTray as a service. The service controls the STBs and does recording. MyTray run from Startup group displays channel/recording but doesn’t control the STBs

2.  Add registry notifications when MyTray registry settings change


1.  Fixed a bug with 7/27/2005.2

2.  Fixed an issue with PID parsing if querying for PID information before the parser is fully initialized occurs


1.  Fixed a bug with sharing tuner but channel is not yet known


1.  Added support for AIW tuners and tidied up the tuner checking code

2.  Added support not to truncate logs if 2 or more copies of MyTray running in different Winsta’s

3.  If multiple copies on MyTray running in different Winsta’s, first MyTray does channel changing and recording other copies just display information and allow configuration of MyTray


1.  Tied up the logging code

2.  Fixed 8/2/2005.1


1.  Check the inf file for additional supported STBs

2.  Added registry setting to disable channel change via MyTray


1.  Added option to execute an external program to change channel rather than use firewire, e.g. NextCom R5000 supplies a command line app to change channel and does not supply an SDK to allow other applications to change channel, only support for STB tuners


1.  Check explicitly for R5000HD device and default external program configuration correctly for the R5000HD

2.  Add %T parameter to external channel change program for tuner number

3.  Added registry option to pick first or last PID detected


1.  Increased maximum number of ATSC tuners to 2 for Roll-up 2

2.  Added support for an external record program, assumes recording to a .ts file and then processes the file to a .dvr-ms file, copying meta-data from MCE recording


1.  Tested on Roll-up 2, recording and channel change works


1.  Fixed a number of issues with 8/8/2005.2

2.  Reducing logging for device searching and registry setting loading

3.  Add combobox selection and default selection for R5000HD

4.  Number of attributes in dvr-ms increased to 83 with roll-up 2

5.  Check CurrentBitrate in firewire recorded dvr-ms and if HD recording set new roll-up 2 WM/WMRVHDContent metadata attribute


1.  Fixed an issue if one tuner but DevInstance is 1

2.  Add check for USB Sky STB change channel controller and to send it change channel commands


1.  Fixed not sending –rem ok at end of a r5000hd channel change

2.  Fixed not starting record for a r5000hd

3.  Add start r5000hd.exe when select it R5000HD as STB, otherwise causes problems if multiple copies are running

4.  Assume r5000hd.exe is set to save recorded .ts files in “Recorded TV\Fire”


1.  Fixed 8/12/2005.3

2.  Added timeout between digits for R5000HD channel change


1.  Added a registry entry to record only HD recordings


1.  Added hdproxy.exe which on Roll-up 2 calls into MCE to mark recorded item as HDTV so the HD logo appears on HD firewire recordings

2.  Added support for R5000HD.exe with filename on command line

3.  Add MCE version check for Roll-up 2 so hdproxy.exe is not called on Roll-up 1

4.  Fixed a problem with hdproxy.exe where setting the HDTV flag wasn’t writing recordings.xml to disk


1.  Extended hdproxy.exe so it can set or reset HDTV, ATSC and DTV flags in recordings.xml

2.  Fixed r5000hd recording, didn’t generate filename correctly

3.  Added support for r5000hd.exe > 2.0a filename parameter, disabled until update released

4.  Fixed a problem with r5000hd channel change with leading 0s


1.  Fixed a number of issues converting .ts files to .dvr-ms files

2.  Changed r5000hd to use %D rather than %0D

3.  Added a separate channel digit timeout for r5000hd

4.  Changed R5000HD to send commands to running application via WM_COPYDATA


1.  Fixed an issue with channel up and down with r5000hd

2.  Minimize r5000hd.exe after starting it


1.  Fixed an issue with r5000hd dropping an intermediate digit

2.  Changed .ts to .dvr-ms conversion to act after .ts recording is finished


1.  Closed Caption needs to be disabled for new extender

2.  Fixed an issue with IsAudioAC3 attribute, if fails to be set doesn’t fail the recording

3.  Modified channel.exe, channelw.exe and channel.dll –d parameter to access full range of AV/C Panel buttons 0-127 with ‘0’ being 32

4.  Add capability of sending exit button after changing channel, removes the STB program info popup on channel change


1.  Allow registry keys SetATSC and SetDTV to have value of 2 which means set regardless of MCE recording move setting, default SetATSC to 2


1.  Call hdproxy.exe for ATSC and DTV to set these flags in recordings.xml

2.  Work round for new extender not generating LiveTV events after 1st time


1.  Fixed ref count issue on tuner when share tuners

2.  Print out error codes when tuner allocation/connect fails

3.  Work round for Roll-up 2 when an error occurs, LiveTV session is closed and a new session is opened. LiveTV event doesn’t occur


1.  Add another AIW tuner detection


1.  Included new sbsins.dll MCE graph modification code

2.  Changed graph event stopping code so don’t get invalid events on stopping the graph

3.  Added sbstest.exe into the package

4.  Added vob2dvrms.exe into the package, converts .ts and .vob files to a .dvr-ms file


1.  Added different device code to list to restart after S3 resume, SA3250HD reports different device code


1.  Changes to only restart device on S3 automatic resume, not manual resume

2.  Added a restart device if get firewire device fails with NO RESOURCES, helps S3 resume problems

3.  Fixed a problem writing commands to Sky USB controller


1.  Merged code from vob2dvr-ms into MyTray for converting .ts to .dvr-ms files


1.  Updated vob2dvr-ms to support multiple vobs being converted a .dvr-ms file, takes a directory structure of “Name\VIDEO_TS\*.vob” and converts to “”. You lose secondary audio streams, sub-pictures, etc.


1.  Fixed an issue with generating filename for R5000HD converting .ts to .dvr-ms

2.  Fixed an issue not starting R5000HD recording correctly

3.  Fixed a number of issues with vob2dvrms, now supports an output directory argument


1.  Fixed an issue with vob2dvrms with file extensions

2.  Fixed an issue with S3 and Motorola STBs

3.  Read duration from .ifo header when converting from .vob to .dvr-ms and write to .dvr-ms metadata

4.  Re-write the tuner allocation algorithm to fix case of 2 recordings and watching livetv on the same channel as 1 of the recordings


1.  Increase the number of STBs being tracked to 4


1.  Fix for 9.1.2005.3


1.  Send volume up/volume down command to Motorola STBs before start recording, DCT-6412 mutes itself when it stops recording, this means firewire does not get an audio stream


1.  Increased the time difference from current time to match on a MCE recording

2.  Fixed an error in .ts to .dvr-ms waiting for incorrect file


1.  Fixed an error in .ts to .dvr-ms conversion needing unique profile name

2.  Enabled R5000HD 2.1 command line support


1.  Fixed 9/24/2005.2

2.  Fixed an issue with multiple .ts to .dvr-ms conversion graphs running simultaneously

3.  Increased timeout waiting for initial PIDs

4.  Changed installer to check for Media Center before installing

5.  Add MCE HTML page to configure Firewire


1.  Increased the MPEG2-TS PID timeout

2.  Check the bitrate of the recording and fail the recording if its too small


1.  Fixed a number of bugs in HTML MyTray configuration page and ActiveX control

2.  Added a channel mapping table to R5000HD support


1.  Fixed bugs in 9/27/2005.1

2.  Fixed bugs in 9/27/2005.2

3.  Fixed an issue with recording with tuners in use for livetv, should take most preferred tuner

4.  Add wait if firewire recording is unavailable due to access denied, likely due to be firewire recording is being watched while recording, will wait for 30 minutes before giving up


1.  Added support for 1-10 ranges in SkipChannels

2.  Added MaxSTBChannels, ClosedCaption, FastChannel and SkipChannels to HTML configuration page


1.  Added support for recording onto a different drive than MCE’s “Recorded TV” directory. Registry “Directory”, should be of style \\?\D:\Recorded TV\Fire”, “D:\Recorded TV” should be on the watch list. Firewire recordings are created in “D:\Recorded TV\Fire” and moved to “D:\Recorded TV” when finished and metadata added

2.  Added version 8d6 version to supported list

3.  Fixed 9/29/2005.2


1.  Fixed 9/30/2005.1. Registry “Directory”; should be of style \\?\D:\Recorded TV\Fire”, “D:\Recorded TV” should be on the watch list. Firewire recordings are created in “D:\Recorded TV\Fire” and moved to “D:\Recorded TV” when finished and metadata added

2.  Fixed updating of 9/29/2005.2

3.  Modify PSI parser to make it more reliable to stream errors


1.  Fixed auto device restart code for crash restart

2.  Fixed 10/1/2004.3

3.  Removed SkipChannels from HTML configuration page until can get it working

4.  Fixed 9/28/2005.3 didn’t handle 2nd recording correctly with 2 STBs


1.  Added SkipChannels to HTML configuration page, # and – both work for ranges, e.g. 1-10 and 1#10 mean the same, allows use of remote control to enter ranges

2.  Modified the MoveFocus code to work better with a scrollable list of spinners

3.  Modified the bitrate failure check to require a bitrate > 1.8Mbps before the recording is considered good


1.  Add registry DWORD SendPower, will send power command to STB on suspend and resume

2.  Adjusted bitrate check for HD to 8Mbps, down from 10Mbps

3.  Modified installer to correct mytray.mcl during install if not installing in default directory

4.  Fixed 10/6/2005.1


1.  Added support for Motorola BMC-9012

2.  Fixed a tuner allocation problem, recording channel X, watching livetv Y, starting recording next program on X, should take tuner for livetv

3.  BMC-9012 uses firewire command 0, added to special STB command table


1.  Changed format of Closed Captioning in StreamBufferSink. Closed Captioning now works with WMP and extenders, new filter between CCCP and SBSSink

2.  Removed MCE check in installer

3.  Made PnPID checks case-insensitive


1.  Fixed detection of Philips based tuner cards

2.  Modified installer to re-instate MCE check but have a command line parameter to override check: msiexec /i firestb.msi IDENT=”1” will install on a non-MCE machine


1.  Changed load listbox logic in mytray.exe and traycon.dll to handle > 2 tuners, where first 2 tuners are not STB tuners

2.  Changed tunertracker logging to allow for > 2 tuners, where first 2 tuners are not STB tuners


1.  Fixed vob2dvrms to set Duration property to correct value, converting faster than real-time seems to set Duration to conversion time rather than actual converted file play time


1.  Fixed Duration property in .ts to .dvr-ms conversion, same problem as 10/24/2005.1


1.  Rebuilt using RTM Visual Studio 2005


1.  Use the –w_hide flag on R5000HD v2.2 to start Nextcom minimized

2.  Changed visual studio projects for mytray.exe, tunertracker.dll, kill.dll, channel.exe, channel.dll, channelw.exe, vob2dvrms.exe and to embed manifest


1.  Changed installer to include merge modules for C++ runtime and MFC

2.  Changed mytray.exe to static MFC library and removed MFC merge module

3.  Fixed array index overrun in SetAC3Attribute, cause crash on start of recording


1.  Fixed buffer overrun when zeroing WM/MediaCredits

2.  Fixed a lot of wcscpy_s buffer size issues


1.  Fixed IsAudioAC3 metadata, been failing to write metadata attribute since rebuilt with RTM. Now writing attribute correctly

2.  Added DCT6416 to supported PnP IDs

3.  Sometimes failed to move firewire recording with shared access, if MCE is displaying information about file. Retry in this case

4.  Set WM/MediaCredits to large value at start of recording, seems to fix large time delay to copy metadata after recording


1.  Added Post execute in channel.dll


1.  Fixed bug in 2/3/2006.1


1.  Added support for DCT-3412


1.  Build 2 versions of hdproxy.exe (MCE 2005 rollup 2 and Vista), MyTray checks OS version and uses correct version

2.  Changed installer so will install on Vista

3.  Changed stop recording so Control Stop is on another thread and can be timed out

4.  Tested firewire recorded .dvr-ms files from MCE 2005 on Vista MCE. HD files do not play in MCE but play in Vista Media Player


1.  Changed installer so works on both Vista and MCE 2005. Command for non MCE machines is msiexec /i firestb.msi IDENT=0


1.  Fixed installer so More Programs entry works on Vista. Vista doesn’t allow mytray.mcl to be written in Program Files directory so write it in %temp% directory

Next Vista issues:

·         Tunertracker memory mapped file not being created

Create tunertracker as a separate process and have tunertracker MSAS send messages to the service. The tunertracker service needs global name create privilege

·         Firewire .dvr-ms recordings not playing in Vista MCE (but does in WMP 11)


1.  Fixed case of sharing tuner between livetv and recording. Channel tracking may be incorrect when get pay event on livetv

2.  Fixed case when allocating tuner to recording and sharing tuner with other sessions, shouldn’t change other sessions channels if recording hasn’t received channel information yet

3.  Created one file containing all the PnPIds of STBs supported and use it in all programs

4.  Can’t create global memory mapped file on Vista if not in Session 0. For now remove Global from memory mapped file so will not work with terminal server sessions and extenders on Vista. Also don’t will not work except with first logged in user and don’t log that first user off

5.  Fixed 2/18/2006.1 so on MCE 2005 when %windir% is “c:\windows” registration still works

6.  Changed .dvr-ms format so audio and video is in Encrypted/Tagged format


1.  Fixed 2/19/2006.6


1.  Another go at fixing 2/19/2006.6

2.  Modified MyTray so if it is installed as a service, creates memory mapped file and modified TunerTracker so if it correctly starts MyTray as a service opens memory mapped file


1.  Added support for QIP-6200 STB


1.  Fixed issue in TunerTacker when all STBs are in use with livetv and a recording starts and one of the STBs is watching the same channel as recording, wrong STB maybe used

2.  Fixed an issue in vob2dvrms with relative directories

3.  Fixed an issue in causes issues with CC


1.  Fixed issue in installer so installs correctly on non-MCE


1.  Fixed a couple of issues in .inf file

2.  Fixed issue in installer so doesn’t multiple copy the inf file


1.  Fixed a issue when recording a livetv channel


1.  Fixed ClosedCaption problem, doesn’t completely fix it. Seems to work on some channels but not others – works for analogue channels and some digital channels.


1.  Missing a Release for ClosedCaption Directshow filter


1.  Check tuners found in registry are actually running


1.  Fixed an install issue on non c: drives


1.  Fixed an issue with format of video in dvr-ms file, caused problems playing files back on Vista. Thanks to the Media Center group for finding this bug and letting me know.


1.  Fixed an issue with logging, when an extender shutdown, there is a continuous log of that in the log file.

2.  This version installs on Vista with UAC disabled, doesn’t mean it works on Vista.


1.  Fixed a tuner allocation error.


1.  Updated hdproxyv.exe for Vista beta 2.

2.  Added directory monitor that monitors directories in WatchedFolders registry key. If you are running a MCE that uses recordings done on another MCE machine this will update the HD attributes for the UI


1.  Added fixdvrms.exe to package to fix dvrms files that will not play on Vista.


1.  Installs on Vista Beta 2 with or without UAC enabled but UAC must be disabled to run correctly (Control Panel->User Accounts->Change security settings, uncheck “Use User Account Control (UAC) to help protect your computer”.

2.  Modified inf file so Unknown device on DCT6200 is installed with no driver, no need to disable the device.

3.  Firewire channel change hangs on Vista. Disabling firewire channel change on Vista, recording works.


1.  Fix for tuner allocation when recording while watching same channel while recording on 2nd tuner (thanks Ray Kuss for finding scenario).


1.  Add MFC merge module into installer, otherwise mytray.exe will not run if an MFC is not installed on the machine.


1.  Fixed a crash if run mytray.exe or channel.exe on a machine with no video capture devices.


1.  Built hdproxyv.exe against Vista RC1.

2.  Enabled firewire channel change on Vista, working with RC1.

3.  Removed null driver messed up inf file.

4.  Vista RC1 adds more attributes to recording, allow for them, skip WM/Picture, MCE will add it if not there.

5.  hdproxy.exe/hdproxyv.exe not run if move MCE recording


1.  Updated fixdvrms.exe, didn’t catch all cases. Also added –us and –uh to force header into HD or SD resolution.

2.  Corrected an error in checking for memory mapped file already existing, fixed extenders on Vista.


My recordings do not play on Vista?

I had an error in MyTray and it marked the dvr-ms files incorrectly. Vista Beta 2 checks and fails to play these files. This error is now fixed and new recordings play on Vista. I believe Vista is removing this check but if you want to play older recordings in Vista Beta 2, use fixdvrms which is a command line program installed with the package.

      Fixdvrms [-u]

Without –u fixdvrms will check each file specified and print out whether it has an incorrect header or not. With the –u argument it will fix the header. Only a single file name can be supplied but it may include wildcards e.g.

      Fixdvrms –u *.dvr-ms

Will fix all dvr-ms files in the directory.

What about Live TV?

I believe this is possible and I am working on it.

Can I use it to control more than 2 STBs?

The package now tracks 4 STBs; however this has not been tested above 2 STBs.

How to I install on a non-MCE machine?

The package by default checks for MCE 2005. However, the drivers and command line utilities are useful on non-MCE machines, to install on a non-MCE machine run the following command:


MSIEXEC /i firestb.msi IDENT=0

Are HD recordings really HD?

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.

Note: Scientific-Atlanta STBs do not support conversion of analogue channels to MPEG2-TS for firewire, so with these STBs no firewire recording will be made for analogue channels.

The Motorola DCT-3412 does not support conversion of analogue channels since it does not contain an analogue tuner.

How do I tell which recordings are HD?

Before rollup 2 this was difficult. With rollup 2 there is a HD logo shown in recorded show information for firewire HD recordings.

What about 5C?

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.

I see 2 recordings in MCE Recorded TV list?

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 "Move MCE recording if Firewire sucessful", 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.

If you select "Delete MCE recording if Firewire sucessful" the MCE recordings will be deleted after use.

I don’t get any firewire recordings

Make sure "Do nothing with MCE recording" is selected, otherwise the MCE recording is moved out of the Recorded TV directory or deleted 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 select Move MCE recording or Delete MCE recordings.

If “Do nothing with MCE recordings” is selected and there are not two recordings per recording then the firewire recording is failing. There are four reasons this can 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, SA8000HD or SA8300HD. Unlike the Motorola STBs, the SA3250HD, SA8000HD and SA8300HD do not contain a MPEG2 encoder and doesn’t encode analogue channels for firewire

Do I get 5.1 surround sound?

Sometimes J, it depends on the transmission from the cable company. I have seen 5.1 sound but many shows are only 2 channel.

Can I use the WatchOrder, WatchPrefered, RecordOrder, RecordPrefered registry settings?

Yes, this should work. See “Media Center Tuner Priority” for a utility that controls these parameters.

I don’t see any combo-boxes in the mytray.exe dialog?

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.

I have added/removed an analogue tuner and MyTray doesn’t recognize the change

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.

I can’t find the tuner.txt and tuner.log files?

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.

Do I need a different Guide for firewire?

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.

Note: This means that MSN remote recording works for firewire recordings.

Can I start playing the firewire recording before the recording is finished?

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.

I can’t play the recordings in Windows Media Player

Recordings from 10/8/2005 and later builds should support WMP, I have changed the format of Closed Caption within the .dvr-ms file and WMP handles this new format.

Recordings earlier than 10/8/2005 contain Closed Caption information in a format that confuses Media Player.

Audio and video plays fast

The audio plays fast when playing a firewire recording. This has been found to occur with some Motorola STBs, using the NVIDIA decoder with SPDIF pass-through when recording analogue channels. Some Motorola STBs encode audio from an analogue channel using 32 KHz sampling rate. Setting the SPDIF pass-through to use Pro-Logic II seems to cure this problem.

Can I use this to record from or control DirecTV STBs?

This package contains the application from Cancan101 to change channels of DirecTV STBs via serial ports.


There are two options for recording:

1. 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. uses USB 2.0 instead of firewire. NextCom provide an executable to change channel and record to a .ts file. MyTray if configured to use the R5000HD will use NextCom’s executable to channel change and to record from the STB. MyTray converts the recording made by NextCom into a dvr-ms file and adds the correct MCE meta-data. MyTray will do channel change via USB for R5000HD STBs.

Can I use this to control X STB?

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.

Another method is to use ChannelString0/1 registry keys to run an external program.

Can I use USB to control the STB?

This package only supports firewire. It does however support channel change using an external program, including support for the R5000HD via r5000hd.exe, see the FAQ on NextCom STBs. 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. Another method is to use ChannelString0/1 registry keys to run an external program.

Channel Change works but Recording doesn’t

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.

Does it work with S3?

There seems to be some issues with the firewire drivers and S3. MyTray has a work-around that restarts the firewire device on resume from S3. This has been tested on a SA3250HD and a DCT-6200.

Why are channel change commands sent to AV/C Panel device?

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 with channel.exe to force the firewire tuner device to be used will blue screen the machine.

How does it work?

There are several 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. this was written by zodiak@dvbn, it’s a DirectShow filter 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

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 process. This DLL exposes support to allow the MCE LiveTV DirectShow graphs to be manipulated. Finds the MCE msvidctl object that owns and controls the MCE LiveTV graph. Once it finds the object and its interface, it changes the object to use the firewire’s StreamBufferSource rather than the analogue tuner’s StreamBufferSource.

7.  hdproxy.exe: This is a managed application that on MCE 2005 rollup 2 calls into MCE to mark a scheduled recording as HD or DTV. MyTray.exe modifies the HDTV attribute in the .dvr-ms firewire recording if the recording is HD (which is decided based on bit rate of the stream). However, this does not cause MCE to display the HD logo unless the recording is moved out of MCE’s watched directories and back in again. This causes MCE to lose the link to the scheduled recording which will cause it to re-record the show again. This application calls MCE to mark the show as HD without losing track of the recorded schedule.

8. This is a DirectShow filter, which takes the CC output of and converts the output format. The output format is AUXLine21Data/Line21_BytePair whereas the format of the output is an Encrypted/Tagged output. This format is supported by MCE and is converted back to AUXLine21Data/Line21_BytePair by the encdec.dll filter. It also means it doesn’t show up as an unencrypted and WMP then ignores it and plays the video and audio streams correctly.


Also see for a good explanation


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.

API to TunerTracker.dll

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. Another method is to use ChannelString0/1 registry keys to run an external program.

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.

API to Channel.dll

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




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.


Channel.dll can also execute a program after changing channel. Create a string registry




Set this string to the location of the program to run after changing channel.

Registry Settings

There are some registry settings that may be useful:

1.  (UI) 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. The directory is normally a subdirectory of MCE’s “Recorded TV” directory. If the directory is of the format “\\?\D:\Recorded TV\Fire” then the firewire recordings can be on another drive. The directory must start with “\\?\” and must be at least 2 directories deep. The deepest directory is used by MyTray.exe for temporary files and the 2nd deepest directory is where firewire recordings will end up. This directory should be in the MCE’s watch directory list.


5.  (UI) By default Closed Captioning is recorded into the dvr-ms file. MCE will use the Closed Captioning. If you don’t want to record Closed Captioning in the dvr-ms file, 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.


7.  (UI) By default tunertracker assumes there are 999 STB channels and channels 1000 and above this are ATSC channels. If your STB has channel numbers greater than 999 then add a DWORD called “MaxSTBChannel” to the key HKLM\Software\Timmmoore\MCETray and set it the maximum STB channel number.


8.  By default MyTray uses firewire to change channel, Cancan101 supplies an alternative MyTrays for DirecTV serial control. If you need an external program instead of using MyTray or MyTrays then add a String called “ChannelChange0” (first tuner) and “ChannelChange1” (second tuner) to the key HKLM\Software\Timmmoore\MCETray and set it to the exe to be executed plus parameters, some parameters are modified:


·         %T which is replaced with 0 (for the first tuner) or 1 (for the second tuner).

·         %C which is replaced with the channel number as a single string.

·         %D which is replaced with a single digit, the exe is executed 3 times in this case, once for each digit, e.g. for channel 123, the exe will be executed once with 1, then with 2 and finally with 3.


9.  By default all STB channels are attempted to be recorded over firewire, if only HD recordings are wanted via firewire then create a registry key “HDOnly” as a DWORD and set it to 1. The firewire recording will be made to find out whether the firewire recording is HD or not and then it will be deleted if it is not an HD recording.


10.By default firewire is used for channel change. If firewire is wanted for recording but not for channel change then create a registry key “EnableChannelChange” as a DWORD and set it to 0.


11.The R5000HD supports OTA channels but accesses the channels via 4-1, 5-1, etc. whereas MCE uses a 3 digit channel number. It is possible to map MCE channels to R5000HD channels. Create a registry key ChannelMap as a REG_MULTI_SZ to the key HKLM\Software\Timmmoore\MCETray. On each line add a string of the form “100 4-1”. The first number is the MCE channel to map from and the second is the R5000HD channel number.


12.Monitoring recordings from another MCE and update HD/DTV flags on local machine. Set WatchedMonitoring DWORD to 1 and then MYTray will monitor directories in WatchedFolders.

Can I use channel.exe without MCE?

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 (channel.dll should also work with SageTV but has not been tested). See Setting up BTV to control your STB via Firewire for Beyond TV (Note: channel.dll is available in the firewire cmd directory).

Can I use MyTray to record and use IR for channel change?

Yes, look at the registry settings for EnableChannelChange.

Can I use tunertracker with a different channel change program?

Yes, see the ChannelString0 and ChannelString1 registry keys. When these keys are set the executable is executed for the tuner rather than the normal firewire commands. An example would be to set ChannelString0 to “r5000hd.exe -rem %D”. This will cause r5000hd to be executed 3 times, the 1st containing the most significant channel digit as its parameter, the 2nd the next most significant, etc. though this is not required for the NextCom STBs since they are directly supported by MyTray.exe. Another example would be to set ChannelString0 and ChannelString1 to


“C:\Program Files\Promixis\Girder\event.exe” TunerTracker 18 %T %C –silent


and define an event in Girder called TunerTracker to handle the change channel event (Note the “s around the exe, this is required when there is a space in the exe path).

Can I use mytray.exe to record from firewire without MCE?

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

I have problems with a Sony MCE 2005

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

I have problems with the Uneed X15e case

Thanks to ernisse who found that the irtans software supplied with the X15e case and this package are incompatible with each other. The ehmsas.exe process will crash periodically with both software packages installed. Removing the irtrans software or the firewire package fixes the problem.

Can I send other buttons than change channel?

Channel.exe has a parameter –d. When used with this parameter the channel parameter is a button number, for example 32 is the button number for the button 0. So

Channel –v –d 2 32

will send the command for button 0 to the STB. The following are the buttons supported by AV/C Panel device; they may or may not be supported by a STB.


0     select                        1     up         

2     down                          3     left

4     right                         5     right-up   

6     right-down                    7     left-up

8     left-down                     9     root menu

10    setup menu                    11    contents menu

12    favorite menu                 13    exit

32    0                             33    1          

34    2                             35    3

36    4                             37    5

38    6                             39    7

40    8                             41    9

42    .                             43    enter/search

44    clear                         48    channel up

49    channel down                  50    previous channel

51    sound select                  52    input select

53    display info                  54    help

55    page up                       56    page down

64    power                         65    volume up

66    volume down                   67    mute

68    play                          69    stop

70    pause                         71    record

72    rewind                        73    fast forward

74    eject                         75    forward

76    backward                      80    angle

81    subpicture                    96    play function

97    pause-play function           98    record function

99    pause-record function         100   stop function

101   mute function                 102   restore volume function

103   tune function                 104   select disk function

105   select a/v input function     106   select audio input function

113   F1                            114   F2

115   F3                            116   F4

117   F5

I have a Motorola DCT-6412 STB can I use both tuners with firewire?

No, unfortunately the second tuner is not available via firewire.

What setup should I use?

Depends a lot on what you are trying to do.

However, for an example, my MCE 2005 setup is as follows:

Shuttle G5 8300, P4 3.4GHz, 2G RAM - modified to make it quieter

~500G SATA Disks

Dual NVIDIA tuner – STB tuners

VBox USB-A 2560, Fusion-HDTV USB – OTA tuners

Sapphire X1300 512M (No fan), ATI 6.3 drivers

2 Motorola DCT-6200 STBs

Syntax Olevia 37” LCDTV

7” LCD used as a Front Panel Display with a custom FPD application


The PC and LCDTV are connected via DVI. The PC and 7” LCD are connected via VGA.

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


For Vista I have a new machine:

      2 Proc dual core Opteron 270, 4G RAM, SuperMicro motherboard

      1x 500G PATA disk, 1x 500G SATA disk

      DualTV NVIDIA tuner (XP drivers) – STB tuners

      Sapphire X1900XTX 512M, inbox drivers

      Creative X-Fi Xtrememusic

      Belkin PCI-Express firewire

      2 Motorola DCT-6200 STBs

Syntax Olevia 37” LCDTV

7” LCD used as a Front Panel Display with a custom FPD application


The PC and LCDTV are connected via DVI. The PC and 7” LCD are connected via VGA.

The STBs are connected to the NVIDIA tuner via S-Video cables and audio cables

The STBs are also connected to PC via Firewire

Audio is via analogue 5.1 from X-Fi to Logitech Z680 speakers



Most of the Media used by MCE is stored on another machine containing ~5TB of disk space, there is a gigabit Ethernet network connecting the machines.


Other things of interest:

I use VolumeTracker on MCE2005 to copy the MCE volume to SPDIF

I use Speedfan for temperature monitoring and fan control

I use a modified version of MediaDisplay sample in the MCE SDK for displaying MCE information and Speedfan temperature onto a 7” LCD screen for use as a Front Panel Display

I use PerfectDisk for defragmentation on the disks every other night; I found this is required with the number of simultaneous streams I am recording

How do I to create mstapeo.sys?

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

Can I use mstapeo.sys on XP SP1a?

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

Requested Features

List of feature requests in no particular order:

1.  Vista

Work on Vista

Installs, records and channel changes work

Xbox360 extender work

2.  HD/DTV on non-recording MCE

If another MCE is monitoring share that firewire recording is made into, it doesn’t update the HD/DTV flags at end of recording

DONE: WatchMonitoring registry key

3.  HDProxy

Move from .exe to .dll

Change mytray to load correct .dll at startup

4.  LiveTV

Need to make IVidCtl search robust

Need to solve shutdown tuner problem

Integrate into MyTray

Fix resource freeing problem in MyTray for LiveTV

5.  Support mix of STB and non-STB tuners

Need to spot enabled analogue tuners that are not STBs

Add them to the tuner list

Do tuner allocation as normal with STB and analogue tuners

Mark in the Memory mapped file, it’s not a STB

Change MyTray to skip those tuners

Configuration tools need changing so as not to allow configuration of those tuners

6.  Support changes in tuners and STB configuration by MCE on the fly

Tunertracker.dll, MyTray and traycon.dll need to monitor Tuner registry key and reconfigure themselves if the tuner configuration changes

7.  Have MCE STB configuration UI update automatically

Traycon.dll already can monitor the registry keys for MyTray configuration settings and for tuner configuration settings. Need to fix default.htm and traycon.dll to allow traycon.dll to generate events to default.htm jscript

8.  Configuration of other settings in MCE STB UI

Enable/disable sending power on/off cmd to STB on Resume/Standby

Enable/disable fast channel change (channel up/down)

Enable/disable channel change

Use first/last PID for a stream

Enable/disable save only HD recordings

Enable/disable send exit on channel change

Never/Always/only firewire set ATSC mode

Never/Always/only firewire set DTV mode

Set firewire file prefix

Postfix for MCE recordings

9.  Light red led on STB when recording

Need to find a way to talk to GUI rather than pretend to be buttons

10.Read channel information from STB

Similar to 6, as well as need to get status from STB

11.DONE: Correct duration in .ts to .dvr-ms conversion (and in vob2dvrms.exe)

Got real duration from .ifo file

Can’t write to Duration property from WMSDK APIs nor from dvr-ms APIs

DONE: Open file and write directly rather than use WMSDK

12.Option to delete .ts files in R5000HD support

13.Support for channel change on SA3250HD with Sara software

Haven’t been able to find a command that works

14.Run MyTray as a service

Mostly done, testing only?

Needed for Vista unless disable UAC?

Also get service to create memory mapped file

Tunertracker use Mailslot to decide which is master

Master Tunertracker writes to memory mapped file

Need to change installer to install MyTray as a service rather than in Startup group.

15.Support Bell Express Vu 9220 STB

Need PnP IDs.

16.Get recording working with BMC-9012

Channel change works but recording doesn’t.

Recording also fails with DVHSCap, looks like it’s a STB problem.

17.DONE: Faster way to copy metadata from MCE to firewire recording for HD recordings

Currently copy after recording, trying handling race condition of copying at start?

DONE: Add large metadata attribute at start of recording and delete at end of recording

18.Improve the UI for setting recording directory, standard Recorded TV directory or a different drive

Directory registry entry allows subdirectory from MCE’s Recorded TV directory or to a directory on another drive. The format of Directory for another drive is not intuitive. Setup UI so it gives the following options: Subdirectory “Fire” from Recorded TV directory or “Recorded TV\Fire” on each available drive.

19.DONE: Move code for STB PnP IDs into common code

Currently MyTray.exe, kill.dll, traycon.dll and channel.exe have a list of supported PnPIDs. Move this list into a common file and include in all dlls and exes.

20.Monitor playing recordings for the case of watching a recording that is being recorded at the same time

Delay the copy of the metadata until stop watching the recording.

21.Support cable QAM tuners

Problem is that there isn’t an analogue tuner for MCE to look after

Divio USB2 tuner has an analogue tuner; can we use that tuner to make MCE happy?

Other option is to copy registry Config from an analogue tuner to make a 3rd tuner. MCE also checks whether the device is actually running, which will be difficult to fake

Shows up as a BDA driver

Recording is probably ok, current Directshow graph should work using the BDA tuner as the MPEG2-TS input

Channel change is unknown but probably via standard DirectShow APIs to BDA driver

22.Support FireDTV STBs

Problem is that there isn’t an analogue tuner for MCE to look after

Shows up as a BDA driver

Recording is probably ok, current Directshow graph should work using the BDA tuner as the MPEG2-TS input

Channel change is unknown