Standard Modules
Information on all standard modules on what they do and their inputs & outputs
General
All modules use the common library to send & receive data via the long range link. Some modules exist in different implementations depending where they are running (UAV, GND station). All modules log to RSysLog.
Video Module
Capable of transmitting a continuous stream of data that is protected by forward error correction (FEC). Any kind of data can be fed to the UAV module and is stream to the ground.
UAV Input of data stream via STDIN. FEC packets are computed and sent to GND interleaved with data packets. FEC parameters and packet size can be set via config/command line parameters.
-n Name of a network interface that should be used to receive the stream.
Must be in monitor mode. Multiple interfaces supported by calling this
option multiple times (-n inter1 -n inter2 -n interx)
-c [communication id] Choose a number from 0-255. Same on ground station and UAV!
-d Number of data packets in a block (default 8). Needs to match with RX
-r Number of FEC packets per block (default 4). Needs to match with RX
-f Bytes per packet (default 1024. max 1500). This is also the FEC block size.
Needs to match with RX
-b bit rate in Mbps [1|2|5|6|9|11|12|18|24|36|48|54]
(bitrate option only supported with Ralink chipsets)
-t [1|2] DroneBridge v2 raw protocol packet/frame type:
1=RTS, 2=DATA (CTS protection)
-a [0|1] disable/enable. Offsets the payload by some bytes so that it sits outside
the 802.11 header. Set this to 1 if you are using a non DB-Rasp Kernel!Example: Send data received via STDIN.
cat mydatasource | video_air -n wlx185 -n wlx185 -c 200 -t 2
GND
Data from the UAV module is received and FEC decoded. Depending on the configuration the decoded data is sent to specified outputs. UDP endpoints can register with the module by sending a >0 length UDP packet. This will change the UDP receiver to the senders IP. Destination port is 5000.
Example call: Receive and forward STDOUT to a video player
video_gnd -n wlx185 -n wlx185 -c 200 -u N | MyVideoPlayer -supportsH264
Control Module
The control module is responsible for RC & telemetry on the UAV.
UAV On the UAV the control module operates the serial connections to the flight controller.
Receive RC messages & forward them to the FC (SUMD)
Receive messages from proxy module and forward them to the FC
Receive data from the FC, parse data if configured and forward to proxy module
Send status messages to status module (CPU temp, RC packet-loss)
GND Read values from connected RC hardware and forward the channel data to the UAV module using the defined method/protocol.
RC values can be overwritten by other applications (e.g. plugins) using a shared memory object.
Example: Read from RC connected to /dev/input/js0 and send to control module on Air side
control_ground -n wlx684864 -c 200 -j 0 -v 5 -t 5 -r 70
Proxy Module
Runs on the ground station computer.
Receives any kind of data via the long range link
Forwards received data to all connected TCP clients
Bi-Directional: Forwarding of TCP data via long range link to control module raw port
Fully transparent
Writes data received via long range link to
/root/telemetryfifo1for further processing by the OSD
Example: Wifi to DroneBridge long range link bridge:
db_proxy -n wlx785 -c 200 -o N -t 2
Status Module
Receives and processes status messages like CPU load and temperature of the Air-Unit. Used for information with higher update rates (>5Hz)
USBBridge
Used to forward TCP/UDP messages transparently between and android device and the DroneBridge modules. Implements the Android Open Accessory Protocol and the DroneBridge USB message.
OSD
Runs on the ground station. Creates an OSD overlay based on telemetry received via the proxy module (FIFO: /root/telemetryfifo1).
Only compiles on the Raspberry Pi. Used OpenVG with some transparency mods.
Syslog Server
Receives messages from RSysLog and forwards them to all connected TCP clients.
Last updated