When talking about remote control of a radio I always have
been looking for the “front panel at home solution”. I like to see the radio and
feel it as it where a local radio. I have not find any GUI program with the same
feeling so therefore the main task when I wanted to remote control the radio
where to find a way to get the front panel in front of me.
At the time I started looking for a radio with the possibility for “front panel at home solution” I only have a single chose, the ICOM IC-706. Not the easy nice front panel but still it has the possibility to remove the front panel from the radio and remote control it via 3 meter of cable. Could I maybe extend this remote control to 500 km via Internet?
When I bought my first ICOM IC-706 (1996?) I also got the service manual so I could investigate the possibilities. I also bought the remote cable, which I quickly cute in two pieces and added normal D-sub connectors to the unconnected parts. With the manual and the cute cable I tried to extend the remote capability for the ICOM IC-706.
In 2000 have an operational remote solution for the ICOM IC-706 running with software for Linux in both ends. Until 2004 I were try the remote control by using my local station with local remote control in my small shack. Finally it got operational with my remote station on Öland during summer 2004 and that software is still running.
If you look into the manual of the ICOM IC-706 you will find following information for the connection between the front panel and the radio part.
Obviously there is possibility to remote control the radio when you see the LRXD and LTXD control lines. So I started to check the signals on this lines with my cute cable. I found quickly that this is an ordinary asyncron serial data transfer link using the following parameters.
I now know that it will be possible to remote control the front panel via computers. One nice thing with the front panel is that it universal front panel for anything you like to control if the display, buttons and turning wheels are fine. The protocol between the front and the radio don’t have anything to do with radio control. The protocol only send information from front panel to the radio about which button or wheel you pushed/turned, no radio information. From the radio to the front panel there is only display information with the limitation for that the display can show. So you can build a program using the front panel to control you antenna rotor or signal generator. But the complete listing of the commands to/from the front panel have I still not written down, somebody done that?
To start up the radio you need to push the POWER button on the front panel. This will send a ground the PWK signal to the radio part. When doing that the radio will start up and the display will get the power via the 8V line. How to do this remote from the other end? There are many ways to solve it but I used the DTR and DCD signals on the serial port because I will anyway use it to transfer the control data. I did the following connection to the serial port (assuming a D-sub 9-pol serial connector).
These are the only lines I use in the cable into the radio part. All audio connection is done via the radio backside connectors (line in and speaker out). The picture below will show a real schematic how to build this interface. Click on the picture to get the PDF-file. The interface is build using cheep transistors and resistors. Of cause it can be built with nice RS-232 interface circuits but why?
At the front panel the hardware set up is easy. I have wired the RXD and TXD signals for transfer control data to the radio part. There is also a way to detect a press on the POWER button via the serial connector pin DCD. Currently I’m no using this connection to the POWER button. Table below show the serial port pin used to connect to the front panel (assuming a D-sub 9-pol serial connector).
These are the only lines I use in the cable into the radio part. All audio connection at the front panel is done directly between headset and the computer. If you want easy PTT function of the radio you can connect a microphone to the front panel. When pressing the PTT button on the microphone this will be detected in the front panel and sent as a data telegram over the serial connection. The picture below will show a real schematic how to build this interface. Click on the picture to get the PDF-file. The interface is build using cheep transistors and resistors. Of cause it can be built with nice RS-232 interface circuits but why?
When I then rebuild the software to tunneling the serial data between two serial ports on two computers I did get some problems during start up of the radio. The problem was that the radio started but very quickly it switched off. I started to look into the problem. Quickly I notice that the front panel is sending a “keep alive” message to the radio every 100 ms from the time the front panel get power. Because of this “keep alive” message at power on, which didn’t come in time to the radio from the front panel the radio fast switch off the power. Why it didn’t come in time, because of processing timer from front panel via the connected computer to the radio.
So the server program, which handles the radio connection, need to have a nice start up procedure and also a “keep alive” function. The table below show the state for the server and what to do in each state. The “keep alive” message is a simple message with 4 characters, which in hexadecimal codes will be “xfex0bx00xfd”.
So to start up the server using the Windows COM1 port and listen for connection on port number 12000 the command will be like,
./icom706Server -p 12000 -i /dev/ttyS0
Now the server is running listen for connection on port number 12000 and will use the serial port /dev/ttyS0 for communication with the radio part of the ICOM IC-706. Note that this program will automatically start up the radio when it gets a connection on the port number 12000. When the last connection on this port number is disconnected the server will power off the radio.
Hopefully I will make this Linux program available on this site when I have clean up some parts.
The program at the front panel will be very easy. It will in principle at program start connect to the server (starting the radio if not started) and also connect to a local serial port there the front panel is connected. Incoming data from the front panel will then be sent via the TCP/IP connection to the server side at least 10 times a second. In the other direction the program will take the incoming TCP/IP package and take the serial data and send it to the front panel.
Currently I have to types of program, which can do this. The first program is a Linux only program similar to the server program and the second one is a simple python script with which it’s easy to use a Windows computer at the front panel site.
Linux client program
Linux version can be used in this way. Hopefully I will come back with software for this program also here on the web.
Windows client program
The python script is maybe more clear to use.
c:\python.exe icomfront.py <remote_server_name> <remote_server_port> <front_panel_com_port>
Here you find the python script. The program has been developed using Python 2.3.3 and using the serial class USPP. For more information about installation and finding the needed software see my Python page (when ready).