SmartBeaconing™

SmartBeaconing™ is a beaconing algorithm invented by Tony Arnerich KD7TA and Steve Bragg KA9MVA.

Parameter Description
Fast Speed At this speed or above, beacons will be transmitted at the Fast Rate.
Fast Rate How often beacons will be sent when you are travelling at or above the Fast Speed.
Slow Speed This is the speed below which you’re considered stationary.
Slow Rate How often beacons will be sent when you are are below the Slow Speed.
Min Turn Time The smallest time interval between beacons when you are continuously changing direction.
Min Turn Angle The minimum angle by which you must change course before it will trigger a beacon.
Turn Slope This number, when divided by your current speed will be added to the Min Turn Angle in order to increase the turn threshold at lower speeds.

Discussion

To describe the algorithm, let’s first establish some standard parameters:

Reacting to Speed Changes

Let’s first talk about how the algorothm responds to speed changes. If you were to start from a dead stop and steadily increase your speed up to a highway speed of 70 mph, the time interval between beacons would decrease proportionally. This is what it would look like on a graph:

SmartBeaconing Speed Chart

As you can see by the chart, the beacon interval is limited at the maximum by the Slow Rate and at the minimum by the Fast Rate. Effectively, this means that when you are going slow, or not moving at all, at the very least you would transmit a beacon every 10 minutes.

As you speed up, the beacons start getting closer and closer until they cap out at the Fast Rate. This limit is there to prevent abuse of the APRS network; QTH.app should never send beacons any faster than the Fast Rate.

Reacting to Angle Changes

SmartBeaconing responds to course changes with a strategy called “Corner Pegging”.

Keeping track of the last course heading that was beaconed, we compare the current heading to the last heading to calculate an angular difference. So, for example, if you were heading, west (270°) and you turned left and headed south (180°), this would be a 90° change.

To determine whether to trigger a beacon, we calculate a turn angle threshold. We start with the Min Turn Angle parameter; this is the smallest possible angle change that will trigger a beacon. However, in practice, the actual angle threshold will be a different number, depending on your speed.

This is where Turn Slope takes effect. You will notice that the Turn Slope parameter doesn’t have displayed units. Technically, the units are angle * speed. When divided by the current speed, the number produced is added to the Min Turn Angle to form the turn threshold.

SmartBeaconing Slope Chart

In the above chart, if you were travelling at 10 mph and had a Turn Slope of 255, the angle added to Min Turn Angle would be 26°, for a final threshold of 56°. So, you would need to change course by more that 56° in order to trigger a beacon to be sent.

If, instead, you were travelling at 60 mph, with a Turn Slope of 255, then it would only add 4°. You would only have to change course by 34° to trigger a beacon.