(j)ava (A)udio and (Re)mote (C)ontrol

A Java multiplatform application to securely make your transceiver available for CAT and audio over the LAN or WAN

Version 2.0

Dan Toma - YO3GGX - yo3ggx@gmail.com


This is a very simple to use multi-platform Java application which can be used to redirect one of your computer serial ports and one audio port to Ethernet. In this way you will be able to connect to any serial port (embedded, USB/Serial modules or Bluetooth modules) remotely over the network and transport audio too with a special client. Some of my Android applications, are able to serially connect over the Ethernet so this can be a nice addition. PocketRXTX Android application can use the secure authentication feature to securely connect and control (CAT) your radio transceiver over Internet, with audio support.


Current version of the application has the following features:

IMPORTANT!!!: To keep compatibility with Pocket RxTx, you must respect the following rule. If version is x.y.z-w, to pair jAReC with Pocket RxTx (Free or Pro), both must have the same x, y and z values in the app version. To find current version, use Help > About for jAReC or short press on the application name in the startup page for Pocket RxTx.


Current version of the application has the following limitations:


Use this application on your own risk. I cannot be held responsible for any damage caused to your system.

Starting the application


To start the application in Windows, if you have previously installed Java Runtime (from Oracle), just click on the file (jAReC.jar). You will get the following window:


Using a terminal enter the following command when you are in the folder containing the program:

java –jar jAReC.jar

NOTE: With java runtime version 9, you may get the following error:

ES2 Prism: Error - reported GLX version = 1.2

GLX version 1.3 or higher is required

In this satiation run the application using the following command:

java -Dprism.order=sw -jar jAReC.jar

You will get a window similar withy this one:

Mac OS

Using a terminal enter the following command when you are in the folder containing the program:

java –jar jAReC.jar

You will get a window similar withy this one:

Note: This application is not yet compatible with Java 9, so please use the latest 8u version. Currently was tested with Java SE Runtime Environment 8u162 downloaded from here:


Configuring Authentication and Encryption

From the File menu select “Security”. You will get a window similar with this one (on all platforms).

Check to select/unselect authentication. Encryption is not available in the current version, only secure authentication. Authentication is selected by default. Enter a secret in the white field. This must be a string longer than 3 chars and cannot contain ‘*’ char. When you are ready click “OK”

Configuring Audio

From the File menu select “Audio”. You will get a window similar with this one (all platforms).

You need to select Audio In and Audio Out device to point to the audio interface connected to the transceiver.

Check “Use Audio” and press OK.

Configuring Custom Commands

From the File menu select “Custom Cmd”. You will get a window similar with this one (on all platforms):

To add a new custom command, enter the command/script with the full path in the text box, then press “Add”. The command will be saved using the first available index, ‘02’ in this case. Use this index to assign the command in Pocket RxTx Pro, as “Command02”.

In this example, when “Command02” is executed by pressing an option button in Pocket RxTx Pro, Notepad is launched on the PC where jAReC runs.

You can can select from the dropdown box any already saved command and edit it. When you finish the edit, press “Replace”. Delete selected command by pressing “Delete”. When ready, click “Cancel” to return to the main window.

Using the main application screen

When you hover the mouse over one of the window controls a tooltip will be displayed to better understand the meaning of that control.

In order to use the application, you need to configure the following parameters:

This will be used for CAT or CAT and PTT if you choose to control PTT through RTS or DTR signals from the same port.



Mac OS

Note: Please be aware that if you use audio, next TCP port after the one you entered will be used for audio streaming, so it must be a free one.

After you configure all 3 parameters, click START button to start listening on that port. If the chosen port is free, then the computer will start listening on that port and the window background will go yellow:

The IP address of the computer will be displayed in the upper part of the window as “MyIP: xxx.xxx.xxx.xxx”

Note: If your computer has multiple IP addresses, only the first one is displayed.

