View Full Version : SageTV and USBUIRT

08-20-2003, 09:26 PM
I just ordered the USB-UIRT since I want to be able to use the receive abilities with my Sony Universal remote to change SageTV and the transmit abilities to change my digital Motorola cable box.

After reading all the threads on using Girder and the USB-UIRT to get it to work, I am confused and not sure how to configure it all. I know that the 1.4 version of Sage has built in compatibility with the receive function, but not the transmit function to control my cable box. The version of Sage after that is supposed to have built in USB-UIRT transmit support (I am not sure if this will be SageTV 1.5 or SageTV2) to change the cable box, but I would like to get it to work before that next release comes out.

So, can any one please help me? What files do I need and what steps do I need to take to set everything up correctly to get the USB-UIRT to work with SageTV to change my cable box? Any help would be greatly appreciated.


08-21-2003, 06:52 AM
Don't know if this will help you, but I created and exported a command group for Girder back in April which can be used to handle execution of channel change commands. If the USBUIRT can control your cable box this might work for you.

You can download it at

08-21-2003, 08:52 PM
Thanks audio.

I am not all that familiar with Girder. I have used it a little. I supose I just load the file into Girder, but then what?

Thanks again,

08-24-2003, 09:55 AM

Sorry for the delayed response. The "README" for the girder group I created is provided below. Hope it helps.

-- ==================
-- SageSetExternalChannel
-- ==================
-- This GML is intended for use with SageTV v1.x It was designed to be
-- invoked using the EXETunerPlugIn.exe from Frey Technologies.
-- By default channels can be updated against two different devices, but
-- more could readily by added by inserting an additional command against
-- each digit multi-group, and the Enter multi-group if needed.
-- As usual - no warranty of any sort is made that this gml will do anything
-- of any use for anyone. If you or any of your loved/hated ones/things are
-- in any way affected in a way which harms or offends anyone or anything
-- I can not and will not be held responsible and hereby disclaim any knowledge
-- of this gml.
-- ==================
-- learning digit commands
-- ==================
-- For each digit, select antenna, svideo, or each in turn as needed, choose
-- the Plugins tab, select the driver for the IR transceiver you're using,
-- and click Settings. From the driver settings window, select Learn, and press
-- the appropriate digit on the selected remote. Hold as requested until the
-- capture dialog closes. By hand or using the remote, change the channel of the
-- device for which you just recorded a command. Set the Repeat number in the driver
-- settings dialog to 1. Click the Test button. If it takes too long, move the
-- Speed slider up 1 notch only, and re-test.
-- Learn and test commands for a single digit at a time. If things don't seem to be working
-- well see the TROUBLESHOOTING section below.
-- =========
-- My settings
-- =========
-- This may be old news for veteran Girder users, but in my case I needed to
-- do some experimenting to obtain a workable solution for capturing digit
-- commands. I'll list the steps I found necessary for success below, your
-- mileage may most certainly vary.
-- My vcr (jvc) requires the IR frequency setting to be 35KHz instead of the default
-- 40KHz setting in the command capture window. My antenna rotator (ChannelMaster)
-- works fine at default 40KHz.
-- My vcr requires a repeat value of 2.
-- When testing (or using) the vcr digit commands, girder would seem to sometimes
-- "hang" in transmission, as if it were transmitting repeatedly for 15 - 30 seconds.
-- I was able to successfully resolve this issue by adjusting the "speed" setting in
-- the command capture dialog upwards by 1 notch.
-- For my antenna rotator, I had to capture the IR command in raw mode. No other
-- adjustments were necessary for my antenna rotator. I set the repeat value
-- to 2 for this device as well.
-- ============
-- Troubleshooting
-- ============
-- If your device doesn't respond you might need to:
-- a) Try "Learn"ing the digit using raw mode
-- b) increase the repeat number to 2, 3, 4, etc.
-- c) start at the 1st Carrier frequency and try them all.
-- Now, hopefully things will work with some combination of a and b, which I
-- would suggest you try first as there are roughly only 8 combinations. If you
-- don't achieve success this way, I'd suggest you try this approach for testing
-- changes to the Carrier frequency:
-- Make sure the Speed setting gets the command sent in 1 second or less.
-- In general it seems that you should learn commands NOT in raw mode.
-- Set Repeat to 4
-- Try each of the carrier frequencies in turn, testing after each.
-- After you achieve success, make sure it's repeatable.
-- Lower the Repeat value until you achieve the lowest value which can be successfully
-- replicated.
-- If your IR Transceiver gives no visual indication of transmission, see if you
-- can set it to display one as it will be of great assistance in determining what is
-- happening while you're learning and testing commands. If no visual indicator is
-- available from your IR transceiver you may be issuing many commands while girder
-- has your transceiver in use.

