../maxon-pm100-programming

Maxon PM100 V2 Programming

Over the summer I got hold of a number of Maxon PM100 V2 rigs with the intention of using them for node-building activities. As it turns out, they are a pain to program.

Maxon intended these rigs to be programmed with the SM-2000 cable which is both impossible to purchase anywhere, and has not been reverse engineered, so very little is known about it.

The cable pairs with the SM-4004C or SMP-6001 programming software which are DOS based. They work quite nicely in DOSbox. The software lets you write the codeplug to disk, and is saved in the same format that is written to the rig's 93C56 EEPROM. With a bit of file manipulation and soldering we can program the radio without the cable. KB0NLY did the same with the PM150 (SM-4150), and the process works equally well for the PM100.

File Format

The SMP-4004C software saves codeplug files as:

For a total of $1b4 (436) bytes.

$ xxd -c 12 JAIL.CHN
00000000: 3038 3133 3343 3201 008f 0000  08133C2.....
0000000c: 0f50 4d2d 3130 3020 5632 2020  .PM-100 V2  
00000018: 2056 4846 7420 7365 6c65 6374   VHFt select
00000024: 6564 0000 0000 0000 0000 0000  ed..........
00000030: 0000 0000 0000 0000 0000 0000  ............
0000003c: 0000 0000 0000 0000 0000 0000  ............
00000048: 0000 0000 0000 0000 0000 0000  ............
00000054: 0000 0000 0000 0000 0090 0020  ........... 
00000060: fb00 00c3 0008 3a80 a0f3 0020  ......:.... 
0000006c: fb00 00c3 0000 0000 0000 0000  ............
00000078: 0000 0000 0000 0000 0000 0000  ............
00000084: 0000 0000 0000 0000 0000 0000  ............
00000090: 0000 0000 0000 0000 0000 0000  ............
0000009c: 0000 0000 0000 0000 0000 0000  ............
000000a8: 0000 0000 0000 0000 0000 0000  ............
000000b4: 0000 0000 0000 0000 0000 0022  ..........."
000000c0: ab22 0000 0000 0000 0000 0000  ."..........
000000cc: 0000 0000 0002 0000 0003 3000  ..........0.
000000d8: 0000 0000 0000 0000 0000 0000  ............
000000e4: 0000 0000 0010 3a00 0003 00fd  ......:.....
000000f0: ff00 00ff ffff ffff ffff ffff  ............
000000fc: ffff ffff ffff ffff ffff ffff  ............
00000108: ffff ffff ffff ffff ffff ffff  ............
00000114: ffff ffff ffff ffff ffff ffff  ............
00000120: ffff ffff ffff ffff ffff ffff  ............
0000012c: ffff ffff ffff ffff ffff ffff  ............
00000138: ffff ffff ffff ffff ffff ffff  ............
00000144: ffff ffff ffff ffff ffff ffff  ............
00000150: ffff ffff ffff ffff ffff ffff  ............
0000015c: ffff ffff ffff 0000 4e6f 2052  ........No R
00000168: 6563 6f72 6420 496e 666f 726d  ecord Inform
00000174: 6174 696f 6e00 0000 0000 0000  ation.......
00000180: 0000 0000 0000 0000 0000 0000  ............
0000018c: 0000 0000 0000 0000 0000 0000  ............
00000198: 0000 0000 0000 0000 0000 0000  ............
000001a4: 0000 0000 0000 0000 0000 0000  ............
000001b0: 0000 0000                             ....

The codeplug data starts at byte $5F, and is 256 bytes long which is the size of the internal EEPROM.

Reading

Desolder the 93C56 EEPROM. Pin 1 is on the side furthest from the edge of the board, so bear that in mind when putting it back in.

I used a XGecu TL866ii programmer and minipro to dump the contents to a file.

Then using an existing file created with the SMP-6001's PM100.EXE, we can make a new file:

minipro -p 93C56A -r 93C56.bin
header_length=95
dd if=JAIL.CHN bs=1 count=$header_length of=JAIL.H
dd if=JAIL.CHN bs=1 skip=$(($header_length+256)) of=JAIL.T
cat JAIL.H 93C56.bin JAIL.T > JAIL2.CHN

The resulting file can now be read in PM100.EXE:

This one came from a Taxi company, so is up in the Fixed Mobile bands.

Writing

We can work backwards to program the radio. Starting with a CHN file produced in PM100.EXE, we can extract the data and write it to the chip:

dd if=JAIL.CHN bs=1 skip=94 count=256 of=93C56.bin
minipro -p 93C56A -w 93C56.bin

In this case I was asked to program the radio to exactly 156MHz for reasons beyond my pay grade.

Make sure to put the EEPROM in the right way around!

Since the channels were not changed from one end of the band to another, no realignment was required.

Low power mode seems to put out a bit more than the advertised 5W.

If programming is successful, you should hear 3 tones when the radio starts. If you get a steady beeping then something is wrong. Check the EEPROM is the right way around.

Pitfalls

  1. Did I mention that it helps to put the 93C56 chip back in the radio the correct way around? Pin 1 is towards the middle of the board, which is the opposite of the 8-pin chip located next to it.

  2. In the units I worked with there are a few different versions of the EEPROM chip. They all seem to read the same way, although some seem to write bytes in different order. minipro's 93C56 profile worked for the most part, except for one chip where I had to use a different one. A list of candidates can be found with minipro --list | grep -i 93c56.

  3. PLL realignment might be required, especially if you are going from a rig set up at the top of the band down to amateur frequencies. The process is simple and detailed in the service manual.

Conclusion

These are OK little radios, and can certainly be picked up cheaply. Look out for units with options boards fitted - usually a 9 or 15 pin D-Sub connector on the back - as these are easier to build interfaces for.

Happy programming!