Ardupilot Cloud EcoSystem Logo

Contents:

  • What is DroneEngage?
  • Getting Started
    • 1. Introduction
    • 2. Select Your Hardware
    • 3. Create Access Code
    • 4. Install DroneEngage Unit
  • Server
    • Authentication Server
    • Admin Web Interface
    • Communication Server
    • How to Install
      • Air-Gap RPI-4 Backend-Server Deployment
      • Local Maps
  • DroneEngage
    • Web Client
    • UDP Telemetry Forwarding
    • GamePad
    • Servo Control
    • SWARM Interface
    • GCS Chat
    • DE Camera Module
    • Plugins
    • Advanced Features
      • GEO-Fencing
      • RC Blocking
      • TX Freeze
      • Swarm Operations
    • Configuration
    • WebClient Module
    • MAVLink Module
    • Communication Module
    • Communication Configuration
    • MAVLink Configuration
  • Installation Guide
    • Installing DroneEngage
      • Installing from Binaries
    • RPI Administration Tools
      • WiFi Manager
      • Account Setup
      • App Management
      • Module Updater
      • File Navigator
      • Terminal
  • Developer Guide
    • Building & Setup
    • Raspberry Pi Deployment
    • Architecture
      • System Architecture
      • Communication Protocol
      • DataBus (Inter-Module Communication)
    • Extending DroneEngage
      • DroneEngage Custom Plugin
      • Custom Plugin Development
      • C++ Plugin Development
      • Node.js Plugin Development
      • Python Plugin Development
      • Adding Custom Swarm Modes
      • Communication Module Config
      • MAVLink Module Config
    • Web Client Technicals
      • Authentication System
      • Configuration Management
      • Server Communication
      • Site Configuration
      • Unit Management
      • WebRTC Video Streaming
      • Mission Planning Base
    • Communication Module Technicals
      • Plugin-Broker Architecture
      • Configuration System
      • Definition
      • Example Usages
      • Notes
      • See Also
      • Definition
      • Example Usages
      • Notes
      • See Also
      • Definition
      • Example Usages
      • Notes
      • See Also
      • Definition
      • Example Usages
      • Notes
      • See Also
      • Configuration File Management
    • Server Technicals
      • Authentication Server
      • Authentication Server Internals
      • Communication Server Internals
      • Authentication ↔ Communication Flow
      • Mesh Communication Server Relay
      • API Endpoints
      • Authentication Flow
      • Configuration
      • Database Schema
      • Message Propagation
      • S2S Authentication
    • MAVLink Module Technicals
      • Definition
      • Example Usages
      • Notes
      • See Also
      • Configuration File System
      • Effect of m_rate_limit
      • Interaction with Kalman filter
      • Range of reasonable values
      • Definition
      • Example Usages
      • Notes
      • See Also
      • Definition
      • Example Usages
      • Notes
      • See Also
  • Scenarios
    • On-Board DroneEngage
    • Ground-DroneEngage (Air Unit)
    • All-In-One Board (RPI as FCB + Companion)
    • DroneEngage Camera Module
    • Video Pipelining
  • Use Cases
    • First Longe Range Intercontenental Controlled Rover 2016
    • DroneEngage Rover in France 2025
  • Simulation (SITL)
  • Legacy/Andruav
    • What is Andruav
    • Getting Started
    • How to Build Andruav_Ap
    • APK Download
    • Andruav Serial Port
    • Andruav FPV
    • Andruav Advanced Features
    • Using Andruav with SITL
  • FAQ
  • Glossary
  • Contributing
  • Legacy/Obsolete
    • Andruav GCS App
    • Andruav Telemetry
      • Andruav GCS Telemetry
  • Downloads

Sites:

Web-Client Site Account Management Binaries Download
Ardupilot Cloud EcoSystem
  • DroneEngage Documentation
  • de_mavlink Configuration File
  • View page source

de_mavlink Configuration File

A file called de_mavlink.config.module.json exists in /home/pi/drone_engage/de_mavlink/ This file is written in JSON format. However, you can still add comments to the file. To those who do not know JSON just consider it a text file that you need to edit only few lines in it.

Accessing the Configuration File

Login to your Raspberry-PI board using ssh.

ssh pi@raspberry_pi_ip_address

and go to the file

cd /home/pi/drone_engage/de_mavlink/
ls

and open the file

nano de_mavlink.config.module.json

Fields Meaning

module_id

  • Just a name for your module

  • Example: “FCB_CTRL”

s2s_udp_target_ip

  • Points to de_comm listening IP

  • Example: “127.0.0.1”

s2s_udp_target_port

  • de_comm listening port

  • Example: “60000”

s2s_udp_listening_ip

  • This module’s listening IP

  • Example: “127.0.0.1”

s2s_udp_listening_port

  • This module’s listening port

  • Example: “61003”

s2s_udp_packet_size

  • UDP packet size

  • Example: “8192”

fcb_connection_uri

  • Connection to FCB board

  • Example: See examples below

default_optimization_level

  • Telemetry optimization 0-3

  • Example: 2

udp_proxy_enabled

  • Enable UDP telemetry

  • Example: false

udp_proxy_fixed_port

  • Fixed UDP port (optional)

  • Example: 15412