08-24-2003, 10:22 AM
Thanks audio for all your help. I really appreciate it.

I just got an e-mail telling me that my USB-UIRT shipped, so I should be getting it in a few day and will give it a try.

One more question (for now anyway): do you have a link for the EXETunerPlugIn.exe file? I can't seem to find it on the Frey's web site- only a DLL to use with a DSS, which doesn't really help since I have a Motorola Digital Cable Box.

Thanks again,

08-24-2003, 01:11 PM
Having just gone thru this last week, I will try to explain how to setup the tuner plug-in and DLL to use a USB-Uirt and Girder to control SageTv.

1. Download Girder 3.2 from here http://www.girder.nl

2. Install girder to C:\Program Files\Girder32

3. Download the SageTv tuner plug-in and DLL’s from here http://www.freytechnologies.com/EXETunerPlugin.zip

4. Extract the file EXETunerPlugin.dll to the Program Files\Frey Technologies\Common folder on your computer.

5. Edit with notepad the DTVCon.reg file from the EXETunerPlugin.zip.

6. Change the line that reads "command"="dtvcmd.exe #%CHANNEL%" to "command"="C:\\Program Files\\Girder32\\event.exe SageSetExternalChannel 18 %CHANNEL% -silent" including the quotes and then save as MotCon.reg.
Make sure you have the correct path to Girder.

7. Double-click your new MotCon.reg file to register the plugin for your system.

8. From the SageTV main menu click on Setup and then “Setup Wizard”.

9. Click on the “Add or Modify a Source button”.

10. Click through the wizard until you reach “I Have an Infrared Transceiver or Plugin” to Setup” and click it.

11. You should now see the “EXE Tuner Plugin” button click on it.

12. To finish click on “Complete Setup” You now have installed everything that SageTV requires to receive and transmit signals.

13. The next part is to setup, train Girder and using salsbst scs-girder-gml.zip available from here http://stusals.com/default.asp?uri=av.xml will make it much easier.

Being a week old novice at Girder I don’t feel I’m qualified to explain configuring it yet. I still have a small issue with it see thread http://www.freytechnologies.com/forums/showthread.php?s=&threadid=1500
Maybe someone else could pickup here and explain how to configure Girder for Usbuirt and SageTv for the Motorola cable Box?

Good Luck

08-24-2003, 01:52 PM

Thanks, man. This is exactly what I needed. I will go a head and try this out when my USB-UIRT arrives and report back.

Thanks again!!

08-27-2003, 01:01 PM
I still have a small issue with it see thread http://www.freytechnologies.com/forums/showthread.php?s=&threadid=1500
Maybe someone else could pickup here and explain how to configure Girder for Usbuirt and SageTv for the Motorola cable Box?I've responded in that thread with an attempt at assistance.

08-28-2003, 08:59 PM
Thanks to this and the other thread, I've got sage and USBUIRT working together. But I still have one problem.

I can either;
a - Launch girder, then sage
b - launch sage, then girder.

With option a, I'm able to control sage using my tivo remote.

With option b, sage will change channels on the cable box using the USBUIRT.

Is there any way to get both working at the same time? I'm thinking I may need to train girder to send output to both sage and the cable box, is that how it works? If so, does anyone have some brief instructions for this?

08-29-2003, 06:00 AM
Changing channels while watching live TV is a good example of the communication path:

remote control -> USB-UIRT -> Girder -> SageTV -> EXETunerPlugin -> event.exe (part of Girder) -> Girder -> USB-UIRT -> Cable Box

But it's not clear to me what trouble you're having, so this may be redundant information for your.

08-29-2003, 08:00 AM
So does girder have to pass an event over to SageTV for it to change the channel?

It seems like my problem is that either SageTV or Girder can make use of the USBUIRT, but not both at the same time.

Maybe I'm not explaining this clearly. I can get the first half of that to work, or the second half, but not both at once. It seems like if USBUIRT commands go to Girder, as your example signal path shows, SageTV is unable to use the USBUIRT to tune the cable box. I can also get it to where Sage can use the USBUIRT to control the box, but then girder doesn't receive commands from the remote.

It's as if Sage and Girder are each locking the USBUIRT for exclusive use, and thus prohibiting the other application from accessing it.

