radtel RT-900 with CHIRP

I just got myself a radtel RT-900 2m/70cm radio to play around with as you can now pick those up on Amazon sometimes for as little as 30 bucks – which seems like a steal considering what you get. Even if you’re someone like me who wants to use it as just a handy little receiver.

The built-in BLE is a great way to program your radio without using a special cable (Kennwood-style serial programming cable) but the Chinese Android application… sucks, to put it mildly. I’m not even going to bother explaining all the ways it is terrible (as of early 2026) but after using it once for a couple minutes – just don’t bother. Because open-source to the rescue, there’s CHIRP.

Support for the RT-900 is currently still in Beta but worked just fine for me. My Ubuntu Notebook didn’t have the latest package in the repo yet but on my Arch-based Desktop it worked out of the box. Even using Bluetooth via python-ble-serial!

# yay -S python-ble-serial
# sudo ble-scan 
# ble-serial -d XX:XX:XX:XX:XX:XX (your radios ID you got from the scan)
 INFO | linux_pty.py: Port endpoint created on /tmp/ttyBLE -> /dev/pts/3
 INFO | ble_client.py: Receiver set up
 INFO | ble_client.py: Trying to connect with XX:XX:XX:XX:XX:XX: walkie-talkie
 INFO | ble_client.py: Device XX:XX:XX:XX:XX:XX connected
 INFO | ble_client.py: Found write-without-response characteristic 0000ffe1-0000-1000-8000-00805f9b34fb (H. 20)
 INFO | ble_client.py: Found notify characteristic 0000ffe1-0000-1000-8000-00805f9b34fb (H. 20)
 INFO | main.py: Running main loop!

Start CHIRP, Radio – Download from Radio – set “Port” to /tmp/ttyBLE, Vendor to Radtel and Model to RT-900 (not RT-900_BT for some reason. Maybe I have an earlier version where the Bluetooth was a retrofit?)

Adjust everything you want, Upload to Radio, done.

TrueNAS Scale: online expand disks

Say you’re running a TrueNAS Scale VM for some reason instead of running it on baremetal and you have your zpool on a virtual disk that’s getting full. You can either add another virtual disk and just add it to your pool, data getting striped across all vdevs – but that gets messy if you need to expand in increments as you end up with a bunch of vdevs you can’t remove from your pool ever again (as of 2025 at least, might be possible at some point in the future). So you just increase the size of your virtual disk and be done with it, right? Sadly, no – TrueNAS Scale autoexpand doesn’t work quite like that and needs a little bit of help from the CLI. Here’s how you can still get it done without having to reboot or take your system offline:

  1. Look at your pool to find out what disks are being used: zpool list -v
  2. Look in /dev/disk/by-partuuid to check what disk the partition used is on, for example if the symlink points to vdb1 you’ll want to adjust vdb in the next step
  3. parted /dev/vdb resizepart 1 100% you’ll want to run that twice: First time it asks you to fix the GPT to use all the space that’s now available, second time it actually adjusts the partition size
  4. If your pool has autoexpand=on already set, you’ll probably don’t have to do anything else and the pool is already expanded to the new size of the virtual disk. Otherwise you might have to manually online the device with the expand flag set: zpool online -e yourzpoolname yourpartuuid
  5. Check your pool if everything worked as expected with another zpool list

That should be it, your pool increased in size without any interruption.

Workgroup Bridge with older Cisco Accesspoints and new Mobility Express Releases

Since I just spent the better part of a weekend to finally get this working, here’s a nasty little bug that took forever to track down: Starting from 8.10.150.0 if you want some older Cisco accesspoints connect to your network in WGB mode, you need to tweak your security setting a little bit otherwise they just wont connect: “cannot associate: EAP authentication failed” is one of the various not exactly helpful error messages you’re probably very familiar at this point if you found this post…

Cisco actually points to it in their documentation, but of course that was the last place I looked at: config wlan security wpa akm psk pmkid {enable | disable} wlan_id

