Add airspy_adsb protocol doc
This commit is contained in:
43
protocols/airspy_adsb.md
Normal file
43
protocols/airspy_adsb.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Airspy protocol
|
||||
|
||||
## Ports
|
||||
|
||||
* ??: server -> client feed
|
||||
|
||||
## Format
|
||||
|
||||
Textual format, similar to [raw](raw.md), but extended with MLAT and signal
|
||||
level data. Unlike raw format, lines are terminated with `0x0d 0x0a` (`\r\n`).
|
||||
|
||||
|
||||
## Frame structure
|
||||
* `0x2a` (`*`)
|
||||
* 7 or 14 byte frame (see [raw](raw.md))
|
||||
* `0x3b` (`;`)
|
||||
* 4 byte MLAT timestamp (see below)
|
||||
* `0x3b` (`;`)
|
||||
* 1 byte MLAT precision (see below)
|
||||
* `0x3b` (`;`)
|
||||
* 2 byte big-endian RSSI
|
||||
* `0x3b 0x0d 0x0a` (`;\r\n`)
|
||||
|
||||
|
||||
## MLAT timestamp
|
||||
The MLAT timestamp included in each frame is the big-endian value of a counter
|
||||
at the time of packet reception. The counter runs at a rate determined by the
|
||||
precision value multiplied by 2 MHz (e.g. `0x0a` means `10 * 2 MHz = 20 MHz`).
|
||||
This counter isn't calibrated to external time, but receiving software can
|
||||
calculate its offset from other receiving stations across multiple packets, and
|
||||
then use the differences between station receive timing to calculate signal
|
||||
source position.
|
||||
|
||||
|
||||
## Examples
|
||||
|
||||
* `*5DA7DA1CE30DE5;D03B5A4B;0A;7AF3;\r\n`
|
||||
* `*8DA07CD89915908778A01E4B4C86;D03D33F9;0A;8437;\r\n`
|
||||
|
||||
|
||||
## Implementations
|
||||
|
||||
* [Airspy ADSB decoder](http://airspy.com/download/)
|
||||
Reference in New Issue
Block a user