<!-- Rig definition file for use with fldigi
Date : 24 December 2015
-->

<RIGDEF>

<RIG>Kenwood TS-590S-alpha</RIG>

<PROGRAMMER>
Dave Freese, W1HKJ;
Data Mode Bandwidth Control added by Robert Garcia, K5DTE
</PROGRAMMER>
<!-- History
12/24/2015, DHF - Added <INIT_DELAY>
-->

<STATUS>alpha testing</STATUS>

<!-- Title for the RigCAT dialog box that is used for rig control in fldigi
-->
<TITLE>Rig CAT - TS-590S V2</TITLE>

<!--
<DEBUG>true</DEBUG>
<POLLINT>2000</POLLINT>
-->
<ASCII>true</ASCII>

<!-- default settings for comms setup
-->
<TIMEOUT>50</TIMEOUT>
<RETRIES>4</RETRIES>
<WRITE_DELAY>25</WRITE_DELAY>
<INIT_DELAY>100</INIT_DELAY>
<BAUDRATE>19200</BAUDRATE>
<RTSCTS>true</RTSCTS>
<DTRPLUS>true</DTRPLUS>
<RTSPLUS>false</RTSPLUS>
<DTRPTT>false</DTRPTT>
<RTSPTT>false</RTSPTT>
<ECHO>false</ECHO>
<STOPBITS>1</STOPBITS>
<CMDPTT>true</CMDPTT>

<!-- 
  Initialization command
  "AI0;"  disable auto-info
  "DA1;"  Set DATA mode ON
-->

<COMMAND>
  <SYMBOL>INIT</SYMBOL>
  <SIZE>12</SIZE>
  <STRING>AI0;DT1;</STRING>
</COMMAND>

<MODES>
    <ELEMENT>
      <SYMBOL>LSB-D</SYMBOL>
      <BYTE>31</BYTE>
    </ELEMENT>
    <ELEMENT>
      <SYMBOL>USB-D</SYMBOL>
      <BYTE>32</BYTE>
    </ELEMENT>
    <ELEMENT>
      <SYMBOL>CW</SYMBOL>
      <BYTE>33</BYTE>
    </ELEMENT>
    <ELEMENT>
      <SYMBOL>FM</SYMBOL>
      <BYTE>34</BYTE>
    </ELEMENT>
    <ELEMENT>
      <SYMBOL>AM</SYMBOL>
      <BYTE>35</BYTE>
    </ELEMENT>
    <ELEMENT>
      <SYMBOL>FSK</SYMBOL>
      <BYTE>36</BYTE>
    </ELEMENT>
    <ELEMENT>
      <SYMBOL>CW-R</SYMBOL>
      <BYTE>37</BYTE>
    </ELEMENT>
    <ELEMENT>
      <SYMBOL>FSK-R</SYMBOL>
      <BYTE>39</BYTE>
    </ELEMENT>

<!-- lsb mode strings should match those given in the modes symbol specifier -->  
<LSBMODES>
  <STRING>LSB-D</STRING>
  <STRING>CW-R</STRING>
  <STRING>FSK</STRING>
</LSBMODES>

<!-- frequency & mode data are contained in the IF; response
  IFaaaaaaaaaaaXXXXbbbbbbcdeeefghjklmmn;
  12345678901234567890123456789012345678
  where:
   aaaaaaaaaaa => decimal value of vfo frequency
   bbbbb => rit/xit frequency
   c => rit off/on
   d => xit off/on
   e => memory Bank & channel Number
   f => tx/rx
   g => mode
   h => function fr & ft
   j => scan off/on
   k => split off /on
   l => tone off /on
   m => tone number
   n  => shift status
   X => unused characters
   
Test output from Minicom to IF; command   

IF00014070000    -00300  000200;

0002000 is vfoA in usb
0001000 is vfoA in LSB
0003000 CW
0004000 FM
0005000 AM
0002100 VFOB in USB
0002001 VFOA in USB SPILT
0012000 PTT on in USB
   
-->

<!--
Data filter widths with data shift set to 1000 Hz
fldigi sweet spot should be set to 1000 Hz