08-29-2003, 08:10 AM
I think I just realized a key difference between my setup and the signal path posted above.

In my setup, I've got the USBUIRT enabled in Sage as a USB IR device. It's able to receive, but this locks the USBUIRT and keeps Girder from being able to access it. In the above example, Girder is receiving the IR commands, and passing commands to Sage. Does this mean Sage doesn't have to have the USBUIRT enabled as a receiver?

08-29-2003, 08:39 AM
Are you trying to use the SageTV direct support for the USB-UIRT? My solution does not use that, rather it solely uses Girder to interact with the USB-UIRT.... perhaps SageTV and Girder are fighting each other to communicate with the USB-UIRT?

08-29-2003, 09:05 AM
I think that's it exactly salsbst. I'll turn off the sage support of USBUIRT and see if I have better results.

08-29-2003, 09:18 AM
I must learn to refresh the page before posting a reply... my multitasking skills are getting rusty.... sounds like you figured it out, JJarmoc.

08-29-2003, 04:26 PM
Okay, I figured it out... I've got girder and sage playing well together now, but there's still a little work to be done.

At risk of going a bit off topic, does anyone know how to make girder repeat a command as long as a button is held? I should probably head over to the girder forums for this one.

09-04-2003, 05:37 PM
I am still having problems with controlling my cable box.

I followed rcleav's instructions, but Sage still isn't changing the channels on the Mot. cable box. I am using salsbst scs-girder-gml which made configuring Girder very easy. I programmed Girder using my cable remote, but it doesn't seem to be transmitting. The USB-UIRT receives just fine and I am able to control Sage using my remote, so I know the device is working. Something must be wrong with my set-up. I noticed that salsbst scs-girder-gml doesn't include the full SageSetExternalChannel.gml imbedded into it. Do I need to add the full gml to salsbt's gml or is there something else I need to do to get everything to work?

Thanks again for your help,

09-04-2003, 07:52 PM
At the present time you can't use SageTV's USB_UIRT receive function at the same time as Girder's transmit function. It'll fail because they're both trying to access the device.

09-04-2003, 08:31 PM
Originally posted by Narflex
At the present time you can't use SageTV's USB_UIRT receive function at the same time as Girder's transmit function. It'll fail because they're both trying to access the device.

I know. I didn't set up SageTV to use the UIRT. I am using Girder to controll Sage and am trying to use the EXETunerPlugin to change my cable box. I followed the instructions to set up the EXETunerPlugin and Girder, but it doens't seem to be working since the UIRT doesn't seem to be transmitting (no blinking light when changing channels).

I am looking forward to when SageTV will have built-in support for both the receive and transmit functions of the USB-UIRT.


09-05-2003, 12:28 PM
If you execute, from a DOS prompt, the command that you have assigned in the registry for the EXETunerPlugin, does it work?

09-05-2003, 12:34 PM
Originally posted by salsbst
If you execute, from a DOS prompt, the command that you have assigned in the registry for the EXETunerPlugin, does it work?

Thanks for your help.

I am not sure. What is the command line to execute at DOS?


09-05-2003, 12:56 PM
Check out this thread: http://www.freytechnologies.com/forums/showthread.php?s=&threadid=1182

09-05-2003, 01:46 PM
Thanks salsbst.

What I have done was to I follow the steps outlined by rcleav within this thread and had changed the reg file to read: [HKEY_LOCAL_MACHINE\SOFTWARE\Sage\EXETunerPlugin]
"command"="C:\\Program Files\\Girder32\\event.exe SageSetExternalChannel 18 %CHANNEL% -silent" and then merged it into my registry. It doesn't seem to work. I am not sure what I am doing wrong except I noticed that in your command you are using only one backslash (\) and not two (\\) as did rcleav. Do you think that is the problem?

I haven't tried to execute the command at the DOS prompt because today my video card died and I am waiting for Dell to send me another one (the computer is still under warranty).

Thanks again,

09-05-2003, 03:03 PM
I am using one backslash and I'm using quote around the path to event.exe. By the time the command appears in regedit you should have single backslashes. rcleav's syntax is appropraite for .reg files which require backslashes to be escaped with backslashes, hence the double backslashes.

Do try something like this at a DOS prompt to narrow down the problem:

"c:\program files\girder32\event.exe" SageSetExternalChannel 18 27 -silent

If that changes the channel (to 27) then you at least know that the Girder side is working properly.

09-05-2003, 04:13 PM
I will go a head and try that (when I get a video card that works). Should the UIRT blink red when Sage tells the cable box to change the channel? If it should blink (which I assume it should), I haven't seen it do that.

