Yaesu VX-6 ProtocolLA4RT Jon Kåre Hellan - (email) | |
|
I investigated the protocol of the Yaesu VX-6 2m/70cm HT. It is different from the VX-7, but the similarities made it easy to get started. All info is taken from my own VX-6E, i.e. the European version. I don't expect the Asian VX-6 or the American VX-6R to be substantially different, although some details are probably different. Here are my results. I got most of it figured out, although I have to admit that I could write it up better. Please feel free to ask. Memory dumps of the Asian and American versions are also welcome. Transfer protocolThe transfer protocol is basically as for the VX-7, see this page by Hiroto Fukui. The download size including headers is 32588 bytes, about twice as much as the VX-7. Image downloading programHere's a very simple Python program which I use to download memory images from the HT. It depends on the pyserial Python module. It is invoked from the command line like this: python <port> <outfile> For example, using a USB programming cable on Linux: python /dev/ttyUSB0 vx6.out Serial cable connected to first serial port on Linux: python /dev/ttyS0 vx6.out Serial cable connected to first serial port on Windows: python COM0 vx6.outThe program probably works on Windows and Mac if you install Python and pyserial, but I have only tested it on Linux. Python usually comes standard with Linux, and pyserial comes prepackaged for many Linux distributions. On Ubuntu or Debian, you install the 'python-serial' package. On Windows and Mac, you can download it from the pyserial download page at Sourceforge. If there is a glitch in communication, it is detected by means of two checksums, one at the end of an internal block, (which for good measure occurs twice - identical), and one at the end of the image. I thought I knew how both checksums work. But recently Logan Browne W3LOG came up with a counterexample for the outer checksum. He also made another version of the image downloading program. See http://endurancetrails.com/?p=4. Until I understand this, checksum checking has been turned off in the downloading program Example memory imagesYou can find all the memory images I downloaded from my own HT here.Character set0x0-0x9: '0'-'9' 0xa-0x23: 'A'-'Z' 0x24: space 0x25-0x2a: '+' '-' '/' '?' '[' ']' Various other symbols further up until 0x40- Representation of frequenciesFrequencies are encoded as kHz in binary coded decimal (BCD). A nice side effect is that you can read them in a hex editor (I use hexl in Emacs). Example:
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d
^^ ^^^^
144.000 MHz
Memory mapA few highlights.
0x097b:0x0a0a 24 memory bank names, each 6 bytes.
0x0a0b:0x0ae2 Home frequencies. 12 channel records, each 18 bytes.
e.g
02 4800 0540 c0ff ffff ffff ff00 0000 0c00 0d 0.540 MHz
0x0b19:0x0bf0 VFO frequencies for each band. 12 channel records, each 18 bytes
0x0c0b:0x1ca 24 memory banks, each 200 bytes.
0x1ecb:0x20f0 Channel flags. Skip, mask, etc.
0x21cb:0x6112 900 standard memories. Each channel 18 bytes.
e.g.
05 1214 5675 c024 2424 2424 2400 0600 0c00 00
145.675 ^^ ^^^^ ^^^^ ^^ 600 kHz
RX freq spaces, repeater
i.e. no tag skip
05 3516 2000 c096 0a1b 2402 0815 7400 0c00 00
162.800 M A R 2 8 157.400
RX freq Tag: 'MAR 28' TX freq
0x6113:0x6808 99 frequency skip memories. Each channel 18 bytes.
0x6809:0x681a Emergency Automatic ID memory. 18 bytes.
0x681b:0x6f22 50 pairs of band limit (PMS) memories. Each channel 18 bytes.
0x6f23:0x6fd6 10 direct recall memories. Each channel 18 bytes.
Rough notesThese are rough notes telling what I have found out right now. Counterexamples may make me change my mind. Byte values are in hex. 0xff is used as null.
[0x0000:0x000a] 11 bytes 'AH021' 2 e2 2 2 1 6
The '.vx6' files of VX-6
commander leave out the '6' byte.
A user on Yahoo groups reports
'AH021' 2 f2 2 2 1 4
146 null bytes
[0x009d:0x00ae] 18 bytes curr. chan. rec. saved here
when in special bank mode
80 0044 6070 c099 161b 2406 2400 2000 0c00 00 446.070 MHz 'PMR 6 '
[0x00af:0x00c0] 18 bytes smart search start channel record
05 0243 4975 c0ff ffff ffff ff00 2000 0c00 0d 434.975 MHz
74 null bytes
[0x010b] 0 Auto power off.
0-5 off/30m/1h/3h/5h/8h
[0x010c] 1 ARTS beep 0/1/2 off/in range/always
[0x010d] 0 Bell. 0-5 off/1/3/5/8/cont
[0x010e] 4 Beep level (disp. val. - 1)
[0x010f:0x011e] 16 bytes CW ID
[0x011f] c cw training speed
0-10 off/4-13/15/17/20/24/30/40
[0x0120] 5 cw training mode
0-5 A/A_r/n/n_r/An/Anr
[0x0121] 0 Channel counter sweep width
0-3 5M/10M/50M/100M
[0x0122] 7 Display brightness
[0x0123] 1 Current DTMF (0-9)
[0x0124:0x0125] 2 bytes 0 1
[0x0126] 1 Current FRG (0-63)
[0x0127:0x0128] 2 bytes ff ff
[0x0129] 13 EAI timer
0: int 1 m
int 2-10 15 20 30 40 50
con 1-10 15 20 30 40 50: 1d
[0x012a] 2 Emergency signal
0-7 BEEP/STROBE/BP+STR/BEAM/
BP+BEAM/CW/BP+CW/CWT
[0x012b:0x012d] 3 bytes 2 1c 18 1c
13 null bytes
[0x013b] 0 Lamp (0 key, 1 cont, 2 off)
6 bits unused.
[0x013c] 2 Locking 2 = K+D, 3 = PTT
[0x013d] 46 My menu (menu 1 = 0c)
[0x013e] 4 Mic gain (disp. val. - 1)
[0x013f] 6 Squelch
[0x0140] 2
[0x0141] 0 On timer.
0-90 off/10m/../24h - 10 m intervals
[0x0142] 1 Opening message
0-2: Off/DC/message text
[0x0143:0x0148] ff ff ff ff ff ff Opening message text
[0x0149] ff P key function (menu 1 = 0c)
[0x014a] 0 Paging ABK (0=off, 2=on)
[0x014b:0x014c] 4 2e Pager CDR (2 x disp. val. - 1)
[0x014d:0x014e] 4 2e Pager CDT (2 x disp. val. - 1)
[0x014f:0x0152] 4 bytes passwd (4 digits)
[0x0153] 0
[0x0154] 0 RF Squelch
0: off. 1-9 S unit. 0a S9+
[0x0155] 1 rx save.
0-5: off/200ms/300/500/1s/2s
[0x0156] 3 Scan resume 0-4 3s/5s/10s/Busy/Hold
[0x0157:0x015b] 5 bytes
00 0000 0000
[0x015c] 2 TX timeout: 0-4: off/1/3/5/10min
[0x015d] 0 Wakeup: 0-5: off/5s/10s/20s/30s/eai
[0x015e] a8 flags. CW ID on e8. VFO mode band: 0x80
CW ID: 0x40
Scan lamp: 0x20
Tone search slow: 0x10
ARS: 0x08
Beep: 0x04
Tone Split: 0x02
DTMF auto: 0x01
[0x015f] c2 flags Busy LED: 0x80
Tone search mute: 0x40
Busy ch lock out: 0x10
Band edge beep : 0x08
TX save: 0x01
[0x0160] c7 flags. Cont. smart search: 0x20
EAI: 0x10
CW trng flash 0x08
CW trng unit 0x04 on -> WPM
HM/REV REV: 0x02
M/T-Call T-CALL: 0x01
[0x0161] 51 flags. Auto step: 0x80
Auto RX mode: 0x40
ARTS on 0x20
ARTS intv 15 s 0x10
DCS Reverse: 0x04
store to free channel
next = 1, lower = 0 0x01
[0x0162] 40 flags My menu btn internet 0x80
Internet fn on 0x40
FRG on 0x20
Weather alert scan: 0x10
Temp in F: 0x08
Attenuator: 0x04
[0x0163:0x018a] 38 bytes
00 00
00 0000 0000 0000 0000 0000 0000 0000 0000 00
00 0000 0000 0000 0000 0000 0000 0000 0000 00
00 00
[0x018b:0x01ba] 48 bytes 2 bytes context for each of 24 banks
ff ff: bank not valid
otherwise, details unknown
00 1800 1000 0e00 0a00 04ff ffff ffff ffff ff
ff ffff ffff ffff ffff ffff ffff ffff ffff ff
ff ffff ffff ffff ffff ffff ff
[0x01bb:0x01ca] 16 bytes 0's
[0x01cb:0x024a] 128 bytes, see below, repeated next 128 bytes
[0x01cb] 00 1 DMR on / 0 DMR off
[0x01cc] 00 unknown
[0x01cd] 02 0 mem only / 1 or 2 otherwise ???
[0x01ce] 02 tuning mode
0 mem only / 1 VFO / 2 mem /
3 mem tun / 4 PMS / 5 home
[0x01cf:0x01d0] 2 bytes: unknown - only 0 0 seen so far
00 00
[0x01d1] 02 saved mem / vfo / .. (when in sp.bank)
[0x01d2] 07 saved channel flags (when in sp.bank)
[0x01d3:0x01d6] 4 bytes:
01 0300 65
[0x01d7] 06 current band
[0x01d8] 03 VFO band
[0x01d9] 05 flags for current channel.
during special search, it describes
start channel
bit 4 (0x10): Clock shift
bit 5 (0x20): Half deviation
bit 6 (0x40): step has been changed
bit 7 (0x80): alpha
[0x01da] 03 Current power 0: LO1 1: LO2
2: LO3 3: HI
[0x01db] 02 Current ch. step:
0-9:
5/10/12.5/15/20/25/50/100/9/ch.count
[0x01dc] 01 Rpt shift dir:
0: simplex, 1: -, 2: +, 3: Odd split
[0x01dd] 0 Tone mode.
0-7: off/TONE/TN-SQL/DCS/RV TN/
D CODE/T DCS/D TONE
[0x01de] 0c Current CTCSS tone
[0x01df] 0 Current DCS code
[0x01e0] 0 Current mode: 0-2: FM/AM/WFM
[0x01e1:0x01e3] 14 57 00 Current RX freq (145.700 MHz)
[0x01e4] 0 unknown
[0x01e5:0x01e7] 00 06 00 Current TX freq or repeater shift
[0x01e8] 0 unknown
[0x01e9:0x01ee] 24 2424 2424 24 Current text tag
[0x01ef] 0 unknown. Same as offset 16 in
memory channel record
[0x01f0] 0 bit 7 (0x80): Pager on
[0x01f1] 0 1: special bank mode
[0x01f2] 0 80: memory bank mode.
[0x01f3] 5 special bank no: 3/5/6: wx/marine/radio
[0x01f4] 3 current channel flags
[0x01f5:0x0212]: Same structure as [0x01d7:0x01f4]
data for current channel saved here
when EAI or dual watch is activated.
06 0385 0305 0000 0c00 0015 6300 0000 156.300 'MAR 6'
0600 0016 0a1b 2406 2400 0000 0005 03
[0x0213:0x0214] 2 bytes: 00 04 current channel no
During PMS scan: P1: 1000, P2: 1002
[0x0215] 0 unknown
[0x0216] 0 bank no. (disp. no -1)
[0x0217] 0 unknown
[0x0218] 2 flags for current bank,
details unknown
[0x0219] 0 unknown
[0x021a] 3 current DMR no
[0x021b:0x021d] 3 bytes unknown
00 0000
[0x021e] 1 bytes: 6 current WX ch
[0x021f:0x0220] 2 bytes: 00 16 current marine ch (gap of 2 at
75/76, i.e. 74 stored as 74,
77 stored as 75)
[0x0221] 0 unknown
[0x0222] 35 current SW station
[0x0223:0x022a] 8 bytes: unknown
00 0000 0000 0000 14
[0x022b:0x022c] 2 bytes: 00 16 priority channel
[0x022d] 00 scan width
0-n 1M/2M/5M/Band/All/P1/P2/..
[0x022e] 04 mem scan width
0-n ?/Tag 1/Tag 2/Band/All chan/P1/P2/..
[0x022f] 01 unknown
[0x0230] 0 scan mode
0/1/2/5/8/0a
none/vfo/memory/dual
watch/smart scan/channel counting
[0x0231:0x0238] 8 bytes unknown
02 0124 2406 0300 00
[0x0239:0x23b] 3 bytes: 08 81 00 scan start freq?
[0x023c:0x0240] 5 bytes unknown
0000 0300 00
[0x0241] ff band edge (PMS) no, ff if n/a
[0x0242:0x0246] 5 bytes unknown
00 00 00 02 00
[0x0247] 0 EAI ?
[0x0248] 0 unknown
[0x0249] 27 last menu item (disp. no -1)
[0x024a] 29 checksum: sum [0x01cb:0x0249] & 0xff
[0x024b:0x02ca] same as [0x01cb:0x024a]
[0x02cb:0x036a] 160 bytes DTMF codes 0-9 - 16 bytes each
[0x03db:0x07da] 1024 bytes FRG codes 0-63 - 16 bytes each
8 bytes code, 8 bytes alpha, other?
416 null bytes
[0x097b:0x0a0a] 144 bytes (24*6), step 6 Bank names
11 0a16 241d 1b16 0a1b 121d 1219 161b 2424 24 'HAM TR' 'MARITI' 'PMR '
11 0a16 2418 1c11 0a16 241c 240b 0a17 1424 06 'HAM OS' 'HAM S ' 'BANK 6'
0b 0a17 1424 070b 0a17 1424 080b 0a17 1424 09 'BANK 7' 'BANK 8' 'BANK 9'
0b 0a17 1401 000b 0a17 1401 010b 0a17 1401 02 'BANK10' 'BANK11' 'BANK12'
0b 0a17 1401 030b 0a17 1401 040b 0a17 1401 05 'BANK13' 'BANK14' 'BANK15'
0b 0a17 1401 060b 0a17 1401 070b 0a17 1401 08 'BANK16' 'BANK17' 'BANK18'
0b 0a17 1401 090b 0a17 1402 000b 0a17 1402 01 'BANK19' 'BANK20' 'BANK21'
0b 0a17 1402 020b 0a17 1402 030b 0a17 1402 04 'BANK22' 'BANK23' 'BANK24'
[0x0a0b:0x0ae2] 216 bytes (12*18), step 18 Home frequencies
02 4800 0540 c0ff ffff ffff ff00 0000 0c00 0d 0.540 MHz 1 (BC)
00 4000 1800 c0ff ffff ffff ff00 0000 0c00 0d 1.800 MHz 2 (SW)
00 0003 0000 c0ff ffff ffff ff00 0000 0c00 0d 30.000 MHz 3 (50 MHz ham)
05 8708 8000 c0ff ffff ffff ff00 0000 0c00 0d 88.000 MHz 4 (FM BC)
05 8617 4000 c0ff ffff ffff ff00 0000 0c00 0d 174.000 MHz
05 4510 8000 c0ff ffff ffff ff00 0000 0c00 0d 108.000 MHz 5 (Air)
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz 6 (144 MHz ham)
05 8617 4000 c0ff ffff ffff ff00 0000 0c00 0d 174.000 MHz 7 (VHF TV)
05 0222 2000 c0ff ffff ffff ff00 0000 0c00 0d 222.000 MHz 8(222 MHz ham)
05 0543 2000 c0ff ffff ffff ff00 0000 0c00 0d 432.000 MHz 9 (430 MHz ham)
05 8647 0000 c0ff ffff ffff ff00 0000 0c00 0d 470.000 MHz a (UHF TV)
05 0286 0000 c0ff ffff ffff ff00 0000 0c00 0d 860.000 MHz b (Action band)
54 null bytes (3*18)
[0x0b19:0x0bf0] 216 bytes (12*18), step 18 VFO frequencies
02 4800 0540 c0ff ffff ffff ff00 0000 0c00 0d 0.540 MHz 1
00 4000 8900 c0ff ffff ffff ff00 0000 0c00 0d 8.900 MHz 2
00 0005 8995 c0ff ffff ffff ff00 0000 0c00 0d 58.995 MHz 3
05 8708 8000 c0ff ffff ffff ff00 0000 0c00 0d 88.000 MHz 4
05 8617 4000 c0ff ffff ffff ff00 0000 0c00 0d 174.000 MHz
05 4511 1112 c0ff ffff ffff ff00 0000 0c00 0d 111.112 MHz 5
05 0214 6025 c0ff ffff ffff ff00 0600 0c00 0d 146.025 MHz 6
05 8617 4000 c0ff ffff ffff ff00 0000 0c00 0d 174.000 MHz 7
05 0239 9975 c0ff ffff ffff ff00 0000 0c00 0d 399.975 MHz 8
05 0245 5550 c0ff ffff ffff ff00 2000 0c00 0d 455.550 MHz 9
05 8655 5550 c0ff ffff ffff ff00 0000 0c00 0d 555.550 MHz a
05 0288 0000 c0ff ffff ffff ff00 0000 0c00 0d 880.000 MHz b
26 null bytes
[0x0c0b:0x0cd2] 200 bytes - a memory bank.
26 bytes - 13 channels - in use
00 0000 0100 0200 0300 0400 0500 0600 0700 0800 0900 0a00 0b00 0c
ff ff ..
[0x0cd3:0x0d9a] 200 bytes - a memory bank
18 bytes - 9 channels - in use
00 1400 1500 1600 1700 1800 1900 1a00 1b00 1cff ffff ..
[0x0d9b:0x0e62] 200 bytes - a memory bank
16 bytes - 8
00 1e00 1f00 2000 2100 2200 2300 2400 25ff ffff ..
[0x0e63:0x0f2a] 200 bytes - a memory bank
12 bytes - 6 channels - in use
00 2800 2900 2a00 2b00 2c00 2dff ffff ..
[0x0f2b:0x1eca] 200 bytes - a memory bank
6 bytes - 3 channels - in use
00 3200 3300 34ff ffff ..
[0x0ff3:0x1eca] 3800 null bytes - 19 unused memory banks
[0x1ecb:0x208c] 450 bytes channel flags 4 bits/channel
900 standard memories
37 3733 3333 3323 2222 2237 3337 3373 7777 77
77 6277 7777 7700 7707 0000 00..
[0x208d:0x20bd] 49 bytes 0's channel flags, 98 frequency skip memories
[0x20be] 10 channel flags
EAI channel, 99th frequency skip memory
[0x20bf:0x20f0] 50 bytes channel flags
50 pairs of band-edge memories
33 3300 00..
[0x20f1:0x218c] 156 bytes 33's
[0x218d:0x21ca] 62 bytes 0's
[0x21cb:0x6112] 16200 bytes - 900 standard memories
05 0214 5500 c024 2424 2424 2400 0600 0c00 00 145.500 MHz 1
05 1214 5600 c024 2424 2424 2400 0600 0c00 00 145.600 MHz 2
05 1214 5625 c024 2424 2424 2400 0600 0c00 00 145.625 MHz 3
05 1214 5675 c024 2424 2424 2400 0600 0c00 00 145.675 MHz 4
05 1214 5700 c024 2424 2424 2400 0600 0c00 00 145.700 MHz 5
05 1214 5712 c024 2424 2424 2400 0600 0c00 00 145.712 MHz 6
05 1214 5750 c024 2424 2424 2400 0600 0c00 00 145.750 MHz 7
05 1214 5787 c024 2424 2424 2400 0600 0c00 00 145.787 MHz 8
05 1543 4675 c024 2424 2424 2400 2000 0c00 00 434.675 MHz 9
05 1543 4775 c024 2424 2424 2400 2000 0c00 00 434.775 MHz 10
05 1543 4850 c024 2424 2424 2400 2000 0c00 00 434.850 MHz 11
05 1543 4900 c024 2424 2424 2400 2000 0c00 00 434.900 MHz 12
05 3214 5425 c024 2424 2424 2443 4600 0c00 00 145.425 MHz 13
05 3214 5425 c0a4 2424 2424 2443 4600 0c00 00 145.425 MHz
05 0543 4675 c0a4 2424 2424 2400 2000 0c00 00 434.675 MHz
05 0215 6700 c09d 2411 0a1f 1700 0600 0c00 00 156.700 MHz
05 0215 6300 c096 0a1b 2406 2400 0600 0c00 00 156.300 MHz
05 1214 5600 c0a4 2424 2424 2400 0600 0c00 00 145.600 MHz
05 1214 5637 c0ff ffff ffff ff00 0600 0c00 0d 145.637 MHz
05 1214 5737 c0ff ffff ffff ff00 0600 0c00 0d 145.737 MHz
05 0515 6300 c096 0a1b 2406 2400 0600 0c00 00 156.300 MHz 21
05 0515 6700 c09d 2411 0a1f 1700 0600 0c00 00 156.700 MHz 22
05 0515 6800 c096 0a1b 2401 0600 0600 0c00 00 156.800 MHz 23
05 0516 1600 c096 0a1b 2402 0015 7000 0c00 00 161.600 MHz 24
05 3516 2000 c096 0a1b 2402 0815 7400 0c00 00 162.000 MHz 25
05 3516 0925 c096 0a1b 2406 0615 6325 0c00 00 160.925 MHz 26
05 0515 6725 c09c 140a 171c 0e00 0600 0c00 00 156.725 MHz 27
05 0515 5500 c096 0a1b 2415 0100 0600 0c00 00 155.500 MHz 28
05 0515 5525 c096 0a1b 2415 0200 0600 0c00 00 155.525 MHz 29
05 0515 5650 c096 0a1b 2415 0300 0600 0c00 00 155.650 MHz 30
00 0044 6005 c099 161b 2401 2400 2000 0c00 00 446.005 MHz 31
00 0044 6020 c099 161b 2402 2400 2000 0c00 00 446.020 MHz 32
00 0044 6030 c099 161b 2403 2400 2000 0c00 00 446.030 MHz 33
00 0044 6045 c099 161b 2404 2400 2000 0c00 00 446.045 MHz 34
00 0044 6055 c099 161b 2405 2400 2000 0c00 00 446.055 MHz 35
00 0044 6070 c099 161b 2406 2400 2000 0c00 00 446.070 MHz 36
00 0044 6080 c099 161b 2407 2400 2000 0c00 00 446.080 MHz 37
00 0044 6095 c099 161b 2408 2400 2000 0c00 00 446.095 MHz 38
05 1543 4875 c0ff ffff ffff ff00 2000 0c00 0d 434.875 MHz
05 3214 4687 c0ff ffff ffff ff43 4862 0c00 0d 144.687 MHz
05 1214 5637 c024 2424 2424 2400 0600 0c00 00 145.637 MHz 41
05 1214 5737 c024 2424 2424 2400 0600 0c00 00 145.737 MHz 42
05 1214 5762 c024 2424 2424 2400 0600 0c00 00 145.762 MHz 43
00 1043 4600 c024 2424 2424 2400 2000 0c00 00 434.600 MHz 44
05 1243 4875 c024 2424 2424 2400 2000 0c00 00 434.875 MHz 45
05 3214 4687 c024 2424 2424 2443 4862 0c00 00 144.687 MHz 46
05 1243 4875 c024 2424 2424 2400 2000 0c00 00 434.875 MHz 47
05 0214 5500 c024 2424 2424 2400 0600 0c00 00 145.500 MHz 48
ff ffff ffff ffff ffff ffff ffff ffff ffff ff never used
ff ffff ffff ffff ffff ffff ffff ffff ffff ff never used
05 1214 5650 c024 2424 2424 2400 0600 0c00 00 145.650 MHz 51
05 1214 5775 c024 2424 2424 2400 0600 0c00 00 145.775 MHz 52
05 1543 4875 c024 2424 2424 2400 2000 0c00 00 434.875 MHz 53
ff ffff ffff ffff ffff ffff ffff ffff ffff ff never used
..
[0x6113:0x6808] 1782 bytes - 99 frequency skip memories
00 0004 8135 c0ff ffff ffff ff00 0000 0c00 0d 48.135 MHz (?)
ff ffff ffff ffff ffff ffff ffff ffff ffff ff never used
..
[0x6809:0x681a] 18 bytes - EAI channel memory
05 1214 5600 c024 2424 2424 2400 0600 0c00 00 145.600 MHz EAI
[0x681b:0x6f22] 1800 bytes - 50 pairs of band-edge (PMS) memories
05 1214 5600 c024 2424 2424 2400 0600 0c00 00 145.600 MHz L1
05 1214 5787 c024 2424 2424 2400 0600 0c00 00 145.787 MHz U1
05 1243 4600 c024 2424 2424 2400 2000 0c00 00 434.600 MHz L2
05 1243 4975 c024 2424 2424 2400 2000 0c00 00 434.975 MHz U2
ff ffff ffff ffff ffff ffff ffff ffff ffff ff never used
..
[0x6f23:0x6fd6] 180 bytes - 10 direct recall memories
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz
05 0243 4900 c0ff ffff ffff ff00 2000 0c00 0d 434.900 MHz
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz
05 0214 4000 c0ff ffff ffff ff00 0600 0c00 0d 144.000 MHz
116 null bytes
[0x704b:0x708a] 64 bytes 0's
[0x708b:0x709e] 20 bytes d's
3754 null bytes
[0x7f49] c9 unknown
[0x7f4a] ff unknown
[0x7f4b] e7 checksum sum[0x0010:0x7f4a] & 0xff
or sum[0x000f:0x7f49] & 0xff
It is unclear how this checksum works. On my own HT, I can get a
matching checksum by summing - modulo 256, either the byte range
[0x0010:0x7f4a], or the range [0x000f:0x7f49], or the range
[0:0x7f4a], but excluding the byte at 0xa. However, neither of these works
for W3LOG's image. The '.vx6' files of VX-6 commander leave out the
byte at 0xa.
There are
900 standard memories
99 frequency skip memories
11 home channels
50 sets of band-edge memories
24 memory banks, up to 100 channels each.
1 emergency automatic ID channel.
10 direct memory recall channels.
Channel record is 18 bytes
[0]: bit 4 (0x10): Clock shift
bit 5 (0x20): Half deviation
bit 6 (0x40): step has been changed
the bit stays on even after you switch back to
default step.
[1]: bits 0-3 (0x0f): step. 0-8: 5/10/12.5/15/20/25/50/100/9
bits 4-5 (0x30): Rpt shift dir. 0.3: simplex/-/+/odd split
bits 6-7 (0xc0): mode: 0-2: FM/AM/WFM
[2:4]: RX Freq
[5]: bits 0-2 (0x07): tone mode:
0-7: off/TONE/TN-SQL/DCS/RV TN/D CODE/T DCS/D TONE
bit 3 (0x80): Pager
bits 6-7 (0xc0): power 0-3: LOW 1/LOW 2/LOW 3/HI
[6:11]: Text tag. If displayed, initial letter ored with 0x80 flag.
Tag can be all ff or all space.
[12:14]: TX Freq or repeater shift
[15]: CTCSS tone
[16]: DCS code
[17]: unknown. VFO, home and DMR channels have 0d. When you choose
a freq with VFO and save, you get 0d. Most memory channels
have 0, but change to 0d first time CTCSS or DCS is
activated, and never change back. It's possible that all
0's are from channels programmed by VX-6 Commander.
Channel flags starting at 0x1ecb
Half bytes switch places in a hex editor. It is '2 1 4 3' ..
bits 0-1 (0x3): 0: Not valid
1: Masked
2: Masked
3: Regular
bit 2 (0x4): Set if skipped memory
bit 3 (0x8): Set if preferential scan memory
|