Programming Motorolla MCX100 UHF range 3 radios for the 70cm ham band

 

Author: Nico du Toit ZR6AFJ

 

 

The radio

 

Two models of the Motorolla UHF radios were made, a range 1 radio covering from 400 – 430 Mhz and a range 3 radio covering 430 – 470 Mhz. The only one useful for ham purposes without modification is therefore the range 3 radio.

 

A way to identify them, other than the model number is to open the radio, lift off the RF final stage cover and look at where the antenna socket is connected to the PC board. There is a white block with UHF-R1 or UHF R3 written on it.

 

You can also take out the VCO and look at its underside. The number there will be MBTLE2301A(Range 1) or MBTLE2303A(Range 3). I mention this because you may want to build a working radio from a few broken ones.

 

You can swap receiver PCB’s from a R1 radio to a R3 radio or visa versa. I have done this, it works.

 

 The synthesizer boards are also interchangeable. I would not recommend swapping the VCO without swapping the final stage because as mentioned there seems to be part differences. To see a picture of the mentioned components click here.

 

The channel selector knob of the radio I have only had 8 positions. I could get 16 positions by taking the knob off and the break the stops behind the knob on the chassis. The single digit display can only count from 1 to 9 and then from 0 to 6 but I don’t mind…..

 

A schematic to connect power to the radio is here. The mic connections are marked on the receiver PCB. Look at this photo to see the connection for the mic audio if you want to use a normal magnetic mic.

 

Starting point ?

 

Although there is a lot of information available on the NET for programming MCX100 VHF radios there is no specific information about the UHF range 3 radio. All the sites I could find also do not offer enough data to construct a complete solution. Therefore I consolidated everything I could find and with reverse engineering of the original PROM and a lot of trial and error ended up with something useful for the radio ham.

 

Hardware needed

 

This document will describe a way to accomplish the task at hand by using a PC, a PIC16F877 micro controller, a PC parallel port PIC programmer, a protoboard for connecting the PIC to the EEPROM (AT28C256) and how to connect the EEPROM to the synthesizer board with a 16 bit ribbon cable.

 

The PIC programmer must be able to handle the 40 pin PIC. You can buy one or build one – look on the NET or in shops selling electronic kits.. It is not a complex piece of hardware.

 

Why am I using this hardware combination? Just because this stuff happened to be available in the shack, I have PIC knowledge/hardware from a previous project and it was therefore the cheapest/quickest way for me to do it.

 

Datasheets for all components are available on the NET.

 

Software needed

 

You need the Microsoft Excel spreadsheet,

