Building DroneEngage Code
If you want to build binaries form sourcecode in order to make it compatible with your linux platform you need to follow the following steps. In this scenario we will use RPI-4 with Bullseye image. However you can use any version including RPI-5 and Bookworm, or you can even compile it using the same steps on your linux laptop or VM.
Preparing prerequisites
The following steps assume that you know how to install a raspberry-pi and have a raspberry-pi board up and running and accessible using SSH.
ssh pi@raspberrypi.local
cd ~
sudo apt update
sudo apt install git
sudo apt install cmake
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libssl-dev
sudo apt-get install libboost-all-dev
Now you have everything ready.
Downloading Code
mkdir de_code
cd de_code
git clone https://github.com/DroneEngage/droneengage_communication.git
git clone https://github.com/DroneEngage/droneengage_mavlink.git
Compiling Code
Both projects use CMake with automated version management and support for DEBUG and RELEASE builds.
Building droneengage_communication:
cd ~/de_code/droneengage_communication
# For DEBUG build (default)
./build.sh
# For RELEASE build (optimized, increments version)
./build.sh RELEASE
# With additional debug options
./build.sh DEBUG DDEBUG=ON
Building droneengage_mavlink:
cd ~/de_code/droneengage_mavlink
# For DEBUG build (default)
./build.sh
# For RELEASE build (optimized, increments version)
./build.sh RELEASE
# With additional debug options
./build.sh DEBUG DDEBUG=ON
Build Script Options:
DEBUG: Default build type with debug symbols (-g3, -Og)
RELEASE: Optimized build (-O2) with version increment
DDEBUG=ON: Enable detailed debug output
Additional compiler flags can be passed as parameters
Version Management:
Both projects use automatic version management: - Format: MAJOR.MINOR.BUGFIX.BUILD - BUILD number auto-increments on RELEASE builds - Version files stored in .version in project root - Current versions:
droneengage_communication: 3.10.1.x
droneengage_mavlink: 5.6.8.x
Output binaries will be in ./bin
Generating Debian Packages (Optional)
Both projects support generating Debian (.deb) packages for easier installation and distribution.
Generate Debian packages:
# For droneengage_communication
cd ~/de_code/droneengage_communication/build
cpack -G DEB
# For droneengage_mavlink
cd ~/de_code/droneengage_mavlink/build
cpack -G DEB
Install generated packages:
# Install communication package
sudo dpkg -i de-communicator-pro-*.deb
# Install mavlink package
sudo dpkg -i de-mavlink-plugin-*.deb
Package Information:
droneengage_communication: Installs to $HOME/drone_engage/de_comm/ - Binary: de_ardupilot - Config files: de_comm.config.module.json, root.crt, template.json - Scripts directory included
droneengage_mavlink: Installs to $HOME/drone_engage/de_mavlink/ - Binary: de_ardupilot - Config files: de_mavlink.config.module.json, template.json
Both packages include dependency information and will automatically install required system libraries if available.