Nice! Glad there's someone else who shares the same strong interest for these radios. Yes I can. The screenshot there was not extracting the TX parameter's details, instead just displaying the TX hex code un-decoded as I didn't code that in yet, making the program successfully import and export functioning BIN files and importing/exporting channels from a CSV was a higher priority.
Anyways, here is a summary of what I have curated from what I've found and what I currently know
Each channel is 8 Bytes
<2 bytes> RX Freq
<2 bytes> TX Freq
<1 byte> RX CTCS
<1 byte> TX CTCS
<2 bytes> PWR/SQL
To read the CTCSS code, just convert the hex byte to a decimal, that decimal represents an index in a table which corresponds to a tone frequency. So for example CTCSS of 01 = 67.0 Hz. Here is my python dictionary for it.
Code: Select all
ctcss_codes = {0:0, 1:67.0, 2:71.9, 3:74.4, 4:77.0, 5:79.9, 6:82.5, 7:85.4, 8:88.5, 9:91.5, 10:94.8, 11:97.4, 12:100, 13:103.5, 14:107.2, 15:110.9, 16:114.8, 17:118.8, 18:123.0, 19:127.3, 20:131.8, 21:136.5, 22:141.3, 23:146.2, 24:151.4, 25:156.7, 26:162.2, 27:167.9, 28:173.8, 29:179.9, 30:186.2, 31:192.8, 32:203.5, 33:210.7, 34:218.1, 35:225.7, 36:233.6, 37:241.8, 38:250.3}
TX power codes are a bit more complicated. Here is my documentation that I wrote for myself on it. Note that this isn't my final revision of the notes so there may be a mistake somewhere, take it with a grain of salt.
Code: Select all
FM1100 Channel TX Settings Hex Breakdown
The FM1100 Channel TX Settings Hex are the last 2 bytes at the end of every channel.
Here I go into the detail of it's format as to what I could find.
"OFFSET" Refers to the microprocessor clock.
"SELLCALL" MEANS TONE ON BUTTON PRESS!
EXAMPLE HEX:
0xE828 = No Offset, 25 W, Sellcall Off, No Scan Group
Split into 4 Nibbles
[E, 8, 2, 8]
[0, 1, 2, 3]
Nibble 0 & 1:
TX Power Select. Choose from a table of 6.
Power Modes:
E8 = 25W
E0 = 15W
D8 = 10W
D0 = 6 W
C8 = 1 W
C0 = 0 W / No TX
Nibble 1 = ??? (Always 2)
Nibble 3:
This one is split into 4 bits.
EXAMPLE BINARY:
0b1000
[1, 0, 0, 0]
[0, 1, 2, 3]
Bit 0 = ??? (Always 1)
Bit 1 = ??? (Always 0)
Bit 2 = Sellcall ON/OFF (1 or 0)
Bit 3 = Offset ON/OFF (1 or 0)
Hence the following:
0x8 = Offset off, Sellcall Off
0x9 = Offset on, Sellcall Off
0xA = Offset off, Sellcall On
0xB = Offset On, Sellcall On
This info was gained with the help of David Craig GI8LCJ and his RADCOM article