EnfinitOSEnfinitOS
DevelopersRobotics & flight
Production-ready scaffold

Drone SDK

Extends Robotics with airspace, FAA / CAA Remote ID (ASTM F3411-22a), NOTAM polling, and BVLOS waivers. DJI / Skydio / Parrot adapters.

@enfinitos/sdk-droneSubstrate DRONETypeScript, Python
Install

Get the SDK

npm install @enfinitos/sdk-drone

About this status badge

Typed, tested, documented, and grounded in the 2026 platform reality. Awaiting first customer-integration validation.

README

The developer-facing documentation in full

Rendered from packages/sdks/drone/README.md at build time — the same source the package ships with.

@enfinitos/sdk-drone

EnfinitOS reference SDK for the DRONE substrate. Extends the ROBOTICS SDK with airspace-specific primitives, FAA / CAA Remote ID compliance, BVLOS (Beyond-Visual-Line-Of-Sight) mission support, and adapter skeletons for DJI Enterprise, Skydio Cloud, and Parrot ANAFI.

Why a separate SDK and not just EnfinitOSRobotClient?

Drones share the robotics governance pattern — autonomous behaviour, behavioural rules, telemetry, emergency stop — but they have substrate- specific concerns the robotics SDK doesn't cover:

  • 3D + altitude airspace (not just 2D pavements). A drone's allowed volume is a (polygon, altitudeMin, altitudeMax) triple, not a circle on a flat ground plane.
  • Time-bounded corridors for delivery routes — a corridor is a 4D primitive: waypoints + altitudes + time windows. The Robotics SDK doesn't model this because pavement-based delivery doesn't need it.
  • Remote ID compliance (FAA Part 89, CAA UK Drone Code). Every drone over 250 g must broadcast a signed Remote ID message that receivers can decode. The SDK ships both the broadcaster and the receiver, so a fleet operator can hear other drones in their operating volume.
  • NOTAM subscription — Notices to Air Missions. Temporary airspace restrictions issued by aviation authorities (FAA, CAA, EASA). The SDK subscribes to NOTAMs covering the operating area and lifts them into the platform's behavioural-rule layer so a drone refuses to enter a TFR (Temporary Flight Restriction) zone.
  • BVLOS waiver evidence. The FAA's Part 108 rule (finalised 2025) permits commercial BVLOS operations with an operating waiver. The SDK tracks the operator's active waivers and surfaces them in proof packs so a regulator inspection can see the authorisation chain.
  • Fleet-platform adapters. DJI Enterprise, Skydio Cloud, Parrot ANAFI, Wingcopter, Zipline each speak a different API. The adapter-pattern (mirroring the DOOH integration adapter pack) lets a customer plug their existing fleet into EnfinitOS without re-platforming.

2026 reality this SDK is grounded in

  • FAA Remote ID rule (in force since 16 Sept 2023). Every drone > 0.55 lb registered with the FAA must broadcast Remote ID over Wi-Fi or Bluetooth. ASTM F3411-22a is the wire format. The SDK ships both an emitter and a receiver.
  • FAA Part 108 — Operations Over People + BVLOS rule (Final Rule issued Q2 2025, fully effective 2026). Commercial BVLOS is legal with a waiver. The waiver is keyed to the operator + the airframe + the operating area. The SDK encodes the waiver in the proof pack so inspections can verify.
  • UK CAA Drone and Model Aircraft Code 2026 update — includes Remote ID alignment with FAA, BVLOS operating categories, and geofence integration. SDK supports both regimes.
  • EASA U-space regulation (EU 2021/664) — fully operational by 2026 in major EU member states. Defines geographical zones, a network identification service, and a flight authorisation service. SDK includes a U-space adapter skeleton.
  • DJI Mobile SDK V5 (Android + iOS) — the current DJI Enterprise developer platform. V4 (and the older Onboard SDK 3.x) are end-of-life for new builds.
  • Skydio Cloud API — REST + WebSocket telemetry. Skydio X10 enterprise drones are the supported airframe.
  • Wingcopter / Zipline — long-range medical delivery operators with proprietary fleet management systems. Adapters are stubbed pending partnership.

Quick start

import { EnfinitOSDroneClient } from "@enfinitos/sdk-drone";

