« 1080p on Xbox 360! | Home | Xbox 360 HD DVD Player »

Individual Entry With Comments


December 1, 2006

Discrete Codes

Filed under Gadgets, HDTV

I define "Home Theater Nirvana" as the ability to use one remote to do everything you need.

In order to control a complex home theater system, you need to turn on components, switch the video input on the TV, and switch the amplifier to the correct audio input.

How do you turn on a component with a remote? Press the "power" button, right? Wrong! What if the component is already on...the power button will turn it off. When you program a remote to setup your system to watch a DVD, you don't know what state any of the equipment is in. To program a remote, you need to use commands that work as advertised.

That is where "discrete codes" come in. Instead of a power button that will toggle between on and off, there are separate codes for "on" and "off."

Finding discrete codes is a bit tricky. I've used a few techniques.

The first way was to buy a cheap One For All remote and use codes from this website. Then my home theater remote learned the discrete codes from the One For All remote. It worked for simple stuff (like on/off), but as my equipment got more complex, I needed more discrete codes than I could get from the One For All remote.

I currently use a Home Theater Master MX-700 remote (which I love). I found a place on remotecentral.com that lists tons of discrete codes in hex format. The hex format is used by the Philips Pronto line of remotes. My remote won't read hex codes directly, but it will read a .ccf file via a feature in the MX-700 Editor called the "Universal Browser." A .ccf file is a configuration file used to store IR codes for Pronto remotes.

To convert hex codes into a .ccf file, I used ProntoEdit.

  1. File->New Configuration.
  2. Create a configuration for the TSU2000.
  3. Right click on "HOME" and select "Add Panel."
  4. Double-click on one of the panel buttons.
  5. Select "Set IR."
  6. Click "View IR."
  7. Paste the hex code into IR Code area at the bottom.
  8. File->Save Configuration to create a .ccf file

This worked for most discrete codes I needed. However, it did not work for direct access to Video 7 (HDMI) and Video 9 (VGA) on my TV. Since I now need access to VGA, I had to find a way to get the correct discreet codes for Video 9.

I found another good way to get discreet codes. I followed these instructions and downloaded MakeHex. I placed the discrete codes I wanted from this list into a .irp file. MakeHex converts this .irp file into a .hex file which contains the hex codes. I then followed the above procedure to convert a hex code into a .ccf file.

And guess what? It worked! I now have discrete codes for all the inputs on my TV: Video 1-Video 9.

This is certainly convoluted and required a lot of digging to get it working...but once you experience Home Theater Nirvana there is no substitute!

Comments (4)

Chris:

Dave,

As you know, this advice helped in programming my remote (you and I were at my place in San Antonio and figured this out through trial and error based on the instructions in this post).

As you requested, I will add on my clarification of what we did to get the discrete codes working that weren't initially included in the manufacturer's group of hex codes.

Specifically, the example I will post is for the "Video 7" discrete code. Sony has a grouping of hex codes on the website you listed in your post (under the "tons of discrete codes in hex format" link). However, it only includes Video 1 through Video 6. My cable box goes into Video 7, and I wanted to create a "Power On" macro for my Cable Box that would automatically turn on the television if it was off and then switch the video input to Video 7. You first need the Video 7 discrete code assigned to a button on the MX-700 remote control to be able to include it in a macro.

