Loading...

DJI F450 LTE Drone. It’s a cellular-connected quadcopter I built using a DJI F450 frame, LilyGO ESP32 board, and integrated 4G/LTE modem.

It’s designed for beyond visual line of sight (BVLOS) operations with internet-based control instead of traditional RC links.

What It Can Do The F450 LTE Drone includes the following capabilities:

  • Cellular Telemetry: Full MAVLink communication over 4G/5G networks
  • Long Range Control: Operates anywhere with cellular coverage
  • GPS Navigation: Autonomous waypoint missions and return-to-launch
  • Live Video Streaming: Real-time camera feed over LTE connection
  • Fail-Safe Systems: Multiple backup systems for safe operations
  • Ground Station Integration: Works with QGroundControl and Mission Planner

What You Need To build this project, I used:

  • DJI F450 Frame + Motors & ESCs
  • Pixhawk Flight Controller + GPS Module
  • LilyGO T-A7670G (ESP32-S3 + 4G Modem)
  • 4G/LTE Antennas + SIM Card
  • 3S/4S LiPo Battery
  • RC Receiver (for fail-safe)
  • Various cables and mounting hardware

How It Works

  1. Build the Hardware: Mount all components on F450 frame with proper power distribution
  2. Upload Firmware: ArduPilot on Pixhawk, custom MAVLink bridge code on LilyGO
  3. Configure Network: Set up cellular APN, VPN tunnel, and ground station connection
  4. Calibrate Systems: IMU, compass, ESCs, and fail-safe parameters
  5. Test Flight:
    • Ground Tests: Verify all systems and connections
    • Short Range: Test with visual contact first
    • Long Range: Gradual range extension with cellular link

Performance Achieved

  • Range: Limited only by cellular tower coverage
  • Latency: 50-200ms typical (network dependent)
  • Flight Time: 15-25 minutes depending on payload
  • Control: Full autonomous mission capability
  • Streaming: 720p video at 1-2 Mbps

Key AdvantagesCost Effective: LilyGO boards much cheaper than traditional cellular modules ✅ Integrated Design: Built-in LTE modem eliminates external dongles ✅ Low Power: ESP32 consumes less power than Raspberry Pi solutions ✅ Real-Time: No OS overhead for critical flight operations ✅ Scalable: Easy to add multiple drones to same network infrastructure

SETUP…

Mount a LilyGO ESP32 board with integrated SIM card/LTE modem on a DJI F450 frame to build a drone independent of traditional RC links, operating with an IP-based (4G/5G) telemetry and control system. The aim is wide coverage and secure connectivity for long-range missions.

System Architecture

[Ground Station] —(Internet/VPN)— [Server (optional)] —(LTE)— [LilyGO ESP32] —(UART/MAVLink)— [Pixhawk/FC]
                                                        │                                      │
                                                        └— [Camera (optional)]                └— [ESC/Motor]
                                                        │
                                                        └— [GPS/IMU/Sensors]


System Components:

  • Flight Controller (FC): Pixhawk-compatible board (ArduPilot or PX4)
  • Companion Computer: LilyGO T-SIM7000G or T-A7670G
  • Connectivity: Integrated 4G/LTE modem + SIM card
  • Ground Station: QGroundControl / Mission Planner (telemetry & mapping)
  • Optional Server: Tunnel/VPN, MAVLink routing, logging

Bill of Materials (BOM)

Frame and Mechanical

  • Frame: DJI F450 (original or clone) + vibration dampers
  • Motors: 2212-2216, 800-1000 KV (×4) – e.g., DJI E305
  • ESCs: 30A BLHeli_S/BLHeli_32 (×4) – SimonK firmware supported
  • Propellers: 9×4.5 or 10×4.5 (2 CW + 2 CCW) – carbon fiber recommended
  • Battery: 3S LiPo (3000-4000 mAh) or 4S (2200-3300 mAh), XT60 connector
  • Power Distribution: Integrated PCB or separate PDB + UBEC (5V/3A, 12V/2A)

Electronics and Controller

  • Flight Controller: Pixhawk 6C/6X, Cube Orange, or compatible clone
  • GPS/Compass: Here3/Here4 RTK capable (recommended) or NEO-M8N minimum
  • Telemetry: 915MHz/433MHz module (backup)
  • RC Receiver: SBUS/PPM compatible (for failsafe)

