First Notes on Reverse Engineering Kenwood TH-D74 Firmware

These are my notes loading and decompiling the Kenwood TH-D74 firmware, which Hash (@BitBangingBytes) managed to dump the BGA Flash ROM of a damaged radio. With a little luck and some other volunteers, this might lead to something like md380tools or OpenGD77, allowing custom software to run within the TH-D74 for decoding new digital protocols, storing a repeater database on the SD Card, or other fancy things.

Let’s begin by exploring how the firmware needs to be loaded into memory, then cover a few handy tables in memory that can be used to identify which functions of code are responsible for implementing a feature.

I’ll keep things are agnostic of version number as possible, but all explicit pointer addresses refer to Version 1.10 of the firmware.

73 from Knoxville,

–Travis Goodspeed, KK4VCZ

UPDATE: If you’d like to play along, DD4CR has broken the firmware decryption, allowing you to extract the firmware yourself from an update rather than desolder the Flash chip.

TH D74 and a Tasty Beverage

Linking and Loading

The Flash memory dump is a single file, 32MB in size, with no formatting or wrapping beyond what the radio itself uses internally. This holds not just software, but also the user’s memory settings and the list of DSTAR repeaters.

Applications helpfully have ASCII labels, and the first program is the EX-4409 Boot Program V1.01.00.

dell% hd raw.bin | head -n 30
00000000  11 00 00 00 04 f0 1f e5  00 01 00 60 01 00 a0 e3  |...........`....|
00000010  1e ff 2f e1 1e ff 2f e1  ff ff ff ff ff ff ff ff  |../.../.........|
00000020  45 58 2d 34 34 30 39 20  42 6f 6f 74 20 50 72 6f  |EX-4409 Boot Pro|
00000030  67 72 61 6d 00 ff ff ff  ff ff ff ff ff ff ff ff  |gram............|
00000040  56 31 2e 30 31 2e 30 30  20 20 20 20 20 20 20 00  |V1.01.00       .|
00000050  f8 40 2d e9 00 60 a0 e1  03 00 a0 e3 a6 30 00 eb  |.@-..`.......0..|
00000060  00 40 a0 e1 01 50 a0 e1  03 00 a0 e3 a2 30 00 eb  |.@...P.......0..|
00000070  00 70 a0 e3 01 00 00 ea  03 00 a0 e3 9e 30 00 eb  |.p...........0..|
00000080  04 00 50 e0 05 10 c1 e0  07 00 51 e1 f9 ff ff 3a  |..P.......Q....:|
00000090  01 00 00 8a 06 00 50 e1  f6 ff ff 3a f1 80 bd e8  |......P....:....|
000000a0  10 b5 07 49 79 44 18 31  06 4c 7c 44 16 34 04 e0  |...IyD.1.L|D.4..|
000000b0  0a 68 08 1d 89 18 88 47  01 00 a1 42 f8 d1 10 bd  |.h.....G...B....|
000000c0  20 e4 00 00 2c e4 00 00  ff ff ff ff ff ff ff ff  | ...,...........|
000000d0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000100  00 00 0f e1 1f 00 c0 e3  13 00 80 e3 00 f0 21 e1  |..............!.|
00000110  18 d0 9f e5 18 c0 9f e5  ff ff ff eb 1c ff 2f e1  |............../.|
00000120  10 0f 11 ee 04 00 c0 e3  10 0f 01 ee 1e ff 2f e1  |............../.|

A little later, we find the FldmLoader,

