Setting up Radiotunnel for Radio Networking

Do you want to be able to develop your own socket applications without dealing with my mess of code? Speed is not an issue for you and you just want to develop or port your applications for radio? No problem! You can use radiotunnel software to use kernel’s IP stack to use Radiometrix UHX1, Radiometrix Bim2A or other similar devices. Here is how!

What you need for both sides:

  • Any linux machine with a USB port and a Linux based operating system with FTDI USB-Uart driver. During the development we have used Alix 2d13 from PcEngines. And during development we have installed Voyage-Linux on them. But radiotunnel is also tested on Bifrost OS.
  • Radiometrix Bim2A, Radiometrix UHX1 or similar devices, one for the server one for the client.
  • Interface card for Bim2A or UHX1. These cards are not sold anywhere but you can build one very easily on your own. The schematics of such cards are below. Since you are only planning to use the card for radiotunnel you don’t need the audio components (i.e. any component/wire that is connected to the audio block). You can download a proteus pcb design for Bim2A from my github repository and you can download proteus pcb design and/or geda pcb design for Uhx1 from this github repository.
  • A USB TTL UART cable that allows CTS/RTS signalling with 3.3 V or 5 V signal level. We prefer using FTDI cables for the purpose.
  • A matched antenna for 70cm band (433 MHz band). A simple and good antenna is a 70 cm long wire antenna, but you can use a 17.5 cm wire antenna if you want to keep it short. Or a matched antenna for 2m band (144 MHz band). A simple and good antenna is a 2 meter long wire antenna, but you can use a 50 cm wire antenna if you want to keep it short. We have used CR8900 from Yaesu.
  • And finally you have to clone the radiotunnel software from github.
git clone
Bim2a UART Interface Card Schematic
Bim2a UART Interface Card Schematic
Uhx1 Uart/Soundmodem Interface Card
Uhx1 Uart/Soundmodem Interface Card


  • Connect your interface card to your computer via the USB Uart cable and keep in mind where it is mounted. Mostly it gets a name like /dev/ttyUSB0. You can find the name of the USB Uart device by checking dmesg.
sudo dmesg | grep /dev/ttyUSB
  • The command above should display the relevant system message about the cable plugged. For in case we will first set the right permissions for the device.
sudo chmod 666 /dev/ttyUSB0
  • Assuming that you have cloned the radiotunnel software to your home directory, go into the directory and for good practice clean first and then make. And finally make install.
cd ~/radiotunnel
make clean && make
sudo make install
  • Now you can invoke radiotunnel from anywhere you like. If you haven’t modified the source code, it will dump some logs wherever you invoke it. So I prefer creating a folder in my home directory and invoking it there.
mkdir -p ~/radiotunnel_logs 
cd ~/radiotunnel_logs
  • Type in radiotunnel to get the help message.
radiotunnel radiomode[uhf|vhf] interface_name ip/subnet your_callsign serial_device [ax25_destination]
Example: radiotunnel uhf radio0 TA2IAS4 /dev/ttyUSB0
  • The usage is fairly simple. But there are some key points. You MUST define a non-existent interface_name. You must define unique IP addresses within the same subnet for both (or all) of your stations. You SHOULD define different callsigns for your stations. And you SHOULD define ax25_destination parameter for both stations (station A should have callsign A and destination B, and station B should have callsign B and destination A).
  • Note that this software’s parameter reading part is not very advanced, so if you make any mistakes it won’t work.
  • After you run the software it will print out every packet in ASCII and HEX and it will also log this output among with other things. If you don’t want these outputs, I suggest you delete a few lines from the source code. Removing lines 84 and 93 in tunclient.c will disable the logging into a file. And removing lines 272 and 332 will disable the HEX/ASCII outputting of every transceived data.
Read 84 bytes from device radio0
0001 0203 0405 0607 0809 0a0b 0c0d 0e0f 0123456789abcdef
____ ____ ____ ____ ____ ____ ____ ____ ________________
4500 0054 0000 4000 4001 26a4 0a00 0001 [email protected]@.&.....
0a00 0005 0800 6bc6 0e29 0003 765a 6351 ......k..)..vZcQ
0000 0000 de8e 0700 0000 0000 1011 1213 ................
1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 ............ !"#
2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+,-./0123
3435 3637 4567
  • That’s it! You now know everything there is to know about radiotunnel. Run it on both sides to see how it does. I can tell you that it is going to be super-slow and unreliable due to the slowness (lots and lots of TCP timeouts…).

Finally; remember that there isn’t much documentation about this on the internet. So if you have a question, ask it below and I’ll try to answer. In such way we can build up a knowledge base.

2 thoughts on “Setting up Radiotunnel for Radio Networking

  • October 8, 2013 at 3:11 pm

    Dear sir
    I am a student communication system from KTH. We are doing CSD course which will use radio tunnel, I have a question, We use other radiometric qpx1.Is it possbile for us to use radiotunnel to transit data in qpx1 not uhx1. Is there any more specify for setup radiotunnel?

    Best regard

    • October 11, 2013 at 5:52 pm

      Yes you can. Only difference is in the pin connections. Other than that it will work with any UART capable device. You should NOT use the modem mode in QPX1 and you should use the TXD input of QPX1. That’s all I can say without reading too deep of the datasheet.


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.