CommStatOne

“ValueError: Maidenhead locator requires 2-8 characters, even number of characters”. This error will appear when you first start the program, locking you out of it. This is caused by a corrupted data file, and the Band-aid fix for it is to simply replace the corrupted file (traffic.db3) with a good one.
➊ Download this traffic.db3 file. It has about 3 entries that you can just disregard.
➋ Go to your commstatone folder, and delete or rename the corrupted traffic.db3 file.
➌ Replace the corrupted file with the traffic.db3 file you just downloaded.
➍ You should now be able to use CommStatOne.
(Thanks to PapaRomeoWhiskey)


FLMsgViewer

“SyntaxError: f-string expression part cannot include a backslash” Program will not load. Only affects some systems – why only some systems is unknown.
➊ Go to your flmsgviewer directory, and open flmsgviewer.py in a text editor with Line Numbering enabled.
➋ Scroll down to line 1413.
➌ Replace the “\” with “chr(10)” on that line.
➍ Repeat the above step for line 1633.
➎ Save the file. FLMsgViewer should now work correctly.
(Thanks to Wiley Coyote)

Code with “\”

Code changed to chr(10)

Template for displaying TFC in FLMsgViewer
FLMsgViewer is a great way to organize all of your saved traffic in one place, but what about messages received in JS8 or voice or text you just copied from FLDIGI? One solution is to use a template to simulate one of the forms that FLMsgViewer displays. You could create a folder named “JS8_Messages”, add that to FLMsgViewer by clicking on “Directories”. Download and save https://sitrepnet.com/resourcefiles/TEMPLATE-AmRRON_Blank.k2s. To add a file to what FLMsgViewer displays, save a copy of the Template file, edit it to add your message, then place it in the folder you created. For Precedence, “R” is displayed in normal black text. Anything other than “R” is displayed in red.


JS8Spotter

Installation Note for Raspberry Pi and Linux:
If you get the following error message – ImportError: cannot import name ‘ImageTk’ from ‘PIL’ (/usr/lib/python3/dist-packages/PIL/__init__.py)
Run this command – sudo apt-get install python3-pil python3-pil.imagetk

Raspberry Pi running Trixie (and probably others)
Traceback (most recent call last):
File “/home/(your user name)/js8spotter/js8spotter.py”, line 17, in
from PIL import ImageTk, Image
ImportError: cannot import name ‘ImageTk’ from ‘PIL’ (/usr/lib/python3/dist-packages/PIL/__init__.py). Did you mean: ‘Image’?

(Response from Claude Code AI)
● On Debian Trixie (and recent Ubuntu/Debian systems), ImageTk is split into a separate package from the main
Pillow install. The fix is:

sudo apt install python3-pil.imagetk

If you installed Pillow via pip instead of apt, you may also need to ensure python3-tk is present:

sudo apt install python3-tk
pip install –upgrade pillow

The most common cause on Trixie is simply the missing python3-pil.imagetk package — that first command alone usually resolves it.


JS8Call on Ubuntu Linux — Troubleshooting (IC-7300)

Two common issues when setting up JS8Call on Ubuntu with an Icom IC-7300, and how to fix them.

Issue 1: JS8Call is listening to the laptop’s mic instead of the radio

Symptom: JS8Call runs and the waterfall may show activity, but it doesn’t reflect what’s actually coming from the radio — no real band noise, no decodes, or decodes that don’t match what you hear on the radio. Running JS8Call’s built-in diagnostics shows the Input and/or Output audio devices set to something like Built-in Audio Analog Stereo or Built-in Audio Digital Stereo (HDMI), rather than the radio’s USB audio codec. A live look at the audio routing (e.g. wpctl status) confirms JS8Call’s capture stream is connected to the laptop’s internal microphone chip instead of the USB codec.

Fix: In JS8Call, go to File → Settings → Audio and set both:

  • Input to the radio’s USB audio device (on the IC-7300 this shows up as PCM2901 Audio Codec Analog Stereo)
  • Output to the same USB audio device

Click OK and restart JS8Call. Re-check the diagnostics or wpctl status — the input capture ports should show as connected/active to the USB codec, not the built-in laptop audio.

Issue 2: “Rig Control Error” / “Permission denied” on /dev/ttyUSB0

Symptom: CAT control settings are correct (rig model, port, baud rate — verified against a working setup on another machine), but clicking OK in Settings produces a Rig Control Error, with Hamlib debug output showing:

serial_open(332): open failed#1 Permission denied
...
serial_open: Unable to open /dev/ttyUSB0 - Permission denied
port_open: serial_open(/dev/ttyUSB0) status=-6, err=Permission denied

This happens even when the exact same CAT settings work fine on another Linux install (e.g. Raspberry Pi), which points to a local permissions issue rather than a configuration problem.

Fix: The user account doesn’t have permission to access the serial port. Add it to the dialout group, which owns USB serial devices on Ubuntu:

bash
sudo usermod -a -G dialout $USER

Log out and back in (or reboot) — group membership changes don’t apply to an already-open session. Confirm with:

bash
groups
ls -l /dev/ttyUSB0

dialout should appear in your groups, and the device should show group ownership by dialout.

If the error persists after re-login, also check for:

  • ModemManager grabbing the port on connect (sudo systemctl disable --now ModemManager if not needed)
  • Another process (e.g. rigctld, a leftover session) already holding the port open
  • The port enumerating under a different name (dmesg | grep ttyUSB after plugging in the radio)


Got a Bug Band-aid Tip?
Do you know of similar problem solving tips? Please use the Contact form to let us know so we can share it with everyone. Be sure to include your email address (that will not be published) in case we need to get back with you with a question. Also, be sure to include your call sign or name or whatever so we can give credit where credit is due.