Scripting APRS Bulletins from Xastir

The following are some quick notes on how to transmit APRS bulletins through Xastir, scripted by its handy xastir_udp_client tool. Bulletins are sort of like messages, except that they are broadcast to all users rather than just to one callsign.

I’ll assume that you are running Xastir on Linux and already have it running, but I won’t assume much experience with Linux itself.

What is a Bulletin?

Bulletins and announcements are messages sent by APRS periodically to fictional callsigns, which of course remain unacknowledged by their recipients.

You can find a global list of them at, and any local ones will pop up on your APRS radio. Note that bulletins have been sent to BLN0 to BLN9, while announcements got to BLNA to BLNZ.

Duplicates of these would be infuriating, so client applications such as Xastir will generally preserve a list of just the most recent bulletin sent to each address. If you want four bulletins, that’s cool, but send one each to different numbered bulletin addresses.

Sending Just One

In a pinch, you can send a bulletin like any other message. Clients will receive it, but Xastir will also expect the destination callsign to acknowledge the message, and many unnecessary transmission attempts will occur until you hit the Cancel Pending Msgs button.

Sending a bulletin as a regular message.

Scripting a Beacon

A better way is to use the xastir_udp_client application to script Xastir, transmitting just the required frame and on the correct interval.

The UDP client requires that you know your APRS-IS access code. It runs over port 2023, accepting any callsign and code, and the packet that you transmit might be from another callsign. So if, of example, you want to send a beacon in your club’s callsign while Xastir is configured for your personal callsign, that’s no problem.

To send one packet as a test, just run the following on your unix command line, replacing 13023 with your own APRS Passcode and N0CALL with your own callsign, of course.

xastir_udp_client localhost 2023 \
  N0CALL 13023 -to_rf \
  "N0CALL>APK004,WIDE1-1,WIDE2-1::BLN0     :Stay inside."

You should immediately see the packet pop up in Xastir.

Bulletin in Xastir.

Handheld and mobile radios will also display the message on their built-in screens. Note that some will ignore the bulletin if the source address is the same as the radio transmits with.

Bulletin on a Kenwood TH-D74.

Let’s Make a Cron Job

Cron is the unix daemon that executes simple commands on a schedule.

Run cron -e to edit your user’s personal cron tab, so that nothing needs to run as root. Each line of the crontab contains the Minute, Hour, Day of Month, Month, and Day of Week for the command to be run, followed by the command.

If all of these were *, the command will run every minute. Instead, let’s set the command run run every day at 16h56 (4:56 pm) by adjusting the crontab file to the following.

# m h  dom mon dow   command
56 16  *   *   *     xastir_udp_client localhost 2023 N0CALL ...

I chose that time because it was a minute ahead of my clock, but any will do. Please don’t spam the network by transmitting more than once an hour, and try to avoid round times that might be used by other transmissions.

What Next?

Some other nifty things you might try are transmitting the status of something to a specific host. For example, it might be handy to send your home station a status update from a remote site, even if the Internet connection to that site goes down.

73 from Knoxville,

–Travis KK4VCZ