C compiler for PIC (Hi-Tech Software). Use the demo version and not the "Lite" version. The "Lite" version does not target the PIC16F877.

 Free PIC programmer software - IC-PROG: (http://www.ic-prog.com) .

 Source code for the PIC controller.

 

The hardware settings for the IC-PROG program when using it with the P16PRO40 (Available in Pretoria) programmer must be:

Select ProPic 2 programmer

Port : LPT1

Direct IO

Invert Data Out - checked

Invert Data In   - checked

Invert Clock    - checked

The rest unchecked

 

I am running all of this on Windows XP but I am sure Win95/98/ME/2000 will also work.

 

The result ?

 

By using the information below you will be able to program the radio for up to 16 channels. You can of course improvise to be able to use different techniques/hardware to program the EEPROM/EPROM/PROM. Please note that how to program the PIC controller is outside the scope of this document. There is a lot of information regarding this on the NET. This document assumes you have a general understanding of how a frequency synthesizer works

 

The real stuff

 

First of all I would like to say thanks and give credit to the following sites and people from whose web sites I found valuable information:

      

www.geocities.com/SiliconValley/5857/mcx100.htm  (Why would you like to use this radio ?)

 

www.geocities.com/sganz.geo/mcx100info.html          (Model number identification)

 

http://www.wtc.ab.ca/ve6kp                                      (Original VHF  spreadsheet)

 

www.geocities.com/SiliconValley/5857/algorith.htm   (UHF Prescale factor)

 

www.batlabs.com/mcx100.html                                 (Layout of some bits inside the data words)

 

I also would like to thank Nols Lochner ZS6ACL in Rustenburg for his assistance, inspiration and for giving me a radio to play with.

 

I will first describe the procedure to follow in using the various tools and thereafter give what I have about how to calculate the data. I will only explain stuff not easily deductible from the spreadsheet and not available at the above sites..

 

Step 1 :  The spreadsheet

 

Please note that the spread sheet’s output was only tested for the ham band (430 Mhz to 440 Mhz) .  Frequencies outside this range may not work, as I had to find the VCO ranges by guess work and trial and error. All formulas on the spreadsheet is changeable if you need/wish/want to.

 

Open the spreadsheet. Click on Tools then Add-ins. Make sure the “Analysis Toolpack” is selected.

 

If you are prompted with disable/enable macros you must choose “enable”.

 

Click on the “16 Ch  Data Entry” tab at the bottom to select the sheet where you enter the frequencies.  Enter frequencies in the “Receive Frequencies” column. Then you enter the offset. The offset is a “-“ for shifting TX low and “+” for shifting TX high. A “s” is for simplex. The offset will add or subtract 7.6 Mhz.

The “Transmit Frequency” column will populate itself. You can also enter a description for the frequency.

 

Click on the “Calculations” tab to select that sheet. Make sure the “N” column for both RX and TX tables are all integer numbers. If any of them are not you can change the reference frequency for those specific channels. Only 0.005 and 0.00625 Mhz are implemented and can be used. If after trying both and N is still not an integer that particular frequency cannot be synthesized.

 

Now select the “PROM Data” sheet.  You will see a lot of numbers there. Most of these comes from the original spreadsheet and I left it there for incase someone find them useful. The column we are interested in is the “RXDATA” and “TXDATA” columns on the right side of the sheet. You will also see a button named “PIC Data”. Be sure you click this button EVERYTIME you change any of the frequencies or formulas in the spreadsheet. This will repopulate the “RXDATA” and “TXDATA” columns.

 

Step 2: C compiler

 

Start up the HT-PIC compiler. Create a project for you and use this source file as the only file in that project.

 

Open the source file. At the top of the file is an array with the name “rxdata”. Copy and paste the “RXDATA” column from the spreadsheet to the source file. Do the same with the “TXDATA” column but paste it into the array named “txdata”

Compile the source file.

Dump the .HEX file to the PIC with the PIC programmer using the IC-PROG program.

 

Step 3: The protoboard

 

Here is the scematic to be constructed on the protoboard or whatever you want to use. If the schematics do not look good in the browser save them to your hard disk and view them with the "Microsoft Paint" program.

 

Plug the PIC and EEPROM into the protoboard and supply +5 volt.

The led will flash once and then flash 128 short flashes. Each flash indicates 1 byte written and red back successfully. It will give another longer flash and another 128 flashes. When all is done the led will give one long flash and start over again. When you see the long flash, disconnect the power. If the led suddenly stops flashing while power is connected it means there is a read/write error and nothing useful will happen afterwards.

 

 The whole download takes about 30 seconds. You can make it go faster if you want by taking out/shorten the loops. Just make sure the thing does not run too fast for the EEPROM.

 

Step 4: Plug the EEPROM into the radio via ribbon cable

 

See a picture of the EEPROM on ribbon cable.

 

See a picture of the cable connection to the synthesizer board. Please take note. The 5V supply is not taken from the PROM 5V pin 16. This is important , else it will not work !

 

See the schematic for connecting the EEPROM to the synthesizer board.

 

Switch on the radio and enjoy !!

 

Technical stuff

 

Memory organization

 

Each channel consists of 8 words (bytes) in the EEPROM.  Only the lower 4 bits of the byte are used. The higher 4 bits are programmed to 0. Also only the lower 8 address lines of the EEPROM are used. The higher 8 lines are always connected to ground.

 

Look at the table below. For address and data the most significant bit is on the left hand side.

The address represented as A7 , A6 , A5 , A4 , A3 , A2 , A1 , A0.

 

The upper 4 address lines are supplied by the channel selector and the lower 4 lines are supplied by the divider chip itself.

A3 is low for RX channels and high for TX channels.

 

Data is represented as D3 , D2 , D1 , D0.

Words W2 and W5 are not used and is programmed to binary 1111.

 

 

Channel

 

Address

Data

Word name

1 RX

0001 0000

XXXX

W0

1 RX

0001 0001

XXXX

W1

1 RX

0001 0010

1111

W2

1 RX

0001 0011

XXXX

W3

1 RX

0001 0100

XXXX

W4

1 RX

0001 0101

1111

W5

1 RX

0001 0110

XXXX

W6

1 RX

0001 0111

XXXX

W7

 

 

 

 

1 TX

0001 1000

XXXX

W0

1 TX

0001 1001

XXXX

W1

1 TX

0001 1010

1111

W2

1 TX

0001 1011

XXXX

W3

1 TX

0001 1100

XXXX

W4

1 TX

0001 1101

1111

W5

1 TX

0001 1110

XXXX

W6

1 TX

0001 1111

XXXX

W7

 

 

 

 

2 RX

0010 0000

XXXX

W0

2 RX

0010 0001

XXXX

W1

2 RX

0010 0010

1111

W2

2 RX

0010 0011

XXXX

W3

2 RX

0010 0100

XXXX

W4

2 RX

0010 0101

1111

W5

2 RX

0010 0110

XXXX

W6

2 RX

0010 0111

XXXX

W7

 

And so on ….. Note that channel 16 is located at address 0000 0000

 

 

 

 

Undocumented stuff

 

Prescaler

 

The document at www.batlabs.com/mcx100.html  state that for UHF MCX100 radios all frequencies must be divided by 3 first. This is wrong and please do not pay attention to this. For range 1 radios it is not even necessary to use the prescaler (Below about 431 Mhz).

 

For the range 3 radios you have to activate the prescaler contained in the divider chip.

This is done by setting D0 and D1 of  W6 to 1. The prescaler value is then 322.560. If these bits are set to 0 the prescaler is disabled. Other on/off combinations of these bits may yield different prescaler values but I do not have info on that.

 

The B register on the divider chip is only 10 bits wide and overflows at these frequencies without the prescaler. Calculating N when the prescaler is activated for RX, a value of 322.560 must be subtracted from the local oscillator value before dividing by the reference frequency. For TX, this same value must be subtracted from the transmit frequency before diving by the reference frequency. Refer to the spread sheet.

 

Reference frequency

 

I changed the spreadsheet to automatically cater for the 0.005 Mhz and 0.00625 Mhz reference frequencies on the “Calculations” sheet. It seems like there is a 0.00425 reference frequency as well but I did not implement it.  D0 and D1 of W7 select the reference frequency. If they are both 1 the reference frequency is 0.005 Mhz . If D0 = 1 and D1 = 0 the reference frequency is 0.0062. It is possible to have different a reference frequency for TX and RX on the same channel but the spreadsheet does not implement it like this.

 

VCO ranges

 

This is one part of the spreadsheet that was set up with trial and error. The ranges used are working for RX and TX on the ham band.

 

To be able to cover a wide range of frequencies the VCO employs capacitors switched in and out with PIN diodes. The PIN diodes are switched on and of with D2 of W6 and D2 and D3 of W7.  Refer to the spreadsheet for range boundaries.

 

Front-end select

 

This radio has 2 selectable front ends to be able to work accross a wide frequency range.

 

If D3 of W6 is low it selects the low front end and if it is high it selects the other one. You will have to align the front ends yourself . There are 3 groups of 3 screws on the side of the radio. 1 group is vertically aligned and I think this is common to both front ends. The other 2 groups are horizontally aligned .  Tune to a frequency defined as “low” on the spreadsheet and see which horizontal group improves reception when turned. The other group will then be the “high “ front-end. It seems to me like both front ends are the same - they are just tuned to different frequencies with the screws.

 

 

Conclusion

 

This was a very exciting project for me. I spend a lot of time to get this working and I share this info so others can hopefully benefit from it. You are welcome to mail me ndtoitn@telkomsa.net if you have anything to add or if you find mistakes.

 

 

73’s

ZR6AFJ