Files
adsb-tools/protocols/beast.md

50 lines
1.3 KiB
Markdown
Raw Normal View History

2016-02-13 22:38:40 +00:00
# Beast protocol
## Ports
* 30005: server -> client feed
2016-02-13 22:56:41 +00:00
## Format
2016-02-13 22:58:09 +00:00
All data is escaped: `0x1a` -> `0x1a 0x1a`. Note that synchronization is still
2016-02-13 22:56:41 +00:00
complex, since `0x1a 0x31` may be the start of a frame or mid-data, depending
on what preceded it. To synchronize, you must see, in order:
2016-02-13 22:58:09 +00:00
* != `0x1a`
* `0x1a`
* {`0x31`, `0x32`, `0x33`}
2016-02-13 22:56:41 +00:00
Escaping makes frame length for a given type variable, up to
2016-02-13 22:58:09 +00:00
`2 + (2 * data_length_sum)`
2016-02-13 22:56:41 +00:00
* Mode-AC frame
* `0x1a 0x31`
* 6 byte MLAT timestamp (TODO: endianness? units?)
* 1 byte signal level (TODO: units?)
* 2 byte Mode-AC data
* Mode-S short frame
* `0x1a 0x32`
* 6 byte MLAT timestamp (TODO: endianness? units?)
* 1 byte signal level (TODO: units?)
* 7 byte Mode-S short data
* Mode-S long frame
* `0x1a 0x33`
* 6 byte MLAT timestamp (TODO: endianness? units?)
* 1 byte signal level (TODO: units?)
* 14 byte Mode-S long data
* Status data
* Appears to only be used by Mode-S Beast hardware later versions
* `0x1a 0x34`
* 6 byte MLAT timestamp (TODO: endianness? units?)
* ?? byte status data
* ?? byte DIP switch configuration
2016-02-13 22:38:40 +00:00
## Implementations
* [Mode-S Beast hardware](http://modesbeast.com/scope.html)
* [FlightAware dump1090 fork](https://flightaware.com/adsb/piaware/install)
## References
* [Original description](http://wiki.modesbeast.com/Mode-S_Beast:Data_Output_Formats)