Dan Toma - YO3GGX - email@example.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.
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.
Current version of the application has the following generic features:
Works on any Android device, including smartphones, tablets and Google TV, with a minimum resolution of 320x240 and Android version 2.1 or higher. For USB support Android v3.1 or higher is required, or to have USB host support installed for Android 2.3.x;
Works in both portrait and landscape modes;
Tuning through the rotary knob or by directly entering the frequency from a numeric keypad (in MHz);
Up/Down buttons to change the frequency with a preset step (+ or -), which depends on the selected band;
16 presets (all currently available parameters are saved). For each of the 16 memories all parameters are saved (frequency, alias, description, band, mode, etc.);
ON/OFF button. When off, the application is disconnected from the server/transceiver;
Select band from the pool of available ones
Select operation mode (AM/ LSB/USB/CW/ etc.)
Display SWR in both graphical and text mode
Default application font size does not depend on the system settings
If you are not satisfied with the default font size, you have the possibility to change application font size to match any device or taste. Font size is then stored in the config file and displayed on the startup screen at next run;
A FN key to extend the number of memories to 16 and for second function of the options buttons
UTC clock included in the interface.
Specific functions direct CAT mode:
Can connect to the transceiver over Bluetooth, USB/Serial or Network;
Network connection can use secure authentication;
Bi-directional audio support, so no need for external applications (like Skype);
Radios support is based on text plugins and can be extended by the users. Support for the following transceivers is already available in the central repository, accessible from the application GUI:
Yaesu: FT-100, FT-817, FT-857, FT-897, FT-450, FT-950, FT-991, FT-1000MP, FTDX-5000;
Kenwood: TH-F6/F7, TS-480, TS-570, TS-590, TS-870, TS-2000;
Icom: IC-718, IC-746, IC-746Pro, IC-7000, ICR-7000, ICR-71E, IC-7200, IC-7400, IC-9100;
Elecraft: K3, KX3;
Mini: SW-2012, SW-2012C;
Control the following functions of the transceiver (extensible and customizable by the user): Mode, Band, VFO, Output Power, PTT, ATU (ON/OFF), Tune, AGC, NR, NB, IPO
User configurable radio feedback for several CAT commands.
Specific functions in SDR Receiver mode:
Can connect to multiple WebSDR servers. New servers can be added in the future without requiring application update;
Control Mode (AM/USB/LSB/CW/FM), bandwidth (Normal/Narrow/Wide), Band;
Display waterfall or spectrum per band;
Waterfall/spectrum zoom up to 8x;
Slow speed AGC for Waterfall;
Configurable audio buffer size (experimental);
Automatic latency control based on link quality(experimental);
Current version of the application has the following limitations:
A limited number of tests were performed by me. Application may have bugs, or can crash for apparent no reason. With your help issues will be solved one by one and new features will be added;
Encryption is used only for the initial authentication, then all the traffic is unencrypted, for both CAT and audio.
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!
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 display, only when audio is activated.
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):
NOTE: In the taskbar you can see a small orange icon, which will be present if the application is started, even if is running in the background. If you press that icon, even if another application is in foreground, a notification will show you that Pocket RxTx is running. Pressing on that notification you will force the application to go in foreground.
The behavior can be different for different Android versions. On newer versions (>=5), you will be able to force closing the application by pressing on the notification.
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. When you switch in the second mode (named Direct CAT) for the first time after the installation of after a full reset of the application, you will be prompted to download the configuration file for your specific radio from the central online repository.
You need to select and download minimum one radio configuration before going further. Use the left wheel to select radio brand and second wheel to select model. Third wheel is used to select between several configurations for the same radio, if available.
Any user is welcome to publish his own configuration in the central repository, in order to share it with other users of the same transceiver. For each configuration you can see some comments (ex. changes), the name and callsign of the person who created that configuration and the date/time of the files.
After you select the desired configuration file press on LOAD in order to save it locally. You will be prompted to save or cancel.
Last used mode (WebSDR client or Direct CAT) is saved when you exit the application, so at next start will enter directly in that mode. At the next start in Direct CAT mode the startup page will show up your previously loaded radio.
NOTE: You can load as many radio configurations you need, even all available, but only one version for each radio.
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 (ALL) or to reload the list of the WebSDR servers (RELOAD) 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 radio configuration files in the application folder.
Later about this in the dedicated chapter of the user manual.
The blue button is mode sensitive. In WebSDR client is named “HELP” and is used to access the application online help (through a short press). In Direct CAT mode is named “Hlp/Cfg”and is used to access the application online help (short press) or radio configuration page (long press), which looks like below.
Pressing on LOAD you go to the page allowing you to load radio configurations, described above (see here).
Pressing on EDIT you can edit the text configuration file directly on your device, for example if you want to make some changes to the default file). You will be prompted to select the text editor you want to use to edit the file.
I recommend you to download Total Commander, available for free in Google Play Store.
Press on your preferred text editor and then on “Always” or “Just once”, as you wish. The configuration file will be open in that editor and you can make changes.
When ready, save your changes and exit the editor. You will return to the Pocket RxTx startup page.
Press on START button to go to the application main screen.
Note: When in WebSDR client mode, you need to wait for the list of servers to be loaded from the central repository, together with the configuration of each online and available server which will be stored locally. During this period, the orange button will display “WAIT…” and all the WebSDR servers from the list will be parsed for configurations (callsign is displayed for a short time in the central of the screen, in green color if available or red color if unavailable at that moment in time. Unavailable servers will not be further displayed in the list. At the end you will be able to see the number of available servers from the total number of servers registered with Pocket RxTx.
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.
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.
NOTE: You can select the WebSDR server from the startup page too, by pressing the server picture.
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 in the selection page 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.
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):
“WebSDR” mode displayed in the top left corner;
WebSDR server callsign (YO3GGX);
WebSDR server location (KN34bk);
A big light green display for the tuning frequency;
Currently selected HAM band (or NoHAM if outside official HAM bands);
S-meter level. Numerical value for S is displayed on top;
8 memory buttons used to store all the settings (Freq, mode, info, etc.) - extended to 16 memories through the green FN (function) button;
A wheel used to select operation mode (LSB/USB/CW/AM/FM). Any change will be send to the server in real-time;
A wheel used to change the bandwidth (Normal/Narrow/Wide);
+ and – buttons to increase/decrease frequency with a step depending on the current HAM band. By keeping one of these button pressed, you will enter a “Repeat” mode for faster change;
A rotary knob which can be used for tuning, like the one available on a real transceiver. When slow rotating, the step is 10Hz, when fast rotating is higher;
An ON/OFF button used to turn ON or OFF the connection to the WebSDR server. When OFF, the display will be completely dimmed and buttons locked;
A Function (FN) button to switch between the two groups of memories (M1-M8 and M8-M16) and to further select the second function for the 5 option buttons (not all used in WebSDR client mode);
A gray slider on top of the frequency display used to activate the Waterfall or Spectrum mode;
A gray button named SP/WF, used to select between big frequency digits/Waterfall/Spectrum (3 possible states)
A gray button named “BUFF”, used to set the audio buffer length (experimental). The button has multiple states, passing through the following values which will be displayed on top of that button: 8000, 16000, 32000, 48000, 96000. With a long press you set the default value (8000);
A gray button named “NTCH”, used to activate the notch filter;
A gray button named “ZOOM”, used to zoon into the Waterfall or Spectrum;
An orange box in the bottom of the screen used to display customized info (if available);
A BAND button used to change the band. When you press on this button, only the available bands for the currently selected server are displayed. You can select any the available HAM by just pressing on the corresponding button.
A big blue button. In this mode it is only used to set the frequency from the numeric keypad (see further);
You can directly enter the frequency you want. For this purpose long press on the frequency display to activate the numeric keypad. The rotary knob will be replaced by the keypad and the big blue button will change to “SET”, as in the following images (both landscape and portrait modes):
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.
To access the Waterfall drag the gray slider down, over the frequency display, or press on the SP/WF button. 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.
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.
You have 3 presets for the bandwidth in WebSDR client mode, depending on the current modulation type, as follows:
Narrow: +/- 2.5 KHz
Normal: +/- 4 KHz
Wide: +/- 6 KHz
Narrow: 0.7 – 2 KHz
Normal: 0.3 – 2.7 KHz
Wide: 0.2 – 3 KHz
Narrow: 0.72 – 0.78 KHz
Normal: 0.6 – 0.9 KHz
Wide: 0.55 – 0.95 KHz
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.
An experimental automatic latency control is used in the current version. The meaning of this is to provide lower latency for old devices and when the Internet connection quality is not optimal.
The status of this is represented by the UTC clock background, as follows:
Red - higher latency, trying to recover
Yellow – medium latency, further trying to recover
Green – low latency
NOTE: Latency is adjusted using variable audio bitrate, which is possible to affect the sound pitch. Based on the practical results, this experimental feature may be removed in a future version of the application.
In the startup page you need to select the right transceiver type 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.
Secure Authentication ON
Secure Authentication OFF
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:
NOTE: As a general rule, use jAReC application with the same version number (in this case 0.9) as Pocket RxTx application. New versions of Pocket RxTx may require new versions of jAReC.
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 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 20 commands (5 option buttons without or with Fn, with short or long press). 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.
There is a feature implemented for the PTT button. If you press on PTT button, the transceiver will go in Tx mode till you release it, like on a normal transceiver. If you press and slide your finger vertically over the PTT button, the PTT will enter sticky mode. The transceiver will remain in Tx till you press the button again of timeout defined in jAReC occurs. This sticky mode can be useful when you need to talk and to have the hands free.
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.
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
You have one set of memories (M1-M16) for each available WebSDR server and one for direct CAT mode.
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.
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.).
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.
For each transceiver available in direct CAT mode two files are required:
A configuration file with the filename < brand>_<model>.radio (ex. yaesu_ft450.radio)
A 480x320 JPG image representing the radio, with the filename <model>.jpg (ex. ft450.jpg)
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):
The header – general info about the radio.
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.
Radio frequency range, frequency steps and available HAM bands
; Frequency coverage(sections separated by ',')
; 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
; List of available Bands
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:
NOTE: Only BANDS or (BANDA and BAND) must be filled in.
First wheel (default is Mode) content:
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;
Second wheel (default is Output Power) content:
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;
Option buttons configuration (with Fn key pressed and with Fn key released) for click action
For each button (OPT1 to OPT5, with or without FN pressed) the structure of the line is the following:
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.
Option buttons configuration (with Fn key pressed and with Fn key released) for long click action
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.
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:
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.
by his hexadecimal representation (2 hex chars): ex. : 13,A2,FF,9D
by a non hexa (direct) representation. In this case the full byte is included between ‘<…>’. First character after ‘<’ reprezents the type of data which follows, and can be:
<S…> – String – followed by one to an unlimited number of chars. Each character represent the byte to be transmitted;
Example (Elecraft K3):
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):
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):
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.
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.
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!
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 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:
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.
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).
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:
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)
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
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).
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.
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.
There is a dedicated forum for this application on my web site here:
Please join it to discuss any details about Pocket RxTx. This will further help other interested users.
A short video demo of of a very old version of the application (0.3) is available on YouTube.
The Waterfall and Spectrum features in version 0.4 can be seen in the following YouTube video.
Please subscribe to my channel (Dan Toma) to be automatically informed when a new video will be available.
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
First release of the application in the current form.
waterfall and spectrum added in SDR mode;
connection/power status LED replaced with a circular light around power button;
to toggle ON/OFF you have now to long press on Power button ;
mute button added;
waterfall/spectrum zoom (x1, x2, x4, x8);
you can now select the language for the online user manual or HELP menu;
exit menu added;
default font size is auto scaled based on device type/config;
other small cosmetic changes (ex. info frame background changed to Black, rounded buttons, gray background for help, etc.).
feedback for PTT and S-Meter added in HRD mode
support extended to more functions/transceivers (see the table)
cannot change mode because of feedback from transceiver
in HRD mode the power is not read correctly at startup
if Off and then On does not connect anymore to HRD (need to restart app)
do not keep mode and bandwidth settings when rotating in SDR mode
sound dropouts in SDR mode
USB CAT support in FT8x7 mode (Only FTDI and CP2102 based USB-Serial adapters are supported for the moment);
ask to activate Bluetooth if disabled at application startup;
added support for : FT-840, IC-718, IC-746pro in HRD mode;
symbol added on the main screen to display current mode (HRD, SDR, Bluetooth, USB);
better handling memory load/save/edit;
optimize feedback (Freq, mode, PTT, S) in HRD mode;
better handling MODE/PWR/BW wheels updates;
real power read for FT817 at startup or band change (not only 5W/0.5W);
Max Power no more on the display as it is represented by the wheel;
Max power saved for each memory location;
other small bug fixes;
small cosmetic changes;
no graphical representation for S level;
the power is not set correctly for some transceivers (ex. IC-7200);
memory edit field overwritten by the frequency digits in portrait mode;
when starting in SDR mode the BW wheel does not correctly represent current BW
last freq/mode/BW not saved in SDR mode if exit;
multi WebSDR servers support;
slow AGC for waterfall (better contrast without fast changes);
High/Low quality mode for Waterfall/Spectrum;
use camera hardware button (if available) as PTT;
added support for IC-7000 in HRD mode;
when you manually edit the frequency the display is cleared at first key press;
USB symbol remains when starting in FT8x7 mode even if USB is not activated;
incorrect UTC time if time zone is negative;
PTT does not work for TS-2000;
crash if no USB host support available on the smartphone/tablet with os version 2.3.x;
bands not saved/recalled when changing memories;
fully redesigned SDR routines to allow playback on low performance Android devices too (ex. WM8650);
save/load config and/or memories to a file;
automatically load memories and last frequency per WebSDR server, if a file exist with the server callsign name;
memories are now separate per operation mode (SDR/HRD/FT8x7) and saved to external files, not internally;
second location for servers master data, for redundancy;
display bandwidth in SDR mode;
better handling of waterfall AGC;
automatically set the default font size independent on the device type/model (font size no more dependent on system font size settings);
easier procedure to set font size if the default one is not acceptable;
toast message to long press on Power in order to start;
Waterfall AGC active only when no zoom.
Up/DOWN steps are now aligned at first press (useful when changing channels in VHF/UHF bands) .
11m Band button does not work;
cannot access 2m and 70cm bands in HRD mode (IC-7000).
fully redesigned application engine;
slightly redesigned graphical interface;
all WebSDR servers info is cached in the application at startup for faster switching;
all servers availability is checked at startup and if no available then that server is automatically removed from the list;
HRD mode was removed;
a new mode – direct CAT was added, which is based on text plugins. These allows users to add support for new transceivers without the need for an application upgrade;
transceivers supported in this version in direct CAT mode (for some of them just basic commands are included in the configuration file):
Kenwood (not tested): TS-480, TS-870, TS-2000
Icom (not tested): IC-718, IC746, IC-7000, IC-7200
Yaesu: FT-817, FT-857, FT-897, FT-450
Elecraft (not tested): K3, KX3
What’s new/changed from 0.7:
add debug log
you can now enter radio address for Icom transceivers
new type included in the radio config file: '<A>' - for Icom radios, enter the radio address
add embedded support for IC-7400
updated config file for Icom transceivers
do not automatically enter in SETUP if in Bluetooth or USB/Serial mode
version 9 servers (like I1YRB) are supported again
radio pictures no more visible in Android Gallery
an error at application startup in v0.7 (package not found)
if manually enter the frequency and after that use the wheel, there is a frequency jump back
Java error if changing back from SDR mode to CAT after entering WebSDR mode.
S-meter in WebSDR mode stops if changing orientation;
PTT button wrongly activated in WebSDR client mode when changing orientation or manually entering frequency;
invalid waterfall for some WebSDR servers
crash when changing between some of the WebSDR servers
some glitches in the graphical interface
What’s new/changed from 0.7.1-7:
a paid version of the application (with no ads) is now available
implementation of a new CAT engine supporting customizable radio feedback
several new parameters in the config file (check the full list in the radio configuration file section here)
user customizable radio status feedback, speed of feedback based on available CAT Baudrate
embedded support added for the new transceivers (new tags available in the radio configuration file):
Kenwood TH-F6/F7, TS-480, TS-590
Icom IC-R71e, IC-R7000
sticky PTT option in direct CAT mode
sound server using raw 48000bps data to provide support for external applications with stream reconnection. Used TCP port is user configurable
you can now toggle audio output between media and voice, allowing you to use a cheap Bluetooth headset (without A2DP support) to listen to the radio
change Encryption to Security, as full encryption is still not functional
messages when changing security mode
new config file parameter '<VFO>" to better handle VFO selection based commands
no more Ad block warning
configurable frequency step (brute and fine) per frequency interval, as a new parameter in the radio configuration file
better handling for Bluetooth device discovery and connection
reset Bluetooth with a long press on "Bluetooth" button
display the correct band based only on tuned frequency, from 3Hz up to 3GHz
application menu was removed, all the menu features available now directly in the interface
a dual function Help button available in the startup page (open online help or edit radio configuration file)
launch default text editor for the configuration file directly from the application startup page with a long press on Help button
long press on BAND button when off to toggle logging (debug mode), display meter calibration data in RDS label
in WebSDR mode can now be used any names for the bands.
set application font size directly from the main application window GUI (no more a menu item)
lower audio latency in WebSDR client mode
cleaner spectrum in WebSDR client mode (using some averaging)
java error “Java.io error FileNotFoundException” when starting the application
when entering Setup in direct CAT mode all text entries are cleared.
connection status circular LED goes blue when returning from standby even if connection is over network or USB.
wrong circular LED color when switching back from standby or from setup mode
authenticated mode not saved between app restarts
AndroidManifest.xml error at application startup.
secure authentication does not work on some 4.x.x devices
Java error when changing orientation and then selecting another WebSDR server.
when switching between WebSDR client and Direct CAT modes after application start, connection mode (button color) and radio/model selection is lost
What’s new/changed from 0.8:
redesigned meters for better visibility
notification about the app running in the background, including an icon in the status bar
for each radio the CAT protocol document is now stored locally (if PDF) or loaded from a Web page if URL
changed operation mode for sticky PTT (swipe the finger vertically over the button for sticky PTT)
experimental audio change in WebSDR client mode (configurable buffer length, auto latency control)
S-meter changed to S, to gain some space
the waterfall can now be activated from an option button
SndSrv configuration removed from the GUI as is not yet used with any other application
AUTO mode to BUFFER button (reset to AUTO when long pressed
HELP button now bigger and mode sensitive text
new engine to load WebSDR servers info
remove the 20 servers limit for WebSDR client mode
WebSDR servers list sorted. Fastest servers are now on top.
click on the server image in the startup page (WebSDR mode) to enter WebSDR client setup
supports now PTT over CAT, RTS or DTR (same or different COM port than the one for CAT), only with jAReC >= 0.9.0
PTT user defined timeout (in seconds), only with jAReC >= 0.9.0
fix a bug in sound routine
fix some java errors at startup requiring configuration file reset
cannot install app on some devices with some SD cards format
if authentication set in jAReC and no authentication in Pocket RxTx, CAT does not work but audio is started
if in Direct CAT over Bluetooth or USB mode, hostname/port and secret are still required in the setup page
For any queries regarding bugs or features requests please join and use the application dedicated forum here:
To see more videos about my projects and to be informed about any news please subscribe to my YouTube channel here:
If you want to contribute to further developments please donate using the link available on my web page here:
Please send me your feedback. Further development of the application fully depends on YOU.
pocketrxtx_v0.9.pdf Bucharest, Mar 11th 2016 – © Dan Toma – YO3GGX – firstname.lastname@example.org