The KA7OEI FT-817 pages
CAT (tm) Interface Programming using the FT-817

 
Front panel view of my
                FT-817
A Front-panel view of my FT-817. 

Notes:

- For a program that utilizes the CAT commands (both documented and undocumented) to a very large extent, look at HB9DRV's FT-817 Commander program.
 
- Also note that I do NOT own an FT-817ND and have not had the opportunity to examine one carefully to note the subtle differences between it and the original '817, especially when it comes to CAT programming and memory locations.

- The EEPROM memory map has been moved to a separate page - refer to the link near the bottom of the page.

Important:  This document details aspects of CAT interface commands that are specific to the FT-817.  Furthermore, some of these parameters (specifically memory locations) may be pertinent only to the version of the software in my radio and may not apply to other software versions!  Finally, careless use of these commands may result in an unusable radio, requiring complete recalibration!  You have been warned!

Comment:  The Japanese domestic version of the FT-817 apparently has a different CPU which is "hardcoded" to limit its frequency coverage.  It would be interesting to know if the EEPROM addresses below are the same for this (and other) versions.

Note:   For reference, the first four characters of the serial number on my '817 are:  1D21


Computer control of the FT-817:

Most modern HF transceivers are capable of remote control via the serial interface (called the CAT interface by Yaesu) and the FT-817 is no exception.  Ideally, it should be possible to glean enough information to do everything remotely that it is possible to do from the radio's front panel.  Unfortunately, this isn't always the case:  Almost inevitably, some minor feature or piece of information is omitted and a "remote simulation" just is not possible.
 
"Why is this page here?"

The simple answer:  Because the '817 has a serial port. 

It occurred to me that there must be a few undocumented commands in the interface protocol to allow Yaesu to perform a semi-automated calibration of the radio, so I began to poke around in the interface.  After a few minutes, I was able to discern the presence of several previously undocumented commands.  Soon after this (and after throwing together some "sniffer" software) I was accumulating a large pile of notes as to which address did what. 

The real reason why I did this was to be able to interface the '817 to a computer to do some field strength measurements (documented here) - and I needed the '817 to do more than it could "officially" do. 

Since I was already documenting this information, I decided to make this information available to others who might want to use it. 

Such is the case of the FT-817:  While it is possible to perform most functions (such as setting frequency and mode) and display a few of the displayed parameters (such as the S-meter,) while the status of a few other items (such as attenuator, AGC, preamplifier, and transmitter power settings, to name a few) does not seem to be available via the interface.

Not with documented commands, anyway...

As it turns out, there are a number of very powerful undocumented commands specific to the FT-817 that allow access to most of this sort of data - both to read and change this data - but more on this later. These commands are no doubt what allows Yaesu to have an automated test fixture for most calibration points in the radio.

The FT-817's command structure consists of a 5 byte command sent at the baud rate specified in menu item 14.  The format is 8 data bits, no parity, 1 start bit, and 2 stop bits with the command sent to the FT-817 being formatted as follows:

[Data 1][Data 2][Data 3][Data 4][Command]
Note:  It is specified in the manual that these 5 bytes are to be sent in quick succession - within 200 milliseconds of each other.  Experimentation reveals, however, that this would be too slow - it is more likely that all 5 bytes must be sent within a 200 millisecond period.

Not all commands "look" at all 4 data bytes, but in all cases, all 4 bytes must be sent.  On those commands where not all 4 data bytes are required, those unused bytes may contain anything.

Comment:

The command set is as follows in (the commands are in numerical order.)  The bytes designated with X may contain any data:
 
Command
Description
Data
Byte
1
Data
Byte
2
Data
Byte
3
Data
Byte
4
Command
(in HEX)
Remarks
Lock On
X
X
X
X
00
This command is equivalent to turning the dial/panel lock on.  This precise effect of this setting depends on the state of submenu item #32 (stored at memory location 5E HEX - see below.) 

This command returns 00 if it was unlocked, and F0 if already locked.

Set Frequency
100/10 MHz
1 MHz/100 kHz
10/1 kHz
100/10 Hz
01
This commands sets the current frequency (see below)
Split On
X
X
X
X
02
This command enables split operation.  Use the Read Transmitter Status command (below) to determine current split status. 

This command returns 00 if not already on, and F0 (HEX) if already on.