read_only_mode

  • Block all commands from WebClient

  • Example: false

logger_enabled

  • Enable logging to Logs folder

  • Example: true

logger_debug

  • Enable debug logging

  • Example: false

message_timeouts

  • MAVLink message rate control

  • Example: See below

event_fire_channel

  • Event fire channel

  • Example: 16

event_wait_channel

  • Event wait channel

  • Example: 15

rc_block_channel

  • RC block channel (1-8, -1=off)

  • Example: -1

mavlink_ids

  • MAVLink ID configuration

  • Example: See below

rc_channels

  • RC channel configuration

  • Example: See below

follow_me

  • Follow Me PID settings

  • Example: See below

Connection Examples

Connecting via TCP:

{
"fcb_connection_uri": 
{
"type": "tcp",
"ip": "127.0.0.1",
"port": 7600
}
}

Connecting via UDP:

{
"fcb_connection_uri": 
{
"type": "udp",
"ip": "0.0.0.0",
"port": 14551
}
}

This connection is straightforward using UDP. This is suitable when connecting DroneEngage to boards like OBAL via OTG Ethernet.

Connecting to a Serial Port:

Static Port:

{
"fcb_connection_uri":
{
"type": "serial",
"port": "/dev/ttyUSB1",
"baudrate": 115200
}
}

Dynamic Port Search:

{
"fcb_connection_uri":
{
"type": "serial",
"port": "/dev/ttyUSB",
"baudrate": 115200,
"dynamic": true
}
}

The dynamic field will make the module search for a valid mavlink port from /dev/ttyUSB0 to /dev/ttyUSB10. So even if you unplug and plug it again and the USB appeared on different address, the module will find it. This feature is developed to be able to detect mavlink port from Scan port.

baudrate has to match the baudrate defined in FCB. You can open GCS and configure mavlink parameters.

Important: You need to connect TX of RPI to RX of the FCB and vice-versa.

Important: If you want to use the OTG USB port make sure you run rasp-config and disable shell but keep serial port enabled.

MAVLink IDs Configuration

"mavlink_ids": {
    "de_mavlink_gcs_id": 255,
    "only_allow_ardupilot_compid": 0,
    "only_allow_ardupilot_sysid": 0
}
  • de_mavlink_gcs_id: Local GCS system ID (255 = default, -1 = disable heartbeat)

  • only_allow_ardupilot_compid: Only receive mavlinks from specified component ID (0 = no restriction)

  • only_allow_ardupilot_sysid: Only receive mavlinks from specified system ID (0 = no restriction)

RC Channels Configuration

Used for Gamepad control via Drone-Engage Web Client. Determine channels enabled, reverse, max & min PWM range.

"rc_channels": {
    "rc_smart_channels": {
        "active": true,
        "rc_channel_enabled": [1, 1, 1, 1],
        "rc_channel_limits_max": [2000, 2000, 1750, 2000],
        "rc_channel_limits_min": [1000, 1000, 1300, 1000]
    },
    "rc_channel_enabled": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    "rc_channel_reverse": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    "rc_channel_limits_max": [1850, 2000, 1750, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000],
    "rc_channel_limits_min": [1150, 1000, 1300, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000]
}
  • rc_smart_channels: Optional but recommended settings for ROLL-PITCH-THR-YAW regardless of actual settings on ardupilot

  • rc_channel_enabled: Array indicating which channels are active (1 = enabled, 0 = disabled)

  • rc_channel_reverse: Array indicating which channels are reversed (1 = normal, -1 = reversed)

  • rc_channel_limits_max/min: PWM limits for each channel

Follow Me Configuration

PID and Expo settings for autonomous tracking functionality:

"follow_me": {
    "PID_P_X": 1.0,
    "PID_P_Y": 1.0,
    "PID_I_X": 0.00,
    "PID_I_Y": 0.00,
    "expo_factor": 0.5,
    "deadband": 0.1,
    "rate_limit": 0.1
}
  • PID_P_X/Y: Proportional gain for X/Y axis tracking (0.1-5.0)

  • PID_I_X/Y: Integral gain for X/Y axis tracking (0.0-1.0)

  • expo_factor: Exponential curve for response (0.0-1.0)

  • deadband: Deadband threshold (0.0-0.5)

  • rate_limit: Max rate change per second (0.05-0.2)

Message Timeouts

The message_timeouts section controls the rate at which different MAVLink messages are sent in telemetry mode. Each message type has an array of four values representing different optimization levels (0-3), where 0 is maximum bandwidth and 3 is minimum bandwidth.

Example configuration:

"message_timeouts": {
    "0": [0, 1000, 2000, 3000],      // HEARTBEAT
    "24": [0, 800, 1000, 2000],     // GPS_RAW_INT
    "30": [0, 250, 1000, 2000],     // ATTITUDE
    "33": [0, 250, 1000, 2000],     // GLOBAL_POSITION_INT
    "74": [0, 500, 1000, 2000]      // VFR_HUD
}

The array format is [level_0, level_1, level_2, level_3] where each value represents the timeout in milliseconds for that optimization level.

Previous Next

© Copyright 2026, Ardupilot.org (Powered by Andruav.com).