const client = new EnfinitOSDroneClient({
  apiBaseUrl: "https://api.enfinitos.com",
  fleetId: "fleet_starship_uk_east",
  droneId: "drn_M300_001",
  authToken: process.env.ENFINITOS_TOKEN!,
  airframe: {
    make: "DJI",
    model: "Matrice 300 RTK",
    massKg: 6.3,
    maxSpeedMs: 23,
    remoteIdSerial: "M300-2026-XYZ-001",
  },
});

await client.connect();

// Subscribe to platform-pushed airspace policies (e.g. council updates).
client.subscribePolicy((policy) => {
  console.log("New airspace policy:", policy.behaviouralRules);
});

// Check an intended operating volume against current NOTAMs.
const volumeCheck = await client.checkAirspace({
  kind: "AIRSPACE_VOLUME",
  basePolygon: [
    { lat: 51.5074, lng: -0.1278 },
    { lat: 51.5174, lng: -0.1278 },
    { lat: 51.5174, lng: -0.1178 },
    { lat: 51.5074, lng: -0.1178 },
  ],
  minAltitudeM: 0,
  maxAltitudeM: 120,
  altitudeReference: "AGL",
  frameRef: "wgs84",
});

if (!volumeCheck.cleared) {
  console.warn("Airspace blocked:", volumeCheck.blockers);
  return;
}

// Broadcast Remote ID while flying.
const stopBroadcast = client.startRemoteIdBroadcast();

// Report telemetry at 4 Hz.
client.startTelemetryHeartbeat(250);

// On landing:
stopBroadcast();
await client.disconnect();

Architecture

                    ┌──────────────────────────────────┐
                    │   @enfinitos/sdk-robotics (TS)   │
                    │   connect / policy / emergency   │
                    │   telemetry / lifecycle          │
                    └──────────────────────────────────┘
                                     ▲
                                     │   extends
                                     │
                    ┌──────────────────────────────────┐
                    │   @enfinitos/sdk-drone           │
                    │   airspace volumes + corridors   │
                    │   Remote ID (ASTM F3411)         │
                    │   NOTAM subscription             │
                    │   BVLOS waiver evidence          │
                    └──────────────────────────────────┘
                                     │
       ┌────────────────────┬────────┴────────┬────────────────┬─────────────┐
       │                    │                 │                │             │
   ┌────────┐         ┌────────────┐    ┌───────────┐    ┌──────────────┐  ...
   │ DJI    │         │ Skydio     │    │ Parrot    │    │ U-space      │
   │ MSDK V5│         │ Cloud API  │    │ ANAFI AI  │    │ (EU 2021/664)│
   └────────┘         └────────────┘    └───────────┘    └──────────────┘

Substrate-side concerns it doesn't yet handle

  • Counter-UAS coordination. Detect-and-avoid logic against ADS-B / FLARM / cooperative drone broadcasts. The receiver is in place; the platform-side rule for "yield to manned aviation" is on the roadmap.
  • Weather-grounding. Wind / visibility / precipitation thresholds are documented as BehaviourRule.WEATHER_GROUNDED but the SDK doesn't ship a default weather data source. A customer's fleet control plane provides this.
  • Spectrum licensing. Some EU countries (notably DE, FR) require per-drone spectrum licence for the C2 link. Out of SDK scope — operators handle this via their telecom provider.

Packages

PathLanguageDescription
ts/TypeScriptMain SDK. Targets Node 20+ and modern browsers (for ground-station web UIs).
py/PythonAsync SDK for ROS 2-adjacent or autonomy-stack integrations.

Compliance

This SDK helps operators satisfy:

  • FAA Part 89 — Remote ID broadcast and receive
  • FAA Part 108 — BVLOS waiver evidence chain
  • CAA Drone Code 2026 — UK Remote ID + geofence
  • EASA EU 2021/664 (U-space) — flight authorisation + network ID
  • ICAO Annex 6 Part IV — airspace coordination

The SDK does NOT certify your operation. Operating certification is between your fleet operator and the aviation authority. The SDK provides the evidence trail those certifications require.

API reference

Hit the HTTP surface directly

The Drone SDK is a thin client over the same governed HTTP API every other SDK calls. The full OpenAPI 3.1 reference lives on the docs site.

Sandbox

Run this SDK against a real tenant

The hosted sandbox is the fastest way to verify Drone SDK against a real EnfinitOS tenant before committing to a pilot. Launching Q4 2026.