Thanks again,

09-05-2003, 04:28 PM
Yes, it should blink. Post back your results once you get a vid card.

09-11-2003, 06:05 PM
OK, so now I got a new video card and dumped the DVCR for the PVR-250.

Anyway, I tried issuing the command from the command prompt and nothing happened. My cable box didn't change to channel 27 and the UIRT didn't blink. So something is wrong with transmitting since I know receive works. Any ideas?


09-11-2003, 06:17 PM
Can you post your GML file and the command that you're using? Also, you're sure that you haven't enabled the SageTV USBUIRT support, right? Doing so locks the USBUIRT away from Girder.

09-11-2003, 06:32 PM
Hi Salsbst,

Thanks for taking the time to help me.

I re-checked and the UIRT is not enabled in Sage.

The command I used was the one you suggested: "c:\program files\girder32\event.exe" SageSetExternalChannel 18 27 -silent

I attached a zip file with the gml file in it.

Thanks for taking a look at it.

09-11-2003, 06:56 PM
I tested your GML and it is at least able to receive the event from the command. I'm really pressed for time tonight and don't have the time to delve deeper, but one thing did occur to me.... please see the thread linked below and find the post where I specified some GIrder Plugins that are needed for my GML file. Not all of them are required for the channel changing, but you will probably need:

Lua-Socket Library

If they aren't installed and activated, then it probably won't work.


Hope that helps. Let me know.


09-11-2003, 08:12 PM
Thanks again Salsbst.

I didn't have all those plug-ins enabled, so I went a head and enabled them. Unfortunately, it didn't seem to change anything.

09-15-2003, 06:25 AM
I finally had some free time to play and tried re-installing the event.exe command key into the registry. It said it updated the registry, but it didn't seem to change anything.

I must say though that the quality of the PVR-250 compared to the DVCR is fantastic. I am so glad I switched. Now if I can only get Sage to change my cable box, I would be in Hog Heaven.

Any ideas?


09-19-2003, 11:32 AM

I am just about to give up and wait for Sage 2 with its built-in support for USB-UIRT receive and transmit functions. I figured I would keep this thread alive and give it one last shot.

Stuart, did you ever get a chance to look at the gml file I posted last week? I know you checked the receive function (which I have working fine), but you didn't have time to check the transmit function when I posted the file.

As always, I really appreciate all your help.

Thanks again,

09-19-2003, 12:07 PM
I'm sorry this fell off my radar.

I'm attaching a copy of your GML with one change: now the Variable Manipulation Script which is supposed the drive the channel changing on the motorola has a new first step which is to trigger an event to show the text "attempt to change channel" on your screen when it is called.

Try invoking the channel change again with this new GML file. If you see the text on the screen but don't get a channel change, then it would seem there's a problem with the USB-UIRT transmitting. However, if you don't see this text on the screen then the problem is that the channel change event is not getting through. Hopefully this will help us narrow it down.

09-19-2003, 02:36 PM
Thanks Stuart. Please, no need to apologize. I really appreciate you taking the time to help me out.

I used your modified gml and did indeed get a message on the screen saying "Attempting to change channel" but the UIRT did not blink and the channel did not change. I hope this doesn't mean there is something wrong with my UIRT.

Please let me know what you suggest I do next.

Thanks again for you help,

09-19-2003, 02:55 PM
Dig in the Girder file to Remote Control / Transmitting / Cable Motorola DCT 2000 and select the channel-up command so that it is highlighted in blue. Now press the F5 key on your keyboard to test the command.

Does it cause the USB-UIRT to blink? Does the channel change?

If not, then my guess is that either Girder isn't configured properly for the USB-UIRT or the USB-UIRT is broken.

If it does blink/change the channel, then I'm sort of at a loss for why the process isn't working altogether.

09-19-2003, 04:12 PM
Well I guess the good news is that there is nothing wrong with my USB-UIRT since I followed your instructions and the UIRT blinked and the channel moved up. I guess the bad news is you aren't sure why it is not working. I went back through the Sage set-up to make sure that the External plug-in was selected (it was, but I re-selected it anyway). I also re-downloaded and re-installed the External tuner plug-in from the Sage web site, but nothing worked.

Does anything come to mind?

Thanks again for all your help,

09-19-2003, 04:16 PM
Just to let you know, there is now serial control for the DCT2000 Motorola settop box. That way you can use the USB-UIRT for controlling sage and a serial connection to change channels on the digital cable box. This is exactly the setup that I am currently using (Although I use the USB-UIRT through Girder rather than the native Sage support, as I also use it to control myHTPC.)