Computing and Communication

  • LilyGO Board:
    • T-SIM7000G: ESP32 + SIM7000G (2G/3G/4G/NB-IoT)
    • T-A7670G: ESP32-S3 + A7670G (4G LTE Cat-1)
    • T-SIM7080G: ESP32-S3 + SIM7080G (4G LTE Cat-M/NB2)
  • SIM Card: IoT data plan (static IP/VPN preferred)
  • Antennas:
    • LTE: 2×2 MIMO antenna (700-2700MHz)
    • GPS: Active GPS antenna (if external GPS used)
    • RC: 2.4GHz/915MHz antenna

Optional Components

  • Camera: ESP32-CAM module or USB UVC camera
  • Gimbal: 2-axis brushless gimbal
  • FPV: Digital FPV system (DJI Air Unit, Walksnail etc.)
  • Sensors: LiDAR (TFMini-S), optical flow sensor

Assembly and Protection

Hardware: M3/M2.5 screws, standoffs, zip ties
Enclosure: IP65 rated plastic case (for LilyGO and electronics)
Vibration Isolators: Gel dampers, anti-vibration pads
Cables: UART, USB, power cables – EMI shielded

Power System and Assembly

Power Distribution

Battery (11.1V/14.8V)
├── PDB → ESCs → Motors
├── UBEC (12V/2A) → Gimbal, Antennas
├── UBEC (5V/3A) → LilyGO ESP32, Camera
└── Linear Regulator → Pixhawk (5.5V)

Software Stack

Flight Controller (Pixhawk)

# ArduPilot Copter firmware (recommended)
- ArduCopter 4.4+ (LTE telemetry support)
- Parameter configuration:
  - SERIAL1_PROTOCOL = 2 (MAVLink2)
  - SERIAL1_BAUD = 115200
  - FS_THR_ENABLE = 1 (RC failsafe)
  - RTL_ALT = 50 (RTL altitude 50m)
  - FENCE_ENABLE = 1 (geofence active)

LilyGO ESP32 Setup

// Arduino IDE setup for LilyGO boards
// Board: ESP32 Dev Module or ESP32S3 Dev Module
// Libraries needed:
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <HardwareSerial.h>

// LTE modem libraries (board specific)
#include <TinyGsmClient.h>  // For SIM7000G/A7670G

// MAVLink library
#include <mavlink.h>

Network Configuration

// LTE connection setup for LilyGO
void setupLTE() {
    // Initialize modem
    modem.restart();
    modem.gprsConnect(apn, gprsUser, gprsPass);
    
    // Check network registration
    if (modem.isNetworkConnected()) {
        Serial.println("Network connected");
    }
}

// VPN connection (OpenVPN/WireGuard alternative for ESP32)
void setupSecureConnection() {
    // Use HTTPS/WSS for secure communication
    // Certificate-based authentication
}

MAVLink Tunneling (over LTE)

LilyGO ESP32 Code

#include <HardwareSerial.h>
#include <WiFiClientSecure.h>
#include <ArduinoWebsockets.h>

// UART to Pixhawk
HardwareSerial pixhawkSerial(1);
WebsocketsClient wsClient;

void setup() {
    // Initialize UART for Pixhawk communication
    pixhawkSerial.begin(115200, SERIAL_8N1, 16, 17); // RX, TX pins
    
    // Setup LTE connection
    setupLTE();
    
    // Connect to WebSocket server (secure tunnel)
    wsClient.connect("wss://your-server.com/mavlink");
}

void loop() {
    // Forward MAVLink from Pixhawk to server
    if (pixhawkSerial.available()) {
        String mavlinkData = pixhawkSerial.readString();
        wsClient.send(mavlinkData);
    }
    
    // Forward commands from server to Pixhawk
    if (wsClient.available()) {
        String command = wsClient.readString();
        pixhawkSerial.print(command);
    }
}

Simple UDP Bridge Alternative

#include <WiFiUdp.h>

WiFiUDP udp;
const char* serverIP = "your-vpn-server-ip";
const int serverPort = 14550;

void forwardMAVLink() {
    // Read from Pixhawk UART
    if (pixhawkSerial.available()) {
        uint8_t buffer[512];
        int len = pixhawkSerial.readBytes(buffer, sizeof(buffer));
        
        // Send via UDP to ground station
        udp.beginPacket(serverIP, serverPort);
        udp.write(buffer, len);
        udp.endPacket();
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *

Facebook Twitter Instagram Linkedin Youtube