SL00;   50
SL01;   80
SL02;  100
SL03;  150
SL04;  200
SL05;  250
SL06;  300
SL07;  400
SL08;  500
SL09;  600
SL10; 1000
SL11; 1500
SL12; 2000
SL13; 2500
-->

<BANDWIDTHS>
  <ELEMENT>
    <SYMBOL>50</SYMBOL>
    <STRING>00</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>80</SYMBOL>
    <STRING>01</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>100</SYMBOL>
    <STRING>02</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>150</SYMBOL>
    <STRING>03</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>200</SYMBOL>
    <STRING>04</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>250</SYMBOL>
    <STRING>05</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>300</SYMBOL>
    <STRING>06</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>400</SYMBOL>
    <STRING>07</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>500</SYMBOL>
    <STRING>08</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>600</SYMBOL>
    <STRING>09</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>1000</SYMBOL>
    <STRING>10</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>1500</SYMBOL>
    <STRING>11</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>2000</SYMBOL>
    <STRING>12</STRING>
  </ELEMENT>
  <ELEMENT>
    <SYMBOL>2500</SYMBOL>
    <STRING>13</STRING>
  </ELEMENT>
</BANDWIDTHS>

<REPLY>
  <SYMBOL>MODE</SYMBOL>
  <SIZE>4</SIZE>
  <STRING>MD</STRING>
  <DATA>
    <DTYPE>BYTE</DTYPE>
    <SIZE>1</SIZE>
  </DATA>
  <STRING>;</STRING>
</REPLY>

<REPLY>
  <SYMBOL>FREQ</SYMBOL>
  <SIZE>14</SIZE>
  <STRING>FA</STRING>
  <DATA>
    <DTYPE>DECIMAL</DTYPE>
    <SIZE>11</SIZE>
    <MAX>99999999999</MAX>
    <MIN>00001500000</MIN>
    <RESOL>1</RESOL>
  </DATA>
  <STRING>;</STRING>
</REPLY>

<REPLY>
  <SYMBOL>BW</SYMBOL>
  <SIZE>5</SIZE>
  <STRING>SL</STRING>
  <DATA>
    <DTYPE>STRING</DTYPE>
    <SIZE>2</SIZE>
  </DATA>
  <STRING>;</STRING>
</REPLY>

<COMMAND>
  <SYMBOL>SETFREQ</SYMBOL>
  <SIZE>14</SIZE>
  <STRING>FA</STRING>
  <DATA>
    <DTYPE>DECIMAL</DTYPE>
    <SIZE>11</SIZE>
    <MAX>99999999999</MAX>
    <MIN>00001500000</MIN>
    <RESOL>1</RESOL>
  </DATA>
  <STRING>;</STRING>
</COMMAND>

<COMMAND>
  <SYMBOL>GETFREQ</SYMBOL>
  <SIZE>3</SIZE>
  <STRING>FA;</STRING>
  <INFO>FREQ</INFO>
</COMMAND>

<COMMAND>
  <SYMBOL>SETMODE</SYMBOL>
  <SIZE>4</SIZE>
  <STRING>MD</STRING>
  <DATA>
    <DTYPE>BYTE</DTYPE>
    <SIZE>1</SIZE>
  </DATA>
  <STRING>;</STRING>
</COMMAND>

<COMMAND>
  <SYMBOL>GETMODE</SYMBOL>
  <SIZE>3</SIZE>
  <STRING>IF;</STRING>
  <INFO>MODE</INFO>
</COMMAND>

<COMMAND>
  <SYMBOL>SETBW</SYMBOL>
  <SIZE>5</SIZE>
  <STRING>SL</STRING>
  <DATA>
    <DTYPE>STRING</DTYPE>
    <SIZE>2</SIZE>
  </DATA>
  <STRING>;</STRING>
</COMMAND>

<COMMAND>
  <SYMBOL>GETBW</SYMBOL>
  <SIZE>3</SIZE>
  <STRING>SL;</STRING>
  <INFO>BW</INFO>
</COMMAND>

<COMMAND>
  <SYMBOL>PTTON</SYMBOL>
  <SIZE>4</SIZE>
  <STRING>TX1;</STRING>
</COMMAND>

<COMMAND>
  <SYMBOL>PTTOFF</SYMBOL>
  <SIZE>3</SIZE>
  <STRING>RX;</STRING>
</COMMAND>