(As an aside, the macro is made in the MX-700 Remote programming software, downloadable from the Universal Remotes website at www.universalremote.com. This website requires you to register to have access to the download link, and part of that registration is typing in the serial number of the remote, found on a label in the battery storage of the remote. There may be other places on the internet to download this software without requiring this registration step, but I don't know of them offhand...someone else may.)

So, as I mentioned, you need the Video 7 assigned to a button on the remote control. Since Sony doesn't include it in their TV remote file that you can get from the "tons of discrete codes in hex format" link above, you need to find the code and assign it to a button yourself.

I want to list the first thing that we tried that DIDN'T WORK. The reason is that the Sony devices are a bit peculiar in that they have several device codes, and the ones listed below didn't work for my Sony TV but may work for someone else's. In addition, they may work for someone else's non-Sony device, and these steps are quicker than what ultimately was required for the Sony-specific code that I needed. So...what didn't work?

First, we tried to get the hex code by going to:

http://www.remotecentral.com/cgi-bin/files/rcfiles.cgi?area=pronto&db=discrete

and then clicking on Sony, then Televisions, and scrolling down to Video 7 and clicking the (Copy to Clipboard) link under "Video 7."

So now we had the hex file and needed to convert it to a .ccf file (which is required by the Remote Programming software). We downloaded ProntoEdit at http://www.remotecentral.com/cgi-bin/files/rcfiles.cgi?area=pronto&db=other&br=programs&dv=philipsprontoseries&md=philipsprontoeditv405&kw=&st=&ar=&dt=&so=&pg=1&file=software/ProntoEdit4.zip

As copied from your post...

Create a configuration for the TSU2000. (This choice opened automatically at the first run for me. If it doesn't, click File->New Configuration.
Right click on "HOME" and select "Add Panel."
Double-click on one of the panel buttons.
Select "Set IR."
Click "View IR."
Paste the hex code into IR Code area at the bottom.
Click OK and OK.
File->Save Configuration to create a .ccf file (I called mine video7.ccf and saved it on the desktop)

Open the Remote Control Programming software.
Click the last button on the right on the menu bar, Universal Browser.
On the menu bar, there is only one icon, the open file button. Click it, steer to your video7.ccf file and open it.
This brings up a file of buttons that have no labels but look just like the buttons you worked with in ProntoEdit.
Drag the center of the same button you edited in ProntoEdit from the Universal Browser window and drop it on the button on the remote where you want it to go.
The button should have a blue box with "L" in it, stating that it learned the code.
Add a label for your new button and click Save.
Download the new configuration to your remote and try it. If it works, you're done!

HOWEVER, this didn't work for us. After assigning the Video 7 code to a button and trying it on my TV, it simply didn't do anything. So, we did the following:

Download MakeHex from http://www.remotecentral.com/cgi-bin/files/rcfiles.cgi?area=pronto&db=other&br=utilities&dv=irprograms&md=makehex&kw=&st=&ar=&dt=&so=&pg=2&file=utilities/makehex.zip

We went to http://www.hifi-remote.com/sony/Sony_tv.htm and scrolled down, finding Video7 under "Sony:151" with a command code of 66.
We then read the instructions at http://www.hifi-remote.com/sony/Sony_pronto.htm

According to the instructions, the "151" is the Device Code. The 66 is the function.
Since the device code is "32 or higher," we need the Sony IRP file called Sony15. This IRP file is included with the MakeHex download above.
I first made a copy of the Sony15.irp file, calling it Copy of Sony15.irp.
I then edited Copy of Sony15.irp in Notepad.

It looked like this:

Device=164
Function=0..127

Protocol=Sony15
Frequency=40000
Time Base=600
One=2,-1
Zero=1,-1
Prefix=4,-1
Message Time=45m
Form=;*,f:7,d:8

We changed "Device=164" to "Device=151". If you leave Function at 0..127, it will spit out 128 different hex codes at you. Since we only need the hex code for Video 7, we changed "Function=0..127" to "Function=66". Save it in Notepad, overwriting your old copy of Copy of Sony15.irp.

Now you need to run it in MakeHex. MakeHex needs a command line to run, so in Windows we clicked Start->Run... and typed cmd and hit Return.
This opens the Command Window that you need to run MakeHex.
Change the directory (using cd [directory name of your choice]) so you are in the same folder as MakeHex.exe and your Copy of Sony15.irp file.

Now if you type MakeHex and hit return, you'll see:

Usage MakeHex IrpFile {OutFile}

So, in the command window, we typed makehex "Copy of Sony15.irp" video7.txt and hit Return.
At the next command line, we typed notepad video7.txt and hit Return.
Voila! There's our hex code for Video 7!

The output in our example is:
Device Code: 151 Function: 66
0000 0068 0000 0010 0060 0018 0018 0018 0030 0018 0018 0018 0018 0018 0018 0018 0018 0018 0030 0018 0030 0018 0030 0018 0030 0018 0018 0018 0030 0018 0018 0018 0018 0018 0030 032D

We now have the hex code. We need to make it into a .ccf file so our Remote Programmer program, and specifically its Universal Browser, can make use of it. Back to ProntoEdit.

File->New Configuration.
Create a configuration for the TSU2000.
Right click on "HOME" and select "Add Panel."
Double-click on one of the panel buttons.
Select "Set IR."
Click "View IR."
Paste the hex code into IR Code area at the bottom.
Click OK and OK.
File->Save Configuration to create a .ccf file.
Again, I called mine video7.ccf and saved it on the desktop.

Open the Remote Control Programming software.
Click the last button on the right on the menu bar, Universal Browser.
On the menu bar, there is only one icon, the open file button. Click it, steer to your video7.ccf file and open it.
This brings up a file of buttons that have no labels but look just like the buttons you worked with in ProntoEdit.
Drag the center of the same button you edited in ProntoEdit from the Universal Browser window and drop it on the button on the remote where you want it to go.
The button should have a blue box with "L" in it, stating that it learned the code.
Add a label for your new button and click Save.
Download the new configuration to your remote and try it.

This time, it worked!

Whew. Very verbose, but I figured this is such a tricky convoluted process, I should be more wordy rather than less wordy.

Thanks for the write up Chris! Definitely will be helpful for future discreet code programming!

Thomas S:

Very nice write-up.. very helpful for us trying to program our HTM remotes against the firm corporate opposition of the manufacture who likes to insist its rocket science and needs a specialist and so they won't update our software with codes and devices.

Now if only I could figure out why my XBR8 responds to video 1,2,3,4,5,6 but not 7,8,9. Grrr damn you Sony.

Between Sony (and whats with no discrete on and off for the XBR8?) and Universal Remotes attitude, its a hard life wanting a nice TV and being able to control it with a single decent remote.

Carlos:

The codes in http://www.remotecentral.com/cgi-bin/files/rcfiles.cgi?area=pronto&db=discrete work with the all devices?, or exist some restrictions.

Thanks

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)


About

This page contains a single entry from the blog posted on December 1, 2006 6:28 PM.

The previous post in this blog was 1080p on Xbox 360!.

The next post in this blog is Xbox 360 HD DVD Player.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.34