Check out http://forums.freytechnologies.com/forums/showthread.php?s=&threadid=1606


09-19-2003, 04:22 PM
Ok, let's retrace our steps. I still think the problem is not to do with SageTV's setup. As of now, I think you should see the on-screen test message when you try to change channels via SageTV.... give that a shot.

09-19-2003, 04:24 PM
Boy, I wish I had a serial-enabled box! But this is a good point, jglev.... if you can get the serial control working then that is a better solution than this IR nonsense!

09-19-2003, 04:30 PM
Actually, I don't have the DCT 2000, but the DCT 5100 (the one with the HDTV decoder built in). It doesn't have a serial port (it does have a USB port, but I don't think it is enabled), so serial link is not an option. Just as an FYI, the IR codes for the 5100 are identical to the 2000.

Anyway, yes I do see the on-screen test message when I change channels via SageTV, but no blink and no channel change.

09-19-2003, 05:03 PM
Well I think we're really close now.

Please double check that both the WinLUAEx and the Lua-Socket Library plugins are properly loaded. To be honest I can't remember what the Lua-Socket Library plugin does any more, but I have it loaded and you may need it, too. The WinLUAEx plugin provides the TIME_Sleep function that is called in my global-pause command so you definitely need that one.

If you definitely have them loaded, then I can sprinkle some more on screen messages into the script to find out where it's failing, I guess.

09-19-2003, 05:14 PM
Both WinLuaEx and Lua-Socket Library plug-ins are enabled and loaded.

09-19-2003, 05:24 PM
Ok, I think I've found it... something is a bit odd in the GML file you're using. Specifically the EventStrings in the Cable Motorola DCT 2000 group are wrong.

Your event strings are long series' of numbers. Mine are things like


(that one simulates the pressing of the 2 button)

I've attached the motorola group from my current GML file. See if you can delete your Motorola section and then import this GML (you'll probably have to drag it into place if you want it to be where the old one was after you import).

I think that will fix it (gosh I hope so).

09-19-2003, 05:50 PM

I can't believe it! Thank you so much. Again, I really appreciate you taking the time and effort to helping me out. That is one of the best things about Sage: the community support is outstanding.

And it even works from Sage Client!

Thanks again,:goodjob:

09-19-2003, 05:57 PM
I'm glad it's working!

I don't use the Sage client (yet?).... but I would think it would be pretty useless without that feature. I'm not sure if you're already using your remote to do things like this, but the keyboard should work. I would think that, like the full SageTV (server), you could type:


should change to channel 54.... If not, it's probably something wrong with my Girder GML file! ARGGGGH!


09-19-2003, 06:06 PM
No, there is nothing wrong with your GML, it was me. It seems Sage (the server) needs to be in idle mode (at least not actively watching something) in order to change the channel from the client. Everything is working perfectly fine now (I even edited it out of my previous post).

Thanks again. I am now one very happy camper!

09-19-2003, 06:10 PM
My dissapointment for the evening is that the 5100 doen't have a serial port... I'm planning to get one pretty soon and was hoping I could put IR channel changing behind me. Oh well. Thanks for that tidbit of info.

09-19-2003, 06:16 PM
Originally posted by salsbst
My dissapointment for the evening is that the 5100 doen't have a serial port... I'm planning to get one pretty soon and was hoping I could put IR channel changing behind me. Oh well. Thanks for that tidbit of info.

Glad I could help in some way. The 5100 is a very nice box even without the serial port. At least you won't have to change the IR codes and IR changing with the 5100 seems less flaky than with the 2000. Maybe someone will figure out how to utilize the USB port one of these days.

Thanks again. I owe you big time.

09-19-2003, 09:43 PM
Glad you got that worked out.:) I really appreciate you making your GML file and time available. I've slowly been working on girder.

I'd love to use serial control. My box is a Motorola DCT2224. It has the right Bios, software, and a serial port. So everything should be fine, but my idiot cable company(Adelphia) says it can't enable my box's serial port. :bang:

09-20-2003, 06:53 AM
Ditto, except my idiots work for Comcast in DC.

09-21-2003, 05:27 AM
I've got to say Girder is a fantastic bit of coding - nearly up there with Sage :). I know it is free, but there is a donation button if you have a bit of spare change around. No, i don't work for them, don't know the author, just thinking of all the things we wouldn't have been able to do if Girder hadn't been written.. :D