How to: Upload RF Explorer firmware in Linux

The how-to instructions below are tested in Ubuntu 20.04LTS but can be easily adapted to any other modern Linux version, including Raspbian, Debian and CentOS. If you find any major differences and get some workaround for a particular Linux distro please let us know so other users can benefit from your experience. 

Background

From a software perspective, the RF Explorer Firmware Uploader tool has been modified to run in Linux under Mono, with proper detection of Linux serial port driver. Mono is a compatibility layer for .NET in Linux, developed by the Xamarin team, and works well with any recent version of Mono.

On the other hand, RF Explorer uses a Silabs CP2102 chip for USB communication. The Uploader will correctly list USB connections that are from a CP2102 device only.

Installing Mono

Open a Terminal window and type

mono --version

If the answer is no version installed, then you need to install Mono. The simplest way is by running apt-get from terminal in Ubuntu:

sudo apt-get install mono-complete

It is important you install mono-complete and not any other limited Mono distributions. The lightweight Mono runtime is not enough, as WinForms dependencies require complete Mono libraries, so please make sure you do a complete install. If you need more details and help on installing Mono, please visit this official link

Below is a quick demo of how this works in an Ubuntu 14 standard distro.

Running the Uploader

Download the Firmware Uploader tool and unpack the contents in a folder. All modern Linux distributions and Mono libraries work well at 500Kbps, so you can use it at full speed.

  1. Add your linux user to the dialup group, otherwise may not be able to open the USB port. For instance this command will do it in Ubuntu/Debian: 
    sudo adduser <my_user> dialout
  2. Run the tool with (exact name will depend upon the device firmware and version)
  3. mono RFEUploaderXXX.exe

Note: use regular Linux login, not root or superuser, otherwise configuration files will not be stored in the home folder correctly.

{jcomments off}