reid.wiki

Projects / Embedded & Control

Drone Ground Station

A portable ground control station in a Pelican 1550: mini PC, custom ESP32-S3 control-panel PCB, dual MFD displays, and a fully engineered 12V LiFePO4 power system.

Status
Active
Timeline
2025 to present
Last updated
June 2026
ESP32-S3KiCadLVGLTinyUSBPlatformIOQGroundControlWFB-NGLiFePO4

Overview

The autonomous drone needed something better than a laptop balanced on a truck tailgate. This is a self-contained ground station built into a Pelican 1550: a Beelink mini PC running Ubuntu, QGroundControl, and the WFB-NG video downlink, plus a custom control panel that makes the whole thing feel like equipment instead of a science fair table.

The control panel PCB

The panel is driven by a custom ESP32-S3 board that bridges physical controls (joystick, throttle, toggle switches, rotary encoders, a key switch) to the PC as a USB composite device: an HID gamepad that QGroundControl reads natively, plus a CDC serial channel for telemetry.

The board was routed entirely headless: schematic ERC driven from 33 violations to 0, then 668 traces and 32 vias autorouted with 0 DRC violations, verified via kicad-cli automation. Along the way I caught a real footprint bug (the generic 2×20 header didn’t match the DevKitC-1’s 22.86 mm row spacing) and fixed it with a custom footprint plus an SPI remap off the octal-PSRAM pins.

Ground Station Controller PCB, 3D render
Controller PCB: ESP32-S3 socket, dual MCP23017 expanders, 668 traces routed headless.

Two ILI9341 displays run LVGL-based MFD/PFD screens, prototyped in an SDL2 desktop simulator that switches to real hardware with one line.

GROUND STATION · MFD / PFD LINK PFD BATT14.6 V ALT82 m RANGE2.14 mi MODEAUTO ▸ WPT 3 MFD JOYSTICK THR TOGGLES ×4 ROTARY ×4 ARM KEY
LVGL PFD/MFD over CDC serial; the ESP32-S3 presents the controls to the mini-PC as a USB HID device.

The power system

A 12 V, 40 Ah LiFePO4 bus with a per-branch fuse schedule, pass-through AC charging, and thermostatic cooling. Budgeted at ~38 W typical draw for 13+ hours of runtime, with a labeled 23-wire harness cut list. The bottom panel is manufactured and mounted.

Status

PCB v1 is fab-ready (Gerbers exported, order not yet placed). Remaining: battery fit-check (the 170 mm pack vs. 149 mm of case depth is an open argument with physics), top panel design, and porting the LVGL screens from the simulator to the physical displays.

3D-printed controller mounting tray
Parametric mounting tray, driven by the as-fabricated board geometry.