Read Frequency 
and mode
X
X
X
X
03
This command returns five bytes (see below)
Clarifier On
X
X
X
X
05
This command turns the clarifier (a.k.a. RIT) on. 

This command returns 00 if not already on, and F0 (HEX) if already on.

Set Operating 
Mode
Mode 
Byte
X
X
X
07
The mode byte is described below
Set PTT ON
X
X
X
X
08
This "keys" the FT-817.  In CW, this sets the radio to transmit mode, but does key the transmitter. 

Note that keying and unkeying the radio's PTT line will cancel the transmit mode (i.e. put it back into receive) and effectively override this command

This command returns 00 if the '817 was unkeyed, and F0 if already keyed.

Set Repeater 
Offset Direction
Offset
X
X
X
09
The byte "Offset" has the following function: 
09 = - (minus) shift    49 = + (positive) shift    89 = simplex
Set DCS/CTCSS 
mode
Mode
X
X
X
0A
The byte "Mode" has the following function: 
0A = DCS Enable    2A = CTCSS Enable    4A = DCS/CTCSS Encoder  enable    8A = DCS/CTCSS Encoder Disable
Set CTCSS 
Tone Frequency
100/10 Hz
1/0.1 Hz
X
X
0B
This command sets the CTCSS frequency (see below) *
Set DCS Code
DCS MSB
DCS LSB
X
X
0C
This command sets the DCS code.  This is a 16 bit word containing the DCS code using two bytes (see below) *
Turn on FT-817
X
X
X
X
0F
This can be used to turn the FT-817 on - only if the corresponding off command was used and if power is being supplied via the rear connector.  See the notes concerning the off  command below.
Read TX keyed state (Undocumented)
X
X
X
X
10
This command returns 00 if the FT-817 is unkeyed, and nonzero (F0 HEX) if it is keyed.
Lock Off
X
X
X
X
80
This command is equivalent to turning the dial/panel lock off. 

This command returns 00 if the '817 was already locked, and F0 (HEX) if already unlocked.

Toggle VFO
X
X
X
X
81
This command toggles between VFO-A and VFO-B
Split Off
X
X
X
X
82
This command disables split operation.  Use the Read Transmitter Status command (below) to determine current split status. 

This command returns 00 if previously on, and F0 (HEX) if already off.

Clarifier Off
X
X
X
X
85
This command turns the clarifier (a.k.a. RIT) off. 

This command returns 00 if previously on, and F0 (HEX) if already off.

Set PTT Off
X
X
X
X
88
This command puts the FT-817 into receive mode. 

This command returns 00 if the '817 was keyed, and F0 if already unkeyed.

Turn off FT-817
X
X
X
X
8F
This command can be used to turn the FT-817 off, but ONLY when the FT-817 is powered from the rear connection and the "on" command (above) was used.  Note that approx. 10 mA is consumed when the radio is turned "off" using this command - See notes below.
Radio Configuration (Undocumented)
X
X
X
X
A7
This command causes a string of several bytes indicating the radio's configuration to be dumped.  (See below)
Unknown Status?  (Undocumented)
?
?
?
?
BA
This command causes one byte (usually 00?) to be returned.  Its function is unknown (see below)
Read FT-817 EEPROM Data  (Undocumented)
Address 
MSB
Address 
LSB
X
X
BB
This command causes two bytes of EEPROM data to be returned, beginning with the address in data bytes 1 and 2.  (Approximately 6.25k of EEPROM data may be accessed - See below)
Write FT-817 EEPROM Data  (Undocumented)
Address 
MSB
Address 
LSB
Data for Address
Data for Address + 1
BC
This command writes two bytes to the EEPROM at the address in data bytes 1 and 2.  (USE WITH CARE - See below)
Read TX metering  (Undocumented)
X
X
X
X
BD
This command returns one byte (00) when in receive.  When in transmit, this command returns two bytes (in BCD format) indicating Forward power, VSWR, ALC, and Modulation.  (See below)
Reset FT-817 to factory defaults and blow away all "soft" calibration settings!  Use with extreme care! (Undocumented)
X
X
X
X
BE
This command completely resets all configuration settings and factory calibration parameters to their factory (pre-alignment) values as well as erasing all channel memories.

