Programming the Alinco DJ-V5

Brought to you by Nathan Burnside and Sylvan Butler


PicMicro Projects
Zagi stuff
Hot Air Balloons
Alinco DJ-V5 Protocol

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 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. 

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)


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  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.


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

         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:
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

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).



Home ] Photography ] PicMicro Projects ] Zagi stuff ] Hot Air Balloons ] [ Alinco DJ-V5 Protocol ]