48 lines
1.3 KiB
Markdown
48 lines
1.3 KiB
Markdown
# Beast protocol
|
|
|
|
## Ports
|
|
|
|
* 30005: server -> client feed
|
|
|
|
## Format
|
|
|
|
All data is escaped: `0x1a -> 0x1a 0x1a`. Note that synchronization is still
|
|
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:
|
|
* != 0x1a
|
|
* 0x1a
|
|
* {0x31, 0x32, 0x33}
|
|
Escaping makes frame length for a given type variable, up to
|
|
`2 + (2 * data length)`
|
|
|
|
* 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
|
|
|
|
## 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)
|