Be very careful when using this command!  (See below)
Read Receiver Status
X
X
X
X
E7
This command returns one byte containing receiver status (see below)
Set Clarifier Frequency
Clarifier Direction
X
10/1 kHz
100/10 Hz
F5
This command sets the clarifier (a.k.a. RIT) direction and offset amount (see below)
Read Transmitter Status
X
X
X
X
F7
This command returns one byte containing transmitter status (see below)
Set Repeater Offset Amount
10/1 MHz
100/10 kHz
00
00
F9
This command sets the magnitude of the repeater offset.  It may range from 0 to 99.99 MHz (see below)

Note:  An asterisk (*) in the Notes column indicates that further study of that particular command is warranted, as its specific format may be unclear and/or it may do more than is immediately apparent.
Notes on the above commands:

Warning:
It is imperative that you record the value of all 76 "factory calibration settings" in the "Soft Calibration" menu before you start sending commands to the FT-817!  Because some of the commands below can overwrite or erase these calibration settings, saving this data beforehand will allow you to restore your FT-817 back to proper working order without having to either send it off to be re-aligned or your needing to follow the calibration procedure outlined in the service manual.

You have been warned!

"Won't I wear out my EEPROM?"

The '817 uses an EEPROM to store nonvolatile data. This means that every time you change a setting or a band, updated information is written to the EEPROM. 

As it turns out, EEPROMs have a limited number of "write" cycles before they literally "wear out."  Typically, the lifetime is 1 million writes.  Under "good" conditions, however (i.e. normal room temperature, normal voltage conditions) typical EEPROMs will withstand 10 million or more writes before they start to fail... According to the manufacturer, at least... 

What does this mean, then? 

For 1 million writes to occur, you would have to do the same thing to cause a write to the same address, once per second for 11 days:  You are likely to wear out the button before you wear out the EEPROM.  Since the lifetime of the EEPROM in the typical '817 is likely to be closer to 10 million writes, the actual figure is likely to be more like 4 months of constant rewriting. 

A computer, however, won't get tired as easily.  If your program does 10 writes per second, you may want to reconsider how it operates if you are concerned about the EEPROM's lifetime:  Do the math!

Additional notes:


The EEPROM Memory Map:

All of the nonvolatile parameters in the FT-817 are stored in the EEPROM (which is why there is no lithium battery in it).  The content of all of the memory locations is yet to be determined (and probably can never be) but a few that are known for certain are listed below.  For a list of EEPROM memory locations listed in address order, go to the Memory Map page.

The "factory calibration settings" (i.e. those obtained by pressing the A, B, and C keys while powering up the radio - and these parameters are variously referred to as "soft calibration settings" and the like) are stored in EEPROM.  Addresses 7 through 82 correlate with menu items 1 through 76 (i.e. add 6 to the menu item to calculate the EEPROM address.)  Most of these parameters range from 0-255 - a parameter which correlates directly with the value stored in memory.  A few known exceptions are as follows:

Writing new values immediately affects the specified parameter.  That is, they take effect instantly!  In the case of VFOs and memories, however, you won't see any effect until you select that VFO/Band/Memory combination that you have written.

Very important:

Additionally, many of the selectable menu items are stored in EEPROM as well.  When these values are written/updated, the change is immediate.  These are stored as follows.  Note -  These locations are believed to be correct, but since there are so many, I may have made a mistake.  Please let me know of errors that you may find.

Memory locations for Menu items
(Not it any particular order)

Function
Byte
Address
(HEX)
Bit(s)
used
(7-0)
Remarks (bit status)
VFO-A/B 55 0 0 = VFO-A, 1 = VFO-B
IPO On/Off Base address + 2

Refer to VFO Memory record format (farther down the page)

