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.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.