How to install CS-R20 software for Icom IC-R20 on Linux

Icom R-20

It seems that with a little determination, the CS-R20 for the Icom IC-R20 software can be persuaded to run on Linux. I eventually made the CS-R20 software load under Kubuntu Linux using Crossover (a commercial implementation of WINE). The method in this article should work with many other Debian-derived Linuxes too, perhaps with a little tweak here and there!

The IC-R20‘s USB to RS232 chipset is automatically detected and a module is loaded for it in modern Linuxes – so no need for a driver. The only issue, at time of writing, is that whilst the CS-R20 software can write 100% reliably to the IC-R20 I am having problems reading from it as detailed at the end of this article. I am not sure why but when I find out I will let you know!

Related to this article…

Running Windows Apps  on Linux

The secret to persuade the CS-R20 software (and many other Windows applications) to run at all on Linux is firstly to download and install Crossover Linux (6.10 or higher) on your Linux system. The latest Crossover Linux is available for a very modest price with very flexible licensing terms from…

In this instance we will use the Crossover Windows Application installer to create a “Windows 2000 Bottle” dedicated to the Icom software.

A few things you need to be aware of

Forgive me if I am teaching my proverbial grandmother to suck eggs but folks new to Linux need to be aware of a few things before proceeding… 

  1. Crossover Linux is a commercial implementation of WINE, written by Codeweavers, a major contributor to the WINE project. It stores its “bottles” in a hidden folder in the user’s home directory. In my case, this is /home/garf/.cxoffice/Icom
  2. Linux file naming is a little different from Windows. Please see Linux FHS article for more help and information about Linux file systems.
  3. Linux deals with serial ports differently from Windows. In Windows the serial ports are refered to as COM1, COM2 etc. In Linux the system accesses serial ports via a series of files /dev/tty0, /dev/tty1 etc. In the case of serial ports accessed via a USB converter, Linux accesses these ports via files called /dev/ttyUSB0, /dev/ttyUSB1 etc.
  4. The files  /dev/ttyUSB0, /dev/ttyUSB1 etc are generated on the fly as you connect the USB cable and are deleted again when you remove it.
  5. The IC-R20 is really communicating using a serial port. Inside the IC-R20 is a serial to USB converter based upon the FT245 series serial to USB chip. The driver for this is compiled into many modern Linux kernels. This family of chips is very common in devices that use USB to make a serial connection. It needs no additional driver in most modern Linuxes – unlike Windows.
  6. In order for Windows software running on Linux via WINE to access the Linux serial ports, it is necessary to build a symlink between where the application expects to find the serial port and where Linux actually handles it.

Ok, if that is all understood then let’s go to work…

Installing CS-R20 software in Crossover 

Click the Crossover | Install Windows Software KDE or Gnome menu item. The installer wizard will appear.

  1. Tick the Install Unsupported Software box and click Next.
  2. Ignore the Before installing unsupported software… screen and cllick Next.
  3. Tick the Other installer file box and click Browse to find the CS-R20 set up file, setup.exe then click Next.
  4. Make sure the New Bottle box is ticked and in the box next to it type Icom. Also ensure that Create from Tempalte Win 2000 is selected. Click Next.
  5. The CS-R20 installer should now run just as if you were using Windows. The CS-R20 installer will ask all the usual questions such as what language you want to use (English or Japanese) and then for your serial number. When it has completed the Crossover installer will simulate a Windows reboot.
  6. You are done. A menu item for CS-R20 should appear in the KDE or Gnome menu. It should also geneate a desktop icon too.

OK. That’s the software sorted. The next step is to give the CS-R20 software a serial port….

Making sure CS-R20 software can see a serial port

  1. Switch on the IC-R20 and connect the USB Lead. Remember that the /dev/ttyUSB0 file is created on the fly and only exists when a connecton is made.
  2. To find out which USB device file IC-R20 is using open a terminal and type…
    dmesg | tail

    The the last few lines should resemble this…

    dmesg showing a properly connected and loaded USB to serial converter

  3. From a terminal window create a symlink from the dos devices subfolder in the Icom “bottle” to the appropriate Linux device file. I am assuming the IC-R20 is connected to /dev/ttyUSB0 and that I wish to assign this to COM2. To do this type the following in the terminal window…
    ln -s /dev/ttyUSB0 ~/.cxoffice/Icom/dosdevices/com2
  4. Now start the Icom CS-R20 software and select COM2 from the CS-R20 Initial Setup dialog…Icom CS-R20 Initial Setup dialog
  5. You shoukd now be able to use the CS-R20 software
    CS-R20 running in Kubuntu Linux

    These functions work fine…

    1. Create and edit .icf files
    2. Write .icf files to the IC-R20
    3. Read the Clone information from the IC-R20 

Bugs and caveats

There are two issues you need to be aware of…

  1. It seems that currently it is only possible to write radio station data to the IC-R20. If you attempt to read station data from the IC-R20 then the CS-R20 software generates an “illegal data” error and freezes. I am working on a fix for this. If anyone gets there before me then please let me know how you did it!
  2. There is an issue with Ubuntu Linux not recognising USB to serial converters due to a conflict with a preinstalled Braile TTY device. This not merely affects this exercise but is a affecting those triing to connect Wacom tablets etc. via a USB port. Providing you are not using the Braile TTY then this device can be safely removed. To do this, disconnect the IC-R20 and either use your favourite GUI pacage manager or use the following command in a terminal window…
    sudo apt-get remove brltty

    When you reconnect your IC-R20 via USB and run dmesg | tail from a terminal window, you should see the USB converter is now loaded correctly.


  • Bob Parnass’s software site. He has written a number of scanner control packages for Icom and Yaesu scanners and his stuff does run on Linux. No softs for the IC-R20 yet though.
  • Crossover Linux – needed to make the Icom CS-R20 software for Windoze run on Linux

Downloadable user manuals

Downloadable service manual

Related Images: