Pocket RxTx – Multimode Transceiver Control for Android

Please read the Privacy Policy first.

Version 0.8.1 (Aug 30, 2015)

Dan Toma - YO3GGX - yo3ggx@gmail.com

I kindly ask you not to give a negative feedback in Play Store or Amazon AppStore before contacting me by e-mail to clarify your issues with the application. I promise to answer you ASAP. Starting with version 0.8, Pocket RxTx is available as a free application (Ads based) or as a paid application, with no Ads.

Please install the free version first and check it if is useful for you and only if the answer is yes, buy the paid version.

NOTE: In the pictures from this document you may see screens from different versions of the application. The version from the picture correspond to the first one when that feature was available in the application.

Introduction

This is an Android only application used to remotely control different HAM receivers of transceivers. You can connect through Internet to a WebSDR server or through Bluetooth, USB/Serial or network to a HAM transceiver.

Features

Current version of the application has the following generic features:

Specific functions direct CAT mode:

Specific functions in SDR Receiver mode:

Limitations

Current version of the application has the following limitations:

WARNING!!!

Use this application on your own risk. As in direct CAT mode your PC can be made accessible from Internet (for CAT and audio), is your job to protect against attacks, possible by using some kind of VPN (ex. PPTP), application providing only secure authentication, no data encryption. Full encryption option will be added in the future. If you are not comfortable with this and you are not using any kind of VPN, then use this only over your LAN.

More, even this application does not send any “dangerous” data to the transceiver, as the protocol used by FT-8x7 for CAT does not use any error correction mechanism, it is possible (in some extreme situations) to give you unexpected results, like a software crash on the transceiver (requiring to power cycle it) or in a worst case scenario even a complete wipe of all EEPROM data, including configuration, software calibration/alignment and memories. As any CAT command is user customizable by just editing a text file, supplemental precaution must be taken.

For this reason, please save your transceiver settings using for example “FT 817 Commander” (you can google for it) before using this application.

Please use any program you like (ex. FT817 commander) to save at least all “soft calibration” settings, plus any other information stored in your radio before using this application.

I cannot be held responsible for any damage caused to your Android device, your transceiver or your PC… You are warned!

Audio Configuration

There is nothing to configure for the audio functionality. This is available only in Direct CAT mode over the network. You can activate or deactivate it in the Setup page. Microphone level is displayed in a thin meter under the frequency dispay, only when audio is activated.

Starting the application

