Kenwood D7 Protocol
TH-D7 Protocol Specification
This document has been produced by examining the data going into and coming
out of the TH-D7 HT from Kenwood. There may be errors in this document –
so the authors of this document take no responsability for it’s accuracy or
for any damages or losses as a result of using this document.
Want to see in the TH-D7? Click HERE
Serial Paramaters
9600, 8, N, 1
Return Values
Return Value | Description |
N | Command Recognised but Invalid data entered. |
? | Command Not Understood |
[command] | Command Accepted |
Often entering a text command by itself or followed by the first paramater
will return the present value of the setting.
Generally paramters have
0 | 1 | |
State | Off | ON |
Cannel (Band) | A | B |
It may be able to tell if the unit attached has SkyCommand II by requesting
the SkyCommand Call Sign. If the SkyCommand II is not available in the model,
an error should be returned.
The most useful command is “AI 1”. It sets the TH-D7 to transmoit out the
serial port information about what the radio is doing. A ‘Y’ in the third
column indicates that the radio will send this string out the serial port
when it is varied.
Command | Description | |
ABC [0|1] | Automatic Band Change [D-700] | |
ABLG | APRS BLN Group | |
AMGG | APRS MSG Group | |
AMR [0|1] | APRS auto msg reply | |
AD [0|1] | Auto Display Dim [D-700] | |
AI [0|1] | Turns on output functions. Immediate functions output to the PC serial port. |
|
AIP [0|1] | Turns of Advanced Intercept Point – 1=On | |
APO [0-2],n | Auto Power Off, 0=Off, 1 = 30 min, 2 = 60min APO *returns* two arguments, the first being the current APO setting and the second set to 1 if the unit is about to be powered off. I.e. if you adjust it, you’d send/receive “APO n,0” where n is the setting, but if you let it sit for 30 minutes or whatever, the D7 will start beeping and send “APO n,1” where n is the current setting. APO returns 0 if APO is disabled. Returns APO1,0 when enabled. |
|
ARL nnnn | Pos Limit (nnnn=km, 0000=off) | |
AMSG [01-16] | Lets you view the corresponding APRS message with theresulting format
AMSG a,KD6VYV-7,MESSAGE CONTENT HERE,b a = number 1-5 then a= number of a=* acknowledge received from a=M Mine – this makes me think format of “b” b is an unknown number and can AMSG [00] Lets you enter a new APRS message with the format: If no content, then at least one space is required after the comma. |
|
ARO [0|1] | Auto Repeater Offset 0=Off 1 = 0n | |
ASC [A|B],[0|1] | Auto Simplex Check off and On? | |
BAL [0-4] | Set the Balance – Band A Only = 0, Band B only = 4, Even levels from bands A and B = 2 [D-7 Only] |
|
BC [0|1]BC[0|1],[0|1] | Change Band to [A|B] Band. A= 0, B=1. [D700 two arguments. First is control band. Second is PTT] |
Y |
BCN [0|1] | Beacon mode [OFF|ON] | |
BEL [0|1],[0|1] | Turns band [A|B] Tone Alert [OFF|ON] [D-7 Only] | |
BEP [0-3] | BEEP. 0 = Off, 1 = Key, 2 = Key + New Data, 3 = All | |
BEPT [0-3] | Beep on APRS messages, 0 = off, 1 = mine, 2 = all new, 3 = all [D700] |
|
BUF[0|1],
Frequency, Shift Direction, Reverse, Tone, CTCSS, DCS Enable, Tone Freq, DCS Tone, CTCSS Freq, Offset, Mode |
Set the Frequency on the Radio0 = Band A, 1 = Band B
To the Hz, leading 0 to 99 GHz!!! 0 = 5 HKz, 1=6.25, 2=10, 3=12.5, 4=15, 5=20, 6=25, 7=30, 8=50, 9=100 0=none 1=+ 2=-) i.e. repeaters 1 = Tone On 1 = CTCSS On 1 = DCS On, 1 = 67Hz, 3=71.5Hz …. 39=250.5 Hz Index 1 = 67Hz, 3=71.5Hz …. 39=250.5 Hz 0 = FM, 1 = AM |
|
BVOL [0-7] | Beep Volume 0 is off, 7 is loud [D-700] | |
BY [0|1],[0|1] | Squelch on band [A|B] is now [CLOSED|OPEN] | |
CIN | Copies current values (frequency, offset etc) to Call Channel. |
|
CTD a,n | CTD Carrier Tone Detecta=band 0/1 n;detected=1/not detected=0 |
|
CH [0|1] | Channel Display Mode OFF|On. | |
CP [0-3] | COM port bit rate. 0 = 9600, 1 = 19200, 2 = 38400, 3 = 57600 [D-700] |
|
CKEY [0|1] | CALL key function. 0 = call, 1 = 1750 Hz tone. | |
CR [0|1],0 | Call Channel Retrieve – Band [A|B] | |
CW | Write Call channel Record… (as returned by CR) | |
CT [0|1] | CTCSS Enable | Y |
CNT [01-16] | LCD Contrast – 08 is the default | |
CTN nn | CTCSS Tone – As abive | Y |
DATP [0|1] | Data Speed – 0 = 1200, 1 = 9600. [D-700] | |
DCSN | Set DCS Mode – codes map from 0010 = DCS code 023 thru 1040 = DCS code 754. [D-700] |
|
DIG [0|1] | APRS digipeater, 1 = enable | |
DIM [0-4] | Backlight Control – 0 = off, 1 = bright, 4=dim [D-700] | |
DL [0|1] | Dual Channel – 1 = Both A and B bands are used. | Y |
DM cc,nn..nnn | DTMF Write. Writes Channel cc with nn..nnnnex. DM 01,12345 stores 123456 in DTMF memory 01 | |
DMN cc, NAME | DTMF Channel Name. Names the Channelex. DMN 01,HELLO names DTMF memory 01 HELLO | |
DS [0|1] | DCD Sense – 0 = Data Band Only, 1 = Both Bands | |
DTB [0|1] | Data Band A/B | |
DTBA [0-3] | APRS data band, 0 = A, 1 = B, 2 = A:TX/B:RX, 3 = A:RX/B:TX [D700] |
|
DTM [0|1] | DTMF Monitor [D-700] | |
DTX [0-2] | APRS Data TX mode (0=manual, 1=PTT, 2=auto) | |
DUP [0|1] | Turns radio to Full Duplex (1) or Half Duplex (0) [D7] | |
DW | Move Frequency Down | |
ELK [0|1] | Tune Enable 0= Off, 1=On [D-7] | |
FL | Comma Delimitered list of BAND extents | |
FQ | Returns present Frequency | |
FUNC [1-3] | Function menu mode 1-3 [D700] | |
GU [0|1|2] | GPS Unit 1=NMEA GPS 2=NMEA9600 [2 is D700 only] | |
ICO [0|1],i | Sets the APRS Iconfor [0] 0=Kenwood W, 1=Runner, 2=House, 3=Tent, 4=Boat – Sail, 5=SlowScan, 6=Plane, 7=Speedboat, 8=Car, 9=bicycle, Are there more? for [1], i = Hex |
|
ID | Returns the Radio ID – ‘TH-D7’ or ‘TM-D700’ | |
KILO [0|1] | APRS 0 = Miles, 1 = Kilometers [D700] | |
LIST nn | LIST nn,<call>,<pos>,<icon>,<pos_comment>,<mess_type>,<icon_ext>,<comment>,<data>Where:<call> callsign <pos> position data in the form nnnnnnccmmmmmmmdd
<icon> icon, 2 characters <pos_comment> 1 character ? None 0 "Off Duty" 1 "En Route" 2 "In Service" 4 "Committed" 5 "Special" 6 "Priority" 7 "Emergency" <icon_ext> 1 character <mess_type> Determins data, below 0 CSESPD 1 WEATHER 2 CSESPD 3 OBJECT 4 PHG 5 CSESPD 6 CSESPD
<data> 12 characters For: CSESPD: cccsss where ccc is course and sss is speed WEATHER: dddssstttrrr
OBJECT: fffffff PHG: DIGITS 0 1 2 3 9 as used in the Pwr field ------------------------------------------------------------------------- POWER 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 watts SQR(P) HEIGHT 10,20,40, 80,160,320,640,1280,2560,5120 feet LOG2(H/10) GAIN 0, 1, 2, 3, 4, DIR 0,45,90,135,180,225,270,
*
|
|
LK [0|1] | Radio Lock (1 = Locked) | |
LMP [0|1] | Radio Lamp ( 0 = OFF) [D7] | |
MAC [0-7] | SSTV My Call Color | |
MC [0|1],n | Switch to memory channel on band [A|B], n=channel number | |
MCNT [0|1] | Mic Control 1=Enable [D700] | |
MCL [0|1],[0|1 | Lock memory channel [A|B],[UNLOCK|LOCK] | |
MD [0|1] | Set [FM|AM] on the 118 MHz Sub Band | |
MES HELLO | Power On Message – Message is up to 8 Characters | |
MIN 0,0 | Copies the currently displayed frequency and other settings into channel 32. MIN copies current VFO settings into current memory (like F, M.IN) |
|
MON [0|1] | Turns OFF|ON monitoring (Squelch) | |
MNA [0],nnn,Name | Names a memory. nnn of form 015 or L6. Name = max 8 characters | |
MNF [0|1] | Change between Name and frequency display on memories. | |
MP numbersMP x,numbers | My Position1234560N12345670W
N 0=North, 1=South W 0=East 1=West North/South = 12 deg 34.56 minutes D700 allows you to have multple “my position” stored (1-5): MP 1,33411001151070710 |
|
MPNA n,label | label a “my position” memory. [D700] | |
MR [0],[0],nnn | Reads memory nnn. nnn may be in the form 018, or L7Returns a MR string of the same form of BUF above, or form below.
The absolute last parameter is a 0/1, 1 being memory lockoutThe second parameter is used to store a split frequency. For example, if you store a frequency of 145.00 rcv, 145.30 xmt in channel 20, you get the following: MR 0,0,020,00145000000,0,0,0,0,0,,09,,09,,0,0 MR 0,1,020,00145300000,0 MR 0,0,nnn output from radio is: first three fields from input, freq, step, offset direction reverse, tone, ctcss, DCS on, tone freq, nnnn = dcs number, 0010 = 023 thru 1040 = 754 ctcss freq, offset, mode, scan locked MR 0,1,nnn output is: first three fields from inout, freq, step (why?) |
|
MSH | Copy Memory to VFO – Same as F-VFO | |
MW0,
nnn, Frequency Step, Reverse, Tone, CTCSS, DCS Enabled Tone Freq, DCS Tone CTCSS Freq, Offset, Mode, 0 |
MW Memory Write… Needs a lot more workThis essentially mirrors MR. nnn is the Channel for the memory | |
MUTE [0|1] | Mute other side on PTT[D-700] | |
MYC VK2TDS | Sets the APRS CALLSIGN | |
NSFT [0|1] | Beat Shift – [OFF|ON]; [NORMAL|UPPER] [D7] | |
OS nnnn | Repeater Offset in Hz – 9 Digits 0 Padded | |
PAMB n | sets digits of ambiguity reported GPS position. | |
PC | Power ControlPC 0,0 ‘band A High power PC 0,1 ‘incorrect command no function PC 0,2 ‘band A Low power PC 0,3 ‘band A EL power PC 1,0 ‘band B High power On D700 First field is band, second is power with 0 = high, 1 = med, 2 = low |
|
PF x,yy | PF x,yy – mic programmable function keys, x = key (1-4), yy = function00 = Power switch 13 = Rev26 = Visual 01 = A/B 02 = Monitor 03 = Enter 04 = Voice 05 = 1750 Hz tone 18 = 31 = List 06 = PM 07 = Menu 33 = BCon 08 = VFO 09 = MR 10 = 12 = Tone |
|
PIM n | Writes current “Programmable Memory” settings to memory N [D700] |
|
PKSA [0|1] | APRS packet speed, 0 = 1200, 1 = 9600 | |
PM n | selects “Programmable Memory” (aren’t they all). [D700] | |
PMM n | Auto “Programmable Memory” store, 0 = enable, 1 = disable! [D700] |
|
POSC n | Position Comment – 0=Off Duty, 1=Enroute, 2=In Service, 3=Returning, 4=Committed, 5=Special, 6=Priority, 7=Emergency |
|
PP path | APRS Packet Path | |
PT [0-6] | Transmit Speed Pause of DTMF (100,200,500,750,1000,1500,2000 mSec) | |
PV [1-6],f1,f2 | Set or return the VCO1=Air Band, 2 = VHF A, 3 = VHF B, 6 = UHF
f1, f2 = MHz only 5 digits 0 leading f1 = lower VCO freq. f2 = Higher VCO Freq PV first arg on D700 is 1-9 (weird pattern) band PV 1,00118,00135A (AM) PV 2,00136,00199 PV 3,00136,00174 PV 4,00200,00299 PV 5,00300,00399 PV 6,00300,00399 PV 7,00400,00523 PV 8,00400,00469 A PV 9,00800,01299 |
|
RBN [1|2|3|6] | Sets the VFO mode for the selected band. If you’re onband A, 1 and 2 are valid settings and will switch between AIR and VHF_A.
If you’re on band B, 3 and 6 are valid settings for VHF_B and UHF |
|
RC [0|1] | remote control, 1 = enable [D700] | |
RCA [0|1] | remote control answer back, 1 = enable [D700] | |
RCC nnn | remote control code, default 000 [D700] | |
REP [0-2] | repeater, 0 = off, 1 = locked band, 2 = cross band [D700] |
|
REPH [0|1] | Repeater Hold [D700] | |
REV [0|1] | Sets the REVERSE mode – 1 = On | |
RSV text | An RSV message – usually Signal report | |
RSC [0-7] | RSV Text Color | |
RX | Stop transmitting and go into recieve mode, or the radio has stopped transmitting |
|
SC [0|1] | Stop/Start Scanning | |
SCR [0-2] | Scan Resume – 0=Time, 1 = Carrier, 2 = Seek | |
SCC callsign | Sky Command Callsign | |
SCT callsign | Sky Command To Callsign | |
SFT n | Repeater Shift. 0=None, 1=minue, 2=Plus | |
SKTN nn | Sky Command Access Tone – As CTCSS | |
SHT n | squelch hang time, 0 = off, 1 = 125 ms, 2 = 250 ms, 3 = 500 ms [D700] |
|
SM [0|1],nn | Recieved signal strength on band [A|B] – 05 is the highest I have seen | |
SMSG text | SSTV Message | |
SMY mycall | SkyCommand or SSTV (check) callsign | |
SMC [0-7] | SSTV Message Color0=Black, 1=Blue, 2=Red, 3=Magenta, 4=Green, 5=Cyan, 6=Yellow | |
SQ [0|1],[00-1F] | Set the Squelch setting for the [A|B] band. The valid range is 00-05 (00=open)D700 range is 00-1F |
|
SSEL n | set speaker mode 1-2 [D700] | |
SSL b,l | S-meter squelch level, b = band, l = bars to open [D700] |
|
SSQ b,n | set S-meter squelch, b = band, n = 1 enable [D700] | |
ST n | Set Step Size0 = 5 HKz, 1=6.25, 2=10, 3=12.5, 4=15,
5=20, 6=25, 7=30, 8=50, 9=100 KHz |
|
STAT text | Sets the APRS Status Text | |
STC call,n | SSTV Superimpose Call – n=??? | |
STS | SSTV Transmit Mode – VC involved? | |
STP | Stop Scanning – No RETURN !!! This may be a side effect and really be related to the SSTV VC. |
|
STXR n | Status TX Rate, 0 = off, 1-8. [D700] | |
SV [0-9] | Battery Save, 0=Off, 1=0.2Sec 2=0.4, 3=0.6, 4=0.8, 5=1.0, 6=2, 7=3, 8=4, 9=5 [D7] |
|
TC [0|1] | Turns FULL TNC ON/OFF – TC 0 turns full TNC on. TC 1 turns TNC off in TNC comamnd mode. Returns TS 1 !!!! Note the wrong return value.[D7] |
|
TNC [0|1] | Turns the TNC [OFF|ON]. Turning it on is only for APRS mode.D700 1 = APRS, 2 = Packet | |
TO [0|1] | Pl Tone Enable | |
TOT | PTT timeout, 0 = 3 minutes, 1 = 5 min, 2 = 10 min [D700] |
|
TEMP [0|1] | APRS 0 = degrees F, 1 = degrees C | |
TN nn | PL Tone – As above | |
TSP [0|1] | DTMF Transmission Speed – 0 = Fast, 1 = Slow | |
TT [0|1] | Turn OFF/On 1750 Mhz tone (D7E) | |
TX [0|1] | Start transmitting on the [A|B] band. | |
TXH [0|1] | Turns TXHold [OFF|ON] | |
TXI [0-7] | APRS TX interval(0=0.5,1=1,2=2,3=3,4=5,5=10,6=20,7=30) | |
TXN | Transmit Narrow (TH-D7E) | |
TXS [0|1] | TX Inhibit 0=Off, 1=On [D7] | |
TDY | it’s thought these are related to the diode matrix – for example,TH-G71 radios with the extended receive mod report different values. Handy if you could set them via the serial port! |
|
UIDIG nnn | UIDIGI path [D700] | |
UNIT [0|1] | APRS Display Unit0 = Miles/F, 1=Km and Celcius (1 Should be the default 🙂 [D7] | |
UPR string | Unproto String – APK001 = Default [APK101 for D700] | |
UP | UP Moves the Memory Channel up (similar to DW) – Similar to DW | |
VCS [0|1] | SSTV VC Shutter 1=on | |
VMC [0|1]|[0-3] | Mode of band [A|B] 0=VFO, 2=Memory, 3=call | |
VSC [0|1] | Visual Scan [D700] | |
VSL xxx,y | Visual scan output, I guess XXX is the “channel”number and “y” is the signal strength (ranges between 0 and 7 like
the main signal strength) [D700] |
|
VSM n | visual scan mode, 1 = 31 channel, 2 = 61 ch, 3 = 91 ch, 4 = 181 ch. [D700] |
|
VW | VFO Write ??? | |
WAY n | waypoint reporting format -0 = off 1 = 6 digits NMEA 2 = 7 digits NMEA 3 = 8 digits NMEA 4 = 9 digits NMEA 5 = 6 digits Magellan 6 = DGPS |
UNKNOWN COMMANDS
Command | Comment |
GC | |
GM | |
SR | |
TH | |
LAN | |
NMSG | |
OPTH | No Return – VC? |
STM | No Return – VC? |
STR | No Return – VC? |
STS | No Return – VC? |
STT | No Return – VC |
TXN | |
TYD | |
ULC 0,0 |
Format of the D7 Kenwood File
COMMENT | Coments? |
MEMORY | Contents of radio memories |
CALL | Contents of Call Channels |
VCO | Contents of the VCO’s |
DTMF | ??? |
RADIO MENU | |
APRS MENU | APRS Setting |
SSTV MENU | Slow Scan TV Settings |
MEMORY
TAB Delimitered
CHANNEL|FREQ|STEPflag|SHIFTflag|REV|TONEflag|CTSSflag
|Blank|TONEcode|Blank|CTSScode|Offset|LOCKflag|FM/Amflag|Blank|Blank|Blank|NAME
1 | Memory Number – 3 Digits |
2 | Frequency – 9 Digits |
3 | VCO Number (1=118 MHz, 2=VHF, 3=SubVHF, 6=UHF |
4 | Frequency Step (0 = 5 HKz, 1=6.25, 2=10, 3=12.5, 4=15,5=20, 6=25, 7=30, 8=50, 9=100 KHz) |
5 | Reverse On |
6 | Tone On (1=On) |
7 | CTCSS On (1=On) |
8 | |
9 | Tone Frequency |
10 | |
11 | CTCSS Frequency |
12 | Repeater Offset – 9 Digits |
13 |
24-December-1999
This document has been produced by Darryl Smith, VK2TDS, and David Nesting
WL7RO. Thanks also to Andre PE1RDW, Anthony Parise WA3HRL, Andrea Borgia and
Glenn Cummings KG7IL. Please email comments and corrections to Darryl Smith
VK2TDS. Thanks to Andrew McNamara for D700 updates. Thanks also to Willy Robison KC0JFQ for updates.
For a PERL module that can be used to operate the TH-D7 click
HERE
.
The following table is from Jim Gill
TNC/Serial Port is in THIS MODE |
TO GO TOTHIS MODE | SEND THISIN
UPPERCASE |
Is there a delayfor the TNC
to re-initialize |
---|---|---|---|
OFF | APRS | TNC 1 | YES |
OFF | PACKET | TNC 2 then TC 0 |
YES |
OFF | RC | (not necessary)* | |
APRS | OFF | TNC 0 | |
APRS | RC | (not necessary)* | |
APRS | PACKET | TNC 2 then TC 0 |
YES |
RC | OFF | TNC 0 | |
RC | APRS | TNC 1 | YES |
RC | PACKET | TC 0 | NO |
PACKET * | OFF | TC 1 then TNC 0 |
|
PACKET * | RC | TC 1 | NO |
PACKET * | APRS | TC 1 then TNC 1 |
YES |
*
Don’t forget to send a Ctrl-C (alt-3 on keypad, hex $03, etc) to get out of
converse mode on the TNC if necessary!
* You
can enter any Radio Control (RC) commands while in the OFF or APRS modes.