This protocol is used for long range communication in monitor mode. The basic idea is the same as with WifiBroadcast. The protocol allows simple plug & fly as no configuration is needed. Changing the
comm id is required if multiple pilots want to use the same frequency.
DroneBridge custom header
Use any that works. You can set the transmission bit rate here (works with Ralink cards only). Higher bit rate means less latency and more data but also less range.
Total length of the header is 10 bytes. Allows frames to be injected by most/all drivers supporting injection & monitor mode
Has to be the same on drone and ground station. Associates drone with ground station
unsigned int 16 bit
increases with every frame sent to same port. Used to make software diversity possible. Range:
Can be anything. Just make sure the transmission bit rate is set appropriate. In the case of DroneBridge the payload can be on of the following things:
DroneBridge communication protocol (change settings etc.)
MSP (Multiwii Serial Protocol)
H264 in MPEG-TS container in case of GoPro video transmission using DroneBridge video module
LTM (Light Telemetry Protocol)
The specification for encrypted messages is as follows:
Nonce as part of the encryption. Must not be reused for any other
message with same key
MAC or TAG to verify the integrity of the message & authenticate the sender
0 - 1458 bytes
Encrypted data. Length must not exceed 1458 bytes since the MTU in most WiFi drivers is ~1500 bytes
The encrypted payload lies inside the DroneBridge raw protocol payload field. DroneBridge libraries support AES encryption with 128, 192, 256 bit key length. Authentication is done using EAX. The Python library uses the PyCryptodomex implementation. That way DroneBridge allows for end to end encryption of all messages. It is not recommended to enable it on latency sensitive applications like real-time video & audio streams.