Urgent request!
If any of you out there own a non cell blocked version of the DJ-V5, or
one with any other special functions, please contact us at fregon45@netzero.net
We need your help to possibly find a way to un-cripple other DJ-V5's
Getting Started
The first thing you will need, to program your radio is a copy of the
programming software. A free 15 day trial version is available at RT
Systems. The software is simple to use and very straightforward. Next,
you will need a cable. The one here is a modified version of a cable that
has been used with other radios. I have tested it on two different
computers, and it seems to work fine. It connects from the radio mic jack
to a serial port. The pin assignments are given for a standard DB-9 serial
port connector. As a generic declaimer, use this design at your own risk.
I works for me, but I will not be responsible if it kills your
radio.
![](images/projects/schematic.gif)
Software for HP 48 Calculator
I have written a few routines for my HP 48 G calculator that can be
used to backup the memory on your radio. To use them, download this file
to your calculator, (be sure to set the translation to 0 in the IO
parameters on the HP)
alincohp48
RDALL - Reads the contents of the calculator memory and leaves it on
the stack
WRALL - Takes memory data from first line on stack and writes it to the
radio
RDCH - Reads all memory from channel on level 2 of stack to channel on
level 1. Leaves data on level 1
WRCH - Takes channels from level 2 on stack and stores them
sequentially in radio memory starting with channel indicated on level 1 of
stack.
DUMP - Retrieves the entire memory of the calculator and stores it into
the variable 'ALMEM'. Please e-mail a copy of this file to fregon45@netzero.net
It will help identify special registers in the radios memory that could be
modified to unlock special features that my be hidden in the calculators
memory. If you own a non-cell blocked version of the DJ-V5, please contact
me! I would really like to take a look at the memory of your radio. If
there is any way of unblocking these frequencies through software, we will
need your radios memory to find it.
Protocol
I've been working on understanding how to interface with the radio.
Commands are sent and received at 9600 N82 (N81 also works) and are of the
following format (commas inserted for illustration):
AL~F,0340,W,0,4678700,50,000,00,1F,1F,123456789012<CR><LF>
Sample data
1 2 3 4 5
6 7 8 9 10 11
1- Header for the DJ-V5
2- memory address:
000h-1F0h configuration stuff (haven't looked at it much yet)
200h-F30h all of the channels (0 - C2)
3- Read write mode
W means write, R means read. (to request for the radio to send a memory
address, end the command here) E.g. AF~F0340R<CR><LF> will tell the radio to send the contents
of address 340h
4- Repeater split direction and mode
bit 1 set: minus
bit 2 set: plus
bits 2 and 3 clear FM
bit 4 set: WFM
bit 3 set: AM
hex
binary
4
0100 Plus frequency split, FM
8
1000
Minus frequency
5
0101
plus frequency, WFM
5- Frequency
6- Repeater frequency offset
06 - 600 kHz
10 - 1.000 mHz
16 - 1.600 mHz
30 - 3.000 mHz
50 - 5.000 mHz
76 - 7.600 mHz
7- Don't know. Seems to always be 000
8- Frequency steps, and power setting
Together, these two hex digits are 8 binary digits. Bits 3-5
(counting from the left as written) are the frequency steps:
00000000 bit positions
12345678
000
5kHz
001
10kHz
010
12.5kHz
011
15 kHz
100
20 kHz
101
25 kHz
110
50 kHz
111
100 kHz
bits 7-8 are power output:
00 high
01 low1
10 low2
9- CTCSS encode freq., skip scan, and DSQ encode
bit 1 - skip scan
bit 2 - DSQ encode
bits 3-8 CTCSS encode freq. (I haven't done a complete table of this one
yet)
011111
67
100000
69.3
100001
71.9
100010
74.4
........
001000
114.8
........
011110
250.3
10- CTCSS decode freq., CTCSS on/off
bit 1 set - encode, decode
bit 2 set - encode
bits 3-8 CTCSS decode freq as described in 9.
11- Channel name
6 pairs of hex digits, one for each letter:
00h - 09h - numbers 1 - 10
0Ah - 24h - A - Z
25h - 2Fh - Special Characters in the same order as when you scroll
through them on the radio
Sending and Reading Data
Each command must be terminated with a <CR> (ascii 13) AND
<LF> (ascii 10). I'm not sure how to do this explicitly using
hyperterm. I do it with my calculator.
To terminate your session, send:
<CR><LF>
END<CR><LF>
The radio will display "PASS" to indicate that it has
successfully stored the changes.
Currently I can change individual channels, however I can't create new
channels or erase old ones. There seems to be a place in memory that
contains the list of channels that have been defined, and I haven't taken
the time to figure out how it works. (this is all starting to get a little
complex) Basically, if I try to write to a previously undefined channel,
the radio won't recognize it, and if I try to erase an existing channel,
it just displays 0.000 frequency, but doesn't remove it from the channel
menu. There is a way to indicate what channels are defined, but I haven't
taken the time to find it. Also, programming the cell frequencies doesn't
work (I tried!).
I hope this stirs some interest, and gets the ball rolling for someone
else to possibly extend this work. If you have any comments or questions,
or information that you would like for me to add here, send me an email at
fregon45@netzero.net
More Info:
Address 0060 seems to be the VFO. And address 0, the 12th byte seems to
be the channel number (e.g. 00, 01, 02, etc).