DroneBridge Docs
  • Introduction
  • Comparison
  • DroneBridge for Raspberry Pi
    • Release Notes
    • Getting started
    • Supported hardware
    • Standard Modules
    • Milestones
    • mwptools
    • Adjusting TX Power & EIRP
  • DroneBridge for ESP32
    • Overview
    • Hardware & Wiring
    • Installation
    • Configuration
    • Safety & Integration
    • Hardware Setup Examples
    • Troubleshooting/Help
    • Logging & Debugging
    • Developer & API Documentation
  • DroneBridge for Android
    • DroneBridge for Android (deprecated)
  • DroneBridge Desktop
    • Enabling monitor mode
    • Video stream playback
  • Developer Guide DroneBridge for Raspberry Pi
    • Downloading & Compiling
    • System Architecture
    • Startup & Logs
    • Raw protocol
    • Communication protocol
    • Status messages
    • RC message/packet
    • USB message
    • Plugins
    • Image Build
    • System Integration Test Specification
    • DroneBridge lib example usage
    • Notes About Injection
Powered by GitBook
On this page
  • DroneBridge Common Library
  • Startup Sequence
  • Module architecture of release v0.6
  1. Developer Guide DroneBridge for Raspberry Pi

System Architecture

Description of the different modules and how they communicate with each other.

PreviousDownloading & CompilingNextStartup & Logs

Last updated 5 years ago

DroneBridge Common Library

The common library provides core functions for all DroneBridge modules. This shared code base implements the DroneBridge raw protocol and therefor handles the setup of the required sockets based on user input. The library provides convenience functions for sending & receiving data using the raw protocol, can encrypt payloads (AES + EAX, Python only for now), and defines structures to be used for inter-process communication between major modules.

Startup Sequence

All DroneBridge applications are started by the start_db.service. Most of the startup scripts are located inside the startup folder. Like any service it can be started, stopped & re-started. During stopping or restarting there might still be some bugs.

Module architecture of release v0.6

Following Block Diagram shows how the different DroneBridge modules communicate with each other on the network & long range link. Some modules that do not have complex communication paths are not displayed (SysLogServer, OSD). Same goes for communication via shared memory.

GCS connected via network

In this case a GCS like DroneBridge for Android or QGroundControl is connected via TCP to the DroneBridge GND side. A UDP data stream (video) is sent via unicast to 192.168.2.1. A different destination IP can be registered by sending a UDP packet of any size and content to the video module on UDP port 5000.

DroneBridge for Android via USB connection

In this case of a connected android phone to the DB GND station, the USB Bridge module auto-connects to all relevant modules and forwards the messages to the phone using the Android Accessory Protocol. At this point only the DroneBridge for Android app supports this mode.

Information on how to use the library can be found in the .

examples chapter
DroneBridge common library concept
Startup Sequence of DroneBridge for Raspberry Pi
Ground Control Station (GCS) connected to DroneBridge GND station via network
DroneBridge for Android connected via USB