Maxon Data Radio: Difference between revisions
m Change image positioning |
Added EEPROM reverse engineering info, added blank config files zip, reformatting too |
||
| Line 22: | Line 22: | ||
*'''SD-171''' - 5/1W VHF (148-174 MHz) | *'''SD-171''' - 5/1W VHF (148-174 MHz) | ||
*'''SD-174''' - 5/1W UHF (450-490 MHz) | *'''SD-174''' - 5/1W UHF (450-490 MHz) | ||
==EEPROM Layout== | |||
Work in progress, but I have identified the most important stuff (Freq, CTCSS/DCS, etc) | |||
Here are [[:File:Maxon_sd_blank_configs.zip|blank .dat configuration files for each model.]] I haven't touched the EL series yet. Use these as a base for editing and flashing to your unit. | |||
===Option Bytes=== | |||
====Model ID==== | |||
The very first byte (0x00) is the model ID 01 through 04 as below. Also 0xB4, that changes based on frequency band. 04 for VHF models, 01 for UHF models. | |||
{| | |||
|+ <U>'''Model ID'''</U> | |||
|<div style="display: flex;"> | |||
<div> | |||
{| class="wikitable" style="" | |||
|- | |||
!Model | |||
!Value | |||
|- | |||
|style="padding: 5px" |'''SD-161''' | |||
|style="padding: 5px" |01 | |||
|- | |||
|style="padding: 5px" |'''SD-164''' | |||
|style="padding: 5px" |02 | |||
|- | |||
|style="padding: 5px" |'''SD-171''' | |||
|style="padding: 5px" |03 | |||
|- | |||
|style="padding: 5px" |'''SD-174''' | |||
|style="padding: 5px" |04 | |||
|} | |||
</div> | |||
</div> | |||
|} | |||
====Squelch==== | |||
Most of the time you probably want this on. 0xC8 is the squelch byte. 00 is no squelch, 01 is squelch enabled | |||
====Wide/Narrow==== | |||
W/N operation for a given channel is configured using the fifth byte after the end of the TX frequency. 00 is narrowband (default) and 01 is wide. | |||
====Scan Enable==== | |||
Scan enable is the first byte after the frequency channel block. 00 is disabled, 01 is enabled. | |||
===CTCSS/DCS=== | |||
---- | |||
====Enable Byte==== | |||
The RX CTCSS/DCS enable byte is located 13 bytes after the end of the channel frequency block. 00 for disabled, 01 for CTCSS, 02 for DCS. The TX CTCSS/DCS enable is 4 bytes after the RX byte. | |||
====Channel/Freq.==== | |||
CTCSS is also stored as a float64 of the raw value. The values are stored starting 21 bytes after the channel frequency, with the first 8 for RX CTCSS, the last 8 for TX CTCSS. | |||
Example: '''9A 99 99 99 99 F9 51 40''' = 71.9 (aka 71.9Hz) | |||
DCS is stored starting 37 bytes from the end of the channel frequency block. It may use the 38th byte if the value is too high. These are uint8/uint16 respectively. | |||
Example: '''17''' = 23 (aka DCS setting 023) | '''F2 02''' = 754 (aka DCS setting 754) | |||
---- | |||
===Channel Frequencies=== | |||
Frequencies are stored as float64 16 byte blocks with the first 8 for the receive frequency, and the last 8 for the transmit frequency. These both end in 0x40. | |||
{| | |||
|+ <U>'''Channel Offsets (Hex)'''</U> | |||
|<div style="display: flex;"> | |||
<div> | |||
{| class="wikitable" style="" | |||
|- | |||
!Channel | |||
!Start | |||
!End | |||
|- | |||
|style="padding: 5px" |'''1''' | |||
|style="padding: 5px" |DC | |||
|style="padding: 5px" |EB | |||
|- | |||
|style="padding: 5px" |'''2''' | |||
|style="padding: 5px" |140 | |||
|style="padding: 5px" |14F | |||
|- | |||
|style="padding: 5px" |'''3''' | |||
|style="padding: 5px" |1A4 | |||
|style="padding: 5px" |1B3 | |||
|- | |||
|style="padding: 5px" |'''4''' | |||
|style="padding: 5px" |208 | |||
|style="padding: 5px" |217 | |||
|- | |||
|style="padding: 5px" |'''5''' | |||
|style="padding: 5px" |26C | |||
|style="padding: 5px" |27B | |||
|- | |||
|style="padding: 5px" |'''6''' | |||
|style="padding: 5px" |208 | |||
|style="padding: 5px" |217 | |||
|- | |||
|style="padding: 5px" |'''7''' | |||
|style="padding: 5px" |334 | |||
|style="padding: 5px" |343 | |||
|- | |||
|style="padding: 5px" |'''8''' | |||
|style="padding: 5px" |398 | |||
|style="padding: 5px" |3A7 | |||
|- | |||
|style="padding: 5px" |'''9''' | |||
|style="padding: 5px" |3FC | |||
|style="padding: 5px" |40B | |||
|- | |||
|style="padding: 5px" |'''10''' | |||
|style="padding: 5px" |460 | |||
|style="padding: 5px" |46F | |||
|- | |||
|style="padding: 5px" |'''11''' | |||
|style="padding: 5px" |4C4 | |||
|style="padding: 5px" |4D3 | |||
|- | |||
|style="padding: 5px" |'''12''' | |||
|style="padding: 5px" |528 | |||
|style="padding: 5px" |537 | |||
|- | |||
|style="padding: 5px" |'''13''' | |||
|style="padding: 5px" |5BC | |||
|style="padding: 5px" |59B | |||
|- | |||
|style="padding: 5px" |'''14''' | |||
|style="padding: 5px" |5F0 | |||
|style="padding: 5px" |5FF | |||
|- | |||
|style="padding: 5px" |'''15''' | |||
|style="padding: 5px" |654 | |||
|style="padding: 5px" |663 | |||
|- | |||
|style="padding: 5px" |'''16''' | |||
|style="padding: 5px" |6B8 | |||
|style="padding: 5px" |6C7 | |||
|- | |||
|} | |||
</div> | |||
</div> | |||
|} | |||
---- | |||
===Channel 1 Offsets=== | |||
Since most people reusing these will probably only need one channel programmed, heres the exact offsets for channel 1 | |||
{| | |||
|+ <U>'''Ch. 1 Offsets'''</U> | |||
|<div style="display: flex;"> | |||
<div> | |||
{| class="wikitable" style="" | |||
|- | |||
!Parameter | |||
!Value(s) | |||
|- | |||
|style="padding: 5px" |'''RX Frequency''' | |||
|style="padding: 5px"|0xDC-E3 | |||
|- | |||
|style="padding: 5px" |'''TX Frequency''' | |||
|style="padding: 5px" |0xE4-EB | |||
|- | |||
|style="padding: 5px" |'''Scan Enable''' | |||
|style="padding: 5px" |0xEC | |||
|- | |||
|style="padding: 5px" |'''RX CTCSS/DCS Option''' | |||
|style="padding: 5px" |0xF8 | |||
|- | |||
|style="padding: 5px" |'''RX CTCSS Value''' | |||
|style="padding: 5px" |0x100-107 | |||
|- | |||
|style="padding: 5px" |'''TX CTCSS Value''' | |||
|style="padding: 5px" |0x108-10F | |||
|- | |||
|style="padding: 5px" |'''RX DCS Value''' | |||
|style="padding: 5px" |0x110 or 0x110-111 | |||
|- | |||
|style="padding: 5px" |'''TX DCS Value''' | |||
|style="padding: 5px" |0x114 or 0x114-115 | |||
|} | |||
</div> | |||
</div> | |||
|} | |||
| Line 34: | Line 230: | ||
===Programming ( | ===Programming (With Cable)=== | ||
These radios utilise a proprietary programming cable that converts RS-232 to TTL, as well as utilizing the RTS pin to control programming. That last part unfortunately prevents simply connecting TX and RX to a TTL to USB serial adapter... | These radios utilise a proprietary programming cable that converts RS-232 to TTL, as well as utilizing the RTS pin to control programming. That last part unfortunately prevents simply connecting TX and RX to a TTL to USB serial adapter... | ||
| Line 45: | Line 241: | ||
<br /> | <br /> | ||
===Programming ( | ===Programming (Without Cable & With Software)=== | ||
Inside the radio, there is a small 8 pin SOIC I2C EEPROM (Catalyst 24WC04) which stores all the programmed info. This chip can be easily read and written to using an inexpensive CH341a based programmer. | Inside the radio, there is a small 8 pin SOIC I2C EEPROM (Catalyst 24WC04) which stores all the programmed info. This chip can be easily read and written to using an inexpensive CH341a based programmer. | ||
| Line 56: | Line 252: | ||
# Setup the channels with your desired info, you can (only tested on the SD-161 by me) go down into the ham bands. The software will let you force an out of band frequency, but from 147.5 and up, it won't say anything. | # Setup the channels with your desired info, you can (only tested on the SD-161 by me) go down into the ham bands. The software will let you force an out of band frequency, but from 147.5 and up, it won't say anything. | ||
#* "S" is Standard (25kHz) bandwidth, and "N" is Narrow (12.5kHz) bandwidth. Choose standard if you are using for amateur radio, otherwise narrow for business band use. | #* "S" is Standard (25kHz) bandwidth, and "N" is Narrow (12.5kHz) bandwidth. Choose standard if you are using for amateur radio, otherwise narrow for business band use. | ||
# Once you have channels setup, | # Once you have channels setup, save the config to a file | ||
# | # Use the saved .dat file (may need to rename it) and flash the contents via CH341a programmer to the EEPROM | ||
===Programming (Without Cable or Software)=== | |||
Using the info above and the blank .dat files you could probably piece together a working EEPROM image, though this is risky. As always, you are doing any of this at your own risk! | |||