5 0 = IPO off, 1 = IPO on 
Note:  The "Phantom" band is that "extra" HF band that exists to allow tuning outside of amateur bands. 
Note:  IPO, ATT, etc aren't actually available on FM BCB, Air, 2 M, and UHF bands.)
ATT On/Off (Same addresses as IPO, except that bit 4 is used) 4 0 = ATT off, 1 = ATT on  ("Attenuator")
Clar On/Off (Same addresses as IPO, except that bit 6 is used) 6 0 = Clar off, 1 = Clar on  ("Clarifier" a.k.a. BFO)
NB On/Off 57 5 0 = NB off, 1 = NB on  (Noise Blanker)
AGC Mode 57 1, 0 00 = Auto,  01 = Fast, 10 = Slow, 11 = Off
TX Power 79 (All bands) 1, 0 00 = High, 01 = L3, 10 = L2, 11 = L1
DW On/Off 79 3 0 = Off, 1 = On  ("Dual Watch)
PRI On/Off 79 4 0 = PRI off, 1 = PRI on  (Priority scan)
SCN (Scan) Mode 79 6,5 00 = No scan, 10 = Scan up, 11 = Scan down
ART On/Off 79 7 0 = Off, 1 = On  (Auto-Range Transponder)
Pwr Meter 58 1, 0 00 = PWR, 01 = ALC, 10 = SWR, 11 = MOD
BK On/Off 58 5 0 = BK off, 1 = BK on (Semi Break-In for CW)
KYR On/Off 58 4 0 = KYR off, 1 = KYR on (Keyer)
VLT On/Off 58 6 0 = VLT off, 1 = VLT on (Voltmeter display)
DSP On/Off 57 2 0 = DSP off, 1 = DSP on (Display format)
CHG On/Off 7B 4 0 = Off, 1 = On (Charge enable)
VOX On/Off 58 7 0 = VOX off, 1 = VOX on
NAR On/Off 
(CW, CWN, DIG Mode)
Base address + 1

Refer to VFO Memory record format (farther down the page)


4
0 = Off, 1 = On
Note:  The "Phantom" band is that "extra" HF band that exists to allow tuning outside of amateur bands. 
Note that bits are allocated for this function even on bands where they are not used.
NAR On/Off 
(FM, FMN Mode)
Same addresses as NAR On/Off - CW Mode (above) 3 0 = Off, 1 = On
SPL On/Off 7A 7 0 = Off, 1 = On ("Split" mode)
RPT Offset Same addresses as NAR On/Off - CW Mode (above) 7-6 0 = Simplex, 01 = Minus, 10 = Plus, 11 = Nonstandard Split

Submenu Memory Locations:


Menu #
(Description)
Byte
Address
(HEX)
Bit(s)
used
(7-0)
Remarks (bit status)
1 - 144 ARS 5F 6 0 = ARS off, 1 = on  (Auto repeater shift)
2 - 430 ARS 5F 5 0 = ARS off, 1 = on (Auto repeater shift)
3 - 9600 Mic (0-100) 6C 6-0 Contains 0-100 (decimal) as displayed
4 - Disable AM/FM Dial 63 7 0 = enable, 1 = disable
5 - AM Mic (0-100) 68 6-0 Contains 0-100 (decimal) as displayed
6 - AM Step Base address + 3

Refer to VFO Memory record format (farther down the page)

5-3 000 = 2.5 kHz, 001 = 5 kHz, 010 = 9 kHz, 011 = 10 kHz, 100 = 12.5 kHz, 101 = 25 kHz
Note:  The "Phantom" band is that "extra" HF band that exists to allow tuning outside of amateur bands. 
Note that bits are allocated for this function even on bands where they are not used.
7 - Front/Rear Antenna 7A 0 - HF 
1 - 6m 
2 - FM 
3 - Air 
4 - 2m 
5 - UHF
0 = Front, 1 = Rear antenna 

(Note:  Different "bands" are stored in different bit locations as noted.)

8 - APO Time 65 2-0 000 = Off, 001 = 1 Hour, 010 = 2 Hours, etc.  (i.e. a 3 bit number from 0 to 6)  (Auto power-off)
9 - ARTS Beep Off/Range/All 5D 7-6 00 = Off, 01 = Range , 10  = All
10 - Backlight Off/On/Auto 5B 7-6 00 = Off, 01 = On, 10 = Auto
11 - Batt-Chg 6/8/10 Hours 62 7-6 00 = 6 Hours, 01 = 8 Hours, 10 = 10 Hours
12 - Beep Freq 440/880 Hz 5C 7 0 = 440 Hz, 1 = 880 Hz
13 - Beep Volume (0-100)  5C 6-0 Contains 0-100 as displayed
14 - CAT Rate (4800, 9600, 38400) 64  7-6 00 = 4800 Baud, 01 = 9600 Baud, 10 = 38400 Baud. 
Note:  If you can read this address, you probably already know what the baud rate is...
15 - Color Color1/Color2 5B 4 0 = Color1 (Blue)  1 = Color2 (Amber)
16 - Contrast (1-12) 5B 3-0 0010 = 1 through 1101 = 12
17 - CW Delay (10-2500 ms) 60 (all) From 1 to 250 (decimal) with each step representing 10 ms
18 - CW ID Off/On 5D 4 0 = Off, 1 = On
19 - CW Paddle Normal/Reverse 58 2 0 = Normal, 1 = Reverse
20 - CW Pitch (300-1000 Hz) 5E 3-0 From 0 to E (hex) with 0 = 300 Hz and each step representing 50 Hz
21 - CW Speed (4-60 WPM) 62 5-0 From 0 to 38 (hex) with 0 = 4 WPM and 38 = 60 WPM (each step = 1 WPM)
22 - CW Weight (1:2.5 - 1:4.5) 5F 4-0 From 0 to 14 (hex) with 0 = 1:2.5, incrementing in 0.1 weight steps
23 - DCS Code Base address + 9

Refer to VFO Memory record format (farther down the page)

5-0 From 0 to 67 (hex) with 0 = DCS code 023 and 67 (hex) = DCS code 754 
Note:  The "Phantom" band is that "extra" HF band that exists to allow tuning outside of amateur bands. 
Note that bits are allocated for this function even on bands where they are not used.
24 - Dig Disp (-3000 to +3000 Hz) 6F-70 (all) 6F is MSB and 70 is LSB with sign in bit 7 of the MSB, in 10 Hz steps.  I.e. 
0000 = 0 Hz, 0001 = +10 Hz, FF01 = -10 Hz, 012C = +3000 Hz, FED4 = -3000 Hz
25 - Dig Mic (0-100) 6A 6-0 Contains 0-100 (decimal) as displayed
26 - Dig Mode 65 7-5 000 = RTTY, 001 = PSK31-L, 010 = PSK31-U, 011 = USER-L, 100 = USER-U
27 - Dig Shift 6D-6E (all) 6D is MSB, 6E is LSB.  Same format as #24
28 - Emergency 64 5 0 = Off, 1 = On
29 - FM Mic (0-100) 69 6-0 Contains 0-100 (decimal) as displayed
30 - FM Step Base address + 3

Refer to VFO Memory record format (farther down the page)

2-0 000 = 5 kHz, 001 = 6.25 kHz, 010 = 10 kHz, 011 = 12.5 kHz, 100 = 15 kHz, 101 = 20 kHz, 110 = 25 kHz, 111 = 50 kHz
Note:  The "Phantom" band is that "extra" HF band that exists to allow tuning outside of amateur bands.
31 - ID This value does not appear to be stored in "reachable" EEPROM.    
32 - Lock Mode 5E 5-4 00 = Dial, 01 = Freq, 10 = Panel
33 - Main Step 5D 5 0 = Fine, 1 = Coarse
34 - Mem Group 65 4 0 = Off, 1 = On
35 - Mem Tag To Be Determined    
36 - Mic Key 68 7 0 = Off, 1 = On
37 - Mic Scan 69 7 0 = Off, 1 = On
38 - Op Filter 5E 7-6 00 = Off, 01 = SSB, 10 = CW
39 - Pkt Mic (0-100) 6B 6-0 Contains 0-100 (decimal) as displayed
40 - Pkt Rate 5D 2 0 = 1200, 1 = 9600
41 - Resume 5D 1-0 00 = Off, 01 = 3 Sec, 10 = 5 Sec, 11 = 10 Sec
42 - Rpt Shift Base address + addresses F-11 (HEX)

Refer to VFO Memory record format (farther down the page)

(all) A 24 bit number from with each count representing a 10 Hz  step (i.e. 10 Hz = 1, 10 kHz = 1000) representing up to a 99.99 MHz shift. 
Note:  The "Phantom" band is that "extra" HF band that exists to allow tuning outside of amateur bands. 
Note that bits are allocated for this function even on bands where they are not used.
43 - Scope 5D 3 0 = Cont, 1 = Chk
44 - Sidetone 61 6-0 Contains 0-100 (decimal) as displayed
45 - Sql/RF-G 5F 7 0 = RF-Gain, 1 = Squelch
46 - SSB Mic 67 6-0 Contains 0-100 (decimal) as displayed
47 - SSB Step Base address + 3

Refer to VFO Memory record format (farther down the page)

7-6 00 = 1 kHz, 01 = 2.5 kHz, 10 = 5 kHz
Note that bits are allocated for this function even on bands where they are not used.
48 - Tone Freq Base address + 6

Refer to VFO Memory record format (farther down the page)

4-0 Contains 0-31 with 0 = 67.0 Hz and 31 = 254.1 Hz representing each of the standard 32 CTCSS tones. 
Note:  The "Phantom" band is that "extra" HF band that exists to allow tuning outside of amateur bands. 
Note that bits are allocated for this function even on bands where they are not used.
49 - TOT Time 66 4-0 Contains 0-20 (with 0 = TOT Off)
50 - VOX Delay 64 4-0 0 = 100 Ms with each step representing 100 Ms, up to 24 = 2500 Ms
51 - VOX Gain 63 6-0 Contains 1-100 (decimal) as displayed
52 - Extend 6B 7 0 = Off, 1 = On
53 - DCS INV 66 7-6 00 = Tn-Rn, 01 = Tn-Riv, 10 = Tiv-Rn, 11 = Tiv-Riv
54 - R LSB Car 71 (all) Each step represents 10 Hz with the MSB indicating a negative value.  (From -300 to +300 Hz)
55 - R USB Car 72 (all) Same format as #54
56 - T LSB Car 73 (all) Same format as #54
57 - T USB Car 74 (all) Same format as #54

Miscellaneous memory locations:

Description
Byte
Address
(HEX)
Bit(s)
Used
(7-0)
Remarks
VFO A/B, HOME, MTUNE, QMB,  MTQMB, and memory frequency storage Base address + addresses A-D (HEX) (all)  Refer to VFO Memory and Memory record formats (farther down the page)
VFO A/B, HOME, MTUNE, QMB, MTQMB, and memory mode Storage Base address + 0 2-0 Refer to VFO Memory and Memory record formats (farther down the page)
Display menu (toggled using the "F" key) 76 3-0 0000 = VFO A/B, A=B, SPL;  0001 = MW, MC, TAG;  0010 = STO, RCL, PMS;  0011 = RPT, REV, TON;  0100 = SCN, PRI, DW;  0101 = SSM, SCH, ART;  0110 = IPO, ATT, NAR;  0111 = NB, AGC;  1000 = PWR, MTR;  1001 = VOX, BK, KYR;  1010 = CHG, VLT, DSP;  1011 = TCH, DCH
Submenu selection (displayed holding the "F" key) 75 5-0 Range from 0 to 38 (Hex) for menu items 1-57
FST (Fast Tuning) On/Off 57 7 0 = On, 1 = Off
PBT On/Off 57 4 0 = Off, 1 = On
Lock On/Off 57 6 0 = On, 1 = Off
Band Selection - VFO A 59 3-0 0000 = 160 M, 0001 = 75 M, 0010 = 40 M, 0011 = 30 M, 0100 = 20 M, 0101 = 17 M, 0110 = 15 M, 0111 = 12 M, 1000 = 10 M, 1001 = 6 M, 1010 = FM BCB, 1011 = Air, 1100 = 2 M, 1101  = UHF, 1110 = (Phantom)
Band Selection - VFO B 59 7-4 Same as above
Mem/VFO status 55 7 0 = Memory, 1 = VFO A or B
Memory/MTUNE 55 5 0 = Memory, 1 = MTUNE
HOME select 55 4 0 = (Not home)  1 = HOME memory selected
QMB Select 55 2 0 = (Not QMB)  1 = QMB
MTQMB Select 55 1 0 = (Not MTQMB)  1 = MTQMB
Voltmeter Calibration Factor 53 (all) This is an "internal" value used to calibrate the voltmeter display.
"Current" Memory Channel saved in EEPROM.  This is the memory channel that will be "remembered" when the radio is powered-up next time -  This is not necessarily the current memory. 44F (all) 0 = Memory 1, C7 (HEX) =  Memory 200, M-PL = C8, M-PU = C9
Radio "version" configuration 4-5 (all) These two bytes contain the configuration of jumpers J4001-J4009.  These bytes do not contain the bits relating to these jumpers directly, but some sort of calculated number indicating jumper configuration.  Known configurations are as follows: 
J4005-J4009 jumpered:  0xD8, 0xBF
EEPROM integrity "checksums" 0-3 (all) When a "hard reset" is done, these addresses contain something akin to a checksum.  If the contents of these addresses is disturbed, the CPU will do a complete initialization of the EEPROM, erasing all configuration, "soft calibration" values, and memories.  You have been warned!


VFO Memory Record Format (Preliminary):

VFO Memory records:

VFO records are stored in the following format:
 
Description
Offset
from
base
(HEX)
Bit(s)
Used
(7-0)
Remarks
Mode 0 2-0 000 = LSB, 001 = USB, 010 = CW, 011 = CWR, 100 = AM, 101 = FM, 110 = DIG, 111 = PKT (Note:  WFM is represented as "FM" when in the FM-BCB range.)
Unknown 0 7-3 Unknown - probably unused
Unknown 1 2-0 Unknown - probably unused
Nar On/Off (FM, FMN Mode) 1 3 0 = Off, 1 = On
Nar On/Off (CW, CWN, DIG mode) 1 4 0 = Off, 1 = On
Unknown 1 5 Unknown - probably unused
RPT Offset 1 7-6 00 = Simplex, 01 = Minus, 10 = Plus, 11 = Nonstandard Split (using separate TX freq)
Tone/DCS Select 2 1-0 00 = Off, 01 = Tone (tx), 10 = Tone + Tone Squelch, 11 = DCS - Probably incorrect - see offset 4, below
Unknown 2 3-2 Unknown
Att On/Off 2 4 0 = Att Off, 1 = Att On
IPO On/Off 2 5 0 = IPO Off, 1 = IPO On
Unknown 2 7-6 Unknown - probably unused
FM Step (Menu # 30) 3 2-0 000 = 5 kHz, 001 = 6.25 kHz, 010 = 10 kHz, 011 = 12.5 kHz, 100 = 15 kHz, 101 = 20 kHz, 110 = 25 kHz, 111 = 50 kHz
AM Step (Menu #6) 3 5-3 000 = 2.5 kHz, 001 = 5 kHz, 010 = 9 kHz, 011 = 10 kHz, 100 = 12.5 kHz, 101 = 25 kHz
SSB Step (Menu # 47) 3 7-6 00 = 1 kHz, 01 = 2.5 kHz, 10 = 5 kHz
Tone/DCS Select 4  1-0 00 = Off, 01 = Tone (tx), 10 = Tone + Tone Squelch, 11 = DCS
Unknown
4
7-2
Unknown
Unknown 5   Unknown
CTCSS Tone Freq (Menu #48) 6 5-0 Contains 0-31 with 0 = 67.0 Hz, representing 50 CTCSS tones.
Unknown 6 7-5 Unknown
DCS Code 7 6-0  Contains 0-67 (HEX) with 0 = DCS Code 023, 67 (HEX) = DCS code 754
Unknown 7 Unknown
RIT Offset 8-9 (all) The RIT offset is stored as a signed number in two bytes ranging from -999 to 999 representing -9.99 to +9.99 kHz offset.  The MSB (with the sign) is stored in the lower byte (8) and the LSB is in the upper byte (9.)
RX Frequency A-D (all) Frequency is stored in a binary format with the MSB in the lower byte (A) and the LSB in the upper byte (D) 
Example:  A value of 02 97 F2 19 (HEX) translates to 43512345 (decimal) and thus a display frequency of 435.12345 MHz.
Unknown E   Unknown - probably unused
Repeater offset (Menu #42) F-11 (all) A 24 bit number with each count representing a 10 Hz step (i.e. 10 Hz = 1, 10 kHz = 1000, etc.) representing up to a 99.99 MHz shift.
Unknown 12-19   Unknown - probably unused

Memory (not VFO) Record Format (Preliminary):

Memory records:

Memory records are stored in the following format:
 
Description
Offset
from
base
(HEX)
Bit(s)
Used
(7-0)
Remarks
Mode 0 2-0 000 = LSB, 001 = USB, 010 = CW, 011 = CWR, 100 = AM, 101 = FM, 110 = DIG, 111 = PKT  (Note:  WFM is represented as "FM" when in the FM-BCB range.)
Unknown 0 4-3 Unknown
HF/VHF (?) 0 5 0 = 6 Meters and above, 1 = Below 6 meters (Note:  Exact purpose of this bit is unknown)
Unknown 0 6 Purpose unknown, but occasionally used
TAG On/Off 0 7 0 = Memory frequency displayed, 1 = Memory Tag (Label) Displayed
Frequency Range 1 2-0 000 = HF, 001 = 6 M, 010 = FM BCB, 011 = Air, 100 = 2 Meters, 101 = UHF.  Note:  These bits must be appropriately set when loading the frequency.
NAR On/Off 
(FM, FMN Mode)
1 3 0 = Off, 1 = On
NAR On/Off 
(CW, CWN, DIG Mode)
1 4 0 = Off, 1 = On
UHF/Not UHF (?) 1 5 0 = < UHF, 1 = UHF (Note:  Exact purpose of this bit is unknown)
RPT Offset 1 7-6 0 = Simplex, 01 = Minus,  10 = Plus,11 = Nonstandard Split (using separate TX freq)
Tone/DCS Select 2 1-0 00 = Off, 01 = Tone (tx), 10 = Tone + Tone Squelch, 11 = DCS - Probably incorrect - see offset 4, below.
Unknown 2 3-2 Unknown
ATT On/Off 2 4 0 = ATT Off, 1 = ATT On
IPO On/Off 2 5 0 = IPO Off, 1 = IPO On
Unknown 2 6 Unknown
Memory Skip 2 7 0 = Memory Active, 1 = Memory Skip
FM Step 3 2-0 000 = 5 kHz, 001 = 6.25 kHz, 010 = 10 kHz, 011 = 12.5 kHz, 100 = 15 kHz, 101 = 20 kHz, 110 = 25 kHz, 111 = 50 kHz
AM Step 3 5-3 000 = 2.5 kHz, 001 = 5 kHz, 010 = 9 kHz, 011 = 10 kHz, 100 = 12.5 kHz, 101 = 25 kHz 
SSB Step 3 7-6 00 = 1 kHz, 01 = 2.5 kHz, 10 = 5 kHz
Tone/DCS Select 4  1-0 00 = Off, 01 = Tone (tx), 10 = Tone + Tone Squelch, 11 = DCS
Unknown
4
7-2
Unknown
Unknown 5   Purpose unknown, but occasionally used
CTCSS Tone Freq. 6 5-0 Contains 0-31 with 0 = 67.0 Hz, representing 50 CTCSS tones.
DCS Code 7 6-0  Contains 0-67 (HEX) with 0 = DCS Code 023, 67 (HEX) = DCS code 754
Unknown 7 Unknown
RIT Offset 8-9 (all) The RIT offset is stored as a signed number in two bytes ranging from -999 to 999 representing -9.99 to +9.99 kHz offset.  The MSB (with the sign) is stored in the lower byte (8) and the LSB is in the upper byte (9.)
RX Frequency A-D (all) Frequency is stored in a binary format with the MSB in the lower byte (A) and the LSB in the upper byte (D) 
Example:  A value of 02 97 F2 19 (HEX) translates to 43512345 (decimal) and thus a display frequency of 435.12345 MHz.
TX Frequency OR Repeater offset E-11 (all) When a nonstandard split is used, these bytes contain the transmit frequency in the same format as above. 
When a standard (or no) offset is used, these bytes contain the offset specified in menu item #42 in that same format in bytes F-11 (HEX). 
(Refer to RPT Offset - bits 7-6 in byte 1 of the memory record)
Label 12-19 (all) 8 ASCII Character label.  Unused memories contain 0xff.
Notes:
For an EEPROM Memory Map of the FT-817, go to the EEPROM Memory Map page.  This list shows known EEPROM addresses in ascending order.

To be included in the future:

Wish list: Miscellany:


Known Issues (as of 28 January, 2002):


Work continues on this page - please revisit soon!

Note:  CAT (in this context) is a trademark of Yaesu/Vertex Standard Co. Ltd.

Notice:  The information contained on this and related pages is believed to be accurate, but no guarantees are expressed or implied.  The information on this and related pages should be considered to be "as-is" and the user is completely responsible for the way this information is used.  If you find information that you believe to be incorrect, or if you discover something new, please report it via email.

Go to The KA7OEI FT-817 "Front Page" - This is, well, the "front" page of the '817 pages here...

Any comments or questions?  Send an email!

This page maintained by Clint Turner, KA7OEI and last modified 20181029.  (Copyright 2001-2018 by Clint Turner)

Since 12/2010: