Pocket RxTx – Multimode Transceiver Control for Android

Version 0.9.0-16

Dan Toma - YO3GGX - yo3ggx@gmail.com

Please read the Privacy Policy first.

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:

Specific functions direct CAT mode:

Specific functions in SDR Receiver mode:


Current version of the application has the following limitations:


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

If the application was newly installed or fully initialized with a ong press on START button and then on ALL, at first start you will be prompted to choose the default mode: Direct CAT or WebSDR.

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 touching one of the orange hands.

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. You just have to send your configuration file to be my e-mail. 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.

If ALL button is pressed, the full application configuration folder will be removed from the Internal Storage and you will be prompted with the following message:

You need to restart the application after pressing OK button.

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 in red for a short period of time in the central part of the screen, if that server is unavailable at that moment in time. Unavailable servers will not further appear 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.

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, or on the yellow cogwheel.

NOTE: You can select the WebSDR server from the startup page too, by long pressing on 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.

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

Setting the bandwidth

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:

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.

Using direct CAT mode

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.

1st icon

Connection mode




2nd icon

Audio Status

Audio ON

Audio Off

3rd icon


Secure Authentication ON

Secure Authentication OFF

Configuring direct CAT mode

For each connection mode (Bluetooth, USB or Network), a different setup page will be displayed.

NOTE: Starting with version 0.9.0-16 you can enter setup page only when radio is off.

Bluetooth mode

In this mode you don’t have to configure anything. If a previous connection was successful, then this one is stored in the configuration file and in the setup page you can see the name and the MAC address of the Bluetooth interface you were connected to.

In the lower part of the screen, you can see 5 buttons used for specific configurations. The 5 buttons are present in each connection mode setup and are visible only in the paid version of the application:

  1. ANIMATIONS – used to activate/deactivate interface animations. When activated, button background goes green.

  2. NOTIFIC – used to activate/deactivate application notification. When notification is activated and application is running (even in the background), a small orange icon will be visible in the task bar. When the application is started a small device vibration will show you that the notification is active.

  3. NOSTDBY – used to enable/ disable automatic standby of your device. When active, the device will never go to sleep and the display will be always on. Please take into consideration that this will drain your battery much faster, so is better to use it only when the device is connected to an external power source.

  4. TBD – to be defined. The buttons are reserved for a future version of the application.

To go back to the radio screen, press the back button of your device.


When a supported USB CAT cable is connected to your device before starting the application, you will get the following screen:

Some info about the cable is displayed. In the current version of the application you can select only the Baudrate, the same set in the radio CAT menu. When ready press SET button to save the configuration and return to the radio panel.

NOTE: Only PTT over CAT is supported when connected over USB.


3 network modes are available:

  1. jAReC

  2. RigExpert WTI-1 (CAT only for the moment, no audio)

  3. Droid ARC (an Android version of jAReC, not yet available (under development)

NOTE: At first run all the fields are empty.

Some parameters are available only in RigExpert WTI-1 mode (Audio level, Baudrate, PTT port). In jAReC mode, the Audio port is always the CAT port + 1.

Press the yellow lock to toggle authentication ON/OFF. You can enter the secret only when the authentication is activated. The secret is mandatory if authentication is activated

Press the round blue speaker to toggle audio ON/OFF. In RigExpert WTI-1 mode, you can adjust audio level only if audio is activated (not yet available). 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.

You need to enter the hostname (or IP address) and the TCP port of the PC where jAReC is running (in jAReC mode) or of the WTI-1 WiFi interface (in RigExpert WTI-1 mode).

When ready press SET button to save the parameters in the configuration file. If you want to discard the changes, press CANCEL to return without saving the parameters.

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.0-16) as Pocket RxTx application. New versions of Pocket RxTx may require new versions of jAReC. Even no changes will occur in jAReC, the version number will be updated to be in sync with the one of Pocket RxTx.

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 over the network (Windows, Linux or Mac) and run 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 as many sets of 5 option buttons as you want, by just editing the configuration file. The green Fn button will show you the current set from the total number of sets. In the picture above, I have 4 sets (20 possible CAT settings). You can switch between the sets with a press on Fn button. For each set of option buttons, you have a set of memory buttons too, so in this case you can have 4x8=32 memories.

NOTE: To keep compatibility with older configuration files, if no specific parameter is defined for the number of sets, then you can define only two sets (16 memories and 10 option buttons).

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, one by one, based on the previous state. Current state is displayed in the corresponding option label.

Long pressing an option button behaves differently based on how many states are defined for each button short press:

  1. No command defined for short press – you cannot define a command for long press. An unused option button is available, so there is no reason to use it only for long press.

  2. One or two commands defined for short press – the command defined for button long press is executed. The label associated with that command is displayed as a message. You can use this for example on a button which by short press activate/deactivate the internal ATU and a long press will initiate the tuning, displaying a short message “Tuning…” (similar with the operation from the transceiver keyboard). Check the configuration file for Yaesu FT-450 for an example)

  3. 3 or more commands defined for short press – then a long press will go back to the previous state. Even a command is defined for a long press, this will never be 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. By default, at first start, radio feedback is deactivated. Status is then kept in the configuration file.

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.

Starting with version 0.9.0-16, another yellow dot is visible in the upper right part of the UTC clock area. This is used to display the heartbeat, a special packet sent by the application to jAReC (or WTI-1 interface) at each 8s. If

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 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 or if a timeout defined in jAReC occurs. This sticky mode can be useful when you need to talk and to have the hands free.

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 FT230XS UART VID: 0x0403 PID: 0x6015

FTDI FT232R UART VID: 0x0403 PID: 0x6001

RT Systems CT29B VID: 0x2100 PID: 0x9E54

RT Systems USB-62 VID: 0x2100 PID: 0x9E56

Arduino VID: 0x2341 PID: xxxxxx

Teensyduino VID: 0x16C0 PID: 0x0483

Atmel VID: 0x03eb PID: xxxxxx

CP210x UART Bridge VID: 0x10C4 PID: 0xEA60

Prolific PL2303 VID: 0x067b PID: 0x2303

CH340 VID: 0x1A86 PID: 0x7523

Using the Memories

You have two sets of memories (M1-M8 and M9-M16) for each available WebSDR server and a user configurable number of sets for direct CAT mode.

Saving to a Memory location

Each memory location saves the state of all defined option buttons (if more than one state), of the two wheels and the 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 restored and the option buttons status synchronized with the saved values.

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.





; Number of sets for the option button and memories (require prxtx >= 0.9.0-13). For the older versions defaults to 2.


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.

SETS – the number of option buttons/memories sets. Ex: if this value is 5, you have 5x5=25 options buttons and 5x8=40 memories.

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

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

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

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

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

  1. Defining CAT commands for specific hardware keys (KEY_DOWN and KEY_UP events)










You can define up to 3 hardware buttons to execute specific CAT commands for the two possible events. By default the first key definition is used for PTT and can be configured from the application interface. See here for more details.

To find the Keycode you can use the GUI to define the PTT key. For each even you can define a CAT command using standard format.

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


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!

  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:


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 (not applicable to FT8x7)

CMD_READ_MODE (not applicable to FT8x7)








  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



There was a special startup command with no definition: CMD_SET_PARAMS_FROM_INTERFACE which becomes obsolete starting with version 0.9.0-16. Now the last status of the radio is stored in the memory 0 and is automatically loaded at next restart.

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

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

Defining hardware buttons for CAT commands

You can define up to 3 hardware keys on your device with commands for the KEY_DOWN and KEY_UP commands.

For the PTT command, you can do this from the GUI. For this long press on the green Fn button when in Direct CAT mode and radio off. You will be prompted to press the key you want to be used as PTT.

On standard Android devices, you can use any key except the STANDBY/ON one. Usually you can have VOL UP, VOL DOWN and (sometimes) CAMERA SHUTTER. Press the desired button (ex. VOL DOWN). The code of that key will be displayed and you have the option to set, clear or cancel.

To define the other two optional hardware buttons, you need to edit the radio configuration file (see the chapter about the configuration file for more details).

Changing the iCOM radio address

If you want to change the radio address for an iCOM radio, in the startup page, short press on the info box in the right part of the screen. You will be prompted to enter/modify the address.

Locking the interface

You can lock the interface of the application and the one of the transceiver (if CMD_SET_LOCK_ON and CMD_SET_LOCK_OFF CAT commands are defined). For this you need to long press on the green Fn button when radio is on.

The button caption will change to “LOCKED”.

Long press the button again to unlock it.

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:


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.


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

Application history

Version 0.3 (Feb 3rd , 2013).

First release of the application in the current form.

Version 0.4 (Feb 10th , 2013).

What’s new/changed:

Bugs solved:

Version 0.4.1-3 (Feb 17th , 2013).

What’s new/changed:

Bugs solved:

Version 0.5 (Feb 26th , 2013).

What’s new/changed:

Bugs solved:

Version 0.6 (Mar 12th , 2013).

What’s new/changed:

Bugs solved:

Version 0.6.4 (Jun 8th , 2013).

What’s new/changed:

Bugs solved:

Version 0.7 (Aug 24th , 2014).

What’s new/changed:

Version 0.7.1-7 (Aug 29th , 2014).

What’s new/changed from 0.7:

Bug fixes:

Version 0.8 (Aug 9th , 2015).

What’s new/changed from 0.7.1-7:

Bug fixes:

Version 0.9 (Mar 11th , 2016) – experimental version

What’s new/changed from 0.8:

Bug fixes:

Version 0.9.0-16 (Aug 21st , 2016) – experimental version.

NOTE: Starting with this version, some of the features will be available only in the paid version

What’s new/changed from 0.9 (both free and paid versions):

New/changed features available only in the paid versions:

Bug fixes:

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:

http://www.yo3ggx.ro/ or consider to install the paid version of the application.

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

pocketrxtx_v0.9.0-16.pdf Bucharest, Aug 21st 2016 – © Dan Toma – YO3GGX – yo3ggx@gmail.com