So some more obscurity I tinker with is VHF 1200 baud packet radio. AX.25 network over VHF frequencies. One of the issues with linux soundmodem packet is that there is no integrated way to send unproto mode packets. This mode is used commonly for groups to hold nets or group discussions over packet.

The issue is that the linux ax.25 utils are there to accomplish this, but there isn’t a comfortable unified console to do so. Not being an ace programmer, I figured out a workaround to do just this.

axlisten and beacon via the screen utility in linux for UI mode packet ops

Shown at right is a Konsole terminal window with a ‘screen’ session running in split screen mode. On the top session I am using ‘axlisten -cart’ to capture incoming and outbound packets from my soundmodem on port sm0. In the bottom screen is another shell session using a script wrapper I call ‘upcall’ that wraps the ‘beacon’ utility with port and digi path that it prompts the user for at the start of the session.

This gives you a more friendly prompt waiting for input to send in UI mode while you just monitor the top screen for any traffic you can see.

The nuts and bolts are as follows. You will need all the standard configuration for linux packet, the ax25-utils, and the ‘screen’ utility installed. I’m not covering all there is to getting packet up and running, so go do that first.

Start a screen session. Once in screen you are at a shell prompt, you want to create a second ‘window’ with another prompt instance. Do ctrl-a-c to create that session. Next you want to split the screen horizontally. Do ctrl-a-S (note the S and not ‘s’). Now you have a shell in one windows and a blank area below, next do ctrl-a-n or possibly ctrl-a-p to toggle that blank window to the second shell window you created before.

To move between top and bottom, you do ctrl-a-TAB

Toggle yourself to the top frame and start axlisten with whatever options you prefer. I like the ncurses color option ‘axlisten -cart’ though due to the ncurses, you can’t scroll back the way it was written. If you forego the -c option for monochrome you will be able to scroll back.

Now do ctrl-a-TAB and you will go to the bottom half.

You need to run ‘upcall’ there. The script follows, it’s rough, but it woiks! Save this as whatever you want to call it, I call it ‘upcall’, then make it executable, chmod +x and run it. I have a ~/scripts dir that I keep in my PATH for things like this.

    #   This is a quickie wrapper around 'beacon' to
    #   send UI/unproto mode packets in linux for use
    #   in unproto mode 'nets' or just general CQ type
    #   chatting on packet radio.
    #   If you run this with another window (maybe in a
    #   split 'screen' session) with axlisten, it's a 
    #   reasonably graceful solution.
    #   I hope someone finds this useful
    #  73 de KC2RGW  29 Oct 2011
    echo "Unproto mode beaconing"
    echo "   Fill in the information as requested"
    echo -n "What port should I use? > "
    read PORT
    echo -n "What digi? (blank for none) > "
    read DIGI
    echo -n "What destination callsign? > "
    read DEST

    if [ "$DIGI"a = "a" ] ; then


    while [ 0 ] ; do
         echo "RETURN exits"
         if [ "$DIGI"a = "a" ] ; then
                 echo -n "text to "$DEST"> "
                 echo -n "text to "$DEST" via "$DIGI"> "
         read TEXT
         if [ "$TEXT"a == a ]; then 

         beacon -d "$DESTINATION" -s "$PORT" "$TEXT"

This will prompt you for the name of the ax25 port you want to use, in my case it’s ‘sm0’.

Next it asks for the digi you want to use optionally. If you want you can digi through multiple stations for a wide area rebroadcast of your packets. You can do multiples by simply space separating them. An example locally would be “W2LI-2 W2GSA-2” hit return. If you don’t want a digi, just hit return, leaving this blank.

Last, it asks for the destination call, if you aren’t sure, just put ‘CQ’ which is a pretty standard one. With nets they generally use ARES or RACES etc something to label the packets specific to a group interest.

When you are done with that, it will drop you to a prompt. Anything you enter, followed by a RETURN, will go out. Sending a blank line with RETURN exits out of upcall.

The ‘screen’ utility will stay running in the background if you don’t exit out of both shells. So type ‘exit’ from the upcall shell, then ctrl-a-TAB to go up to the axlisten window and do ctrl-c to stop that and type exit to drop out of screen finally. ctrl-a-d detaches if that doesn’t get it and you can just do pkill screen to kill it off.

If you are using digis with the axlisten command I suggested above, you should see your outgoing packet, and if you can hear the digis properly, and they can hear you, you will see a repeat from both of them.

Remember, unproto mode is broadcast with no confirmation, so if you don’t see them bounce from the digis, you weren’t heard or you were interrupted by other traffic.

I hope this was helpful for someone. Packet radio for me is just this obscure pastime that I seem to dig into a few times a year. I wish more people were still fiddling with it…it’s fun!

blog comments powered by Disqus