You can install the application directly from Google Play Store (search for “Pocket RxTx” or using the link from the top of this document.

After you install the application, you will have a new icon like the following:

Press on the icon to launch the application.

You will get the following startup page (for Landscape and Portrait modes) at first run (WebSDR client mode):



If you start the application in WebSDR client mode or change to that mode from direct CAT mode, the application starts to save locally the list of the available servers and each server configuration (bands, version, picture, logo, etc.). During this period (a few seconds), the START button name change to WAIT. At the end of the process a list of unavailable servers will be displayed shortly and the button name goes back to START.



You can change the mode from the startup page at any time by sliding the finger left or right over the image. In the second mode (named Direct CAT) you get the following startup page (both landscape and portrait).

Last used mode is saved when you exit the application, so at next start will enter directly in that mode.

To exit the application click on the system back icon . You will get a message prompt.

Click on YES if you want to exit or on NO to return to the startup page. If at any time you want to revert to the default configuration just long press on START button. Depending on your current mode, you will have several options. In SDR mode you have the option to reset everything or to reload the list of the WebSDR servers from the master server and check availability.



In the first situation the application is initialized and automatically restarted.





In direct CAT mode, long pressing on START button allows you to reinitialize application (as in the previous mode) or to reload embedded radios configuration files in the application folder.





Later about this in the dedicated chapter of the user manual.

The Blue “HELP” button is used to access the application online help. You need to be connected to the Internet for this purpose. Long press on “HELP” button will allow you to directly edit radios configuration file directly on your Android device. Later about this in the configuration file description chapter here.

If you have problems using the application, please send me the text displayed in the “Display info” area.

Press on START button to go to the application main screen.



Using the WebSDR client mode

When you start the main screen the receiver is “powered off”, so the display will look like in the following pictures for both Landscape and portrait mode.


The logo of the currently selected WebSDR server is represented by a small icon in the first of the 3 orange boxes in the left part of the screen.

Selecting WebSDR server

You can select the WebSDR to which the application will connect. For this purpose click on the WebSDR server logo in the left part of the screen. When you enter WebSDR client setup for the first time you will be asked to enter your own callsign, which will appear on that WebSDR server web page. If you are not a HAM, please use your name/alias. You will get the following screen.




You can enter a string no shorter than 3 chars and no longer than 8 chars and then press OK. You will not be asked anymore till you will decide to reset the application. If at any time later you want to change your callsign/name, you just have to long press on the server owner callsign and you will be prompted again.



You can select the SDR server you want to connect to using the wheel. For each server you get a picture, a small logo and info regarding the available bands/frequencies, the server owner callsign and server locator.

You can click on the big picture to get more info about that server or on the “WebSDR software….” Green label to get more info about WebSDR software.

The wheel contain a locally stored list of servers which are available at that moment. All the data about a specific server is loaded from the local cache prepared during application startup. New server can be added in the future without the need to update the application.

To activate the selected server click on SET button. To return to the previous server click on CANCEL button.


“SndSrv” (Sound Server) entry field is used to activate a local sound server. The application will listen on the TCP port defined through this entry for localhost audio connections. This feature will be used for further integration with other local applications. If you enter 0 or let the field empty then the Sound Server is disabled.



Operating in WebSDR client mode

To start reception long press on the blue power button. The screen will change like in the following pictures.



The screen contains the following components (for Landscape mode):





After you enter the desired frequency click on the big “SET” button in the lower right part of the screen. The button name will be grayed out.

Tuning using the Waterfall or Spectrum

To access the waterfall drag the gray slider down, over the frequency display. The frequency display will be covered by the waterfall.



Current frequency will be displayed now on the bottom info box. Use the “SP/WF” button to toggle between Waterfall and spectrum.

Current tuning frequency will be represented by a vertical yellow marker and the bandwidth with a semitransparent green strip (showing current bandwidth). Current frequency scale is displayed on top of the waterfall/spectrum,

You can directly touch the waterfall/spectrum or drag the yellow marker to tune to a specific frequency. A fine tuning can then be done using the knob.

When in spectrum mode, you can toggle from a “full” graph to a “peak” graph and back by long pressing on SP/WF button.

You can zoom into the firewall using the ZOOM button from the lower part of the screen. Clicking on it you will increase the zoom level, as follows: 1x -> 2x -> 4x -> 8x …. Depending on the available bandwidth of a specific HAM band, you can have a maximum zoom between 2x and 64x. As an example, for a 192 KHz bandwidth you will have a maximum zoom of 8x, for 96 KHz a maximum of 4x and for a 2MHz bandwidth a maximum zoom of 64x. The frequency scale will change accordingly. Zoom feature can be very useful if you tune for example in a CW zone, where the bandwidth is very small, like in the following picture. Long pressing ZOOM button will automatically reset the zoom to 1x.

You can decrease the zoom to a lower one by touching the waterfall with 3 fingers in the same time.

Setting the bandwidth

You have 3 presets for the bandwidth in WebSDR client mode, depending on the current modulation type, as follows:

AM:

Narrow: +/- 2.5 KHz

Normal: +/- 4 KHz

Wide: +/- 6 KHz

SSB:

Narrow: 0.7 – 2 KHz

Normal: 0.3 – 2.7 KHz

Wide: 0.2 – 3 KHz

CW:

Narrow: 0.72 – 0.78 KHz

Normal: 0.6 – 0.9 KHz

Wide: 0.55 – 0.95 KHz

FM:

Narrow: +/- 5 KHz

Normal: +/- 8 KHz

Wide: +/- 15 KHz



Current bandwidth is displayed in the top left corner of the waterfall, as in the following picture:

By default the received sound pass through the smartphone/tablet speaker. If a corded stereo handsfree/headset is used, then you will hear the sound through the headphones.

Sometimes you may want to use a cheap Bluetooth mono headset (with no media A2DP profile). If you want to be able to use the radio sound through that Bluetooth headset, then you need to long press on the “Speaker” button in the left of the knob. The icon on the button will change from speaker to headset.

NOTE: Please be aware that there is another system volume for this audio output.

Using direct CAT mode


When you start the application for the first time or you have manually removed all the radios configuration stored locally, you will be automatically redirected to the central online repository where all radios configuration are stored.


Several configuration sets may be available for a specific server. For each one a short description will be displayed. If is only one, the description will contain only “Default configuration file”.

At any time you can access the central repository (but you need to be online for this). You need to long press on the blue HELP button in the startup page. You will be asked if you want to load a new transceiver from the online repository or to locally edit the configuration file of the currently selected local radio.



In order to use this mode you need to download minimum one transceiver from the repository.

Now in the startup page you need to select the desired transceiver model (if more than one available locally) and the connection mode (Bluetooth, USB/Serial or Network). According with the selected mode, the display will look like in the following images.



Please keep in mind the colors: blue for Bluetooth, magenta for USB/Serial and green for network. Some icons will be displayed over the transceiver image. First one represent the connection mode, second audio status and third (only in network mode) the authentication setting (no authentication or secure authentication). After the selection was done, press START button.



The main screen will look like in the following images (both landscape and portrait mode).


Possible icons are represented in the following table.

1st icon

Connection mode

Network

USB/Serial

Bluetooth

2nd icon

Audio Status

Audio ON

Audio Off

3rd icon

Authentication

Secure Authentication ON

Secure Authentication OFF





Configuring direct CAT mode

Click on the connection mode icon to configure this mode. You will get the following screen (both landscape and portrait).

NOTE: At first run all the fields are empty.

Section corresponding with each connection mode is positioned in a frame with the border color associated with that connection mode (blue - Bluetooth, Magenta - USB/Serial, green - Network.

You need to enter the following parameters, depending on the connection mode:

Bluetooth – nothing to configure, you can just see local device name and MAC and remote device and MAC (only if previously was a successful Bluetooth connection);

USB/Serial – enter Baudrate. Use the wheel to select the CAT speed as configured in the transceiver menu.

Network – enter remote hostname (or IP address) and TCP port. Enter the secret (password) if you want to use secure authentication over the network. There are no limits in the characters to be used for the secret. You can toggle between secure authentication and unauthenticated modes by pressing TOGGLE button close to the lock.

You can toggle between Audio ON/OFF. TCP port used for the audio connection (if active) is the one following the CAT TCP port defined in “Remote socket” frame.

When you are ready just press SET button to save all parameters in the configuration file.

For network connection mode you need to configure the PC side too, as connection is done to the transceiver through a PC (running Windows, Linux or Max). On the PC you need to run my application named jAReC (from (j)ava (A)Audio and (Re)mote (C)ontrol ), which you can download for free from my web page.

Follow the instructions from the application user guide for the PC side configuration. The guide for the current version of jAReC application can be found here:

http://www.yo3ggx.ro/jAReC/doc08/jAReC_v0.8.pdf

NOTE: As a general rule, use jARec application with the same version number (in this case 0.8) as Pocket RxTx application.

NOTE: Audio can be activated only when connecting over Network. If audio is activated, a thin meter will be displayed under the frequency display in the main app window.

This meter will show you, when connected, the mic level from your tablet/smartphone.

CAT over Network

CAT operation of the transceiver is identical for all 3 connection modes. The only difference is the way you initiate each mode. You need to connect your transceiver to a PC (Windows, Linux or Mac) and run the application jAReC (see chapter named “Configuring direct CAT mode” for more details). When the background of the PC application goes yellow, is ready to receive network connections.

In the startup page press NETWORK button which will go green. Select you transceiver from the list and press START.

In the next screen powered on the transceiver by a long press on the round blue button. If POWER_ON CAT command is available, the transceiver will be powered on automatically.




You can control frequency, mode, output power, Band, VFO (A/B), Noise Blanker, PTT and any other parameter which are supported through CAT commands.

All 5 option buttons are user configurable by just editing radio configuration file. You can practically define up to 10 commands (5 option buttons without or with Fn). Any command available through CAT for your specific transceiver can be programmed on any option button. Option buttons can be used to go through an unlimited number of commands, based on the previous state. Current state is displayed in the corresponding option label. Long pressing an option button can be programmed to send a timed command, for example TUNE. Then a short toast message is displayed that the timed command is executed.



In the right side of the knob there is a button used to activate/deactivate radio feedback. Press on that button to activate/deactivate the feedback from the radio. The button icon will change accordingly.

When feedback is active, a yellow dot will blink in the upper left part of the UTC clock area. It will act as a heartbeat.

Radio feedback is user configurable through the same text configuration files. See the chapter dedicated to the radio configuration file for more details about how to edit it to cover your own needs.

Sticky PTT

There is a feature implemented for the PTT button. If you short click on PTT button, the transceiver will remain in Tx mode. A new click will put the transceiver back in Rx mode. This can be useful when you need to talk and to have the hands free. If you press on the PTT button for more than 2s, it will operate in normal momentary mode.

CAT over Bluetooth

To enter in Bluetooth mode, you just have to press on Bluetooth button in the startup page and then press START. The main screen looks like in the following picture.

As you can see, only Bluetooth Icon is displayed, as in this mode you cannot use secure authentication nor audio.

To start operation long press on the round blue power button. If the Bluetooth interface is not activated then you are prompted to do it when you try to power on the transceiver.

NOTE: You can reset Bluetooth connection (in order for example to connect to another transceiver) by a long click on the Bluetooth button in the startup page.

CAT over USB

Read first the chapter about configuring direct CAT mode in order to configure the right Baudrate for the serial connection to the transceiver.

Connect your USB CAT interface to the tablet smartphone before starting the application. You will be automatically prompted to run the application (or other USB enabled application if any). Select Pocket RxTx from the list. You can choose to automatically run Pocket RxTx when you connect the USB CAT interface.

Pocket RxTx will be started with USB support enabled (Magenta USB button active). You can now press on blue Power button to connect to the transceiver over USB cable. The circular virtual LED around the power button will go magenta. Use the same operation mode as for the Bluetooth CAT.



NOTE: To use this mode you need Android 3.1 or higher with embedded USB host support. If not available then you can connect only over Bluetooth or network. In the current version of the application the USB CAT interfaces based on the following USB/Serial chips are supported:

FTDI FT232R UART VID: 0x0403 PID: 0x6001

CP210x UART Bridge VID: 0x10C4 PID: 0xEA60

Prolific PL2303 VID: 0x067b PID: 0x2303


Using the Memories

You have one set of memories (M1-M16) for each available WebSDR server and one for direct CAT mode.

Saving to a Memory location

You have at your disposal 16 memories (from M1 to M8 and M8 to M16 when FN key is active) where you can store all the info related to a specific channel/frequency.

To save a specific memory configure the transceiver for all the parameters and then long click on one of the memories button (ex. M2). The screen will change; a big entry field will be available together with the standard keyboard.


Enter the memory name (max. 6 chars) you want to appear on the button for that specific frequency and a description (length not limited), separated by ‘,’ symbol and then press OK. Data is saved to memory button 2. Description is not mandatory and can be omitted.


Recalling a Memory location

To recall a memory location you just have to click on the corresponding button. All the settings saved for that location will be loaded from the configuration file (frequency, mode, info, etc.).

Clearing a Memory location

To clear a memory location you have to long click on the corresponding button and when asked to enter name and alias just delete everything and press OK. The memory button will be renamed to the original Mx.

Transceiver configuration files

For each transceiver available in direct CAT mode two files are required:

All filenames are lowercase.

NOTE: Starting with version 0.8 you can edit the transceiver configuration files in two ways: using a text editor on a PC connected to your Android Device or directly on your device. For the last option, in the startup page select your transceiver and long press on HELP blue button. The configuration file will be open in the default text editor. Press on Android BACK button to return to Pocket RxTx.

Both files are located in a subfolder named “Radios” of the main application folder named “prxtx”. This is located in the root of the internal device SD card (not external, even if that one exist). This is how the folder structure looks on a Samsung Galaxy Tab 7.7 with Android 4.2.2.

To edit radio configuration file use a simple text editor, not Word/Notepad or any other “high level” editor as this can add unexpected chars in the file which can make the application behaves unexpectedly. The file is based on the following general structure for each line: <parameter>=<values>.

NOTE: Anywhere in the file you can enter comments by starting the line with the “;” char.

The radio configuration file has the following structure (explanation with the example of the Elecraft K3 configuration file):



  1. The header – general info about the radio.

Brand=Yaesu

Model=FT817

Pic=ft817.jpg

sigRadios=$1gR@d10s

TIMESTAMP=08/23/2015|22:00



Brand – the brand of the transceiver;

Model – the model of the transceiver;

Pic – the filename of the radio image file (480x320 jpeg);

sigRadios – a special signature used to recognize this as a radio configuration file. This must be the same for all radios.

TIMESTAMP – this is the date & time when the file was changed for the last time, in the format: mm/dd/yy|HH:MM


  1. Radio frequency range, frequency steps and available HAM bands

; Frequency coverage(sections separated by ',')

FRANGE=490000-30000000,44000000-54000000


; Frequency step per frequency range, in KHz, freq range in Hz

; format: FSTEP=<brute_step>/<fine_step>=<freq_int_min>-<freq_int_min>, ...

; brute - for +/-, fine for knob tunning

FSTEP=1/0.1=100000-87499999,100/5=87500000-107999999,5/0.1=108000000-136999999,25/5=137000000-137995000,12.5/6.25=138000000-173999999,25/25=174000000-215999999,12.5/6.25=216000000-224999999,12.5/6.25=225000000-469999999,25/12.5=470000000-1300000000


; List of available Bands

BANDS=160m,80m,60m,40m,30m,20m,17m,15m,12m,11m,10m,6m

BANDSA=

BANDSB=

FRANGE – some radios does not have a continuous frequency coverage. You can add here all frequency segments (defined by <start_freq_Hz>-<end_freq_Hz). Segments are separated by “,” char. You can add as many segments you want. Do not use <CR> or <LF> control chars inside the line, even if the line is very long.

FSTEP – here you can define the frequency steps (fine – when tuning by the knob, or brute – when tuning by Up/Down buttons). The steps can be defined separately for as many frequency segments you want, but you must take care that the full radio frequency range is covered, otherwise internal default values are used for the undefined segments

BANDS – list of transceiver available HAM bands, when is the same for both VFOs. This will determine which bands you can select when you press BAND button in the main app interface.

BANDSA, BANDSB – For some transceivers (like Kenwood TH-F6/7) available bands are different for each VFO. In this situation you need to use separate values for each VFO, using the following parameters:



BANDSA=

BANDSB=

NOTE: Only BANDS or (BANDA and BAND) must be filled in.


  1. First wheel (default is Mode) content:

LST1NAME=MODE

LST1ITEMS=LSB,USB,AM,FM,CW,DATA,CW-REV,DAT-REV

LST1CMDS=CMD_SET_MODE_LSB,CMD_SET_MODE_USB,CMD_SET_MODE_AM,CMD_SET_MODE_FM,CMD_SET_MODE_CW,CMD_SET_MODE_DATA,CMD_SET_MODE_CW-REV,CMD_SET_DAT-REV



LST1NAME – the name which will appear on top of the first wheel (MODE wheel);

LST1ITEMS – the list of the available operation modes, separated by the “,” char;

LST1CMDS – list of the commands, separated by the “,” char, to set the modes from the previous list. You must take care to respect the same position in the enumeration;


  1. Second wheel (default is Output Power) content:

LST2NAME=PWR

LST2ITEMS=1W,5W,10W,25W,50W,100W

LST2CMDS=CCMD_SET_PWR_1W,CMD_SET_PWR_5W,CMD_SET_PWR_10W,CMD_SET_PWR_25W,CMD_SET_PWR_50W,CMD_SET_PWR_100W


LST2NAME – the name which will appear on top of the second wheel (POWER wheel);

LST2ITEMS – the list of the output power values to appear in the list;

LST2CMDS – the list of the commands, separated by the “,” char, to set the corresponding power levels from the previous list. You must take care to respect the same position in the enumeration;


  1. Option buttons configuration (with Fn key pressed and with Fn key released) for click action

BTN_OPT1_NOFN=VFO,CMD_SET_VFO-A=VFO-A,CMD_SET_VFO-B=SPLIT

BTN_OPT2_NOFN=NB,CMD_SET_NB_OFF=OFF,CMD_SET_NB_ON=ON

BTN_OPT3_NOFN=

BTN_OPT4_NOFN=R-ATT,CMD_SET_ATT_OFF=OFF,CMD_SET_ATT_ON=ON

BTN_OPT5_NOFN=AGC,CMD_SET_AGC_OFF=OFF,CMD_SET_AGC_SLOW=SLOW,CMD_SET_AGC_FAST=FAST,CMD_SET_AGC_AUTO=AUTO

BTN_OPT1_FN=

BTN_OPT2_FN=

BTN_OPT3_FN=

BTN_OPT4_FN=

BTN_OPT5_FN=





For each button (OPT1 to OPT5, with or without FN pressed) the structure of the line is the following:

<btn_name>_<Fn_status>=<btn_caption>,<cmd1>=<option_display_for_cmd1>,<cmd2>=<option_display_for_cmd2>,<cmd3>=<option_display_for_cmd3>,<cmd4>=<option_display_for_cmd4>…

Each button, in both normal and with Fn mode can have 2 or multiple states.

You can have as many commands as you want in the list for each button, but minimum is 2, as you need to have minimum two states (ex ON/OFF). In the example above, ATT (attenuator) button has two states: ON/OFF. The AGC (auto gain control) has 4 states OFF/SLOW/FAST/AUTO. The status following each command execution is displayed on top of the corresponding option button.

  1. Option buttons configuration (with Fn key pressed and with Fn key released) for long click action

BTN_LONG_OPT1_NOFN=

BTN_LONG_OPT2_NOFN=

BTN_LONG_OPT3_NOFN=

BTN_LONG_OPT4_NOFN=

BTN_LONG_OPT5_NOFN=

BTN_LONG_OPT1_FN=

BTN_LONG_OPT2_FN=

BTN_LONG_OPT3_FN=

BTN_LONG_OPT4_FN=

BTN_LONG_OPT5_FN= TUNE,CMD_SET_ATU_TUNE=[Tuning...]


The syntax is the same as for the click action. For both click and long click actions you can have a special syntax for a single action button (in the example above BTN_LONG_OPT5_FN is used to launch a TUNE command on a FT-450 transceiver. The syntax is a little bit different. Instead of ‘…=<option_display_for_cmd4>’ the fomat is ‘…=[<toast_message>]‘. The text included between ‘[..]’ is the text to appear for a short period as an overlay, not in the option button label above.


  1. The list of the available SET commands. These commands are used to set different parameters in the radio and the name always must start with “CMD_SET_...”.

As new features will be added to the application, this section will be extended. The general format of each line from this section is the following:

<cmd >=<byte1>,<byte2>,<byte3>…..

The bytes are effectively transmitted over CAT only after the full command is rebuilt inside the application. Exception is when one of the bytes represent the special ‘pause’ byte (see below).

Now, the byte can be represented in several ways.

<S…> – String – followed by one to an unlimited number of chars. Each character represent the byte to be transmitted;

Example (Elecraft K3):

CMD_SET_MODE_LSB=<SMD1;>

This command will send the following string: ‘MD1;


<Cx> – Char digit. This is used to transmit frequency values and is followed by a number (x) which can be 0 – Hz, 1 – tens of Hz, 2 – hundred of Hz, …., 8 – hundred of MHz, 9 – GHz;

Example (Elecraft K3):

CMD_SET_FREQ_VFO-A=<SFA>,<C7>,<C6>,<C5>,<C4>,<C3>,<C2>,<C1>,<C0>,<S;>

If the frequency is 14.120MHz this command will send the following string: ‘FA14120000S;


<Dxy> – BCD digit. This is used to transmit frequency values and is followed by 2 numbers (x and y from 0 to 9), same as above, as two digits are packed for each byte;

Example (Yaesu FT817):

CMD_SET_FREQ=<D87>,<D65>,<D43>,<D21>,01

If the frequency is 145.225MHz this command will send the following bytes sequence (represented as hex values): 14,52,25,00,01


<P> – Pause. This is a special identifier and is followed by 4 digits representing the pause time in milliseconds. If this special ‘byte’ is encountered, all the previous bytes are sent and then wait for the defined number of milliseconds and then build the next part of the command.

Example:

<P1000>

This will send previous bytes sequence from the command, insert a 1s pause and then go further for the next sequence(s) of bytes (which follows in the same line).


<WEaaaa;bbbbbbbb;cccccccc> – This command is used only for FT8x7 transceivers to write specific EEPROM memory location (some basic commands are undocumented and available only through direct EEPROM writing ).

Enter EEPROM location aaaa (as a 4 digits hex value), first byte (bbbbbbbb) and second byte (cccccccc) as binary values. Use only ‘0’, ‘1’ or ‘x’ for each individual bit value, (x) meaning to keep the old value unchanged.

Example:

CMD_SET_PWR_1.0W=<WE0079;xxxxxx10;xxxxxxxx>

This command will set bit 0 of memory location 0079 to 0 bit 1 to 1 and will keep unchanged the rest of the bits for the same memory location and for the next one (007A). The Write EEPROM command has two steps. In the first one previous values for the two successive EEPROM addresses are read and then only desired bits are changed and the updated values goes back to the EEPROM.


WARNING: It can be very dangerous to modify EEPROM locations. If you have not saved all the transceiver configuration before using this application is better not to use it with an FT8x7 transceiver. Although I took a reasonable number of precautions in the code, use this feature at your own risk!




  1. Radio feedback section

To get radio feedback, several read commands must be defined. The command name must always start with “CMD_READ_...”. A timer is used to execute read commands at a specific interval, which is dependent on the available CAT Baudrate.

The syntax is different than the one used for SET commands and is much more complex:

CMD_READ_...=<priority>,<when to read>,<command - variable length>,<separator>,<nr_of_expected_bytes>,<rec_byte_1>,...,<rec byte_n>

Like for the SET commands, there are several bytes separated by “,”

<priority> - byte to define when the command is executed. Currently possible values are: 01 – at each read timer tick, 02 – at each 4th read timer click. Use 02 for parameters which are not faster updated, like MODE.

<when to read> - byte defining if the parameter must be read during RX only (01), during TX only (02) or during both RX and TX (00)

<command - variable length> - this is the command to be send to read that specific parameter and can have a variable bytes length. The same syntax as for the SET commands is used. There is one more specific command available for this, which applies to Yaesu FT8x7 transceivers only: Read EEPROM value. The syntax of this command is the following:

<REaaaa> - Read EEPROM value from the address aaaa (as a 4 digit hex value).

This command returns 2 bytes, the value at address aaaa and at the next address (aaaa+1)


<separator> - as the command length is variable, wee need to know when the command definition is ended. We use ‘<R>’ char sequence as separator.

<nr_of_expected_bytes> - number of data bytes expected to be received for the read command. This a 2 digit hex number.

<rec_byte_x> - the way received byte number x is to be interpreted. The rule used here includes the definition for the SEND commands bytes, plus:

<00> - byte not containing useful data – to be discarded

<value_received=how_to_set_the_parameter> -


value_received can be represented as a 2 digits hex or a 8 digit binary value. When a binary value is used, possible values for each bit are ‘0’, ‘1’, ’v’ or ’x’. ‘v’ is used when a value span over multiple bits. You can have between 0 and 8 v’s in each binary represented bytes, but they must be contiguous. For example a succession of 4 v’s means that the value to be read is between 0000 and 1111 (from 0 to 15 decimal). ‘x’ means bit to be discarded. If several possible values are to be interpreted, separate them with ‘;




To better understand how to use this, here are some examples from the Yaesu FT817 configuration file:


CMD_READ_SMETER=01,01,00,00,00,00,E7,<R>,01,<xxxx0000=S0;xxxx0001=S1;xxxx0010=S2;xxxx0011=S3;xxxx0100=S4;xxxx0101=S5;xxxx0110=S6;xxxx0111=S7;xxxx1000=S8;xxxx1001=S9;xxxx1010=S9+10dB;xxxx1011=S9+20dB;xxxx1100=S9+30dB;xxxx1101=S9+40dB;xxxx1110=S9+50dB;xxxx1111=S9+60dB>

This command will send at each read timer click (priority = 01), during RX only (when_to_read = 01) the following byte sequence: ‘00,00,00,00,E7’ and wait to receive one byte (nr_of_expected_bytes=01). The received byte is then interpreted as follow. Bit 7 to bit 4 are discarded (x) and for the rest (bit 3 to 0), depending on the specific values, set the S-meter accordingly: for 0000 set it to S0, for 0001 set it to S1, …. , for 1111 set it to S9+60dB.


CMD_READ_PTT=04,00,00,00,00,00,F7,<R>,01,<0xxxxxxx=ON;1xxxxxxx=OFF>

This command will send at each 4th read timer tick (priority = 04), during both RX and TX (when_to_read = 01), the following byte sequence: ‘00,00,00,00,F7’ and wait to receive 1 byte (nr_of_expected_bytes=01).

If bit 7 of the received byte is 0 then interpret this as PTT is active (ON). If is 1, interpret this as PTT is not active (OFF).


CMD_READ_PWR=01,02,00,00,00,00,BD,<R>,02,<vvvvxxxx>,<xxxxxxxx>

This command will send at each read timer tick (priority = 01), during TX only (when_to_read = 02), the following byte sequence: ‘00,00,00,00,BD’ and wait to receive 2 bytes (nr_of_expected_bytes=02). Keep only bits 7 to 4 from the first byte and compose a 4 bit numeric value (0 to 15 decimal). A numeric value is used normally to read one of the following parameters: S-meter, output power, SWR, ALC or MOD. In order to display useful values (standard S-level, power in W, standard SWR or percentage for ALC and MOD), some calibration parameters must be used. In some situations (ex S-meter for FT817) each S value correspond with a fixed received numeric value. Then the calibration data must be omitted (empty parameter)


Available calibration settings are: CALIB_SMETER, CALIB_PWR, CALIB_SWR, CALIB_ALC and CALIB_MOD.

The syntax for each calibration setting is the following:

xx=valxx’ – xx – received 2 digit hex value, valxx - parameter value corresponding to that received value. You can specify multiple points, useful when the value variation is not linear. For the intermediary values, linear interpolation is used to calculate that parameter real value. If latest value is not the highest possible value, any values greater than that one will be represented with “>”. This usually happen only for SWR parameter (ex. SWR > 10).


NOTE: If a parameter read definition contains ‘v’, then a calibration setting is mandatory). You can use Debug/Logging mode (see here) to read radio response to read meters commands in order to help you define calibration parameters for your specific radio.


You can define the list of commands you want to use in order to get feedback from the radio, using POLLING parameter, ex:

POLLING=CMD_READ_FREQ&MODE,CMD_READ_PTT,CMD_READ_VFO,CMD_READ_SMETER,CMD_READ_SWR,CMD_READ_PWR,CMD_READ_ALC,CMD_READ_MOD


It is recommended not to use too many parameters as this will slow down the feedback.



Currently only the following feedback commands are implemented:

CMD_READ_FREQ&MODE (FT8x7 only)

CMD_READ_FREQ (not applicable to FT8x7)

CMD_READ_MODE (not applicable to FT8x7)

CMD_READ_PTT

CMD_READ_VFO

CMD_READ_SMETER

CMD_READ_PWR

CMD_READ_ALC

CMD_READ_SWR

CMD_READ_MOD


  1. Startup commands – a list of commands to be sent after transceiver power up.

This is a list of commands, separated by ‘,’ using ‘STARTUP’ as name

Example:

STARTUP=CMD_SET_LOCK_OFF

There is a special startup command with no definition: CMD_SET_PARAMS_FROM_INTERFACE. If this command is added to the STARTUP line, a set of commands will be send automatically at each power on in order to set the radio as it was before stopping the application last time. This will pass through all option buttons status and send corresponding commands.

This is used to keep the radio in sync with the application, especially when, for a specific reason, you don’t want to use feedback. Each new button press is memorized in the configuration file. When you exit and then re-enter the application, last status is restored for all option buttons.

Some commands are sent automatically when long pressing round blue power button inside the application: CMD_SET_POWER_ON and CMD_SET_POWER_OFF


Not using feedback does not seems to generate lost sync, even at higher speeds, but make all the controls very responsive (ex. the tuning wheel).

Changing application font size

Under normal circumstances, the font size is automatically set by the application at first start.

For some Android devices is possible that application fonts to be too big or too small (based on the system settings), or you just want to adapt it to your own preferences. You can change the size of the font by selecting “FONT SIZE” menu.


NOTE: You can change font size only when the receiver is OFF. For this purpose slide the finger vertically up or down in the left part of the frequency display to increase/decrease font size.


When you are satisfied with the result you can press on the round blue power button. The new font size will be automatically saved in the application configuration file. When you further run the application, the new font size will be used.

Activating logging/debugging mode

If you long press on the BAND button when the radio is off, you will activate debugging/logging mode. This can be useful for application debugging or to help you define meters calibration parameters in the radio configuration file.

Debug mode is automatically disabled when you power off the radio or exit the application.

When in Debug mode, a yellow label “Debug” will be displayed and the info will be available in the orange info box in the lower part of the screen.

Application forum

There is a dedicated forum for this application on my web site here:

http://www.yo3ggx.ro/forum/viewforum.php?f=15

Please join it to discuss any details about Pocket RxTx. This will further help other interested users.

Practical demonstration

A short video demo of of a very old version of the application (0.3) is available on YouTube.

http://www.youtube.com/watch?v=b3LWF4xa6nE

The Waterfall and Spectrum features in version 0.4 can be seen in the following YouTube video.

http://www.youtube.com/watch?v=qsJUc98oHS8

Please subscribe to my channel (Dan Toma) to be automatically informed when a new video will be available.

Bibliography

The KA7OEI FT-817 pages - http://www.ka7oei.com/ft817_meow.html

Icom CI-V protocol - http://www.plicht.de/ekki/civ/civ-p0a.html

Kenwood PC control protocol - http://www.kenwood.com/i/products/info/amateur/ts_480/pdf/ts_480_pc.pdf

FT-450 CAT operation reference book - http://yaesu.com/downloadFile.cfm?FileID=2600&FileCatID=158&FileName=FT-450_CAT_Operation_Reference_Book.pdf&FileContentType=application%2Fpdf

Elecraft K3 and KX3 Programmer’s reference - http://www.elecraft.com/manual/K3&KX3%20Pgmrs%20Ref,%20E11.pdf

Application history

Version 0.3 (Feb 3, 2013).

First release of the application in the current form.

Version 0.4 (Feb 10, 2013).

What’s new/changed:

Bugs solved:


Version 0.4.1-3 (Feb 17, 2013).

What’s new/changed:


Bugs solved:

Version 0.5 (Feb 26, 2013).

What’s new/changed:


Bugs solved:

Version 0.6 (Mar 12, 2013).

What’s new/changed:


Bugs solved:

Version 0.6.4 (Jun 8, 2013).

What’s new/changed:


Bugs solved:


Version 0.7 (Aug 24, 2014)

What’s new/changed:


Version 0.7.1-7 (Aug 29, 2014)

What’s new/changed from 0.7:


Bug fixes:


Version 0.8 (Aug 9, 2015)

What’s new/changed from 0.7.1-7:


Bug fixes:


Version 0.8.1 (Aug 30 , 2015)

What’s new/changed from 0.8:

Bug fixes:


For any queries regarding bugs or features requests please join and use the application dedicated forum here:

http://www.yo3ggx.ro/forum/viewforum.php?f=15


To see more videos about my projects and to be informed about any news please subscribe to my YouTube channel here:

http://www.youtube.com/channel/UC3eDuq-p4mcwWYE3-pZmObQ/videos?view=0




If you want to contribute to further developments please donate using the link available on my web page here:

http://www.yo3ggx.ro/



Please send me your feedback. Further development of the application fully depends on YOU.

pocketrxtx_v0.8.1.pdf Bucharest, Aug 30th 2015 – © Dan Toma – YO3GGX – yo3ggx@gmail.com

42