00020000  1c f0 9f e5 1c f0 9f e5  1c f0 9f e5 1c f0 9f e5  |................|
00020010  1c f0 9f e5 00 00 00 00  18 f0 9f e5 18 f0 9f e5  |................|
00020020  ff ff ff 00 50 1d 02 c0  5c 1f 02 c0 90 ad 00 c0  |....P...\.......|
00020030  84 1f 02 c0 ac 1f 02 c0  64 ae 00 c0 20 1f 02 c0  |........d... ...|
00020040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00020080  45 58 2d 34 34 32 30 20  46 6c 64 6d 4c 6f 61 64  |EX-4420 FldmLoad|
00020090  65 72 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |er..............|
000200a0  31 2e 30 30 2e 30 30 2e  32 33 20 20 20 20 20 00  |1.00.00.23     .|
000200b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000200c0  00 00 20 60 00 00 00 61  00 00 00 c0 00 00 30 00  |.. `...a......0.|
000200d0  00 00 30 00 00 00 00 00  00 00 00 00 00 00 00 00  |..0.............|
000200e0  00 00 20 60 00 00 60 60  00 00 00 c0 00 00 30 00  |.. `..``......0.|
000200f0  00 00 30 00 ff ff ff ff  ff ff ff ff 00 00 00 00  |..0.............|
00020100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00020200  00 00 00 00 00 00 00 00  00 00 00 70 d8 d8 70 00  |...........p..p.|
00020210  3e 30 30 30 30 30 30 30  30 30 30 00 00 00 00 00  |>0000000000.....|

And what we’re really interested in is the third image, the EX-4409 Firmware V1.10.000 beginning at file address 0x0020.0000.

