Motorola Gm300 Radio Doctor

GM300/M120

General Information

The GM300 and the M120 are the same series of radio. The M120 is just the limited version, not unlike the Maxtrac 50 compared with the Maxtrac 300.

Look here for the pinout of the accessory connector for the 8 channel radio (which use a masked logic board) or 16 channel radio (which use an expanded logic board).

If you want an easy way to connect to the Accessory Connector on these radios, you can order the HLN9242A or HLN9457A Accessory Connector kits. These include an accessory connector housing, some pins, and some wires with pins already attached. One thing to note, the HLN9242A kit also includes a pin extractor for removing previously installed pins.

After searching for the genuine Motorola program I came across Motorola Radius GM300 Radio Doctor. This program runs fine under Windows XP and will do all the functions that the genuine Motorola radio service software does. Here is the main screen. Motorola Radius Gm300 Radio Doctor Xp. See a video of the software in use. GM300 Mobile Radios Operating Instructions Operating Instructions 8 Channel Operating Instructions To Turn The Radio On Turn the ON/OFF VOLUME knob to the right until it clicks. The LED lights will show the last status of the radio and a start-up tone will be heard. To Receive Set the volume by turning the ON/OFF VOLUME knob clockwise.

If you see this screen above, congratulate yourself! You have successfully configured DOSBox to run Motorola’s Radio Service Software. Now comes the part that just about everyone has trouble with. Getting your Motorola Radius to communicate with your computer. With the power applied to the red & black pigtail the Radio Doctor software worked just fine. Be aware that the Motorola pin numbering convention on the RJ45 connector is the reverse sequence from the standard pin numbering convention. So if you make your own cable make sure to use the Motorola pin numbering convention. Very helpful GM300 web.

Here is the pinout of the microphone connector.

Are you having problems getting your radio to power up? Well, check here for some information that might help.

This radio can decode and display up to 126 PTT IDs. But how, you ask, since it only has a 2 digit display? It encodes (in HEX) the first two numbers of the PTT ID. See below:

Good luck in adding scan to a GM300 8 Channel radio, tried it by editing the .mdf file, and the RSS just crashes when you try to load a codeplug. You may find that the radio already has user-selectable scan, enabled off the front panel. Try it and see if it works.

If you happen to mess up the codeplug in your radio, and for some reason consider it necessary to make it into a Maxtrac... you can follow this procedure to do the conversion.

If you want to build a nice little programmer for the GM300/M120 radios, one that does not require a RIB, check out this link. Just connect the BUS+ and GND wires from the circuit to the appropriate pins on the microphone connector as shown in the programming cable schematic. You can also check the RIB page for some additional circuits.

Linking Radios for Repeater/Crossband Operation

If you need a repeater interface cable to connect a couple of GM300, M120, or M10 radios together, look here.

Need to connect a couple of GM300 radios together? Here is a schematic of the R.I.C.K. (Repeater Interface Controller Kit) to get you started. Order the service manual part number 6880901Z79 from Motorola. Note: If you try and print this schematic with your brower, it probably won't work. So, save the image and print it using a graphics program.

9600 Baud Packet Modifications

The GM300 Series are 9600 baud packet capable. They do need a minor modification though. For RX, its no big deal, just take RX audio from PIN 11 of the Accessory Connector and swing JU551 to the (A) position (Flat RX Unmuted).

For TX audio, you will have to run a jumper to the junction of R223, C228, R222 on the RF board to inject the data (if applicable you may need to set the deviation pot in the radio to maximum). You might want to put a pot on your TX line somewhat like the setup Motorola uses (voltage divider) to adjust the deviation.

It would be wise to do some measurements to make sure you have the deviation correct. You might also want run the RX and TX pins to the unused pins on the front mic connector after the mods are done.

Out of band programming

To program frequencies outside of the rated bandsplit in the GM300 can be very simple, follow the listed steps:

  • Hold the shift key down while entering the frequency you want
  • You MUST release the shift key when you enter the decimal point
  • You MUST fill the entire field -use zeros (while holding down shift)
  • When you are done, hit enter like normal, and the frequency you entered will appear in regular decimal like any other frequency.

If you are in need of the programming cable, look here.

Out of band by modifying the .MDF file

