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:
- Fast Speed = 60 mph
- Fast Rate = 60 sec
- Slow Speed = 5 mph
- Slow Rate = 600 sec (10 minutes)
- Min Turn Time = 15 sec
- Min Turn Angle = 30°
- Turn Slope = 255
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:
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.
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.