Flashing (tr)uSDX Firmware on Linux - Complete Guide

This guide will help you update the firmware on your (tr)uSDX radio using Linux. We'll be using avrdudess with Mono, which makes the process much simpler than using Wine.

Prerequisites

Step 1: Install Mono

Mono allows you to run .NET applications natively on Linux, which means you'll see Linux device names instead of dealing with Windows COM port mapping.

Important Note: Mono only works with programs built using Microsoft's .NET Framework. Fortunately, avrdudess is a .NET application, so this method works perfectly. If you try this with other Windows programs and they don't run, they may be built with different technologies (like C++, Delphi, etc.) and would need Wine instead.
sudo apt update
sudo apt install mono-complete

Step 2: Add Your User to the dialout Group

This gives you permission to access serial devices without needing sudo every time.

sudo usermod -a -G dialout $USER
Important: After running this command, you need to log out and log back in for the changes to take effect.

Step 3: Download the Firmware

Download the latest (tr)uSDX firmware from the official source:

Download URL:
https://dl2man.de/3b-trusdx-firmware/

Save the .hex file somewhere you can easily find it, like:

/home/yourusername/Downloads/

Step 4: Download and Extract avrdudess

Download avrdudess from the official website:

Download URL:
https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/

You want version 2.20 or later. This will download as a .zip file.

Extract the downloaded file:

You can extract it using your file manager (right-click → Extract Here) or from the command line:

cd ~/Downloads
unzip avrdudess-*.zip -d ~/avrdudess

This will create a folder at /home/yourusername/avrdudess/ containing the avrdudess.exe file and supporting files.

Step 5: Connect Your Radio

  1. Power on your radio (some radios need to be on to accept firmware)
  2. Connect it to your computer with a data-capable USB cable
  3. Wait a moment for Linux to recognize it

Step 6: Identify Your Radio's Serial Port

Run this command to see which port your radio is on:

ls /dev/ttyUSB*

You should see something like /dev/ttyUSB0 appear. This is your radio.

Troubleshooting if nothing appears:

To verify which device was just connected, run:

lsusb

Look for a line mentioning "CH340 serial converter" or similar USB-to-serial adapter.

Step 7: Launch avrdudess with Mono

Navigate to where you extracted avrdudess and run:

cd ~/avrdudess/
mono avrdudess.exe

Step 8: Configure avrdudess

When the program opens, you'll see Linux device names in the dropdown menus. Configure it as follows:

Programmer Settings:

MCU Settings:

Flash Settings:

Example Configuration:

Key points:

Step 9: Flash the Firmware

  1. Double-check all your settings match above
  2. Make sure your radio is powered on
  3. Click the "Program!" button
  4. Wait for the process to complete

You should see progress messages in the terminal window at the bottom. When it's done, you'll see "Ready" at the bottom of the window.

Common Issues and Solutions

"Cannot access /dev/ttyUSB0: Permission denied"

You forgot to log out and back in after adding yourself to the dialout group (Step 2). Either:

"No /dev/ttyUSB0 appears"

"avrdude: stk500_recv(): programmer is not responding"

Path shows as "Z:\home\..." instead of "/home/..."

You're still using Wine paths. When running with Mono:

  1. Click the ... button in the Flash section
  2. Navigate using the Linux file browser
  3. The path should start with /home/ not Z:\

"ERROR: avr-size is missing!"

This warning can be safely ignored - it's not needed for flashing firmware. If you want to eliminate the warning, install:

sudo apt install avr-libc gcc-avr binutils-avr

Tips for Future Use

Create a Quick Launch Alias

Add this to your ~/.bashrc file:

alias avrdudess='cd ~/avrdudess && mono avrdudess.exe'

Then you can just type avrdudess in any terminal to launch it.

Remember Your Port

Your radio will usually be /dev/ttyUSB0 if it's the only USB serial device connected. If you have multiple devices, they'll be numbered sequentially (/dev/ttyUSB1, /dev/ttyUSB2, etc.).

Use Mono for Other Radio Software

Many Windows radio programming tools are .NET applications. Try running them with Mono first:

mono yourprogram.exe

If it works, you'll have the same easy Linux device access without COM port mapping headaches!

Summary

The key advantages of using Mono instead of Wine for this task:

Good luck with your firmware update, and 73!