There is another method of programming the radio out of band, it is a little more complicated than the method described above, but it will work just fine.

In the GM300.MDF file make a Checksum-16 of the whole file (the F12 option in Hex Workshop), in our case we ended up with 0x5D53 (RSS V 05.00), write this down, you might need it later.

Look starting at about offset 0x2AC, you should see something like:

The highlighted area contains all the possible bandsplits that a GM300 could be.

A single bandsplit entry looks like:

The bytes to take note of are:

05 00 = Bandsplit identifier (Note: the bandsplit identifier is at the end of the frequency list)

94 11 = 4500 in decimal, ie 450.0000 MHz

5C 12 = 4700 in decimal, ie 470.0000 MHz

Note there are 3 occurances of the strings 94 11 and 5C 12, the first set is the limits displayed in the Radio Wide menu (F4-F2). The second set are the TX limits for the radio. The third set are the RX limits for the radio (note that if the TX and RX limits are not set the same the RX limits are screwed up).

To figure out what hex to enter for your bandsplits you can either use the Base Convertor (in Hex Workshop), or use a calculator with a HEX --> DECIMAL conversion function.

If you are using a calculator enter your limit (ie 4400 for 440.000 MHz) and convert it to hex, you should get 0x1130. When you enter the data into the .mdf file you have to reverse the bits such that you would actually enter 0x3011 in the field you are changing.

If you are using Hex Workshop, launch the Base Converter utility and select 'Intel Byte Order'. Then, enter your desired frequency and write down the hex result.

You can then directly enter the hex result (0x3011) into the bandsplit field.

In this example we are changing the lower bandsplit of a 450-470MHz radio to 440-470MHz.

Save the new file (you might want to make a backup copy of the original if you haven't already.

Some of the RSS packages (we don't have codeplugs for everything, so we can't check them all) check the checksum of the .mdf file when you try and load a codeplug and return an error if the checksum of the .mdf file doesn't match the one stored in the program. Try running the RSS with the new .mdf file, if you don't get an error when you run the RSS and load a codeplug then you don't have to worry about the next step.

Correcting the .mdf File Checksum

If you get a corrupt .mdf file error then you will have to go back and correct the checksum in your edited .mdf file. Load the file back in your hex editor and make a Checksum-16 of the file. If you compare the new checksum

with the original one

You will find they are probably different.

The only way we have to correct the checksum of the file at this time is to keep editing bits and making Checksum-16 calculations until the edited file's checksum and the original match. You can either edit the Copyright statement or some of the model descriptions in the file. Just take one or a few of these insignificant bytes (some experimentation may be required depending on by how much the cheksum is out) and add or subtract a few bits of the numbers make a Checksum-16 of the file. You should notice the checksum has changed by the number of bits you added or subtracted. Keep going until the checksum's match.

Once the checksum's of the files match you should be able to run the RSS, load the codeplug, and enter the frequencies within your new bandsplits with ease.

Add channels by modifying the .MDF file

You may be able to increase the number of channels in your radio. You can try by following the procedure below:

Search the .mdf file for your radio's model number. You should see something like (for a M33GMC29C2__):

Motorola radius gm300 radio doctor for windows 7

Now, looking at the bytes after the model number, you will find the following:

The 0x03 is the bandsplit used by this model, you can find this in the bandsplit list discussed above.

The 0x10 is the number of channels in the radio. 0x08 = 8 ch, 0x10 = 16 ch, 0x20 = 32 ch, 0x28 = 40 ch.

Now, if you have a 8ch radio you can try bumping it up to 16, we've been told that it works fine (in fact, depending on what other options you use you might even get 17 channels).

You can take a 16ch radio all the way up to 40 ch (0x28) and it should work fine, any more than that and it does strange things (codeplug probably gets too full and wraps).

Another thing you will notice is that you can only have the first 16 channels in the scan list (if anyone finds a workaround, let us know).

Note: You will have to correct the checksum for the file as described above. Also, if you try and program in all the channels, you may get an out of memory error. This can be rectified by either deleting 1 or 2 channels, or turning off some other options like MDC to free up some codeplug space.

Codeplug Hacking

OK, there is a way to change the serial number in the GM300, buy you will need Maxtrac Lab RSS to do it.

Motorola radius gm300 radio doctor for windows 7

First off, connect up your radio and fire up the Maxtrac Lab RSS.

You will want use the EEPROM Access feature of this RSS (aka Bit Banger) which is available by selecting options F2-F9 from the Main Menu.

The software will access the radio and read a chunk out of the codeplug.

Turn on ASCII by selecting option F9. This will all you to see what the hex characters really mean.

Motorola

WARNING: Using the EEPROM Access feature has the potential to SERIOUSLY screw up your radio. Unless you know what you are doing, you would be well advised to stay away (unless you want a doorstop).

The chunk of the codeplug the software reads is from addresses B600h to B62F. By looking at the ASCII representations, you will see that the serial number in the GM300 is located at locations B600h through B609h.

Some other things you may find interesting, if you were to read the radio with GM300 RSS, go into the Help Menu (F1) and then go into Other Help (F9), you would see a Panel Number and a Software Version listed. This info tells the RSS some important info about what features the radio supports. The Panel Number also tells the radio what kind of display is attached and how to support it.

Well, as you look in the codeplug, you can find the Panel Number stored at location B60Ah and the Software Version stored at B60Dh.

Another interesting thing are the bytes in locations B60Bh and B60Ch. These two bytes actually define the model of the radio. If you were to look up your model number in the .mdf file (see above) and look at the three bytes preceeding the model number, you will see that the first two bytes correspond with the bytes at B60Bh and B60Ch in the codeplug.

Now, the last and most important thing you should be aware of, is the checksum. For the data stored in locations B600h to B610h, the checksum is stored in location B611h. Every time the radio is reset, it recalculates the checksum for the block of data and compares it to the checksum stored at B611h. If it matches, then the radio will give a good power-up beep and everything will be fine. If the calculated checksum and the stored checksum do not match, you will power up to the dreaded low pitch codeplug error tone and when you read the radio with RSS, it will fail with a codeplug error.

So, any changes made to the block of data between B600h and B610h must also include a change to the checksum stored at B611h.

Now, unfortunately the 'Correct Checksum' feature of the Maxtrac Lab RSS will not work on the GM300, the Maxtrac uses a different codeplug structure and using this option will corrupt your GM300's codeplug. In order to calculate the proper checksum, you will have to do it manually.

If you are going to make any changes to your GM300 codeplug, do the following:

  • Copy the hex bytes down on a piece of paper for all the locations from address B600h to B611h
  • Exit out of the Maxtrac Lab RSS
  • Fire up Hex Workshop (version 2.54)
  • Create a new file and insert all the bytes you copied down to paper
  • Highlight all the bytes except for the last one
  • Hit F12 to Calculate Checksum
  • Ensure that the Selection, Hex, and 1's Complement options are all checked and click Generate
  • Look at the Checksum-8 value and compare it to the byte that you did not select (the checksum byte from the codeplug)
  • If they match, continue. If not, repeat the above steps until you get it right
  • Close the Checksum window
  • Make whatever changes you want to the serial number
  • Calculate the new checksum
  • Write all the bytes down on another piece of paper (including the new checksum
  • Close Hex Workshop
  • Start up Maxtrac Lab RSS again and go into the EEPROM Access feature (remember to turn on ASCII)
  • Use the key to get to the fields you want to edit and change all the relevant data including the checksum from the bytes you wrote down earlier
  • Select Write RAM (F8)
  • That's It!

If everything went well, the radio should reset with a good tone, otherwise, you have screwed something up. Try restoring all the original data by entering it in by hand and start again.

Now, when you read the radio with GM300 RSS, it should have a new serial number.

Blanking/Recovering a GM300 Logic Board

At this time there is no GM300 Lab RSS that we are aware of that will allow you to blank and re-initialize a GM300 logic board.

The only tools that will let you blank the logic board are Maxtrac Lab RSS, and Emmco C++ Toolkit.

In order to recover the radio however, you need a codeplug from the radio that has been blanked, or a codeplug from an exact same model.

If you are using the Emmco C++ Toolkit, you can take the codeplug and dump it into the radio directly. You will then have to correct the serial number using the procedure above if you used a codeplug from another radio.

If you are using Maxtrac Lab RSS, I hope you like bit banging, because you are going to have to do some editing to get it back.

First, you need to gather some information.

  • Load the codeplug you are going to use to recover the radio into the GM300 RSS
  • Record the Model Number and Serial Number on a piece of paper
  • Go into the Help Menu (F1) and then into Other Help (F9)
  • Record the Panel Number and the Software Version on your piece of paper
  • Exit out of the RSS and load the .mdf file into Hex Workshop
  • Search for the Model Number you wrote down earlier
  • Locate and record the three bytes preceeding the model number (should start with 1Bh, 20h, 21h, or 29h)
  • You only need the first two bytes (ie. 1B02h for a M33GMC29C2)
  • Now you are ready to start the bit banging.

After you blank the logic board (Extended Codeplug/Clear Tuning Data), the codeplug is setup to be re-initialized by Maxtrac RSS. The GM300 codeplug structure is different.

Motorola Gm300 Radio Doctor Download

First off, you need to go into the EEPROM Access feature (and turn on ASCII (F9)).

You will see that the codeplug is all FFh's except for the data in locations B613h through B61Ch. The 20h's are spaces and are the location where the serial number is stored in a Maxtrac. In a GM300, the serial number is stored in locations B600h through B609h.

Use the TAB key to get to location B613h. Fill locations B613h to B61Ch with FFh's. Use to get back to location B600h.

In locations B600h through B609h, enter the the serial number for the codeplug you are going to use (you can figure out the hex for each digit).

Update: Instead of putting in the actual serial number of the codeplug you are about to load, try filling locations B600h to B609h with 20h (space) instead. Once you do that, the GM300 RSS may recognize the board as being blank and allow you to dump whatever codeplug you like (use the RIGHT one!) into the radio without any further editing. If this does not work, then continue on with the rest of this procedure.

In location B60Ah, enter the panel number.

In locations B60Bh and B60Ch, enter the model index you got out of the .mdf file. NOTE: You have to enter the reverse of what you have written down. If your model is a 1B02h, you would enter 02h into location B60Bh and 1Bh into location B60Ch.

In location B60Dh, enter the software version.

Select Write RAM (F8) to dump the data into the radio.

Now, you still need to figure out the checksum and enter it into location B611h. Use the procedure above in Codeplug Hacking to figure out what you need to enter for the checksum. Once you have figured out the checksum, stick it into location B611h, and Write RAM.

You are now ready for the big test. Fire up the GM300 RSS and load your codeplug. Try writing it to the radio. If you did everything correctly, then you should get a good beep out of the radio when it resets. If not, you're on your own, I don't know what you did wrong.

A couple of issues you need to be aware of. First, if you used a codeplug from a different radio in order to get the blanked one back to life, you need to go through the serial number changing procedure to get it back to what it should be (on the sticker for the radio). Second, since the radio was blanked, all the tuning and calibration data was cleared. The radio needs to be retuned by a radio shop to get it calibrated/aligned so that it operated within specifications.

There you go, that's how to recover a blanked GM300 series radio. Unfortunately it isn't as easy as a Maxtrac, but the procedure does work.

We have tried hacking around a bit in a blank codeplug to see if there was any way to get the GM300 RSS to allow a blank board re-initialization, but have not had any luck. So, that is the reason that you need a codeplug to get some important setup data from.

Please do not try to make a radio something it is not. You MUST use a codeplug from an EXACT model of the radio you are trying to recover. You cannot make a UHF into a VHF model, a high power into a low power radio, an masked codeplug into an expanded codeplug radio, or anything else silly like that. It WILL NOT work.

Using a PAC-RT With the GM300

Do you want to use a PAC-RT with a GM300? You will need the following cable:

Cable shields are connected to PAC-RT Pin 18 (Ground) and not connected at radio. There are two jumpers inside the PAC-RT Connector, Pin 2 to 16 (B+) and 10 to 17 (PTT Ground).

GM300 RSS and the OpCode #7 Error

It seems that some radio's are very particular when it comes to programming voltages from the RIB. Try using a brand new battery fresh out of the package or use an external voltage source for the RIB and see what happens.

We have also heard of some people getting this error when trying to program the radio in a DOS box under Windows. When they use DOS only, it programs just fine. Not sure why anyone would even think of attempting to try and run RSS under Windows to begin with... you're just asking for trouble.

Another solution to getting rid of the error was to re-install the RSS

Even another solution was to use a backup copy of the .mdf file, in this case the error popped up after modifying the .mdf.

Distorted Audio Problems/Microphonics

There are a few things that commonly cause this problem.

First, remove the radio covers and the VCO shield. Tighten all the mounting screws on the RF board. Be sure you re-install all the shields properly You will find the mounting screws on the RF board have loosened.

Sometimes it is also the shield itself that causes the problem by not fitting properly.

It could also be that L202 is bad.

Another possibility are the feedthrough capacitors and plugs. They get dirty and cause all sorts of problems like RX drifting, bad RX audio, scratchy TX.

Decoding the GM300 Model Number

Below is the chart that should decode GM300 Series models, if there are any errors, please let us know.

M34GMC29C3A_
M All Models0 1-10 Watts3 VHFGM All ModelsC 45.1 MHz IF0 12.5 kHz Ch. Spacing0A Masked Logic Board, 2 Freq.(M120)1 136-162 MHzA_ All Models
3 10-25 Watts4 UHFR 45.3 MHz IF2 20/25/30 kHz Ch. Spacing (VHF)0D Masked Logic Board, 8 Freq.1 403-433 MHz
4 25-40 Watts2 20/25 kHz Ch. Spacing (UHF)9C Expanded Logic Board, 16 Freq.2 146-174 MHz
2 450-470 MHz
3 438-470 MHz
4 465-495 MHz
5 490-520 MHz

As you can see, the example given M34GMC29C3A_ would correspond to a 25W, 438-470MHZ, 16 Channel radio with a 45.1 MHz IF.

If you have any questions, email us and we'll try to help.

Home

GM300

Radio Programming,

8 to 16 channel expansion

Motorola Gm300 Radio Doctor

RIB-IVG (Radio ProgrammingInterface.See below for update to programming interface.

Introduction.

The Motorola GM300 can bere-programmed quite easily to allow use on our Amateur Radio bands. The radio is made inboth a VHF and UHF versions, and makes an excellent 2mtr or 70cms mobile/base stationradio.

Most of the radio's I have worked onhave originally been 8 channel units. These can be modified to operate on 16 channelsquite easily.

The programminginterface can be made for a low cost. All it consists of is a RS232 to TTL levelconverter, that connects between the serial port of your PC and the radio's microphonesocket.

Amateur Radio Conversion.

The radio requires the MotorolaSoftware which can be found if you ask around or search for it on the FTP sites on theInternet. If you can't find it then try your local Motorola dealer who should be able tohelp at a small cost.

You also have to make an interface,or purchase one.

To program the radio onto theAmateur band, you can find some versions of software that have been hacked into allowingfrequencies to be entered to bring the radio into the amateur bands which normally arejust bellow the original working frequency. However this depends on your version ofsoftware, if it's a un-hacked version then you have to press the <SHIFT> key downwhen entering the frequency. You must release the <SHIFT> key when entering thedecimal point. For example to program 433.500MHz you will enter thefollowing: $££.%)) on a English layout keyboard. (This is 433.500 with the <SHIFT> held down. Fill all of the 0's in the frequencyfield. This example is the same for both the VHF and UHF GM300's.

16 Channel conversion. (for 8 channelradio's only)

To program the radio for 16 channelsall you need to do is edit a file called GM300.MDF. You do this with the help of a Hexeditor such as Hex Workshop This can be foundand downloaded on http://www.bpsoft.com

The file you need to modify iscalled GM300.MDF and can be found in the main directory of the Motorola software. Keep abackup of your original GM300.MDF file, just in case you make a mistake.

I have made a small video that showsthe Hex Workshop screen during the modification. This should help you understand theprocedure of editing the file which when complete will give you 16 channels. Click belowto download.

gm300mdf.zip(236Kb)

Procedure

  1. Get a copy of Hex Workshop (http://www.bpsoft.com )

  2. Start the Hex Workshop program and open the file GP300.MDF to begin editing.

  3. Go to 'Tools', and the 'Generate Checksum'.

  4. Make sure 'Entire Document' and also 'Decimal' are ticked. Then press 'Generate'.

  5. Look in the 'Checksum-16' box, in my version of software for example this results in a checksum of 5514. (yours may be a different number depending on the version of Motorola software)

  6. Write this number down, as you need it later.

  7. Press 'Cancel' to return to the main window and your next step.

  8. Go to 'Edit' and then 'Find'. A pop-up window appears.

  9. You need to enter the model number of your radio. For e.g. M34GMC00D3AA.

  10. When you enter the model number leave off the last two letters(AB on my radio).Make sure 'ASCII' is ticked.

  11. When you press 'Find Next', you will see your model number highlighted.

  12. If you count 8 numbers after the highlighted section, you should see the number '08' as long your radio is originally a 8 channel set.

  13. Edit the '08' to '10' (note 10 in Hex is equal to 16 in decimal).

  14. You now need to edit the start of the program, to allow the software to run.

  15. In the first few lines look for a Hex number that you can easily take away 8 from.

  16. In my software at address 00000040 you will see the number '78' on the right.

  17. Edit this to be '70'.

  18. Now you must do a final checksum and make sure it equals the original value.

  19. If this is the same, then replace you original file with the modified file.

  20. Try to reprogram your radio with the extra 8 channels to give you 16 channels.

If you have problems E-Mail me, and I will try to help. 73 de Colin (G1IVG).

Please don't ask me for a copy of the Motorola Software.

RIB-IVG(Programming Interface MkIII) by G1IVG.

(withspecial thanks to Roberto EB4EQA for supplying the drawings below).


WARNING:

In order to build the interface described below, you will atleast require some basic electronics experience. If you don't understand, how thedescribed circuitry works, it's best not to build it. Although the described procedure isrelatively simple, you could cause serious problems to both your PC and your Motorolaradio. So please build the interface and use it at your own risk.

Pay attention to the polarity of the capacitors these are markedwith a + in the diagram next to each capacitor. You will find that in some cases thecapacitors appear to be the wrong way around, however this is not the case, as they mustbe configured this way to generate the correct voltages within the MAX232.
Interface Parts List.

Item Qty Description

Motorola Gm300 Radio Doctor
  1. 1 PCB (Single sided prototype board)
  2. 1 IC MAX232
  3. 1 IC 7407
  4. 1 IC 7805 (5v regulator)
  5. 5 Capacitors 1uf, 16v electrolytic
  6. 2 Resistors 680 ohm 1/4 watt
  7. 1 LED Green
  8. 1 LED Red

    Component Side View

Track Side View

Click here todownload a zip file that contains

an AutoCAD 14 file

of the images above.

Thanks to Roberto Barrios Sanchez (EB4EQA) for providing the above revised layout drawings

PC Connection.

In the interface drawing above youwill see the numbers 2,3,4,5 & 9. These numbers represent the 9pin serial port foundon most PC's today. If you only have a 25pin serial port then see below for the pin-outtranslation.

9 pin to 25 pin conversion information.

9 pin25 pin

2---------------------------3

3---------------------------2

4---------------------------20

5---------------------------7

9---------------------------22

RadioConnection (GM300 & GM350).

Motorola Radius Gm300 Radio Doctor

To connect to your GM300, all you haveto do is connect your interface to the front MIC socket on the radio. See the informationbelow for connection details.

The Interface design above has been tested on thefollowing radio's:

GM300 (Connect to the Mic socket on the front panel of theGM300)

GM350 (Connect to the Mic socket on the front panel of theGM350)

GP300 (See my GP300 page for info etc.)

Maxtrac 840 - 800 MHz Truncking Radio (Try http://www.batlabs.com for connections).

Maxtrac 300, VHF 16 ch.

Circuit Diagram For the GM300.

(sh_gm300.zip 474KB)

Sandy Ganz's RIB CardPCB.

Motorola Gm300 Radio Doctor

You can buy the RIB Card PCB directfrom Sany Ganz in the form of a bare PCB. It cost me $20 plus $5 Overseas shipping. Forfurther detailed information you can e-mail Sandy on the following address : motradio@pacbell.net All you need to do is purchase the components locally.Sandy also includes a parts list and information on a supplier for the components if youcan't find them locally.

73 de Colin inBarcelona Spain.

Remember, I cant help with the supply of software.......Sorry.......