PDL PLATFORM TOOL

PDL Deploy

USB-C device update server for PDL-produced hardware. Connect, scan, and push firmware, trained models, and applications to your entire edge fleet — all from one dashboard, powered by the DGX Spark training pipeline.

4
Target Devices
1-Click
Deploy Workflow
USB-C
Direct Connect
DGX
Pipeline Source

Download Builds

Latest signed builds for the PDL sensor line. Tap to download and install.

📱
NEW · Uploaded Jul 30, 2026

Android App — PDL Tactical

v2.0.0-alpha (build 2) · ~163 MB · Android 8.0+ · 30 Jul 2026
Counter-UAS operator console for the PDL Tier-1/Tier-2 RID sensor line. Pairs directly with a sensor over BLE, or works standalone against OpenForge C2.
New this build: BLE tasking fixes and a Sensors-screen C2 map-button fix, plus a dedicated CmdPacketCodec for the command-packet wire format (8/8 unit tests passing) so tasking sent to a paired T1 sensor encodes/decodes correctly.
Live map of your position, paired sensors, and incoming Remote ID detections.
BLE pairing straight to a T1 sensor (e.g. Spencer01) — relays every detection it hears on to OpenForge C2 with retry, even without a T2 gateway on the network.
Detections & sensors screens for triage without leaving the field.
Debug build — installs directly, no Play Store needed. Grant Bluetooth + location permissions on first launch to pair. Unit-tested; not yet re-verified on a physical handset this session (device unreachable over wireless ADB) — install fresh rather than assuming parity with a device already running the prior build.
⬇ Download APK v2.0.0-alpha
📱
Previous · Jul 29

Android App — PDL Tactical

v2.0.0-alpha (build 1) · ~163 MB · Android 8.0+
Prior build. Same feature set, without the BLE tasking / C2 map-button / command-codec fixes above — new installs should use the build above.
⬇ Download APK (previous)
📡
NEW · Uploaded Aug 8, 2026

RID Sensor — Fleet Firmware

v1.8 · 4.0 MB · Heltec V4 · over-the-air self-update · full source
The optimized baseline — units self-update over the air, straight from this site. The fused classifier model is now embedded in the app image, so an app-only OTA carries the full capability with no filesystem step. Each unit auto-polls its manifest at /firmware/RIDSensor-<Unit>.json and flashes the new image with A/B rollback. Ships two bench-buildable V4 images (Gateway01, Spencer01) plus the complete source and a README; other units build from the included source (same source id). The four capabilities:
Sub-GHz LoRa / LoRaWAN decode — passively decodes 868/915 MHz LoRa and Meshtastic, classifies the traffic, and flags LoRaWAN join-flood, DevNonce-replay and frame-counter-replay attacks. Validated live against real Meshtastic.
5.8 GHz FPV front-end — adds the 5.8 GHz band through an external RX5808 receiver or a UART detection bridge; auto-binds when attached, dormant and fault-free when absent.
Fused multi-band RF classifier — the on-device drone classifier now reads a 12 KB INT8 model over a fused 2.4 GHz + sub-GHz + 5.8 GHz + WiFi + DroneID feature. 98.6% on held-out evaluation.
C2 MISP / SIEM feed (OpenForge C2, server side) — forwards detections to MISP and a SIEM (CEF/ECS), dormant until configured.
Gateway01 is bench-verified on v1.8 — the embedded model loads and it boots clean. Spencer01 is freshly built; Chad01 and Mark01 build from the included source. Because the classifier model is embedded, OTA no longer needs a separate filesystem step. Do not expose a unit to an untrusted network.
Get sensor + app →
📱
NEW · EdgePilot

Android App — EdgePilot_GCS Operator

