REKLAMA

vx-5r.zip

Programowanie Yaesu VX-5R: Komunikacja i konfiguracja z komputerem

Witam. Miałem już programator z załączonego schematu. Działał mi prawidłowo z FTL-2011 oraz z FTH-2010. Po podłączeniu jacka 3,55m czterostykowego komuniakcja działała tylko w stronę radio->komputer. Ruszyło dopiero po dołożeniu rezystora podciągającego wyjście programatora do plusa (na diodach). http://obrazki.elektroda.net/17_1235857079.gif Wtyczka: http://obrazki.elektroda.net/77_1235857143.jpg 1 - głośnik 2 - programowator 3 - mikrofon/ptt 4 - GND Oczywiście do programowania potrzebne są tylko wyprowadzenia 2 i 4. Sprawdziłem, da się równiez programować zwykłym jackiem 3,5mm mono wsuniętym nie do końca. Pytań nie mam, chętnie poczytam komentarze. No i jak by ktoś szukał, w załączeniu cała paczka softu jaką udało mi się wygooglować do tego radia. EVE, VX5-Commander, YARD-YAWR, UNIV. Dla programu EVE należy w ustawieniach lokalnych w panelu sterowania zmienić znak przecinka na kropkę, inaczej program EVE nie będzie działać poprawnie. I na koniec link do strony z opisem modyfikacji i rozblokowania VX-5R. http://www.kb2ljj.com/data/yaesu/vx-5r.htm


Pobierz plik - link do postu
  • vx-5r.zip
    • eve.exe


vx-5r.zip > YAGENOMA.TXT

The YAESU GENOMA project - an open invitation for people with Yaesu radios, ADMS-type cable, some curiosity and lots of free time.