That is, if you want have a WGB connect to your wlan 3:

config wlan disable 3
config wlan security wpa akm psk enable 3
config wlan security wpa akm psk pmkid enable 3
config wlan enable 3

Once that’s set, just configure your WGB like you usually would – for example:

dot11 ssid yourssid
authentication open
authentication key-management wpa version 2
guest-mode
wpa-psk ascii yourpresharedkey
interface Dot11Radio0
no ip address
no ip route-cache
encryption mode ciphers aes-ccm
ssid yourssid
station-role workgroup-bridge
bridge-group 1
bridge-group 1 subscriber-loop-control
bridge-group 1 spanning-disabled
bridge-group 1 block-unknown-source
no bridge-group 1 source-learning
no bridge-group 1 unicast-flooding

With PMK ID set, a 2600 Series or even something as old as a 1131AG would connect like it’s supposed to.

vcsu ERROR: Invalid IP address

If you run into the less than helpful message “ERROR: Invalid IP address” when trying to use the Virtual Connect Support Utility (vcsu for short) because you haven’t had to use that tool in a while, or ever: make sure you’re using the IP address and credentials of your Bladecenter OA and not the IP address of your VC device you want to update/check/whatever.

Turns out vcsu logs into your OA first, checks which VC interconnects are installed and goes from there. You’ll have to enter your VC login credentials at a later stage once the initial assesment is done.

Intel SSD Update ISO fails to boot

In case you’re trying to update the firmware on your Intel SSDs by using their handy dandy issdfut Version 3.0.7 or 3.0.8 ISO just to be greeted by an ISOLINUX error like

Failed to load ldlinux.c32
Boot failed: press a key to retry…

Chances are it’s because their ISO seems to be broken when booting using legacy BIOS mode. Switch to UEFI and it will most likely work the way it’s supposed to.
When you’re done, don’t forget to switch back to legacy BIOS if you installed your OS that way, otherwise it probably wont be able to boot.

oVirt node-ng update fix

Having problems updating some of your oVirt nodes? Chances are you might have a var_crash volume you need to manually remove and/or ran out of space on your PV/VG if you are running rather small disks on your node.

For a quick fix, SSH into your node and run those:

lvremove /dev//.0
lvremove /dev//.0+1
lvremove /dev//var_crash
fstrim -av

To upgrade your image, then run

yum update ovirt-node-ng-image-update

Reboot your node and run an upgrade via the engine webinterface once again to make sure you’re now on the latest release.

Noisy Focusrite Scarlett and how to fix it

Having noise issues on your external USB audio interface when connected to a desktop PC and powered studio monitors? Chances are you’re having issues with your grounding… Make sure you are using balanced cables, meaning three wires (two phases + ground) to connect your speakers to the output of your interface.

I recently spent quite a few hours chasing down an extremely annoying crackling hum on my audio setup because of that. No ground loop, all devices connected to the same circuit, I even hooked everything up to an online UPS so I get perfect sine voltage but to no avail. When connected to my main workstation there was a noticeable and extremely annoying background noise on my monitors that wasn’t there when I plugged the Focusrite Scarlett 2i2 into my notebook or mobile phone via an USB OTG adapter. Heck, it wasn’t even there when I plugged it into an HP Z600 workstation that is sitting right beside my main computer, all connected to the same UPS, ethernet switches and whatnot…

Turns out I used unbalanced cables from the Scarlett to the monitors and apparently the MSI X99S mainboard (or maybe the power supply?) in my primary desktop computer has for some reason quite a bit of noise on the ground of the USB bus. Or something like that – I didn’t bother to get an oscilloscope to verify.

Swapping the cables from TS to proper TRS (tip-sleeve “mono” to tip-ring-sleeve “stereo” aka balanced) fixed it and everything sounds perfect, no matter what computer the interface is connected to.