00200000  1c f0 9f e5 1c f0 9f e5  1c f0 9f e5 1c f0 9f e5  |................|
00200010  1c f0 9f e5 00 00 00 00  18 f0 9f e5 18 f0 9f e5  |................|
00200020  ff ff ff 00 74 39 15 c0  ac 3b 15 c0 68 5a 09 c0  |....t9...;..hZ..|
00200030  d4 3b 15 c0 fc 3b 15 c0  3c 5b 09 c0 70 3b 15 c0  |.;...;..<[..p;..|
00200040  5a 5a 7a 6f 2e 2e 28 2d  5f 2d 20 29 20 45 58 2d  |ZZzo..(-_- ) EX-|
00200050  34 34 32 30 20 32 30 31  33 2d 30 34 2d 30 31 00  |4420 2013-04-01.|
00200060  ff ff cd b6 ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00200070  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00200080  45 58 2d 34 34 30 39 20  46 69 72 6d 77 61 72 65  |EX-4409 Firmware|
00200090  00 ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
002000a0  56 31 2e 31 30 2e 30 30  30 20 20 20 20 20 20 00  |V1.10.000      .|
002000b0  00 ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
002000c0  00 00 20 60 00 00 00 61  00 00 00 c0 00 00 50 00  |.. `...a......P.|
002000d0  00 00 30 00 ff ff ff ff  ff ff ff ff ff ff ff ff  |..0.............|
002000e0  00 00 20 60 00 00 60 60  00 00 00 c0 00 00 50 00  |.. `..``......P.|
002000f0  00 00 30 00 ff ff ff ff  ff ff ff ff ff ff ff ff  |..0.............|
00200100  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00200200  38 b5 04 00 0d 00 0f f0  a7 fd 01 28 01 d1 01 20  |8..........(... |
00200210  00 e0 00 20 14 22 07 49  ab 00 5b 19 db 00 c9 18  |... .".I..[.....|
00200220  83 00 18 18 80 00 09 18  20 00 10 f0 d8 f9 31 bd  |........ .....1.|

So now we know the file locations of the three applications, and from AG5OW’s wiki we know that the code will be running in an OMAP L138 chip. In contrast to the ARM Cortex chip used by the MD380, this is a more powerful core that can run both 32-bit ARM instructions and the denser 16-bit Thumb2 instruction set.

While Cortex applications usually begin with an initial stack pointer followed by a list of odd (because Thumb2) interrupt handle addresses, full sized ARM firmware usually begins with executable instructions as interrupt handlers.

So let’s use Radare2 to disassemble these entry points in order to see where the code might run inside of the device. The instructions I’m looking for all have an ending byte of e3 or e5, the appear near the beginning and the branch to an absolute address by loading a value from a constant pool into the program counter.

dell% r2 -e asm.arch=arm -e asm.bits=32 raw.bin
 -- What about taking a break? Here, have this nice 0xCC.
[0x00000000]> pd 5 @0x0
 0x00000000      11000000       andeq r0, r0, r1, lsl r0
 0x00000004      04f01fe5       ldr pc, [0x00000008]        ; [0x8:4]=0x60000100
 0x00000008      00010060       andvs r0, r0, r0, lsl 2
 0x0000000c      0100a0e3       mov r0, 1
 0x00000010      1eff2fe1       bx lr
[0x00000000]>

Sure enough, the Boot Program branches to 0x600.00100 and from our earlier disassembly, we see that a gap of FF bytes ends at file address 0x100, so this program is probably just copied into memory at 0x6000.0000!

The FldmLoad program and the Firmware program both seem to run from the 0xc000.0000 region.

[0x00000000]> pd 5 @0x00020000
 0x00020000      1cf09fe5       ldr pc, [0x00020024]        ; [0x20024:4]=0xc0021d50
 0x00020004      1cf09fe5       ldr pc, [0x00020028]        ; [0x20028:4]=0xc0021f5c
 0x00020008      1cf09fe5       ldr pc, [0x0002002c]        ; [0x2002c:4]=0xc000ad90
 0x0002000c      1cf09fe5       ldr pc, [0x00020030]        ; [0x20030:4]=0xc0021f84
 0x00020010      1cf09fe5       ldr pc, [0x00020034]        ; [0x20034:4]=0xc0021fac
[0x00000000]> pd 5 @0x00200000
 0x00200000      1cf09fe5       ldr pc, [0x00200024]        ; [0x200024:4]=0xc0153974
 0x00200004      1cf09fe5       ldr pc, [0x00200028]        ; [0x200028:4]=0xc0153bac
 0x00200008      1cf09fe5       ldr pc, [0x0020002c]        ; [0x20002c:4]=0xc0095a68
 0x0020000c      1cf09fe5       ldr pc, [0x00200030]        ; [0x200030:4]=0xc0153bd4
 0x00200010      1cf09fe5       ldr pc, [0x00200034]        ; [0x200034:4]=0xc0153bfc

At this point, you can dice up the file and load it into Radare2 at the correct address, or into a competing program such as IDA Pro, Ghidra, or Binary Ninja simply by carving out the appropriate section and loading it at 0x6000.0000 or 0xc000.0000 with a bit more space tacked on the end for use as RAM.

IDA Pro Memory Organization

When loading the image, you’ll find that although the entry point begins in 32-bit mode, most functions are written in Thumb2 instructions. Use alt+g in IDA Pro or ^R in Ghidra to set the T register to 1 in order to mark a region as Thumb2 instructions.

Images

The firmware uses LibPNG to parse images contained within Flash, including all the backgrounds and icons. You can carve these out with binwalk, or use Ghidra’s handy feature of displaying images inline in the disassembly listing.

TH-D74 PNG Images in Ghidra

LibPNG functions can be found and labeled, particularly those that call png_benign_error() with unique error messages. With a bit of work, it shouldn’t be too difficult to identify which code loads which icon.

Strings and Localization

The radio’s interface is available in both English and Japanese, with some form of indirection that chooses the locale from a table of twenty-byte strings in each language, with the English string first. Presumably because there is plenty of space in Flash, this table is not compressed.

The table begins at 0xc000.026c with spaces in each language, followed by TX/RX (送受信), Memory (メモリー), Audio File (オーディオファイル) and dozens of others.

Table lookups are performed by calling void localize_string(char *dst, int entry) at 0xc000.0238. This function loads an entry from the table and optionally adds twenty to the address in Japanese mode.

void localize_string(char *dst,int entry) {
  int j = localize_isjapanese();
  strncpy(dst,
          localize_table + (j==1)*0x14 + entry*0x28,
          0x14);
  return;
}

So whenever the radio wants to display TX/RX or 送受信, it will run something like this, where 1 is the magic constant.

char buf[0x14];
localize_string(buf, 1);
printf("The local word is: %s\n", buf);

Working backward, if we wanted a list of all functions that display TX/RX, we would want to find all function calls to localize_string() where the second parameter equals 1. Memory would be 2, and Audio File would be 3. It gets tedious to do this by hand, so let’s automate it.

/* This is a janky little C program to dump the string localization
   table from Kenwood TH-D74 firmware image.  It should self-adjust to
   any firmware version.
 */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//Need this table from the real firmware.
char* localize_table=0;;
char fw[33554432];

void localize_string(char *dst,int entry) {
  int j = 0; //Not japanese.
  strncpy(dst,
          localize_table + (j==1)*0x14 + entry*0x28,
          0x14);
  return;
}


char* findtable(){
  char *maybetable;
  const char *spaces="                   \0                   \0";
  for(int i=0; i<33554432; i++){
    maybetable=fw+i;
    if(memcmp(spaces,maybetable,40)==0){
      printf("Found table at offset %x\n", i);
      return maybetable;
    }
  }
  printf("Error, table not found.\n");
  exit(1);
}

void loadfw(char *filename){
  FILE *fwfile=fopen(filename, "rb");
  size_t readbytes=fread(fw, 33554432, 1, fwfile);
  fclose(fwfile);  
}


int main(){
  char word[20];
  loadfw("raw.bin");
  localize_table=findtable();

  printf("| dec |  hex  |         word         |\n");
  printf("| --- | ----- | -------------------- |\n");
  for(int i=0; i<377; i++){
    localize_string(word, i);
    printf("| %03d | 0x%03x | %20s | \n", i, i, word);
  }
}

This produces the following table, abbreviated here but included in its entire bilingual glory at the end of the article.

dec hex word
000 0x000
001 0x001 TX/RX
002 0x002 Memory
003 0x003 Audio File
004 0x004 GPS

Having this table, we can now begin to name all of the functions that render strings. So when localize_string(foo,0x6b);, we know that char foo[] is being populated with “My Position” or “自局位置”.

CAT Commands

Of particular interest to me is the CAT protocol of the TH-D74, as I’ve been writing a programming tool for Kenwood radios. There is a list by LA3QMA describing all of the standard commands for the radio, but there are extra commands in the 0G service mode which might be useful.

At memory address 0xc002.a828, there is a table of all commands in the standard mode, as first a 32-bit handler address and then a 4-byte character array of the name. A second table at 0xc006.4edc lists the service mode commands in the same format.

From LA3QMA’s docs, we know that the 0G command is called with the uppercase word KENWOOD as its only parameter to enter service mode. Now that we have the table, we can hunt its handler address and decompile the implementation. Sure enough, there’s a call to strncmp() to verify the parameter!

Service mode commands include 0E, 0G, 0M, 0R, 0S, 0W, 0Y, 1A, 1D, 1E, 1F, 1G, 1I, 1N, 1U, 1V, 1W, 2V, 9E, and 9R. I had hoped that there was a command for reading and writing memory names, as exists in other Kenwood radios, but I wasn’t able to find one.

What’s next?

As things stand, the TH-D74 firmware can be read and reverse engineered. With this documentation, you should be able to load the image into your favorite toolchain, name functions according to their localized strings, and begin to parse the implementations of any mystery CAT commands.

We’ll also need to understand more of the data structures in memory, such as the channel information and the repeater information. Wouldn’t it be nifty to store a database of all the world’s analog repeaters on the SD Card, to fetch the nearest ones by GPS position, as we can do for DSTAR repeaters in the stock firmware?

If our goal is to eventually patch this firmware with our own changes, we’ll need more than just a lot of symbol names for this image. We’ll need a way to dump memory from a running radio, without desoldering its Flash chip, and also to write changes back to RAM. JTAG debugging isn’t strictly necessary, but it would be nice.

The fun is just beginning.

Appendix: Complete String List

dec hex english japanese
000 0x000
001 0x001 TX/RX 送受信
002 0x002 Memory メモリー
003 0x003 Audio File オーディオファイル
004 0x004 GPS GPS
005 0x005 APRS APRS
006 0x006 Digital デジタル
007 0x007 FM Broadcasting FMラジオ放送
008 0x008 SD Card SDカード
009 0x009 Configuration 本体設定
010 0x00a RX 受信
011 0x00b TX 送信
012 0x00c RX Filter 受信フィルター
013 0x00d Scan スキャン
014 0x00e Repeater レピーター
015 0x00f VOX VOX
016 0x010 DTMF DTMF
017 0x011 CW CW
018 0x012 Others その他
019 0x013 Memory Channel メモリーチャンネル
020 0x014 Repeater List レピーターリスト
021 0x015 Callsign List コールサインリスト
022 0x016 Recording File 録音ファイル
023 0x017 Voice Message ボイスメッセージ
024 0x018 Basic Settings 基本設定
025 0x019 Track Log 軌跡ログ
026 0x01a Beacon TX Control ビーコン送信制御
027 0x01b QSY Information QSY情報
028 0x01c SmartBeaconing SmartBeaconing
029 0x01d Waypoint ウェイポイント
030 0x01e Packet Filter パケットフィルター
031 0x01f Message メッセージ
032 0x020 Notification 通知
033 0x021 RX History 受信履歴
034 0x022 TX/RX 送受信
035 0x023 Digital Squelch デジタルスケルチ
036 0x024 GPS Data TX GPSデータ送信
037 0x025 RX Notification 受信通知
038 0x026 Memory メモリー
039 0x027 Export エクスポート
040 0x028 Import インポート
041 0x029 Unmount アンマウント(取り外し)
042 0x02a Format フォーマット(初期化)
043 0x02b Memory Size メモリーサイズ
044 0x02c Display ディスプレイ
045 0x02d Audio オーディオ
046 0x02e Battery バッテリー
047 0x02f Bluetooth Bluetooth
048 0x030 Auxiliary 補助機能
049 0x031 Date & Time 日時
050 0x032 Lock ロック
051 0x033 Units 単位
052 0x034 Interface インターフェース
053 0x035 System システム
054 0x036 Programmable VFO プログラマブルVFO
055 0x037 Beat Shift ビートシフト
056 0x038 TX Inhibit 送信禁止
057 0x039 Detect Out Select 検波出力選択
058 0x03a Time-out Timer タイムアウトタイマー
059 0x03b FM Narrow FMナロー
060 0x03c MW/SW Antenna 中波/短波アンテナ種類
061 0x03d FM BC Antenna FM放送アンテナ種類
062 0x03e Mic. Sensitivity マイク感度
063 0x03f WX Alert WXアラート
064 0x040 SSB High Cut SSBハイカット
065 0x041 CW Width CW通過帯域幅
066 0x042 AM High Cut AMハイカット
067 0x043 Auto FIL. Expansion 受信フィルタ自動拡大
068 0x044 Resume 再開条件
069 0x045 Resume(Digital) 再開条件(デジタル)
070 0x046 Time Restart タイムオペレート再開
071 0x047 Carrier Restart キャリアオペレート再開
072 0x048 Visual Scan Range ビジュアルスキャン範囲
073 0x049 Priority Scan プライオリティスキャン
074 0x04a Scan Auto Backlight スキャンオートバックライト
075 0x04b Auto Weather Scan オートウェザースキャン
076 0x04c Offset Frequency オフセット周波数
077 0x04d Auto Offset オートオフセット
078 0x04e CALL Key CALLキー
079 0x04f 1750Hz TX Hold 1750Hz送信保持
080 0x050 VOX VOX
081 0x051 Gain ゲイン
082 0x052 Delay ディレイ
083 0x053 TX on Busy ビジー時送信
084 0x054 Encode Speed 送出スピード
085 0x055 Pause Time ポーズ時間
086 0x056 TX Hold 送信保持
087 0x057 DTMF Memory DTMFメモリー
088 0x058 EchoLink Memory EchoLinkメモリー
089 0x059 Break-In ブレークイン
090 0x05a Delay Time ディレイタイム
091 0x05b Pitch Frequency ピッチ周波数
092 0x05c CW on FM CW on FM
093 0x05d Reverse リバース
094 0x05e QSO Log QSOログ
095 0x05f LED Control LEDコントロール
096 0x060 View List リスト表示
097 0x061 Group Name グループネーム
098 0x062 Recall Method 呼び出し方法
099 0x063 Group Link グループリンク
100 0x064 CALL Ch List CALLチャンネルリスト
101 0x065 Lockout ロックアウト
102 0x066 Recording 録音
103 0x067 Recording Band 録音対象バンド
104 0x068 TX Monitor 送信モニター
105 0x069 Digital Auto Reply デジタル自動応答
106 0x06a Built-in GPS 内蔵GPS
107 0x06b My Position 自局位置
108 0x06c Position Ambiguity 自局位置あいまい
109 0x06d Operating Mode 動作モード
110 0x06e Battery Saver 省電力
111 0x06f PC Output PC出力
112 0x070 Sentence センテンス
113 0x071 Clear Track Log 軌跡ログ消去
114 0x072 Record Method 記録方法
115 0x073 Interval インターバル
116 0x074 Distance 距離
117 0x075 My Callsign 自局コールサイン
118 0x076 Icon アイコン
119 0x077 Position Comment ポジションコメント
120 0x078 Status Text ステータステキスト
121 0x079 Packet Path パケットパス
122 0x07a Data Speed データスピード
123 0x07b Data Band データバンド
124 0x07c DCD Sense DCDセンス
125 0x07d TX Delay TXディレイ
126 0x07e APRS Lock APRSロック
127 0x07f Method 送信方法
128 0x080 Initial Interval 自動送信間隔
129 0x081 Decay Algorithm ディケイアルゴリズム
130 0x082 Prop. Pathing プロポーショナルパッシング
131 0x083 Speed 速度出力
132 0x084 Altitude 高度出力
133 0x085 Object オブジェクト
134 0x086 QSY Info. in Status QSY情報付加
135 0x087 Tone/Narrow トーン/ナロー
136 0x088 Shift/Offset シフト/オフセット
137 0x089 QSY Limit Distance QSY情報制限距離
138 0x08a Low/High Speed 低速/高速速度
139 0x08b Slow Rate 低速時送信間隔
140 0x08c Fast Rate 高速時送信間隔
141 0x08d Turn Angle 回転角度
142 0x08e Turn Slope 回転傾斜
143 0x08f Turn Time 回転時間
144 0x090 Format フォーマット
145 0x091 Length 桁数
146 0x092 Output 出力
147 0x093 Position Limit 受信範囲制限
148 0x094 Filter Type フィルタータイプ
149 0x095 User Phrases 定型文の編集
150 0x096 Auto Reply 自動応答
151 0x097 Reply To 自動応答先
152 0x098 Reply Delay Time 自動応答待ち時間
153 0x099 Reply Message Text 自動応答メッセージ
154 0x09a RX Beep 受信ビープ
155 0x09b TX Beep 送信ビープ
156 0x09c Special Call スペシャルコール
157 0x09d Display Area 受信通知表示領域
158 0x09e Interrupt Time 受信通知表示時間
159 0x09f APRS Voice APRSボイス
160 0x0a0 Network ネットワーク
161 0x0a1 Voice Alert ボイスアラート
162 0x0a2 VA Frequency ボイスアラート周波数
163 0x0a3 Message Group Code メッセージグループコード
164 0x0a4 Bulletin Group Code ブリティングループコード
165 0x0a5 Beacon Type ビーコンタイプ
166 0x0a6 NAVITRA Group Mode ナビトラグループモード
167 0x0a7 NAVITRA Group Code ナビトラグループコード
168 0x0a8 NAVITRA Message ナビトラメッセージ
169 0x0a9 View History 履歴表示
170 0x0aa TX Message 送信メッセージ
171 0x0ab Direct Reply ダイレクトリプライ
172 0x0ac Auto Reply Timing 自動応答タイミング
173 0x0ad Data TX End Timing データ送信終了タイミング
174 0x0ae EMR Volume Level EMR音量
175 0x0af RX AFC 受信AFC
176 0x0b0 FM Auto Det. on DV DV時FM自動検出
177 0x0b1 Data Frame Output データフレーム出力
178 0x0b2 Break Call 割り込み通話
179 0x0b3 Select Type タイプ選択
180 0x0b4 Digital Code デジタルコード
181 0x0b5 GPS Info. in Frame GPS情報付加
182 0x0b6 Auto TX 自動送信
183 0x0b7 Display Method 表示方法
184 0x0b8 Single Display Size シングル表示サイズ
185 0x0b9 Dual Display Size デュアル表示サイズ
186 0x0ba Display Hold Time 表示保持時間
187 0x0bb Callsign Announce コールサイン発声
188 0x0bc Standby Beep スタンバイビープ
189 0x0bd FM Radio Mode FMラジオモード
190 0x0be Auto Mute RET. Time オートミュート復帰時間
191 0x0bf FM Radio List FMラジオメモリーリスト
192 0x0c0 Config Data 設定データ
193 0x0c1 Config Data + V.Msg 設定データ+ボイスメッセージ
194 0x0c2 Repeater List Only レピーターリストのみ
195 0x0c3 Callsign List Only コールサインリストのみ
196 0x0c4 Execute 実行
197 0x0c5 View 表示
198 0x0c6 microSD Card microSDカード
199 0x0c7 Backlight Control バックライトコントロール
200 0x0c8 Backlight Timer バックライト点灯時間
201 0x0c9 LCD Brightness LCD輝度
202 0x0ca Power-on Message パワーオンメッセージ
203 0x0cb Single Band Display シングルバンド表示
204 0x0cc Meter Type メータータイプ
205 0x0cd Background Color 背景色
206 0x0ce Balance バランス
207 0x0cf TX/RX EQ 送信/受信イコライザー
208 0x0d0 TX EQ Level 送信イコライザーレベル
209 0x0d1 RX EQ Level 受信イコライザーレベル
210 0x0d2 Beep ビープ
211 0x0d3 Beep Volume ビープ音量
212 0x0d4 Voice Guidance ボイスガイダンス
213 0x0d5 Voice Guidance Vol. ボイスガイダンス音量
214 0x0d6 USB Audio Out. Lvl. USB オーディオ出力レベル
215 0x0d7 Battery Saver バッテリーセーブ
216 0x0d8 APO: Auto Power Off APO: オートパワーオフ
217 0x0d9 Battery Level バッテリー残量
218 0x0da Bluetooth Bluetooth
219 0x0db Connect 接続
220 0x0dc Device Search デバイス検索
221 0x0dd Disconnect 切断
222 0x0de Pairing Mode ペアリング待ち受け
223 0x0df Device Information デバイス情報
224 0x0e0 Auto Connect 自動接続
225 0x0e1 PF1 Key PF1 キー
226 0x0e2 PF2 Key PF2 キー
227 0x0e3 PF1 (Mic) PF1 (マイク)
228 0x0e4 PF2 (Mic) PF2 (マイク)
229 0x0e5 PF3 (Mic) PF3 (マイク)
230 0x0e6 Cursor Shift カーソルシフト
231 0x0e7 Secret Access Code アクセス用暗証番号
232 0x0e8 Power-on Password パワーオンパスワード
233 0x0e9 Setting 設定
234 0x0ea Keys Lock Type キーロックタイプ
235 0x0eb DTMF Keys Lock DTMFキーロック
236 0x0ec Mic Keys Lock マイクキーロック
237 0x0ed Volume Lock 音量ロック
238 0x0ee Speed, Distance 速度, 距離
239 0x0ef Altitude, Rain 高度, 雨量
240 0x0f0 Temperature 気温
241 0x0f1 Latitude, Longitude 緯度, 経度
242 0x0f2 Grid Square Format グリッドスクエアフォーマット
243 0x0f3 USB Function USB機能選択
244 0x0f4 PC Output(GPS) PC出力(GPS)
245 0x0f5 PC Output(APRS) PC出力(APRS)
246 0x0f6 KISS PC入出力(KISS)
247 0x0f7 DV/DR PC入出力(DV/DR)
248 0x0f8 Language 言語
249 0x0f9 Version バージョン
250 0x0fa Reset リセット
251 0x0fb Date(Y/M/D) 日付(年/月/日)
252 0x0fc Date(M/D/Y) 日付(月/日/年)
253 0x0fd Date(D/M/Y) 日付(日/月/年)
254 0x0fe Time 時刻
255 0x0ff Time Zone タイムゾーン
256 0x100 0.4 kHz 0.4 kHz
257 0x101 0.8 kHz 0.8 kHz
258 0x102 1.6 kHz 1.6 kHz
259 0x103 3.2 kHz 3.2 kHz
260 0x104 6.4 kHz 6.4 kHz
261 0x105 Group グループ
262 0x106 Memory Group メモリーグループ
263 0x107 Name ネーム
264 0x108 Repeat リピート
265 0x109 Repeat Interval リピート間隔
266 0x10a Callsign コールサイン
267 0x10b Memo メモ
268 0x10c Sub Name サブネーム
269 0x10d Callsign (RPT1) コールサイン (RPT1)
270 0x10e Gateway (RPT2) ゲートウェイ (RPT2)
271 0x10f Frequency 周波数
272 0x110 Shift シフト
273 0x111 Offset オフセット
274 0x112 Pos. Accuracy 位置情報精度
275 0x113 Latitude 緯度
276 0x114 Longitude 経度
277 0x115 Time Zone タイムゾーン
278 0x116 Set Property 編集
279 0x117 Memory Shift(M>V) メモリーシフト(M>V)
280 0x118 Clear Memory メモリー消去
281 0x119 Clear Group グループ消去
282 0x11a Send 送信
283 0x11b Send 未送信メッセージ送信
284 0x11c Reply 返信文の作成
285 0x11d Edit 編集
286 0x11e Edit 引用返信
287 0x11f New 新規作成
288 0x120 Re-TX メッセージの再送信
289 0x121 Position 位置情報の検索
290 0x122 POS Request ポジションリクエスト
291 0x123 Unread 未読に変更する
292 0x124 Tune QSYセット
293 0x125 Sort ソート
294 0x126 Filter フィルター
295 0x127 Copy to Pos. Memory ポジションメモリーにコピー
296 0x128 Clear 消去
297 0x129 Clear All 全消去
298 0x12a <ソート>
299 0x12b By Distance 距離
300 0x12c By Callsign コールサイン
301 0x12d By Date/Time 日付/時刻
302 0x12e <フィルター>
303 0x12f All(Off) 全て
304 0x130 Digipeater デジピーター
305 0x131 Weather 気象
306 0x132 Mobile 移動
307 0x133 Object オブジェクト
308 0x134 KENWOOD ケンウッド
309 0x135 NAVITRA ナビトラ
310 0x136 QSY(Freq) QSY
311 0x137 1-Way 1-Way
312 0x138 Others その他
313 0x139 Play 再生
314 0x13a Record 録音
315 0x13b Memory Name メモリーネーム
316 0x13c Add 追加
317 0x13d Move 移動
318 0x13e DV/DR Select DV/DR切り替え
319 0x13f TX History 送信履歴
320 0x140 Destination Select 相手先選択
321 0x141 CS Setting 送信設定確認
322 0x142 Route Select 経路選択
323 0x143 Repeater Detail レピーター詳細
324 0x144 Data Mode データ通信モード
325 0x145 DR Scan DRスキャン
326 0x146 Auto Reply 自動応答
327 0x147 <末尾に移動>
328 0x148 UR: UR:
329 0x149 MY: MY:
330 0x14a R1: R1:
331 0x14b R2: R2:
332 0x14c Origination: 送信元:
333 0x14d Destination: 送信先:
334 0x14e Route: 経路:
335 0x14f Repeater: レピーター:
336 0x150 RX Frequency: 受信周波数:
337 0x151 Message: メッセージ:
338 0x152 Time stamp: タイムスタンプ:
339 0x153 LAT: LAT:
340 0x154 LON: LON:
341 0x155 ALT: ALT:
342 0x156 GL: GL:
343 0x157 DIST: DIST:
344 0x158 SPEED: SPEED:
345 0x159 C: C:
346 0x15a Name: デバイス名:
347 0x15b BD Address: BDアドレス:
348 0x15c Class of Device: デバイスクラス:
349 0x15d Free : 空き領域 :
350 0x15e (REC : (録音 :
351 0x15f Capacity : 容量 :
352 0x160 No Data データなし
353 0x161 Target Point: ターゲットポイント:
354 0x162 Direction: 方向:
355 0x163 Distance: 距離:
356 0x164 <ソート>
357 0x165 by Name 名前
358 0x166 by Date/Time 日付/時刻
359 0x167 Position 位置
360 0x168 Altitude 高度
361 0x169 Copy to My Position My Positionにコピー
362 0x16a Copy to APRS Object APRSオブジェクトにコピー
363 0x16b To: 宛先:
364 0x16c Message text: メッセージ:
365 0x16d TX Rate: 送信頻度:
366 0x16e Text: テキスト:
367 0x16f Type: タイプ:
368 0x170 Total Hops: 中継段数:
369 0x171 Name: ネーム :
370 0x172 Type: タイプ:
371 0x173 Method: 送信方法:
372 0x174 Comment: コメント:
373 0x175 Level: レベル:
374 0x176 Market Code 仕向け
375 0x177 Serial Number シリアル番号
376 0x178 Main CPU Main CPU