Sending Packet Radio beacons with ax25 ‘beacon’

The ax25 app ‘beacon’ does what it says, it sends beacon packets, by default every 30 mins, e.g.

beacon -c KK6DCT-6 1 "Hello from KK6DCT-6 node!"

By default the callsign will be what you’ve configured for your node/tnc, but you can change that with the -c param. The next param is the ax25 interface number from /etc/ax25/axports, followed by your beacon message.

Working Packet Radio with a VT132 and a AEA PK-232

I’ve posted before about using a VT132 terminal board to control a PK-232 packet TNC. Here’s a few more specific steps and commands.

On first startup after doing the * auto-baud detection, the first thing you’ll see is the “cmd” prompt. If this is your first time setting up, or if the internal battery is low and it’s not preserving your settings since last time, the first thing you’ll want to do from the cmd: prompt is set your callsign (set your own callsign here):

my KK6DCT
MYcall was PK232
MYcall now KK6DCT

If you’re working VHF packet, turn on VHF mode, with:

VHF ON

If it was off, now it’s on.

Set baud to 1200 for VHF packet:

HB 1200

Now enter D to disconnect, and we’re ready to send some packets. To re-enter this command mode, press Ctrl C.

By default the PK232 has a MPROTO value of OFF which doesn’t display any received packets other than those sent to your callsign. Set MPROTO ON and you’ll display other packets heard.

Additionally, the default value of MON as 4 will show some but not all packets. Set MON 6 to display all packets decoded. If you’re hearing other packets but they’re still not being decoded, enter WHYNOT ON to get an explanation.

At this point you’re ready to go. C NODENAME to connect to a nearby node!

Packet Radio via the International Space Station – March 2021

The Packet Radio service on the ISS has been out for a few months, but during an EVA yesterday a cable was replaced and the service is back up again for the first time today.

I used my regular 2m radio , an Icom 880h with my homebrew copper wire 2m groundplane antenna in the attic, and transmitted on full power (50w), hooked up to a laptop via a Rigblaster, running UZ7HO soundmodem for the packet radio modem, and used the UISS software to send the APRS packets.

The pass was only 57 degrees at the highest, so it wasn’t a particularly high pass. I don’t think I started to hear packets until it was a couple of mins towards the peak. I heard 6 other stations get digipeated by the ISS: KB6LTY, K6FVC, N6RSX, KG6LHW, W7OSG and AB7DY, and I got about 3 APRS transmission digipeated (my callsign is KK6DCT):

If you’re wondering what this is about I have a couple of other posts from when I tried to get this working a few years ago:

Amateur Radio homebrew: Raspberry Pi + Packet Radio + social networking integration

I’m putting something together for our River City Amateur Radio Comms Society homebrew show n tell later this year. Here’s my ingredients so far:

I’m thinking of building a bridge between Amateur Radio Packet and social networking, like Twitter.

So far I’ve roughed out node.js to Twitter integration using node-oauth, and I I’ve put together a simple prototype using the node-ax25 library to connect to the KISS virtual TNC on Direwolf. It receives packets and writes callsigns and messages to the console.

Right now I’m testing this on a PC running Debian, with a Rigblaster Plug n Play connected to an Icom 880h. Later when my TNC-Pi arrives I’ll migrate this to the Pi.

So far using the node-ax25 library looks pretty easy. Here’s some code so far to dump received callsigns to the console:

var ax25 = require("ax25");

var tnc = new ax25.kissTNC(
    {   serialPort : "/dev/pts/1",
        baudRate : 9600
    }
);

tnc.on("frame",
    function(frame) {
        //console.log("Received AX.25 frame: " + frame);
        var packet = new ax25.Packet({ 'frame' : frame });
        console.log(new Date() + "From "
            + formatCallsign(packet.sourceCallsign, packet.sourceSSID)
            + " to "
            + formatCallsign(packet.destinationCallsign, packet.destinationSSID));

        if(packet.infoString !=""){
            console.log(">  " + packet.infoString);
        }
    }
);

/**
 * Formats a callsign optionally including the ssid if present
 */
function formatCallsign(callsign, ssid){
    var formattedCallsign = "";
    if(ssid == "" || ssid == "0"){
         formattedCallsign = callsign;
    }
    else{
        formattedCallsign = callsign + "-" + ssid;
    }

   return formattedCallsign;
}

The output for  received messages so far looks like this:

Wed Apr 19 2017 23:10:00 GMT-0700 (PDT)From KBERR  to KJ6NKR

Wed Apr 19 2017 23:12:05 GMT-0700 (PDT)From AE6OR  to BEACON

>  Š¤¤@à–¤ˆŽ@@`–„Š¤¤@`®žžˆ²@`–„Š¨@`¨‚žŠ@aðHello from 5W Garage packet node AUBURN 73's Steli !

Wed Apr 19 2017 23:12:08 GMT-0700 (PDT)From AE6OR  to BEACON

>  Š¤¤@à–¤ˆŽ@@à–„Š¤¤@ஞžˆ²@`–„Š¨@`¨‚žŠ@aðHello from 5W Garage packet node AUBURN 73's Steli !

Wed Apr 19 2017 23:16:49 GMT-0700 (PDT)From K6JAC -6 to ID    

>  K6JAC-6/R BBOX/B KBERR/N

Wed Apr 19 2017 23:19:31 GMT-0700 (PDT)From K6WLS -4 to ID    

>  Network Node (KWDLD)

Wed Apr 19 2017 23:19:50 GMT-0700 (PDT)From NM3S   to BEACON

>  Mike in South Sac.  Please feel free to leave a message. 73's