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.
This page has been accessed
Times since 4-4-2004