Tools to investigate the memory data in a Yaesu VR-5000

     The following programs are provided in the hopes that they will help to help
in the investigation of how the frequency/channel/bank, etc data is stored in the
Yaesu VR-5000 receiver.  The more people that investigate the data structure, the
more we can learn about it, and the more likely it will be to develop useful frequency
database applications.

    The VR-5000 has a serial port, intended to be used to copy the memory of one
receiver to a 2nd receiver.  This port can also be used to copy this data to your computer.

   I wrote a very short, simple program that will extract this data.  It is called

vr5krdbp.exe    it can be downloaded at   www.megalink.net/~wejones/vr5krdbp.exe
   These programs require a couple VBX, DLL files that most people will already have,
however, if a file not found error occurs, the VBX files can be found at:
www.megalink.net/~wejones/vr5kvbxs.zip. The programs also require vbrun300 which can
be downloaded at many places.
   This progam, and the other program below, are not fancy.  They are not bug free, and
should be used at your own risk, however there should be no risk of harm downloading
data, as the worst that would happen would be that the receiver would say error, and have
to be turned off.  Absolute worst case would be having to unplug the power for 10-15 minutes,
but this should never happen.  I have tested the programs on slow and fast Win98 machines, and
have run the program (but not downloaded data) on a WinXP machine.  The programs were
written with VB-3, so should run with any version of Windows.  No installation is requirred, and
the programs do not alter your registry or any directory in any way, except writing data files in
the directory in which the programs are run.

    A screenshot of the memory read program is shown below.


  You can see the 4 functions.  The COMM1 button allows you to select COMM2 if that is your
serial port. The 9600B button allows selection of 4800B if that is desired. The Test Version
button will just test your serial communication by extracting the version number of your
VR-5000.  This version probably only works on version 1u13 , however I can quickly add an option to allow operation with other versions, if you e-mail me the response you get from this test button.  The final button, ie the Start Master/Slave button starts the memory read operation.
Once pushed, it will prompt you to turn your receiver off and on, then it will prompt you
to hit the copy button on the receiver, which will start the memory read operation. At 9600B,
this will take a bit more than 2 minutes.  When finished, the receiver will say Completed, and need
to be turned off and on.  The program will indicate that it was sucessful as well, and it will have
written a data file called vr5kbin.txt to the same directory that the program was run from.
You should now close the program down.   I have written a second program, which will copy
a data file on the computer and write it back to the VR-5000, but this is not fully tested yet.

        To look at the memory data you have saved, I have adapted an old binary editor
program to display 133 bytes of data in one line.  The VR5K data is stored as 862 blocks of
133 bytes, so it is very helpful to be able to view the data with 1 block in each line.  This program
is called v5kview.exe, and can be downloaded at  www.megalink.net/~wejones/v5kview.exe   .
 
(Note new version 4/7/02:10:05EDT corrects minor bugs (byte reversal and error on minimization)
It has been written to automatically load up the data file written by the memory reader program,
so you will need to have a file named vr5kbin.txt present for it to read, and this file should be at
least 114646 bytes long.  Note, that there are so called "raw" data files posted in the files area of
the YaesuVR-5000@yahoogroups.com group, but the ones I looked at contained the initial
initiation bytes, and ACK bytes sent by the computer, and thus have more than just the real
raw data.  These files, being bigger, will load in v5kview, but the data will not align in neat 1 block
per row format, so it is better to use the data file written by vr5krdbp.exe.  A screenshot of
v5kview is shown below:

  The above screenshot shows the memory area where the Bank names are stored. It shows
the main function buttons as well, ie File, where you can load a new file or save the one
you are working on. Font changes font.  Edit will copy the whole screen to the clipboard.
Hex, will toggle between Ascii and Hex for changing the data.  NOTE... when you change data,
there is a checksum byte at the end of each block, which is automatically set by this program,
so it is not just the highlighted byte being altered.  All changes are made to a temporary file, and
do not affect the original until the save function is used.
     The leftmost range shown on the screenshot is the byte count into the file.  Then you see the
ascii version of the data, starting with W, which are the block headers followed by two bytes,
which contain the block numbers.  The next 128 bytes are the actual data, followed by a
final checksum byte, which is the last hex digit of the sum of the previous 132 bytes.
    Following the Ascii display of the data, is HEX display of the same data line.  See below:
 

   Above, you can see where the HEX display starts, after the end of the Ascii data. The
57 82 is the block header mentioned above, and the following bytes, such as 00 31 , are the
block numbers, #49 in this case (ie the 50th block since numbering started at 00).  The data
area shown here is the beginning of the channel data area.  The ascii view of this same area
is shown below:

     You can see that the data in this area is very organized.  In the second row, for example,
you see "Maple.op"  and "AF.FAA"  which are two channel names in my receiver.  The channel
data seems to be organized in 32 byte segments, with 4 channels per block.  So far, I've only
identified 4 areas of these 32 byte areas. The first 4 bytes after the Block # , ie bytes
4-7 is the Main frequency data, written in the same format described in the manual.  The next 4
bytes, ie 8-11 is the Sub  frequency data.  Bytes 12-19 contain the channel Name.  Finally, I
noticed that byte 20 seems to be the mode data for the Main vfo, but I am not sure
about the format yet, or whether other data is sharing the byte with it.  In a channel with 2
AM frequencies stored, this byte is 55 , and if I change this main freq to FMN, the byte
changes to 76.    It will require quite a bit of investigation to determine just what the remaining
15 bytes do, and this is why I'm released these 2 programs.  Ie hopefully people can use these
tools, and investigate the memory data, and slowly figure out just what everything does.
Please post data areas you figure out, and/or email the info to me at wejones@megalink.net
to put the info on this web page.   When I start to accumulate more info, I'll post a file
HERE , containing information gathered to date.  So far, however, aside from the current
channel in use data being stored in block 00 00, and Bank names at 00 25, channel data at
00 32, the only thing obvious is some city time/zone info stored at 03 0E, and some default
SW broadcast station data stored around 03 2A.  Please report whatever additional info you
discover.  Also, email me if you have any problem running the programs.  If you have communications problem with the first program, you might try running at 4800B rather than the default 9600B.  I've used it without problems on a 100MHz and 400MHz computer, and without testing on a 1.2 GHz computer, but timing problems are possible on other speed computers.


Good luck.
Back to my Windows Programs" page:
Back to my main BJ's home page:
 
 
 
 
 
 

  This page has been accessed  Times since 4-4-2004