SmartBeaconing ™ was developed by Tony Arnerich KD7TA and Steve Bragg KA9MVA on the HamHUD. It was originally used with the HamHUD but is now used by many devices such as the TinyTrak3, OpenTracker and APRS clients such Xastir.
At the inception of APRS, the equipment available had no provisions for deciding when to transmit other than through simple timing parameters. Tony and Steve came up with the idea of using the incoming GPS data to determine when it would be appropriate to send out a position update. Rather than simply beacon at a fixed rate, they created an algorithm that would beacon at a slow rate when the unit was sitting still, and beacon at a faster rate when the unit was moving. At this time they also came up with another concept to enhance the track laid down by a moving APRS unit. CornerPegging ™ involves watching for a change in direction of travel. Again, when a change in direction of travel is detected, the unit is instructed to beacon. CornerPegging also looks at the velocity of the unit, and uses that to adjust the amount of deviation in the direction of travel required to cause a beacon.
Through the use of SmartBeaconing and CornerPegging one is able to leave behind a very detailed track of the route travelled, using a small number of packets. This technique is more channel efficient than simple time based beaconing, as it dynamically reduces the number of packets being sent as the unit velocity decreases.
SmartBeaconing allows the user to set the maximum beacon rate desired, associated with a maximum velocity, as well as a minimum beacon rate desired, associated with a minimum velocity. In comparison, timed beacons occur at the same rate whether the unit is moving or not. With SmartBeaconing, one can set the unit to beacon once every 3 minutes at a velocity of 60 mph or higher, but to only beacon once every 30 minutes at a velocity of 3 mph or less. This is more channel efficient than having the same unit beacon at a set rate of once every 3 minutes regardless of the velocity.
CornerPegging is the portion of the algorithm that increases the accuracy of the track laid down by the unit. While driving in a straight line, there is no need to keep reporting information that can be determined by DeadReckoning. However, it is important to report deviations from that straight line track. Using time based beaconing, it is quite common to see tracks that appear to show the tracked unit driving straight through buildings, or across open fields, or bodies of water. With CornerPegging the unit watches for changes in direction of travel and determines when it is appropriate to send a beacon. Minimum change of direction settings control how much of a turn will trigger a beacon. CornerPegging also makes use of velocity information to tailor the amount of change of direction required to trigger a beacon. This allows the unit to send a beacon for a shallow turn at high velocity, while ignoring low speed changes of direction, such as lane changes.
Recommended SmartBeaconing settings for a vehicle, for normal driving:
|Fast Speed||60||mph||3 miles per posit|
|Fast Rate||180||sec||3 miles per posit|
|Slow Speed||5||mph||go to low rate at/below 5mph|
|Min Turn Time||15||sec||15 secs dead-time for corner posits|
|Min Turn Angle||30||deg||~30 deg per posit at higher speeds|
|Turn Slope||255||unitless||requires a turn of more degrees at slower speeds|
Turn Slope: Someone wrote recently on the TinyTrak list that 255 is an error that has been carried forward many places, and default should be 25. Stay tuned for any updates!
255 is not an error. It is a perfectly valid value for turn slope. Continue to the CornerPegging page for more detailed information.