AVS Forum banner

Status
Not open for further replies.
1 - 20 of 22 Posts

·
Registered
Joined
·
1,333 Posts
Discussion Starter #1
I was just going to post this on remotecentral.com, but their server is having a bit of a problem posting messages right now and won't let me do anything but read, so I thought I'd post it here in the meantime, just to get it out of my system.


I recently returned a Harmony SST-768 and bought a Home Theater Master MX-700. I'd been playing around this weekend a bit and figured some of the innards out so I could manually create discrete codes without using another IR/remote product. Here's the steps using a specific example. Because the data stored varies a bit between devices, this can only be an example, but it shows the general process.


I hope it helps someone. :)






I had some discrete codes I needed to create and no way to do so with just the MX-700, but did find a simple way to do it after reviewing the MXD file in a hex editor.


I thought I'd pass along this bit of info in the form of an example:


For a Fujitsu P50XHA10US, the POWER TOGGLE function is represented by this IR code found in a CCF file for a Pronto remote (broken into multiple lines for convenience as shown a little later):

Code:
Code:
0010 000f 0010 000f 0010 002f 0010 000f
0010 002f 0010 000f 0010 000f 0010 000f
0010 002f 0010 002f 0010 000f 0010 0010
0010 000f 0010 002f 0010 002f 0010 000f
0010 000f 0010 000f 0010 000f 0010 000f
0010 000f 0010 000f 0010 000f 0010 000f
0010 000f 0010 000f 0010 002f 0010 000f
0010 000f 0010 000f 0010 000f 0010 002f
0010 000f 0010 002f 0010 000f 0010 002f
0010 000f 0010 000f 0010 000f 0010 002f
0010 000f 0010 000f 0010 000f 0010 000f
0010 000f 0010 000f 0010 000f 0010 000f
When you look at an MXD device file exported from the device that had this POWER TOGGLE learned, you'll see the learned codes are in large blocks padded with quite a few NULLs, and you'd see this string as the text representation (broken into multiple lines):

Code:
Code:
#UUTUTUUUTTUUUTTUUUUUUUUUUUTUUUUTUTUTUUUTUUUUUUUU
#UUTUTUUUTTUUUTTUUUUUUUUUUUTUUUUTUTUTUUUT
Now let's look at the patterns. The CCF file codes or raw IR code as it's stored can be converted to binary. Where "0010 000f" becomes a 0 and "0010 002f" becomes a 1. Converting this to hexadecimal, we get:

Code:
Code:
0010 000f 0010 000f 0010 002f 0010 000f 2
0010 002f 0010 000f 0010 000f 0010 000f 8
0010 002f 0010 002f 0010 000f 0010 0010 C
0010 000f 0010 002f 0010 002f 0010 000f 6
0010 000f 0010 000f 0010 000f 0010 000f 0
0010 000f 0010 000f 0010 000f 0010 000f 0
0010 000f 0010 000f 0010 002f 0010 000f 2
0010 000f 0010 000f 0010 000f 0010 002f 1
0010 000f 0010 002f 0010 000f 0010 002f 5
0010 000f 0010 000f 0010 000f 0010 002f 1
0010 000f 0010 000f 0010 000f 0010 000f 0
0010 000f 0010 000f 0010 000f 0010 000f 0
Now look at the MXD data, breaking it up into 4-byte groups, we see it corresponds to binary, too (U becomes 0, T becomes 1)... the same binary value:

Code:
Code:
UUTU  2
TUUU  8
TTUU  C
UTTU  6
UUUU  0
UUUU  0
UUTU  2
UUUT  1
UTUT  5
UUUT  1
UUUU  0
UUUU  0
Now if we look at the discrete code for POWER ON from a CCF file, and convert it to hex, we get:

Code:
Code:
0010 000f 0010 000f 0010 002f 0010 000f 2
0010 002f 0010 0010 0010 000f 0010 000f 8
0010 002f 0010 002f 0010 000f 0010 000f C
0010 000f 0010 002f 0010 002f 0010 000f 6
0010 000f 0010 000f 0010 000f 0010 000f 0
0010 000f 0010 000f 0010 0010 0010 000f 0
0010 000f 0010 000f 0010 002f 0010 000f 2
0010 000f 0010 000f 0010 000f 0010 002f 1
0010 000f 0010 002f 0010 000f 0010 002f 5
0010 000f 0010 000f 0010 000f 0010 002f 1
0010 002f 0010 000f 0010 000f 0010 000f 8
0010 000f 0010 000f 0010 0010 0010 000f 0
So now we just update the pattern in the MXD file with the updated sequence. The second to the last grouping becomes "TUUU". Save those changes and in MXEditor import the updated device file back over the original device and download to the MX-700 remote, and now that learned code functions as POWER ON instead of POWER TOGGLE.


