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.
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.
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.
make clean &&makesudomakeinstall
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.
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.
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.