You can now remotely connect to that socket (pair of IP address and TCP port, in the upper example:

The application window background will go yellow when listening for remote connections.

When the remote connection is established successfully, the window background will go green and the remote IP address will be displayed instead of local IP, as in the following picture:

All the parameters are now saved in the configuration file. If you close and then start again the application, the form will be automatically filled with the saved parameters, so no need to configure them again.

If you want that the application to automatically go into the listening mode when started, check “Autostart”.

At any time, if you click on STOP button, the connection will be dropped and the window background will go back gray.

When transmitting (PTT pressed in Pocket RxTx), the background goes red and the microphone level will be shown in a bar graph, in the lower right part of the window.

A bargraph in the lower part of the screen is used to display audio level. The label change from Spk (for Rx audio level) to Mic (for Tx audio level).

You can simultaneously start several instances of the application, one for each serial port you want to access through the network. If you have multiple transceivers, you can start one instance if the application for each of them. The only requirement is to use different TCP port for each connection, in order to have unique sockets.

Serial Port can be not only a local physical serial port (like COM on the motherboard or USB/Serial interface) but even a virtual COM port, for example the one created by a Bluetooth interface. You can connect in this way to your Bluetooth device over the network.

The configuration file

When you first download the application from my web site, there is no configuration file. This is automatically created at first run, in the same folder as the jar file. You can edit that configuration file using a simple text editor (do not use Word as it can render the file unusable). The filename is jsn.cfg and the format is the following:

#Wed Sep 21 17:12:29 EET 2016

















Each parameter is self-explanatory, corresponding with the ones from the GUI. The authentication/encryption password (secret) is stored as a SHA-1 hash, so you have no way to read it from the configuration file.

For the custom command definition, use “/” instead of “\” when you run jAReC on Windows and replace “:” by “*”.

Setting RTS and/or DTR lines

Some CAT interfaces requires that RTS or DTR line from the COM port to be set. You can do this from the File menu.

Check the line you want to be active. This is saved in the application configuration file.

Using Monitoring mode

From the File menu select “Monitor”. This function is available only when connected from Pocket RxTx (green background). When in Monitor mode, jAReC does not send any command to the radio. The background goes to cyan, to show you are in Monitor mode. This mode will help you check and validate CAT commands definition in Pocket RxTx, including when radio feedback is activated. The monitoring screen looks like in the following image.

Press one of the option buttons in Pocket RxTx or tune to a specific frequency. Only the last command executed will be displayed. Let’s take for example manual tuning to 145.225MHz for Yaesu FT-991. By default, the commad is displayed in HEX format.

For FT-991, default CAT commands definition is based on strings. From the upper dropdown box, you can select display mode: Hexadecimal, Decimal, Binary or string.

Select String in this case. The command will be displayed accordingly.

You can save the command for future reference. Select from the drop down lists the Brand (Yaesu), the radio model (FT-991) and the name of the command “Set frequency to 145.225MHz”, then click on “Save”. This definition will be saved in the configuration file.

Next time this command will be received, the parameters are automatically displayed.

To test feedback commands, set in the Pocket RxTx config file for the radio to receive feedback for only one parameter (ex. Frequency) in POLLING.


Now activate feedback for a moment, in order to receive CMD_READ_FREQ_VFO-A command. In the “Read Answer” text field enter the answer expected from the radio. IN the CAT manual, we have this:

In this case, read command received is ‘FA;’ Let’s consider that the radio return the frequency 3.705MHz. Fill the expected answer in the second text field and press SET, then activate answer by checking the box.

Now set some other frequency in Pocket RxTx, ex. 145.225MHz and then activate feedback.

You will see how the frequency in Pocket RxTx will be automatically changed to 3.705MHz. In this way you can test one by one each command that is available for radio feedback.

Monitoring data is saved in a separate configuration file named “mon.cfg”.

An example is presented below:

#Wed Feb 21 22:50:45 EET 2018





CMD46413134353232353030303B=Yaesu,FT991,Set frequency to 145.225 MHz



CMDFEFEAAE0161201FD=Icom,IC7300,Set AGC Fast


CMDFEFEAAE0161202FD=Icom,IC7300,Set AGC medium




CMDFEFEAAE0161203FD=Icom,IC7300,Set AGC Slow


Again, the format is self-explanatory. Commands are represented in HEX format.

Application history

Version 0.1 (Feb 27th, 2014). First public release of the application

Version 0.4 (Aug 20th, 2014)

- add secure authentication support - cand be used only with Pocket RXTX Android application as a network client

- add full data encryption support (experimental, buggy)

- add audio support (for the moment only in the GUI, not functional yet)

- detect disconnection and go back to "waiting for connection" mode (yellow background)

Version 0.8 (Aug 23rd, 2015)

- bidirectional audio support with mic level meter

- name changed to jAReC, From (j)ava (A)udio and (Re)mote (Control)

- version number in sync with the Pocket RxTx Android application (for compatible features)

- deactivate START button when already started and STOP button when already stopped.

- changed and bigger icons for security and audio settings

- autostart function added

- reconnect to COM port and restart server if any parameter changed and previously connected

- 128 bytes symmetric key used for password encryption (instead of 64 in the previous version)

- compatible with Java 8

Version 2.0 (Jan 9th, 2018)

- PTT through CAT, RTS or DTR, on the same as CAT or different COM port

- PTT timer (limit transmission time to prevent locking the transceiver in TX if something happens with the link)

- heartbeat to check at ~8s the link with jAReC and restart listening if link dropped.

- Add RTS/DTR power for the interface (ex for FT-991)

- when in Rx Mode, the bargraph changes from Mic to Spk and diplay Rx audio level

- custom commands/scripts as CAT commands (only with the Pro version of Pocket RxTx)

- Monitor mode to help you writing radio config files (monitor data sent/received over serial CAT)

- audio over UDP (lower latency), using the same port number as the one for CAT

- display all local IP addresses in the main window

Bugs solved:

- if use authentication on jAReC and no auth on Pocket RxTx, CAT does not work but audio is started.

bidirectional audio support with mic level meter

- solve the combo box click bug

- sometimes mic level freezes to the last value even in Rx

jAReC_v2.0.pdf Bucharest, Feb 23 2018 – © Dan Toma – YO3GGX – yo3ggx@gmail.com