By starting with a known learned code, you can find it using a search in a hex editor, so you know which to update.


I was able to add all the discrete codes for aspect ratio changes and power on/off for the Fujitsu this way, one at a time, by learning the POWER TOGGLE code, exporting the device, changing that code with the hex editor, and reimporting the device and then learning the POWER TOGGLE code again on the next button, et. al.


The actual numbers and sequences of characters do change with different devices, and so far I've found one device -- a Zenith HD-SAT520, that seems to defy figuring out using this method, but I'm still working on it -- but the concept remains very similar in most cases.


If you look closer at the MXD file, you'll also see the bytes immediately prior to the learned code identify the number of bytes, and a few prior to that identifies a unique ID for the learned code which corresponds to the label you'll see elsewhere in the MXD. Maybe at some point I can figure enough of the MXD file format out to create a program to do this more simply, but at least there is a way to get created discrete codes into the device without having to use a different remote.


Just wanted to share. :)
 

·
Registered
Joined
·
1,333 Posts
Discussion Starter #3
I've been using HEdit from ( www.yurisw.com ), however I notice it doesn't seem to exist anymore as a product, at least from them directly. WinHex ( www.winhex.com ) is another decent one.
 

·
Registered
Joined
·
3,686 Posts
Oooh.


Mega kewl.
 

·
Super Moderator
Joined
·
21,324 Posts
great work Doug:


this information is very useful


Thanks so much


now if we could get you to play with an iPronto!!


Mark:)
 

·
Registered
Joined
·
1,333 Posts
Discussion Starter #6
Quote:
Originally posted by markrubin
now if we could get you to play with an iPronto!!
I can be bribed. Have an extra one laying around?! :D
 

·
Super Moderator
Joined
·
21,324 Posts

·
Registered
Joined
·
726 Posts
This is excellent. The IR database that mostly works for my CD player (transport controls) doesn't work for the power commands. So this is exactly what I needed. Now I just need to find the discrete power commands for a 5-disk, Sony CD player (CDP-C705). And figure out where to insert them into the mxd file.
 

·
Premium Member
Joined
·
878 Posts
Thanks Doug.


I reviewed the serial port command set for my P50XHA10US and all "Toggles" have a discreet command set. So I concluded it could be completed, but never looked at Reverse Engineering the IR code.


Great Work!



John
 

·
Registered
Joined
·
1,333 Posts
Discussion Starter #10
MXD files revisited:


Here's data from a CCF file for a Zenith HD-SAT520 SD/HD toggle command:

Code:
Code:
0014 00cf 0014 00cf 0014 0015 0014 00a7 
0014 00cf 0014 0015 0014 00a7 0014 0015 
0014 00a7 0014 00cf 0014 00cf 0014 0015 
0014 00a7 0014 00cf 0014 0015 0014 00a7 
0014 00cf 0014 0015
The oddity originally defying explanation I mentioned earlier is that there's three different lengths if IR bursts. "0014 0015" we'll call "0", "0014 00a7" we'll call "1" and "0014 00cf" that we'll call "2". So converting it accordingly, we get:

Code:
Code:
0014 00cf 0014 00cf 0014 0015 0014 00a7    2201
0014 00cf 0014 0015 0014 00a7 0014 0015    2010
0014 00a7 0014 00cf 0014 00cf 0014 0015    1220
0014 00a7 0014 00cf 0014 0015 0014 00a7    1201
0014 00cf 0014 0015                        20
If we look at the same code learned by an MX-700, it's stored as:

Code:
Code:
BBDCBDCDCBBDCBDCBDABBDCBDCDCBBDCBDCBD
Looking more carefully, notice it's really one pattern repeated twice with a separator:

Code:
Code:
BBDCBDCDCBBDCBDCBD
ABBDCBDCDCBBDCBDCBD
Converting "B" to "2","C" to "1" and "D" to "0", that pattern becomes:

Code:
Code:
220120101220120120
Which matches the CCF file version exactly.