v1.0 · 3.1 MB · Android 7.0+
The field operator’s handset for the EdgePilot_GCS ground station. You give intent; the ground station flies the aircraft. No flight logic and no drone SDK run on the phone — it carries intent and status only.
Tell it what to do in plain language — “survey 100 m north at 20 m, and tell me when you see a person” — typed or spoken.
Three detail levels in one screen: Guided for a first-time flyer (setup → test hover → guided first flight), Standard for manual tasking and diagnostics, Expert for fault drills, tuning, black-box replay and area import/export. Nothing is removed at lower levels, only disclosed progressively.
Live map + vitals — battery, altitude, satellites and link at a glance, with launch-readiness advisories and camera sightings.
Always-reachable native ABORT that hits the ground station directly, so it works even if the page is still loading.
Needs an EdgePilot_GCS ground station reachable on the same network; enter its host on first launch.
⬇ Download APK v1.0
🖥
NEW · Ground Station

EdgePilot_GCS — No-Pilot Ground Station

v1.0 · 138 MB full / 367 KB source · Jetson Orin Nano / Linux · Python 3.10+
A ground station that flies the aircraft for you. The operator states intent; the station plans, supervises and executes it, with a deterministic safety layer that holds a veto every cycle.
17 drone link types — MAVLink, CRSF, FrSky PPM, SBUS, MSP, iBUS, SUMD, SRXL2, F.Port, DJI (incl. OSDK), Tello, Parrot ANAFI, and simulators for training with no hardware.
Failsafe ladder — formal RTL → land → terminate escalation on link loss, GPS loss, battery floor, tumbling and geofence breach; terminate is disarmed by default.
ASTM F3411 Remote ID broadcast for regulatory compliance.
Hash-chained black box of arm/mode/failsafe/abort events, with CSV/GPX export and flight replay.
Guided first-flight harness — an auto-aborting state machine (preflight → hover → box → RTL) so a novice’s first flight is bounded.
Trained detector weights included — four YOLOv8-family ONNX detectors (COCO-80 generic plus VisDrone 640/1280 and a distilled 1280 student), so the on-board object detector capability works out of the box instead of asking you to supply a model.
• Browser UI plus the Android operator app above. 445 automated tests and a 49-check field pre-flight script (tools/preflight_check.py).
Unpack, pip install -r requirements.txt, then python -m ui.server --link sim to try it with no aircraft attached.
🔒 Full deliverable — 138 MB (with weights) · sign-in required Source only — 367 KB
🤖
NEW · Autonomy Box

EdgePilot — Onboard Autonomy Box

v1.0 · 140 MB full / 236 KB source · Jetson Orin · Python 3.10+
An edge AI box that takes master control of, and flies, a wide variety of drones. One intelligence over many airframes, driven through a single normalized command and telemetry interface.
The safety split is non-negotiable: the AI is the pilot/supervisor, never the inner stabilization loop. A real flight controller (ArduPilot / PX4) keeps the hard real-time loop; the box commands it over MAVLink.
Deterministic safety supervisor — geofence, battery, link and command clamps — holds a hard veto over the AI every cycle. The learned/LLM stack never drives motors directly.
Per-airframe profiles — a YAML drone library so the same intelligence adapts to each aircraft it is flown on.
• Runs against ArduCopter/PX4 SITL out of the box, so the full stack can be exercised before it ever touches an airframe.
Trained detectors included — the full models/ set: det_v1 (YOLOv8n, COCO-80, 640), det_v2/det_v3 (VisDrone 640 / 1280) and det_v4 (distilled student, 1280), as ONNX plus the source .pt checkpoints for re-export or fine-tuning.
See docs/ARCHITECTURE.md for the design, models/README.md for weight provenance and retrain commands, and python -m edgepilot.cli profiles for the airframe library.
🔒 Full deliverable — 140 MB (with weights) · sign-in required Source only — 236 KB
🚨
NEW · v2.1.5

Android App — PHOENIX Citizen (ADRIZ)

v2.1.5 (build 216) · 14.1 MB · Android 8.0+ · 20 Jul 2026
Segnala un incendio in Sicilia. Citizen fire reporting for the PHOENIX wildfire detection network:
One-tap reporting — flame, smoke or unsure, with GPS position and optional photo.
Live fire map — satellite detections and corroborated citizen reports across Sicily.
Area alerts — be notified when a fire is detected near a location you watch.
Works offline — reports queue on the device and send when signal returns.
What’s new in 2.1.5: area alerts now cover every source — a verified citizen report or a ground-relayed report inside your watch area now notifies you, not just satellite detections. Alerts say which kind of report they came from. Watch areas also sync between the app and the website.
No sign-in. Italian and English. Reports feed adr-wildfire.com.
⬇ Download APK v2.1.5
🔥
NEW · Wildfire

