RandrewThomas
Member
- Joined
- May 20, 2021
- Messages
- 13
I hope to keep this thread focused on information discovered about the internal operations of the processor hardware and firmware in the above radios.
In this post I'll try to outline the tools and methods I've used to discover things. I'll probably have to come back and edit this post or add new posts with new or correcting information.
1) I've limited my testing to Flash ROM binaries compatible with the R18 (last) version of the "ProGrammer" software since apparently RPM (which replaced it) is keyed software only available to paying users.
2) For standalone radios that you got used without a display (Control Unit), there's a fair chance it won't wake up with just battery power. You'll need to apply 12VDC to the ignition signal in this case OR you can open the cover over the processor board, find the only switch on an edge of the PCB and slide it to the position marked on the silkscreen. This will allow the radio to turn ON via a front panel CU that you may have added without having to raise the Ignition pin on the back of the radio (37 pin D connector, pin 10, I think).
3) P1 - 37 pin D connector pinout (pins that I care about):
1 - GND
2 - RS-232 Rx
3 - RS-232 Tx
4 - RS-485+
5 - RS-485-
6 - CTS - (I haven't actually needed this yet)
8 - FPROG - connect this to +12V before / during power-on to get radio in ProGram mode
18 - SPKR1
19 - SPKR2
20 - RTS - (I haven't actually needed this yet)
4) HDT (Hex Debugging Tool) - a tool in firmware that can be enabled by the FCC Menu. To enable it, first use ProGrammer (or RPM I suppose) to add "FCC Menu" to your radio's Menu button list. Then with the radio powered up, using its CU, navigate to the FCC Menu, scroll to "HDT" and change it from OFF to ON. After that, every time the radio is powered up, the HDT will use the RS-232 port at 19200 baud, N 8 1, to let you play around in the firmware's guts. It does not support breakpoints but does allow viewing memory values and disassembling H8 code. Warning: there are some bugs in its disassembler, a few instruction mnemonics showed incorrectly.
5) The RS-485 port is used to communicate with Control Units (CUs for "head units"). If you attach a decent RS-485 adapter (that auto-controls its transceiver) you can observe the CU communication protocol. Also 19200, N 8 1
6) Communication protocols, both ProGrammer and to CUs: Packet oriented where packets are encapsulated with ASCII escape code DLE (10h) and codes like SOH (01h) and ETX (03h). Packets are ended with DLE and ETX or ETB (17h) followed by a 2 byte CRC for the packet.
More to follow as time allows.
In this post I'll try to outline the tools and methods I've used to discover things. I'll probably have to come back and edit this post or add new posts with new or correcting information.
1) I've limited my testing to Flash ROM binaries compatible with the R18 (last) version of the "ProGrammer" software since apparently RPM (which replaced it) is keyed software only available to paying users.
2) For standalone radios that you got used without a display (Control Unit), there's a fair chance it won't wake up with just battery power. You'll need to apply 12VDC to the ignition signal in this case OR you can open the cover over the processor board, find the only switch on an edge of the PCB and slide it to the position marked on the silkscreen. This will allow the radio to turn ON via a front panel CU that you may have added without having to raise the Ignition pin on the back of the radio (37 pin D connector, pin 10, I think).
3) P1 - 37 pin D connector pinout (pins that I care about):
1 - GND
2 - RS-232 Rx
3 - RS-232 Tx
4 - RS-485+
5 - RS-485-
6 - CTS - (I haven't actually needed this yet)
8 - FPROG - connect this to +12V before / during power-on to get radio in ProGram mode
18 - SPKR1
19 - SPKR2
20 - RTS - (I haven't actually needed this yet)
4) HDT (Hex Debugging Tool) - a tool in firmware that can be enabled by the FCC Menu. To enable it, first use ProGrammer (or RPM I suppose) to add "FCC Menu" to your radio's Menu button list. Then with the radio powered up, using its CU, navigate to the FCC Menu, scroll to "HDT" and change it from OFF to ON. After that, every time the radio is powered up, the HDT will use the RS-232 port at 19200 baud, N 8 1, to let you play around in the firmware's guts. It does not support breakpoints but does allow viewing memory values and disassembling H8 code. Warning: there are some bugs in its disassembler, a few instruction mnemonics showed incorrectly.
5) The RS-485 port is used to communicate with Control Units (CUs for "head units"). If you attach a decent RS-485 adapter (that auto-controls its transceiver) you can observe the CU communication protocol. Also 19200, N 8 1
6) Communication protocols, both ProGrammer and to CUs: Packet oriented where packets are encapsulated with ASCII escape code DLE (10h) and codes like SOH (01h) and ETX (03h). Packets are ended with DLE and ETX or ETB (17h) followed by a 2 byte CRC for the packet.
More to follow as time allows.