Simply reviewing both files for each version of the same code will let you determine how the conversion needs to be done, then you can convert any other codes found in a CCF file and use a hex editor to modify the MXD file.


I'm beginning to suspect that there's a lookup table in the MXD file that these individual bytes are referencing for the actual IR burst timing. It appears to exist just prior to the first learned code. I haven't yet spent much time trying to determine how it's indexed but it seems to hold some promise based on the actual values there. I also suspect there's a clock multipler value stored somplace that would make all this match up with the values that would be obtained doing the same with the CCF version of the code and the preamble portion where the clock multiplier is specified.


I see a similar oddity with IR codes learned from a Channel Master antenna rotator remote control, with a couple additional variations in IR bursts, as opposed to just 2 or 3. But have no CCF file for that remote from which to make any comparisons.
 

·
Registered
Joined
·
20 Posts
Doug,


Good work! When I got my remote I opend one of the files in UltaEdit-32 and poked around at trying to determine if I could figure out what the structures were for the file so I could do this. Spent about a 2 hour block working on it before I simply ran out of time and have never gotten back to it since. From my looking and testing there are two entries for each device and one 'points' to the other, probably an index or an offset as you point out. I didn't see anything 'hard' about the structure of the data, but it wasn't obvious since the organization of the data didn't match my expectations given buttons that I had programmed, things like the order of the definitions not matching the order on the screens really. I suspected that they were linked via another structure that I didn't get a chance to investigate since I only worked on understanding particular coed sequences.


In any case if I get back to this I'll share here and if you want any help with implementing an editor (I could do it in C or Java) if you get any of the structues down let me know.


I really like the remote and don't understand why the company doesn't have an editor for the IR codes already or why they don't simply post the data structures so we can build one for it.


Roger
 

·
Registered
Joined
·
37 Posts
Doug, Roger et. al,


I think an editor would be a great for my type of user. For example, I would LOVE to be able to directly access the service menu in my Hitachi XWX HDTV--without having to shut off the set then pushing and holding and releasing two buttons in exact timing...arrghhh.


I certainly appreciate your posts, and hope to make good use of them in the future.


Jim
 

·
Registered
Joined
·
1,333 Posts
Discussion Starter #13
Jim, do you have any idea if there is an IR code or codes that can accomplish that on your set? If they've gone to such extremes for entry into the service menu, I wouldn't think they provided an easy way.
 

·
Registered
Joined
·
37 Posts
Doug,


I found the following paragraph somewhere else--probably at Remote Central--and stashed it in my Word document containing all things Hitachi. It describes a way to get into the service menu directly:


Service Menu IR code: For the One-For-All remotes (some Radio Shack remotes are also the same) use TV code 0145 and setup one of the buttons for efc (extended function code) 252 to get to the service menu. The procedure is to press the TV button, press and hold Setup (wait for 2 led blinks), enter 994, press Setup again (don't hold), enter 252, then press the button you want to assign it to (I used GUIDE).


Thanks for your interest!


Jim
 

·
Registered
Joined
·
764 Posts
Why don't you just buy the RS or OFA remote ($10-$60), program it like you just said, and learn it to your MX-700?


Heck, if you live around the north side of Chicago I'll lend you my RS 15-2116. I bought the RS remote & a JP1 cord thinking I'd need to get them anyway if I wanted to do anything with an MX-500 or MX-700. Turns out, I like the RS/JP1 so much I may just stick with that for a while.
 

·
Registered
Joined
·
26,814 Posts
I'm new to remotes...


Can the MX 700 use Pronto CCF codes? or where can you get a big database for older products to control?


I have been to DEenon's site for a code for my old tuner. They have a discreet code / download listed. Is this easily adapted to the MX 700?


Thanks!
 

·
Registered
Joined
·
1,340 Posts
Quote:
Originally posted by thebland
I'm new to remotes...


Can the MX 700 use Pronto CCF codes? or where can you get a big database for older products to control?


I have been to DEenon's site for a code for my old tuner. They have a discreet code / download listed. Is this easily adapted to the MX 700?


Thanks!
Hi Jeff,

MX-700 can't use Pronto CCF codes natively. There are rumors that the CCF to MXD (MXF) software will be created, but that's about it.

In order to adopt a discreet code for your Denon tuner, you would need a JP1 (too much hassle IMO).

You might be lucky and find somebody who already created a MXD with the those commands at www.remotecentral.com


Kirill
 
1 - 20 of 22 Posts
Status
Not open for further replies.
Top