Android App — OLDGABE Wildfire

v1.0 · 5.5 MB · Android 7.0+
Real-time US wildfire situational awareness in your pocket. A map-first client for the OLDGABE detection backend:
Live fire map — active detections with freshness and trend badges, plus nearest-fire distance from your location.
NIFC perimeters and a searchable fire list.
Camera thumbnails for on-scene confirmation, with offline caching for low-signal areas.
Interrupt fire alerts so an active detection reaches you immediately.
Sign-in required (per-user login). Talks to the OLDGABE backend at oldgabe.pdlengine.com.
⬇ Download APK v1.0
📱
NEW · Uploaded Jul 30, 2026

Android App — CG Drone Hunter

Operational build — live and active on launch. Opens straight into the live map showing your location and the real signals around you. No demo, no simulated or offline data — only actual over-the-air activity. Phone radios start scanning immediately (Wi-Fi + BLE drone Remote ID, acoustic); plug an RTL-SDR into USB-OTG and the radio decoders come up automatically.
New in v5.3 — real BLE Remote ID position bug fixed: the BLE Remote ID path had its own hand-rolled ASTM F3411 parser that had drifted from spec — it read the Speed field as 2 bytes instead of 1, shifting every field after it (including drone latitude/longitude) by 2 bytes from their correct offsets, and its multi-message-pack parser skipped the message-size field, misaligning packed messages. Consolidated onto the app's other, already-correct, unit-tested Remote ID parser (also used on the Wi-Fi path) — drone position from BLE Remote ID is now decoded correctly. Also added a standing automated check that fails the build if any built capability is ever wired to nothing again.
From v5.2 — capability-accuracy pass: the AMC modulation classifier is now genuinely wired into the live scan (previously built and tested but never actually invoked outside self-test). The DJI/OcuSync burst detector's on-map label now reads “Possible DJI drone” and is explicit that it's burst-presence detection, not full identity decode (full DroneID payload — serial, pilot/home GPS — needs wideband SDR hardware this app doesn't have yet).
From v5.1: cross-peer multilateration, on-device behavioral health scoring for tracked emitters, an opt-in GNSS spoofing detector, LTE cell decode retuned to exact EARFCN channel centres, and a throttled-repost sensor census (TPMS/ISM/POCSAG/FLEX) so a still-present emitter doesn’t vanish from the map.
Digital voice & trunked radio decoders: DMR, P25 Phase 1, and TETRA — every decode FEC/CRC-verified before it's shown. Plus readable on-screen Morse/CW and VOR-ident readout.
Full capability set: drone Remote ID (WiFi + BLE), DJI/OcuSync burst detection, MAVLink telemetry, FPV / ELRS & Crossfire FHSS de-hop, ADS-B, AIS, Inmarsat STD-C / Aero, 406 SARSAT, POCSAG, FLEX, ACARS/VDL2, weather-radio SAME/EAS alerts, ISM / TPMS census.
Task-first home screen: plain-language mission cards (Find Drones / Aircraft / Ships / Phones & Towers / Mesh Radios / Scan Everything); every individual decoder still available under “Advanced.”
• Direction finding (heading + RSSI bearing), GPS-tracker heartbeat detection, multi-target tracking with threat scoring + geofence-breach alerts, live modulation classification, RF fingerprinting / SEI, and a real trained acoustic model (YAMNet backbone; drone / aircraft / non-target, 92% drone recall).
Fusion cooperative-subtraction + ISM noise gate keeps the map clean; the live 🧠 chip shows status and marks benign emitters.
Ready-for-hardware, not yet live on a standard RTL-SDR: full DJI DroneID payload decode, angle-of-arrival, analog FPV video OSD reading. See the how-to guide for what that means. Grant location + nearby-devices permissions on first launch.
⬇ Download APK v5.3
📱
Previous · Jul 30

Android App — CG Drone Hunter

v5.2 · 18.8 MB · Android 8.0+
Prior build. Same feature set as v5.3, but its BLE Remote ID drone-position decoding had a real offset bug (fixed in v5.3, see above) — new installs should use v5.3.
⬇ Download APK v5.2
📱
Previous · Jul 15

Android App — CG Drone Hunter

v5.0 · 18.7 MB · Android 8.0+
Prior operational build (rollback). Full drone/RF capability set with digital voice (DMR/P25/TETRA), the trained acoustic model, direction finding, multi-target tracking and RF fingerprinting — without the v5.1/v5.2 multilateration, NLL sensor-health scoring, GNSS spoof detector, and EARFCN-exact LTE tuning.
⬇ Download APK v5.0
📱
Previous · Jul 10

Android App — CG Drone Hunter

v4.9.1 · 24.8 MB · Android 8.0+
Prior operational build (rollback). Full drone/RF capability set with the trained acoustic model, direction finding, multi-target tracking and RF fingerprinting — without the v5.0 DMR/P25/TETRA digital-voice decoders.
⬇ Download APK v4.9.1
📱
Previous · Jul 8

CG Drone Hunter — v4.1.0

v4.1.0 · 22.2 MB · Android 8.0+
Prior release — full over-the-air AIS + Inmarsat Aero decode on top of STD-C / ADS-B. Kept here for rollback; new installs should use v4.2.0.
⬇ Download v4.1.0
📡

RID Sensor Firmware

Heltec ESP32-S3
Flashed over USB-C from the PDL Deploy dashboard — not a direct download.
Dashboard only

First-time install: when prompted, allow your browser to “install unknown apps,” then open the downloaded file.

Training-to-Edge Pipeline

Models train on DGX Spark and flow directly to your hardware via USB-C.

💻
DGX Spark
Train models
📦
Artifact Sync
rsync over SSH
🌐
PDL Deploy
Web dashboard
🔌
USB-C Flash
Device updated

Supported Devices

Four hardware targets, each with a purpose-built deployment handler.

📡

RID Sensor

Heltec ESP32-S3
Remote ID mesh sensors flashed via esptool serial. Supports partitioned layouts and single-bin firmware.
Serial TFLite
📱

Android Phone

PDL Companion App
APK sideload and model push via ADB over USB-C. Direct-to-device model updates for on-phone inference.
ADB APK
📡

Jetson-SIGINT

RF / SeaGayles Node
SSH/SCP over USB-C or WiFi. Deploys demodulator models, SeaGayles firmware, and service configs.
SSH RF
🎯

Jetson-PDLens

Optical C-UAS Node
SSH/SCP with on-device TensorRT conversion. Pushes YOLO models, detection configs, and PTZ firmware.
SSH TensorRT

Capabilities

Everything you need to keep your edge fleet current.

🔍 Device Scanning

Auto-detect connected hardware across all protocols.
  • Serial port enumeration for ESP32 RID sensors
  • ADB device listing with model identification
  • SSH probe across USB, WiFi, and Tailscale paths
  • Current firmware version reporting

📦 Artifact Management

Versioned artifact store synced from DGX Spark.
  • Organized by device type and semantic version
  • One-click rsync pull from DGX training pipeline
  • Build metadata tracking (job ID, timestamp)
  • Local artifact registration for custom builds

⚡ One-Click Deploy

Scan, select, deploy — three clicks to updated hardware.
  • Automatic latest-version resolution per device
  • Pre-flight artifact validation
  • Full stdout/stderr capture in deploy log
  • Service restart orchestration on Jetsons

🛡 Reliability

Built for field conditions and operator simplicity.
  • Multi-path connectivity (USB → WiFi → Tailscale)
  • Timeout protection on all flash operations
  • On-device TensorRT conversion for PDLens models
  • Complete audit trail with timestamps

Run PDL Deploy

Launch the local deployment server from the PDL CLI.

pdl deploy --port 8800

Opens the web dashboard at http://localhost:8800 — plug in a device via USB-C and click Deploy.