Using YARD.EXE and YAWR.EXE (can be found at http://www.geol.com/vx5 or http://www.icongrp.com/~sllewd), it is easy to read the raw cloning data from YAESU radios, then examine, modify, upload. The data format is not publicly documented, so a lot of effort needs to be spent mapping it. The intent of this YAESU GENOMA project is to distribute the effort among many collaborators and publicly publish the findings so in the future other people with free time (or even some of the 'genomers') can write specialized software to FULLY control the radios.

Some mapping is easily discovered by downloading the data from the radio, modifying ONE radio setting, downloading the data again and comparing both files (like memory names, repeater shifts, power off setting, most settings done on the radio). Other type of data needs a download, then modification of the file, upload to the radio and careful examination of changed behavior (like country setting, jumper setting). EXTREME CARE should be exercised, as it has been reported that it is possible to disable a radio permanently by setting invalid data to some locations. DO NOT PARTICIPATE IF YOU ARE NOT WILLING TO TAKE SUCH RISKS.

Included are partial mapping of the ft-50 and vx-1 previously published by Riku Kalinen, OH2LWO / K2LWO, & lt; oh2lwo@sral.fi & gt; . They should be useful even if you are willing to participate.

Those interested in collaborating, please reply with radio model to camaraya@quantacorp.com.


vx-5r.zip > YARD.C

#include & lt; windows.h & gt;

unsigned long i,j,rxi,rxi2,txi,txi2,txctr;
unsigned long txbys,rxbys,rxbyst,rxackc;
DCB dcb;
HANDLE hCom;
DWORD dwError;
BOOL fSuccess;
BYTE txbuf[20];
BYTE rxbuf[32000];
BYTE footer[4000];
unsigned int footi,footi2;
BYTE rxack=6,lixo,lixoc;
unsigned int cksum,cksum2;
COMMTIMEOUTS cto;

HFILE hFile;
OFSTRUCT OFS;
#define DIRPATHSIZE 150
char FName[DIRPATHSIZE];
DWORD ferror;
char *foots= " & lt; & lt; & lt; RAW CLONE DATA BEFORE THIS - FOLLOWS SETS OF BLOCK START POSITION (L,H), BLOCK LENGHT (L,H) AND CURRENT CHECKSUM (L,H) & gt; & gt; & gt; " ;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
{
hCom = CreateFile( " COM2 " ,GENERIC_READ | GENERIC_WRITE, 0,
NULL, OPEN_EXISTING, 0, NULL);
if (hCom==INVALID_HANDLE_VALUE)
{MessageBox(NULL, " Can't open COM port " , " Error " ,MB_ICONERROR); return(0);}

GetCommState(hCom, & dcb);
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = TWOSTOPBITS;
SetCommState(hCom, & dcb);

GetCommTimeouts(hCom, & cto);
cto.ReadIntervalTimeout=100;
cto.ReadTotalTimeoutMultiplier=0;
cto.ReadTotalTimeoutConstant=5000;
cto.WriteTotalTimeoutMultiplier=0;
cto.WriteTotalTimeoutConstant=0;
SetCommTimeouts(hCom, & cto);

rxi=0;
footi=0;
cksum=0;

do
{
cksum2=0;
rxi2=rxi;
rxbyst=0;

do
{ReadFile(hCom, & rxbuf[rxi2],16, & rxbys,NULL);
rxi2+=rxbys;
rxbyst+=rxbys;
if (rxi==0)
{cto.ReadTotalTimeoutConstant=150;
SetCommTimeouts(hCom, & cto);}
}
while (rxbys & gt; 0);

if (rxbyst & gt; 0)
{
WriteFile(hCom, & rxack,1, & txbys,NULL);
ReadFile(hCom, & lixo,1, & rxackc,NULL);
for (i=rxi;i & lt; rxi2;cksum2+=rxbuf[i++]);
cksum+=cksum2;
footer[footi++]=rxi;
footer[footi++]=rxi/256;
footer[footi++]=rxbyst;
footer[footi++]=rxbyst/256;
footer[footi++]=cksum;
footer[footi++]=cksum/256;
rxi=rxi2;
}
}
while ((rxbyst & gt; 0) & (rxi & lt; 30000));

if (rxi & gt; 0)
{
lstrcpy( & rxbuf[rxi],foots);
rxi+=lstrlen(foots);

for (footi2=0;footi2 & lt; footi;footi2++)
{rxbuf[rxi++]=footer[footi2];}


GetCurrentDirectory (DIRPATHSIZE, FName);
lstrcat (FName, " \\RADIO.BIN " );
hFile = OpenFile(FName, & OFS, OF_CREATE);
if (hFile)
{ _lwrite(hFile,rxbuf,rxi);
_lclose(hFile);
}
}
else
{MessageBox(NULL, " Timeout waiting for radio TX " , " Error " , MB_ICONERROR); return(0);};

CloseHandle(hCom);
MessageBox(NULL, " Done " , " Success " , MB_ICONINFORMATION);
MessageBeep(MB_ICONEXCLAMATION);
return 0;
}


vx-5r.zip > FT50DATA.TXT

Yaesu FT-50 data description

RCS $Header: /home/mole/riku/CVS/yaesu/ft50-data.txt,v 1.2 1998/05/08 11:51:40 riku Exp $


Author: Riku Kalinen, OH2LWO / K2LWO, & lt; oh2lwo@sral.fi & gt;

Please read file LICENCE.

Use this information with your own risk !


1. PROTOCOL


While down- or uploading, radio always echoes back every byte which is sent to
it.


Download (radio - & gt; computer)

Computer Radio

Start program `ft50get'.
Press PTT while in CLON mode.
`SEND' appears to display.
Sends block 1: total of 10 bytes
Sends ACK (0x06)
Echoes ACK.
Sends block 2.
total of 1+16=17 bytes
Sends ACK
Echoes ACK.
Sends block 3.
total of 1+112=113 bytes
Sends ACK
Echoes ACK.
Sends block 4.
total of 1+16=17 bytes
Sends ACK
Echoes ACK.
Sends block 5.
total of 1+16=17 bytes
Sends ACK
Echoes ACK.
Sends block 6.
total of 1+1776=1777 bytes
Sends ACK
Echoes ACK.
Sends block 7.
total of 1+1776=1777 bytes
Sends ACK
Echoes ACK.
Sends block 8.
total of 1+1=2 bytes
`CLON' appears to display.


Upload (computer - & gt; radio)

All of the data is transmitted. For brevity, only transmission of 1st and
last characer of each block is shown in diagram.

Computer Radio

Press MONI while in CLON mode.
`WAIT' appears to display.

Start program `ft50send'.

Sends 1. character of block 1.
`RCV' appears to display.
Echoes 1. character of block 1.
Sends 2. character of block 1.
Echoes 2. character of block 1.
.
.
Sends last character of block 1.
Echoes last character of block 1.
Sends ACK.
Sends 1. character of block 2.
Echoes 1. character of block 2.
.
.
Sends last character of block 2.
Echoes last character of block 1.
Sends ACK.
Sends 1. character of block 3.
Echoes 1. character of block 3.
.
.
Sends last character of block 3.
Echoes last character of block 3.
Sends ACK.
Sends 1. character of block 4.
Echoes 1. character of block 4.
.
.
Sends last character of block 4.
Echoes last character of block 4.
Sends ACK.
Sends 1. character of block 5.
Echoes 1. character of block 5.
.
.
Sends last character of block 5.
Echoes last character of block 5.
Sends ACK.
Sends 1. character of block 6.
Echoes 1. character of block 6.
.
.
Sends last character of block 6.
Echoes last character of block 6.
Sends ACK.
Sends 1. character of block 7.
Echoes 1. character of block 7.
.
.
Sends last character of block 7.
Echoes last character of block 7.
Sends ACK.
Sends only character of block 8.
Echoes only character of block 8.
Goes back to normal display.



3. DESCRIPTION OF DATA


Yaesu FT-50 data as downloaded with program `ft50get'.

Block 1: ??
10 bytes

Block 2: ??
16 bytes

Block 3: Channel flags
112 bytes
One byte per channel slot:
bit meaning
0 Used? (1=yes, 0=no)
1 Masked? (1=no, 0=yes)
2 Skip? (1=yes, 0=no)

Block 4: VHF home
16 bytes
(see block 6)

Block 5: UHF home
16 bytes
(see block 6)

Block 6: Channel data
1776 bytes
111 channel slots, 16 bytes each
Channel order: 1,...,99,L1,U1,L2,U2,L3,U3,L4,U4,L5,U5,??

If channel is flagged unused, channel data may be ff...ff (all bits 1)

Byte bit Meaning
0 7 Channel name in use? (1=yes, 0=no)
6-3 ?? (Seems to be always off)
2-1 ?? (Sometimes both on)
0 ?? (Seems to be always off)
1 7-4 Power (0x0=L1, 0x2=L2, 0x4=L3, 0x8=H)
3-0 Channel step (0x6=50, 0x5=25, 0x4=20, 0x3=15, 0x2=12.5,
0x1=10, 0=5)
2 7-5 DTMF code memory (0=C, 0x1=P, 0x2=1, 0x3=2, 0x4=3, 0x5=4,
0x6=5, 0x7=6)
bit 4 unused ??
3-2 DTMF paging (0=no, 1=page, 2=t.page, 3=code)
1-0 Repeater shift (0=sim, 1=-shift, 2=+shift, 3=+-)
3 7-6 CTCSS/DCS (0=no, 1=E, 2=ED, 3=DCS)
5-0 CTCSS tone (0=67.0,...,38=250.3)
Tones starting from 0:
67.0, 69.3, 71.9, 74.4, 77.0, 79.7, 82.5, 85.4,
88.5, 91.5, 94.8, 97.4, 100.0, 103.5, 107.2, 110.9,
114.8, 118.8, 123.0, 127.3, 131.8, 136.5, 141.3, 146.2,
151.4, 156.7, 162.2, 167.9, 173.8, 179.9, 186.2, 192.8,
203.5, 210.7, 218.1, 225.7, 233.6, 241.8, 250.3
4 7-0 DCS tone (0=023,...,103=754)
Tones starting from 0:
23, 25, 26, 31, 32, 36, 43, 47,
51, 53, 54, 65, 71, 72, 73, 74,
114, 115, 116, 122, 125, 131, 132, 134,
143, 145, 152, 155, 156, 162, 165, 172,
174, 205, 212, 223, 225, 226, 243, 244,
245, 246, 251, 252, 255, 261, 263, 265,
266, 271, 274, 306, 311, 315, 325, 331,
332, 343, 346, 351, 356, 364, 365, 371,
411, 412, 413, 423, 431, 432, 445, 446,
452, 454, 455, 462, 464, 465, 466, 503,
506, 516, 523, 526, 532, 546, 565, 606,
612, 624, 627, 631, 632, 654, 662, 664,
703, 712, 723, 731, 732, 734, 743, 754
bit 7 unused ??
5 7-0 Mode (0=NFM, 0x1=AM, 0x2=WFM)
bits 7-2 unused ??
6-8 7-0 RX freq (BCD, 6 digits)
9-11 7-0 TX offset (-shift, +shift) OR TX freq (+-)
12-15 7-0 Channel name, if 0/7==1
if no name, contains 4 x 0x24

Block 7: Various parameters, VFOs, DTMF, autodial, unknown data
1776 bytes

2-113: Channel flags duplicated

116-275: 10 VFOs (A145, A220, A380, A430, A800, B145, ... , B800)
10 slots 16 bytes each, same format as in channel data (see b6).

309-324: ID string (callsign) for CW id
Stored in same format than channel texts, unused spaces filled with 0xff.

330-525: 9 autodial memories (1-8: 20 bytes, 9: 36 bytes)
Every autodial memory starts with 4 bytes:
0x0d 0x16 0x24 0x0 & lt; number & gt;
Unexistent digits are flagged with 0xff.
DTMF characters: 0-D = 0x0 & lt; char & gt; , * = 0x0e, # = 0x0f

526-542: 8 DTMF memories: C, P, 1, 2, 3, 4, 5, 6
8 slots, 2 bytes each + 1 flag byte.
Bit from flag byte indicates if decoder is enabled on this memory (_).
Flag bits: bit7 = C, bit6 = P, ... , bit0 = 6
DTMF data is stored on BCD format.

If not otherwise mentioned, alternatives in following data are started with
item 0 and increment by 1.

Byte Meaning

Band edges are probably updated by radio itself each time a band is changed.

276-278 Lower edge of current band
280-282 Upper edge of current band

301 Sub display: off, on, dc

303 Automatic power off: off, 0.5h, 1h, 3h, 5h, 8h
304 Time-out timer: off, 1m, 2.5m, 5m, 10m
305 Lock: kl, dl, kl+dl, pl, kl+pl, dl+pl, kl+dl+pl
306 Receiver saver: off, 0.2, 0.3, 0.5, 1.0, 2.0
307 Lamp illumination: 5sec, key, tgl
308 Bell: off, 1, 3, 5, 8, rpt

326 ARTS mode: off, rx, tx, trx
327 ARTS beep: off, rang, all

543 Paging speed: 50ms, 100ms
544 Paging delay: 250ms, 450ms, 750ms, 1000ms
545 Paging bell: off, 1, 3, 5, 8, rpt
546 Paging answerback: off, ans, for

'Current' values are what is shown on display. VFO data (above) is updated
when VFO is changed or memory mode is entered, etc.

1660 Current VFO A (0..4, 0=145, 1=220, 2=380, 3=430, 4=800)
1661 Current VFO B (0..4, 0=145, 1=220, 2=380, 3=430, 4=800)

Bytes 1663-1671 are stored like channel data, except that individual data
items are stored in individual bytes (e.g. several data items are not packed
in same byte).

1663 Current power
1664 Current channel step
1665 Current code memory
1666 Current paging mode
1667 Current repeater shift
1668 Current selective calling mode
1669 Current CTCSS tone
1670 Current DCS tone
1671 Current mode
1672-1674 Current frequency
1676-1678 Current offset

1686 Squelch: 0,1,...,15
1687 W-FM squelch: 0,1,...,15

Bit values are 0=off, 1=on unless otherwise mentioned

Byte bit Meaning

1688 7 RPTL, repeater input tracking
6 AMOD, auto mode
5 SCNL, scan lamp
4 RESM, scan resume mode 0=5sec, 1=carr
3 ARS, automatic repeater shift
2 BEEP, keypad beep
1 LCK, lock
0 Unknown??
1689 7 LGT,
6 PAGE/AMSG,
5 Unknown??
4 BCLO, Busy channel lock out
3-2 Unknown??
1 CWID,
0 TSAV, TX save
1690 7-4 Unknown??
3 ARTS/SPED: 0=15s, 1=25s
2 Unknown??
1 RVHM: 0=home, 1=rev
0 MON: 0=mon, 1=tcal

Meaning of unmentioned data is unknown. Some of it seems to be changing even
if no config changes to radio are made.

Block 8: Checksum over all previous data
1 byte


vx-5r.zip > VX1RDATA.TXT

Yaesu VX-1 data description

RCS $Header: /home/mole/riku/CVS/yaesu/vx1-data.txt,v 1.2 1998/05/08 11:51:42 riku Exp $


Author: Riku Kalinen, OH2LWO / K2LWO, & lt; oh2lwo@sral.fi & gt;

Please read file LICENCE.

Use this information with your own risk !


1. PROTOCOL


While uploading, radio always echoes back every byte which is sent to it.


Download (radio - & gt; computer)

Computer Radio

Start program `vx1get'.
Press DWN while in CLONE mode.
`C-OUT' appears to display.
Sends block 1: total of 4818 bytes
`CLONE' appears to display.


Upload (computer - & gt; radio)

All of the data is transmitted. For brevity, only transmission of 1st and
last characer of block is shown in diagram.

Computer Radio

Press UP while in CLONE mode.
`C-IN' appears to display.

Start program `vx1send'.

Sends 1. character of block 1.
Echoes 1. character of block 1.
Sends 2. character of block 1.
Echoes 2. character of block 1.
.
.
Sends last character of block 1.
Echoes last character of block 1.
Sends 0x21.
Goes back to normal display.



2. DESCRIPTION OF DATA

Yaesu VX-1 data as downloaded with program `vx1get'.

Block 1:
4818 bytes

Frequencies are stored BCD coded in 3 bytes, but bytes are reversed.
Eg. frequency 123450 KHz would encode as 0x50 0x34 0x12

Names are 6 bytes. They are stored with the following character generator.
Empty name is signalled by filling these bytes with 0x3f.

Bands are ordered as follows (BCBAND is not part of these):
FM, AIR, V-HAM, VHF-TV, ACT1, U-HAM, UHF-TV, ACT 2

Channel steps:
5 kHz - 0, 10 - 1, 12.5 - 2, 15 - 3, 20 - 4, 25 - 5, 50 - 6, 100 - 7

Mode: fm-n - 0, fm-w - 1, am - 2

Repeater shift: SI - 0, -R - 1, +R - 2, +- - 3

Selcal modes: none - 0x0, E - 0x1, E+D - 0x2, DCS - 0x3

Power out: low - 0, high - 1

Name flag: freq - 0, alpha - 1

Skip: no - 0, skip - 1

Clock shift: off - 0, on - 1

8-byte memory slot (BC band):

Offset Meaning
0 Frequency (500 kHz - 0x00, ... , 1.7 MHz - 0xfe)
1 Unknown (always 0x40 ???)
2-7 Name

12-byte memory slot (CG2 memories):

Offset Meaning
0-2 RX Freq
3 Unknown
4 Flags
Bit Meaning
7 Skip
6 Name flag
5-4 Mode
3-2 Repeater shift
1-0 Selcal mode
5 Flags
Bit Meaning
7-5 Unknown
4 Power out
3 Clock shift
2-0 Channel step
6-11 Name

16-byte memory slot (others):

Offset Meaning
0-2 RX freq
3-5 Offset/TX freq
6 Flags
Bit Meaning
7 Skip
6 Name flag
5-4 Mode
3-2 Repeater shift
1-0 Selcal mode
7 Flags
Bit Meaning
7-5 Unknown
4 Power out
3 Clock shift
2-0 Channel step
8 Flags
Bit Meaning
7-6 Unknown
5-0 CTCSS tone (67.0 - 0x00, ... , 250.3 - 0x26)
9 DCS tone (023 - 0x00, ... , 754 - 0x67)
10-15 Name

Offset Meaning

0x0000 - 0x0001 Unknown data (2 bytes)

0x0002 Flags

Bit Meaning

7-4 Unknown
3-0 Band (BCBAND - 0x00 , ... , ACT-2 - 0x08)

0x0003 - 0x0006 Unknown data (4 bytes)

0x0007 Flags
Bit Meaning
7 Unknown
6 Busy/tx led: 0 - off, 1 - on
5 Busy ch lock out: 0 - off, 1 - on
4 Keypad beeper: 0 - off, 1 - on
3 Scan lamp: 0 - off, 1 - on
2 Scan resume: 0 - 5sec, 1 - carr
1 Auto mode: manual - 0, auto - 1
0 ARS: off - 0, on - 1

0x0008 Flags
Bit Meaning
7-6 Lamp: key - 0, 5sec - 1, tgl - 2
5-3 APO: off - 0, 0.5h, 1h, 3h, 5h, 8h - 5
2-0 Receive battery saver: 0 - off, 0.2, 0.3, 0.5, 1, 2sec - 5

0x0009 Flags
Bit Meaning
7 Lk (lock): off - 0, on - 1
6-4 Lock: key - 0, dial, k+d, ptt, k+p, d+p, all - 6
3 Unknown
2-0 Bell: off - 0, 1 - 1, 3 - 2, 5 - 3, 8 - 4, rpeat - 5

0x000a Flags
Bit Meaning
7-6 ARTS Beep: 0 - off, 1 - rang, 2 - all
5 SMT MD: single - 0, conti - 1
4-2 TOT: off - 0, 1min - 1, 2min - 2, 5min - 3, 10min - 4
1 Dial's function: dial - 0, volsql - 1
0 Monitor/t-call: moni - 0, tcall - 1

0x000b Flags
Bit Meaning
7-3 Unknown
2 Channel Group: CG2 - 0, CG1 - 1
1 CWID: off - 0, on - 1
0 Unknown

0x000c - 0x000d Unknown data (2 bytes)

0x000e Flags
Bit Meaning
7-4 Unknown
3-0 DTMF memory: dtmf-0 - 0, ... , dtmf-f - 7, manu - 8

0x000f VOL (mute - 0x00, 1 - 0x01, ... , 31 - 0x1f)
0x0010 SQL (aut - 0x00, opn - 0x01, 1 - 0x02, ... , 10 - 0x0b)

0x0011 - 0x0020 Current settings (16 bytes)

One slot

0x0021 - 0x009f Unknown data (127 bytes)

0x00a0 Second checksum (1 byte)

Cheksum is made by adding all previous bytes to unsigned char with
overflow and adding the result to 0x10 .

0x00a1 - 0x00f0 Unknown data (80 bytes)

0x00f1 - 0x02e0 Smart Search memories (496 bytes = 31 slots of 16 bytes each)

Slot for each memory (31)

-15, -14, ... , 14, 15

0x02e1 - 0x02f0 Unknown data

0x02f1 - 0x02f9 Call sign, CWID (9 bytes)

Terminated with 0x3d, excess characters filled with 0x00 .

0x02fa - 0x0301 Unknown data

0x0302 Band duplicated from 0x0002 ???

0x0303 - 0x0306 Unknown data (4 bytes)

0x0307 - 0x0308 Flags duplicated from 0x0007 - 0x0008 ??? (2 bytes)

0x0308 - 0x030a Unknown data (3 bytes)

0x030a - 0x030b Flags duplicated from 0x000a - 0x000b ??? (2 bytes)

0x030c - 0x030d Unknown data (2 bytes)

0x030e Flags duplicated from 0x000e ???
0x030f VOL duplicated from 0x000f ???
0x0310 SQL duplicated from 0x0010 ???

0x0311 - 0x0318 BC band VFO (8 bytes)

0x0319 - 0x0320 Unknown data (8 bytes)

0x0321 - 0x03a0 VFOs (128 bytes = 8 slots of 16 bytes each)

Slot for each band (8)

0x03a1 Priority channel (channel number + 7)

0x03a2 - 0x03d0 Unknown data (47 bytes)

0x03d1 - 0x0bc8 Channel data, CG2 (2040 bytes = 170 slots of 12 bytes each)

Homes for all bands (8)

Memories 1-142 (142)

1L, 1U, 2L, 2U, ... , 10L, 10U (20)

0x0bc9 - 0x0bd0 Unknown data (8 bytes)

0x0bd1 - 0x10d0 Channel data, CG1 (1280 bytes = 80 slots of 16 bytes each)

Homes for all bands (8)

Memories 1-52 (52)

1L, 1U, 2L, 2U, ... , 10L, 10U (20)

0x10d1 - 0x11d0 Channel/band flags (256 bytes = 8 slots of 32 bytes each)

One slot for all bands (8)

Slot contents:

Offset Meaning
0 Band byte, CG2 (FM - 0x00, AIR - 0x01, V-HAM - 0x02,
VHF-TV - 0x04, ... , ACT-2 - 0x80), e.g. band bit
1 Channel bit flags, CG2 1-8 CG2 (1 - bit0, 2 - bit1, ...)
2 Channel bit flags, CG2 9-16
3-21 Channel bit flags, CG2
22 Band byte, CG1
23-31 Channel bit flags, CG1

0x11d1 - 0x11f0 Unknown data (32 bytes)

0x11f1 - 0x1240 BC band data (80 bytes = 10 slots of 8 bytes each)

One slot for each BC memory (H, 1, ... , 9)

0x1241 - 0x1250 Unknown data (16 bytes)

0x1251 - 0x12d0 DTMF autodialer (128 bytes = 8 slots of 16 bytes each)

DTMF 1 - DTMF 8 (8)

Every autodialer is terminated with 0x3d, and padded with 0x00:s if
necessary. Empty autodialer then is 0x3d and 15 0x00:s.

Mapping goes as follows:

0 - 0x00, 1 - 0x01, ... , D - 0x0d, *(E) - 0x0e, #(F) - 0x0f, - - 0x28


0x12d1 Checksum (1 byte)

Cheksum is made by adding all other bytes to unsigned char with
overflow and subtracting the result from 0xf0 .


vx-5r.zip > README~1.TXT

YARD.EXE and YAWR.EXE will read and write from a YAESU radio.
Both were tested with vx-5r, ft-50 and vx-1r. Other radios may work. Please
let me know which other models it works with. I may be able to modify them a
bit to acommodate for more radios.

These programs are a basic tool to implement software mods and dissect the
clone data of these radios. Connect the radio to COM2 (if com1 is only
available, use yard1.exe and yawr1.exe), enter clone mode, start yard.exe
and start SEND on the radio. After a while, a window shoulkd display 'done'
and a RADIO.BIN file created. This file has the raw data from the radio,
followed by a short message " & lt; & lt; & lt; RAW CLONE DATA BEFORE THIS - FOLLOWS SETS
OF BLOCK START POSITION (L,H), BLOCK LENGHT (L,H) AND CURRENT CHECKSUM
(L,H) & gt; & gt; & gt; " which is followed by info on the blocks received from the radio.
The data prior to that message is strictly data generated by the radio, and
is made of internal settings, memory locations, all sorts of data exchanged
by radios in clone mode. In most radios, the first block of 10 bytes has a
model information plus jumper setting and country/band setting, which must
match the other radio for cloning to occur.

Data in RADIO.BIN can be edited and then uploaded to the radio by setting
it to CLONE WAIT mode and running YAWR.EXE. Some changes require to turn
the radio off and back on, others are only valid until the radio is turned
off (little usefulness), most are erased by ALL RESET. Some locations, on
some radios, have been reported as FATAL, meaning it is very hard to make
the radio even turn back on after an incorrect setting is applied, SO BE
VERY CAREFUL WITH WHAT YOU DO, PERFORM ANY EXPERIMENTS AT YOUR OWN RISK,
AND ONLY IF YOU CAN AFFORD TO PAY FOR RESTORING THE RADIO AT THE FACTORY.

Sometimes a radio may seem dead but it is simply the display settings that
were screwed up, it can still be turned off by removing the battery, then
turned back on with ALL RESET sequence. Sometimes that even won't work, but
turning it back on in CLONE mode and uploading a valid radio.bin file to it
might revive it, evn though it gives no life signals until reset.

Jose R. Camara
camaraya@quantacorp.com


vx-5r.zip > YAWR.C

#include & lt; windows.h & gt;
#include & lt; dos.h & gt;

unsigned long i,j,rxi,txi,ltxi,footi;
unsigned long txbys,rxbys,rxackc,rxackc2;
DCB dcb;
HANDLE hCom;
DWORD dwError;
BOOL fSuccess;
BYTE txbuf[32000];
BYTE rxbuf[1000];
BYTE rxack,lixo,lixoc;

unsigned int cksum,cksum2,buflen,txctr,txctr2,clonelen;
COMMTIMEOUTS cto;

HFILE hFile;
OFSTRUCT OFS;
#define DIRPATHSIZE 150
char FName[DIRPATHSIZE];


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
{
hCom = CreateFile( " COM2 " ,GENERIC_READ | GENERIC_WRITE, 0,
NULL, OPEN_EXISTING, 0, NULL);
if (hCom==INVALID_HANDLE_VALUE)
{MessageBox(NULL, " Can't open COM port " , " Error " ,MB_ICONERROR); return(0);}

GetCommState(hCom, & dcb);
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = TWOSTOPBITS;
SetCommState(hCom, & dcb);

GetCommTimeouts(hCom, & cto);
cto.ReadIntervalTimeout=20; //15ok
cto.ReadTotalTimeoutMultiplier=0;
cto.ReadTotalTimeoutConstant=500;
cto.WriteTotalTimeoutMultiplier=0;
cto.WriteTotalTimeoutConstant=0;
SetCommTimeouts(hCom, & cto);

GetCurrentDirectory (DIRPATHSIZE, FName);
lstrcat (FName, " \\RADIO.BIN " );
hFile = OpenFile(FName, & OFS, OF_READ);
if (hFile)
{ buflen=_lread(hFile,txbuf,16000);
_lclose(hFile);
}

txi=0;
cksum=0;
clonelen=txbuf[buflen-6]+txbuf[buflen-5]*256+txbuf[buflen-4]+txbuf[buflen-3]*256;
if (clonelen & gt; =buflen)
{MessageBox(NULL, " Incorrect file format " , " Error " ,MB_ICONERROR); return(0);}
if (txbuf[clonelen]!=' & lt; ')
{MessageBox(NULL, " Incorrect file format " , " Error " ,MB_ICONERROR); return(0);}
footi=strchr( & txbuf[clonelen],' & gt; ')- & txbuf;
footi+=3;

while (footi & lt; buflen)
{
ltxi=txi;
txi=txbuf[footi]+txbuf[footi+1]*256;
footi+=2;
if (txi!=ltxi)
{MessageBox(NULL, " Incorrect file format " , " Error " ,MB_ICONERROR); return(0);}
txctr=txbuf[footi]+txbuf[footi+1]*256;
footi+=4;
for (i=txi;i & lt; txi+txctr;cksum+=txbuf[i++]);
if (txi+txctr==clonelen)
{if (clonelen==4818) txbuf[txi+txctr-1]+=txbuf[txi]-cksum; //vx-1 has 0 total cksum of 1..n, no ack
else txbuf[txi+txctr-1]=cksum-txbuf[txi+txctr-1];}

while (txctr & gt; 0)
{if (txctr & gt; 16) txctr2=16; else txctr2=txctr;
WriteFile(hCom, & txbuf[txi],txctr2, & txbys,NULL);
ReadFile(hCom, & rxbuf,txbys+1, & rxackc,NULL);
if (rxackc & lt; txbys) {MessageBox(NULL, " Radio off or defective cable " , " Error " ,MB_ICONERROR); return(0);}
txi+=txbys;
txctr-=txbys;
}
if (rxackc & gt; txbys)
{rxack=rxbuf[rxackc-1];}
else
if (txi & lt; clonelen)
{ReadFile(hCom, & rxack,1, & rxackc2,NULL);
if (rxackc2!=1)
{MessageBox(NULL, " No acknowledge from radio " , " Error " ,MB_ICONERROR);return(0);}
if ((rxack!=6) & & !(clonelen==4818)) {MessageBox(NULL, " Wrong acknowledge from radio " , " Error " ,MB_ICONERROR); return(0);}
}
}
CloseHandle(hCom);
MessageBox(NULL, " Done " , " Success " , MB_ICONINFORMATION);
MessageBeep(MB_ICONEXCLAMATION);

return 0;
}


vx-5r.zip > LICENSE.txt

VX5 Commander

Copyright (c) 2002-2003 Jim Mitchell. All rights reserved.

THIS SOFTWARE IS PROVIDED " AS IS " AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

This software is FREE FOR NON-COMMERCIAL USE, provided the following
conditions are met:

The user must assume the entire risk of using this program.

You are hereby granted a license to to use and distribute this
program in its original unmodified form and in the original
distribution package. You can make as many copies as you want,
and distribute it via electronic means. There is no fee for
any of the above.

You are specifically prohibited from charging, or requesting
donations, for any such copies, however made; and from distributing
the software and/or documentation with other products (commercial or
otherwise) without prior written permission.


Jim Mitchell
KC8UNJ


vx-5r.zip > README.txt

VX-5 Commander - version 0.1


This is freeware programming software for Yaesu's VX-5r.
Please read this entire document before using the VX-5 Commander.
This software is in beta, so use with care, there are probably still bugs.

I do not yet own a VX-5R, however I have done my best to write this software without a
VX-5R to test it with.

There is already great free software available for the VX-5R, EVE. Big thanks go to
Ed (KF4FDT), author of EVE, for his detailed documentation of the VX5 memory data.
More information on the VX-5R and EVE can be found Here:
http://www.icongrp.com/~sllewd/vx5rmain.htm
Many settings not yet supported by VX5 Commander can be edited in EVE, as well as
software modifications. I plan to continue development, and will add more features
to VX5 Commander as time allows.


***DISCLAIMER***
This program is provided without warranty of any kind. If you use it and
brain-dead your vx-5, that is your fault. If it screws up your PC, that is your
fault.

LICENSE:
Please read the file LICENSE.txt for license information.

If you have an error trying to run VX5 Commander under Windows XP, run the Reg_XP.exe
file and click install. If that doesn't work, click Uninstall, then click Install.


This program was written in VB6. It requires msvbvm60.dll. Most
people have it already. If you get an error, then obtain this file and place it
in the VX5 Commander folder or in Windows\System. Or better yet, download and
install the Visual Basic 6 Runtime Files.


THE INTERFACE:

For the interface, you have a few options:

The ADMS interface should work, or you can build your own. Detailed information and
schematics can be found here:
http://www.icongrp.com/~sllewd/pcware.htm

If you have problems reading or writing to the VX5, copy the text from the status window
and send it to me in an email, and I will try to help. You can also save the file, and then
to write it to the VX5 using EVE for the time being.


WHAT IS SUPPORTED:

-Supports EVE files. (Can also open VX5 RDF files, but can only save to EVE files)

-Add, edit, delete, cut, paste, move regular memory channels, scan edge memories

-Edit memory channel text tags, frequency, mode, step, masked, repeater shift,
repeater shift freq, Sql Type, Tones, DCS Codes, TX Power, Half Dev

-Edit many of the " Set Mode " settings

-Import/export CSV

-Import from ARRL TravelPlus TPE files

-Import from VX7 files

-Print main memories to default printer


IMPORTANT:

-Before you use try to read or write data, set the port under Options & gt; Port.

DETAILS:

Before you can do anything you must open a vx5 file, or read from the VX-5.

When channels are moved, all memory settings, even any that are not supported by this
program, are also moved.

The GUI is pretty self explanatory. Just double-click to edit a setting.
If you cannot type the tag, be sure the field is not all spaces. The tag field only
allows 8 characters. All tags fields read from the VX5 will be padded with spaces, this
is how the data is stored in the radio.


CUT-COPY-PASTE:

To select a channel or multiple channels to cut, move, or delete, click and drag the
far left column on the grid (with the memory channel number) to hilight the rows.
You can also right-click this column after selection for a cut-copy-paste menu.

To copy cells to other cells in the same column, single-click on the cell you want
to copy. Then right-click on the cells you want to paste to. The cut-copy-paste
features in the edit menu are only for whole channel rows.

DELETING:
Deleting channels frees them up for the " Next Available Memory " storage feature.


CSV IMPORT:

To import a CSV, you must be aware of the following.
Not following these guidelines this WILL cause ERRORS and unexpected results.

1. You should start with an empty VX7 file (clear the memories from a vx7 file)
2. ALL data MUST be in the right place.
3. If you leave a blank entry in the CSV, default data will be automatically assigned.
4. Blank lines in the CSV will result in an empty memory field.
5. ALL data MUST be a valid entry for the corresponding field.
6. Fields should NOT be inside quotes.
7. The first line is always assumed to be a header.
8. ALL fields are CASE SENSITIVE.
9. Tags must contain supported characters. If not, expect unfavorable results.
10. There is code to attempt to handle decimals in the RX freq. There is also code to
attempt to handle a frequency length of less than six. If this doesn't work for you, you'll
have to fix these fields manually.
11. There is code to attempt to handle Excel's removal of zero decimals for the Tone, and
removal of zeros from the beginning of the Freq and Shift.
12. For the repeater shift, RPT+ and RPT- in the CSV will be converted to +RPT and
-RPT in the grid. This is to get around Excel interpreting the + and - as mathematical
operators. Also, the export function exports these fields like this automatically.



CSV EXPORT:
All of the grid data is exported to a CSV file. This includes a header.
Remember, +RPT and -RPT become RPT+ and RPT- in the CSV.

I plan to add a CSV import/export wizard in the future, but for now you will have to live with these limitations.


TPE IMPORT:
This is designed for import of ARRL Travel Plus files. I do not own this CD, so please let
me know if this works for you.

VX7 IMPORT:
This will import the main memory data from a VX7 Commander file.
Note, the VX7 supports some CTCSS tones that the VX5 does not. These unsupported tones will
initially be shown in the grid when imported, but when the file is saved and re-opened,
these unsupported tones will be converted to 67.0.

You can keep importing files until the memory is full.
Each import starts at the next line after the highest used memory entry.
So, if the last memory in the file is used, import does nothing.

PRINT
This will print the VX5 main memory data to your default printer.
Be aware that if you print all of it, it will be 7+ pages, so specify a range unless you
are sure you want to print it all.

I think everything else should be self explanatory, but if I have omitted anything or you
have a question email me.


Jim
KC8UNJ

Jimbo_48393@yahoo.com


vx-5r.zip > README.TXT

Universal UP/DOWNload utility 1.00 Release 04.02.1999
Goran Vlaski - Skopje, Republic of Macedonia
http://www2.crosswinds.net/frankfurt/~vlaski
--------------------------------------------------------------------

This is a generic clone utility, it is working with units like
YAESU VX1R and similar, where the data communication is in one
direction only.


Download/Upload
---------------
Power on the device, start in clone mode and ....

Interface
---------
There are several Interfaces on the market from YAESU, ICOM, ...
You have to consider that some Handhelds use 3V and less
rather then TTL, the IC-Q7 and IC-R2 when powered by 2 NiCd
are using 2.4V. At that voltage levels the ICOM interface
needs some modifikation and the YAESU also, some Interfaces
will work and some not, that is depending on the luck you
have with the tolerances of the parts that were used.

If you want to be shure that everything will work, just
get the MAKInterface, thats what I am using.


Have fun and enjoy in live,


Dipl.-Ing. Goran Vlaski


vx-5r.zip > LICENSE.TXT

Universal UP/DOWNload utility 1.00 Release 04.02.1999
Goran Vlaski - Skopje, Republic of Macedonia
http://www2.crosswinds.net/frankfurt/~vlaski
--------------------------------------------------------------------

Disclaimer of Warranty

THIS SOFTWARE AND THE ACCOMPANYING FILES ARE GIVEN " AS IS " AND
WITHOUT WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY
OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO WARRANTY OF
FITNESS FOR A PARTICULAR PURPOSE IS OFFERED.

Good data processing procedure dictates that any program be
thoroughly tested with non-critical data before relying on it.
The user must assume the entire risk of using the program.

You are hereby licensed to make as many copies of this version of
this software and documentation as you wish; give exact copies of
the original version to anyone; and distribute this version of the
software and documentation in its unmodified form via electronic
means. There is no charge for any of the above.

You are specifically prohibited from charging, or requesting
donations, for any such copies, however made; and from distributing
the software and/or documentation with other products (commercial or
otherwise) without prior written permission.


Goran Vlaski.