FT897 eeprom dumper
by trixter on Aug.25, 2009, under Yaesu FT-897
I am starting to interface a bit more with my FT-897. To this end, I needed to know the contents of the EEPROM. I am able to get this via an undocumented CAT command and the CAT cable. I wrote a simple perl script ft897dump.pl that will dump the EEPROM contents of the radio.
This works for more than the FT-897, many Yaesu CAT capable radios will support this, such as the FT-817, FT-817ND, FT-847, FT-857, and the FT-857D. The CAT protocol is documented in the manual, however not all the commands that work are documented there.
The command 0xBB for example will read 2 bytes from the EEPROM. By iterating through all the possible memory locations, you can dump the EEPROM. An easy way of telling when you are at the end of the used memory is 0xBB will return 1 byte instead of two (and its usually the same byte).
Usage is fairly simple, if you do not specify any arguments it will display a help message.
Usage: ft897dump.pl [-b baud] [-d device]
example: ft897dump.pl -b 38400 -d /dev/ttyS0
The baud rate is set in the menu options, for the FT-897 it is menu entry 19.
I tried to make this work for at least Linux (posix systems should be fine) and Windows. If there are any OSX users reading this I would appreciate it if you would let me know if it works there. To be honest though, I never tested this in Windows, so I do not know that it works, but the OS detection method should.
The output
The output of the program is fairly basic. It is intended to be saved into a file, but it lets you inspect what is in your memory (alignment settings, memory locations, configuration data, and some active data in some models like what VFO you are using and similar).
00:00 a55a a55a 7006 a546 464b 4348 415a 3949 .Z.Zp..FFKCHAZ9I
00:10 682f 4a58 6104 048a 6060 8077 4c49 ad70 h/JXa…“.wLI.p
The first item is the memory address. The way you access it is with 2 bytes, MSB (most significant byte) and the LSB (least significant byte). So in that example 00:00 cooresponds to the first address, 00:10 to the 17th. The math may seem confusing, but it is a hex number not decimal. Additionally, since we start at 0 and not 1 “10″ coresponds to the 17th byte. Think of it as an offset that you add to the first byte. You add “0″ to the first byte to get the first one, you add 0×10 to the first byte to get the 17th byte.
The next two chunks of the line is hex values for what is in the given memory location. I chopped it up into 8 bytes in 2 sections, so that it is easier to count, easier to read, etc.
The last section is the printable characters or a ‘.’ if it is not printable. This allows you to more easily look for alpha tags, for example memory channels.
Now for the boring task of actually making a memory map. I know some locations already, only because people have shared them. I plan on writing a tool that will dump the memory, make a setting change via the CAT cable, then dump the memory again and see what changed. This will help me identify what is stored where a little more quickly. If anyone wants to contribute a memory map for the 897 (or 857) please feel free, I will gladly accept it, even if it is incomplete.
2 Comments for this entry
3 Trackbacks / Pingbacks for this entry
-
FT-897 memory map | 0xdecafbad.com
August 25th, 2009 on 8:37 pm[...] and do little that is actually productive, I decided to go through the memory dump I made with my Yaesu CAT EEPROM Dumping [...]
-
The dangers of EEPROMs | 0xdecafbad.com
August 27th, 2009 on 2:01 am[...] trixter on Aug.27, 2009, under Uncategorized I am writing some tools to dump the eeprom data from my Yaesu FT-897. I have heard many people argue that this is not safe to do. That I can brick [...]
-
FT-897 CPU & EEPROM information | 0xdecafbad.com
September 16th, 2010 on 1:15 am[...] dumping the eeprom it is known that certain settings such as the active VFO, frequency, mode, etc are stored on the [...]

January 11th, 2010 on 1:29 pm
i tried it on optiperl in xp5.1 Had a hard time to get it to work in a DOS promt. Looks like it´s working now. But where is the actual data going to ????. At least not in the command window where i execute the script. Bye the way, i dont know zilch about programming, maybe thats the problem. But at least i tried DOH. Have you ever tried to send the BE command to the ft-897 he he.
February 4th, 2010 on 2:55 am
I have coded in the 0xBE command as function factoryResetandEraseAlignment() in my perl module. I would not recommend doing that unless you have made a backup of the alignment data.
The output of this script should go to the screen, in a dos prompt, it should go to the dos (cmd) window that is opened. I have not really tested this in windows, if you have a specific problem let me know and I will see if I can resolve it. Specifically, are you opening a cmd window or just double clicking the script? If you double click it the output may be displayed then the window closes too quickly.