Bit-Banging the GTX RSS for 900MHz Amateur Service

(Last Update: 2-Jan-09)

Why this is needed...

The stock Motorola RSS (part #RVN4150H, Ver. R04.00.01) for the GTX radio will not allow the entry of amateur 900 frequencies, even with the shift-key trick. It is necessary to do some creative editing of the Model Definition File (gtx.mdf) that gets installed when you install your (hopefully legal) copy of the GTX RSS package.


I cannot and will not accept any responsibility for screwed-up radios or RSS installations! These instructions are presented for use entirely at your own risk. If your radio or RSS setup pops its cork because of anything you do to it, whether from these instructions or others, you're on your own. Know that I have tested these mods on my own setup, and have found them to work. Your Mileage May Vary.

What you'll need...


How to Do It...

Note that these instructions apply ONLY to the latest version of the GTX RSS, R04.00.01, RVN4150H. Other versions probably have a different .MDF file. If you're tweaking an older version, you'll need to read on for a detailed description of how the .MDF file does its thing, and what you need to look for.

When referring to hex numbers, it is customary to put '0x' in front of the number sequence. That's why you'll see many of my notations preceded by it. DO NOT enter it into the file! It's just a marker to remind you that you're working in hex.

The actual modifications for the current file are easy enough. For those anxious to Just Do It, and not investigate further into the guts of the file (fascinating though that may be), here's a step-by-step.


  1. Open your working copy of the .MDF file with Hex Workshop. Under 'Tools' and 'Calculate Checksum,' take the Checksum-16 of your ORIGINAL FILE, and WRITE THE VALUE DOWN! You will need it later. For the current release of GTX RSS, the checksum should be 0x73F0.

  2. Point your cursor to location 0x296. You should see a two-byte pair with a value of 3C23, taking up positions 0x296 and 0x297. Change it to C224. This opens up the receiver side limits.

  3. Next, put your cursor at location 0x298. You'll see another two-byte pair with a value of 8624, taking up positions 0x298 and 0x299. Change this to 0023. This opens up the transmit side limits.

NOTE! If all you wanted to do was open up the band limits, YOU'RE DONE! Save the modified file, rename your old one to 'gtxmdf.old' or something similar, and install the modified file in your GTX RSS directory.

If you want to deal with the four-channel limit on certain models of GTX portable, read on!

Expanding the number of conventional channels

There are four models of GTX portable radios which do not, as shipped, provide more than four conventional channels. The specific units involved have model numbers containing the string 6DB1, 6DU1, 4DB1, or 4DU1.

You can override this limit by hexing a few more bytes in the .MDF. Specifically, you're looking for the third byte following the end of the affected model number as follows.

  1. At location 0x6FD, change '04' to '10.' This ups the conventional channel limit from 4 to 16.
  2. Make this same change at locations 0x72F, 0x761, and 0x793.

Keep in mind that you may not actually get 16 conventional channels to play with. The GTX series requires at least one trunking personality to be present in its guts at all times. That's simply a design fact with the GTX's. Blame Motorola.

WHOA! You're not done yet!

There's one other issue that must be addressed before you put your modified file to work. The GTX RSS calculates the checksum of the .MDF file every time it loads up, and it will fail with a "Model Definition File not found!" error if the checksum does not agree with the hard-coded value.

If you changed MORE than the band limits, you will also need to tweak some harmless bytes in one of the text fields of the radio model descriptions to get the original checksum back. The checksum-16 on the latest .MDF is 73F0. If you're editing an older version's file, it will likely be different. There are two possibilities involved for the current file, depending on which changes you made.

If you only changed the band limit bytes...

If you changed both the band limits AND the channel limits...

Next, verify that the Checksum-16 result is equal to the original checksum you wrote down. If not, continue tweaking text field bytes until it is.

Save the modified file, rename your original .MDF to 'GTXMDF.OLD' or something similar, and copy the new .MDF into your GTX RSS directory. You should now be able to program a GTX to any spot in the 900MHz amateur or commercial band, and open up the channel limit on four-channel radios.

Bear in mind that, just because you can now program the right frequencies, it does not necessarily mean that the radio will work to spec at those frequencies. You may or may not experience reduced receiver or transmitter performance, since you are taking the radio out of the band it was designed to work in. Again, YMMV.

The Filthy Details...

If you have an earlier version of the GTX RSS than that mentioned above, you will need to educate yourself a little more about the .MDF, and how it does its thing, before you can track down what changes to make.

Each RSS package that uses a .MDF is dependent on that file to tell it what bandsplits to support. Those bandsplits are expressed within the .MDF as a series of 12 hex bytes representing the split itself, and an additional two-byte index tag. The bandsplits are presented in reverse-byte order, so when you see a limit byte of something like 0x3C23, you need to read it in your mind as 0x233C.

Note that I said 'read it as.' This DOES NOT mean enter it that way! You MUST enter any changes in the same reverse-byte order, or you're going to seriously screw up your RSS. Typically, the bandsplit entries begin soon after the end of the radio model number table. In the case of the .MDF for the GTX, as described here, they begin at 0x0204.

Here's an example of a typical bandsplit entry for UHF Range 2 (450-470MHz) radios..

9411 5C12 9411 5C12 9411 5C12 0100

The first four-byte set controls what the RSS will actually display to you, the user, as the band limits of a given radio when you're running the program. It is not necessary to change the 'Display' byte set in the GTX RSS because it displays 896.0-941.0 by default.

The second four-byte set controls the receive range, and the third set controls the transmit range. The '0100' at the end is the index tag I mentioned. NEVER change an index tag, or the RSS will freak!

If I were going to tweak this example to allow it to dip into the amateur 70cm band, I would simply change the low-limit number from 0x9411 (4500 decimal, when taken in reverse order of 0x1194, representing 450.0MHz) to 0x3011 (4400 decimal, when taken in reverse order of 0x1130, representing 440.0MHz) as follows.

3011 5C12 3011 5C12 3011 5C12 0100

Any RSS package that makes use of a .MDF will likely have several of these bandsplit sets in it. While only the low-limit number got changed in this example, it does not necessarily mean that the high-limit number remains the same in all cases (such as 900MHz radios). Know what you're looking for, and what you want to do, before you go digging!

Other Resources & Credits...

There are two sites I know of that are excellent resources for Motorola information. Mike Blenderman, K7IC, has an excellent site devoted to the Syntor, Syntor X, Syntor X9000, and Spectra radios.

Batlabs is an outstanding resource for information on all Motorola radios. In fact, I am indebted to them for providing initial hex-editing instructions for .MDF files, most notably for the Maxtrac conventional radios. I would not have been able to provide these instructions, nor those for the Maratrac, had it not been for the jump-start I got on their site.

I would also like to extend grateful thanks to Bob Meister, WA1MIK, for his error-correction and experimental efforts.

Happy Tweaking.

73 de KC7GR.

(Return to Main Page)