<!-- new commands to test with updated rigCAT -->

<!--  smeter / power meter -->

<SMETER> 0,0; 30,100 </SMETER>

<!-- power meter scale mapping -->
<PMETER> 0,0; 30,100 </PMETER>

<REPLY>
  <SYMBOL>SMETER</SYMBOL>
  <SIZE>8</SIZE>
  <STRING>SM0</STRING>
  <DATA>
    <DTYPE>DECIMAL</DTYPE>
    <SIZE>4</SIZE>
  </DATA>
  <STRING>;</STRING>
</REPLY>

<COMMAND>
  <SYMBOL>GET_SMETER</SYMBOL>
  <SIZE>4</SIZE>
  <STRING>SM0;</STRING>
  <INFO>SMETER</INFO>
</COMMAND>

<REPLY>
  <SYMBOL>PWRMETER</SYMBOL>
  <SIZE>8</SIZE>
  <STRING>SM0</STRING>
  <DATA>
    <DTYPE>DECIMAL</DTYPE>
    <SIZE>4</SIZE>
  </DATA>
  <STRING>;</STRING>
</REPLY>

<COMMAND>
  <SYMBOL>GET_PWRMETER</SYMBOL>
  <SIZE>4</SIZE>
  <STRING>SM0;</STRING>
  <INFO>PWRMETER</INFO>
</COMMAND>

<!-- NOTCH ON/OFF VALUE -->

<NOTCH>
  0,0; 127,3000;
</NOTCH>

<COMMAND>
	<SYMBOL>SET_NOTCH_ON</SYMBOL>
	<SIZE>5</SIZE>
	<STRING>NT20;</STRING>
</COMMAND>

<COMMAND>
	<SYMBOL>SET_NOTCH_OFF</SYMBOL>
	<SIZE>5</SIZE>
	<STRING>NT00;</STRING>
</COMMAND>

<COMMAND>
	<SYMBOL>SET_NOTCH_VAL</SYMBOL>
	<SIZE>6</SIZE>
	<STRING>BP</STRING>
	<DATA>
		<DTYPE>DECIMAL</DTYPE>
		<SIZE>3</SIZE>
	</DATA>
	<STRING>;</STRING>
</COMMAND>

<REPLY>
  <SYMBOL>NOTCH_ON</SYMBOL>
  <SIZE>5</SIZE>
  <STRING>NT20;</STRING>
</REPLY>

<COMMAND>
  <SYMBOL>GET_NOTCH_ON</SYMBOL>
  <SIZE>3</SIZE>
  <STRING>NT;</STRING>
  <INFO>NOTCH_ON</INFO>
</COMMAND>

<REPLY>
  <SYMBOL>NOTCH</SYMBOL>
  <SIZE>6</SIZE>
  <STRING>BP</STRING>
  <DATA>
    <DTYPE>DECIMAL</DTYPE>
    <SIZE>3</SIZE>
  </DATA>
  <STRING>;</STRING>
</REPLY>

<COMMAND>
  <SYMBOL>GET_NOTCH</SYMBOL>
  <SIZE>3</SIZE>
  <STRING>BP;</STRING>
  <INFO>NOTCH</INFO>
</COMMAND>

// power level set
<PWRLEVEL>
  0,0; 100,100;
</PWRLEVEL>

<REPLY>
  <SYMBOL>PWRLEVEL</SYMBOL>
  <SIZE>6</SIZE>
  <STRING>PC</STRING>
  <DATA>
    <DTYPE>DECIMAL</DTYPE>
    <SIZE>3</SIZE>
  </DATA>
  <STRING>;</STRING>
</REPLY>

<COMMAND>
  <SYMBOL>GET_PWRLEVEL</SYMBOL>
  <SIZE>3</SIZE>
  <STRING>PC;</STRING>
  <INFO>PWRLEVEL</INFO>
</COMMAND>

<COMMAND>
  <SYMBOL>SET_PWRLEVEL</SYMBOL>
	<SIZE>6</SIZE>
	<STRING>PC</STRING>
	<DATA>
		<DTYPE>DECIMAL</DTYPE>
		<SIZE>3</SIZE>
	</DATA>
	<STRING>;</STRING>
</COMMAND>

</RIGDEF>
