Canopy

Diligence · R3

Original document · R3 bodyUpdated 15 Sep 2026 · R3

Operator ingest

Crew or device beacon is not aircraft path or applied coverage. Export is not an automatic legal record.

Updated: 2026-09-15 · R3

R3 applies the accuracy-review ingest rule in the body: a phone or iPad in a truck reports crew/device position, not the aircraft flight path or applied coverage. Provenance must be labelled. A telemetry or file export is not automatically a legally accepted pesticide application record.

Date: 16–17 August 2026

Owner: AT / Velocity EU

Audience: founders. Designed solution — how an existing crew’s plot, path, live monitoring, and as-applied evidence attach to one job object.

Companions: option-c-hybrid-fleet.md · canopy-fly.md · canopy-live.md · canopy-receipt.md · canopy-cue.md · docs/Canopy_Startup_Plan.md · docs/glossary.md

Facts are sourced as of 16–17 August 2026. No invented take. No invented seed size. No invented valuation. No unpublished prices. If a public Application Programming Interface (API) is not found, the row says NOT FOUND and the fallback (file / beacon / ASK). One adapter per vendor. Never a universal drone API.

Canopy does not assume remote-control authority over the aircraft. Canopy does not become an Original Equipment Manufacturer (OEM). We do not productise weapons or offensive Intelligence, Surveillance and Reconnaissance (ISR). We do not buy FRAME (EnduroSat satellite bus) Max. Published FRAME Max unit prices are order-size dependent (USD9.5m / 8.1m / 6.7m / 4.2m) [S49].


The problem

Marketplace crews already operate their own aircraft. Canopy must attach their plot, a provenance-labelled path, live watch, and as-applied artefact onto one job object. The live path and the legal path are different objects until an OEM as-applied log is imported and accepted.

Option C is the lock: operators bring DJI Agras / XAG now. A later canopy_fleet dock turns on only when a real week has no crew. That is steel we dispatch, not a factory we run. Full argument: option-c-hybrid-fleet.md.

If we pretend there is one drone API, we will either (a) take the remote and become an OEM, or (b) ship a live map that treats a truck phone as an aircraft. Neither is the company.


The solution — three layers

1. Job contract (ours, OEM-agnostic)

One job object. Not one per vendor.

Field on the jobWhat it is
PlotGeoJSON polygon (plus no-spray / buffers from the request)
Weather windowHold / release from Cue (OpenWeather in v1)
MixCustomer-supplied. We do not sell pesticide.
Operator-of-recordLicensed Unmanned Aircraft System (UAS) operator. Handshake crew now; later may be Canopy (or a Canopy-appointed air operator certificate) when a dock flies.
ReceiptFields shaped like a Bulgarian Food Safety Agency (BFSA) UAS treatment log. European Union Aviation Safety Agency (EASA) Specific-category fields the day we drop product.
Flown pathGeoJSON LineString + a source tag (below)
As-appliedPrefer an OEM as-applied log when present. Else the confirmed path + dose + times the operator signs after landing.

Path source tags (exactly these):

path_sourceMeaning
operator_beaconiPad / phone in the truck during the pass. Crew/device position only. Live watch of the crew. Not remote-control authority. Not the aircraft flight path or applied coverage.
oem_kmlOperator export or SmartFarm-sync Keyhole Markup Language (KML). Agras v1.
flighthub_mqttDJI FlightHub 2 Message Queuing Telemetry Transport (MQTT) telemetry. Dock / Matrice only. Do not say FlightHub flies Agras.
agrosol_geojsonHylio AgroSol GeoJSON as-applied (or inbound plot).
xag_exportXAG One export after the pass.

Receipt prefers the OEM as-applied log when the crew can produce one. Beacon is good enough to watch the crew. It is not the aircraft path, not applied coverage, and not the legal artefact by itself. An imported log still requires field validation and acceptance before it can be treated as a candidate BFSA pack.

2. Operator console — v1 this year (Bulgaria handshake)

Canopy pushes the job to the iPad. The crew flies in the native OEM app they already trust — DJI Agras app on the remote, XAG One, or AgroSol Ground Control Station (GCS). Human remains Pilot in Command (PIC).

During the pass, the iPad (or a phone in the truck) is the live crew/device beacon the asset owner watches. Good enough for “watch the crew.” Not remote-control authority. Not the aircraft flight path or applied coverage. Label live_source = operator_beacon.

After landing, the operator imports the OEM export and confirms hectares, dose, start/end times. That write is a candidate evidence record. Nobody re-types a Bulgarian Food Safety Agency log. The export is not automatically a legally accepted pesticide application record.

Version 1 (v1) does not: remotely pilot the aircraft from Canopy; replace the Original Equipment Manufacturer (OEM) Ground Control Station (GCS); build a DJI FlightHub integration before a Dock or Matrice survey job exists; or raise capital to purchase aircraft.

3. OEM adapters — only when a public API actually exists

One adapter per vendor. Ship the file/beacon path first. Add a REST/MQTT adapter only after a public (or partner) API is in hand. Label partnership asks ASK, not facts.


Sourced OEM / system facts (as of 16–17 August 2026)

DJI Agras — spray. What Bulgarian (BG) crews actually fly

AirframesAgras T50 / T70 / T100 (older T40 still in the field)
SystemDJI Agras app on the remote + DJI SmartFarm for fields, teamwork, prescription maps
Producthttps://ag.dji.com/
SmartFarm webhttps://ag.dji.com/smartfarm-web?backup_page=index&target=en
Public APINOT FOUND. No public SmartFarm API. DJI Software Development Kit (SDK) support stated agricultural drones are not supported for Mobile SDK / Cloud API secondary development (GitHub issue #1350). Third parties such as AirData pull Agras logs only after the operator syncs SmartFarm; format is KML, not full telemetry.
v1 ingestOperator exports / SmartFarm-sync KML → job path oem_kml (file provenance, not live aircraft). Live = iPad / phone crew-device beacon (operator_beacon).
ASK (not a fact)SmartFarm team for a treatment-log API.

Do not claim a universal DJI agriculture API. Do not route Agras through FlightHub.

DJI Dock / Matrice — survey, later canopy_fleet. Not the spray path

SystemDJI FlightHub 2
OpenAPI (REST)Organisation, devices, livestream, flight routes, tasks. Auth X-User-Token + X-Project-Uuid. Docs: FlightHub 2 OpenAPI introduction
2026 Sync 2.0MQTT telemetry forwarding, Real Time Streaming Protocol (RTSP) live, Event/webhook API. DJI Enterprise Insights, 2 Apr 2026
Demohttps://github.com/dji-sdk/FlightHub-2-OpenAPI-V2-Demo
UseThis adapter only for Dock / enterprise airframes. Do not say FlightHub flies Agras.
v1Do not build until we have a Dock or a Matrice survey job.

XAG

AirframesP150 / P150 Max / P100 Pro / P60
ControlSuperX 5 Pro (P150) / SuperX 5 Ultra (P150 Max)
AppXAG One
PayloadsRevoSpray, RevoCast, RealTerra
Sitehttps://www.xa.com/en/p150 · https://www.xa.com/en/pseries
Open Platformhttps://open.xa.com — Chinese, account-gated, public docs thin
Public APINOT FOUND as usable public endpoints. Do not invent them.
v1 ingestXAG One export + iPad beacon → xag_export / operator_beacon
ASK (not a fact)Developer account on open.xa.com.

Hylio

AirframesAgDrone family
SoftwareAgroSol GCS, Windows, up to 3 airframes, National Defense Authorization Act (NDAA)-oriented radio
Sitehttps://www.hyl.io/
Public REST APINOT FOUND. Integration is file: GeoJSON boundary / no-spray from PIX4Dfields into AgroSol. As-applied maps export from AgroSol.
v1 adapterGeoJSON in (job plot) / GeoJSON out (as-applied) → agrosol_geojson

Pyka Pelican 2

WhatLarge autonomous spray aircraft, 300 L, Pyka.OS on custom Field-Programmable Gate Array (FPGA) + System-on-Chip (SoC)
Sitehttps://www.flypyka.com/pelican-2 · https://www.flypyka.com/technology
Public third-party APINOT FOUND
Bulgaria v1Not a Bulgarian version 1 airframe. If a crew ever appears: partner / Comma-Separated Values (CSV).

Guardian Agriculture SC1 — do not plan an adapter

Company wound down late August 2025 (The Robot Report). Closed. Remove from any “we integrate them” list. No adapter.


Earth-observation / weather (cue, not fly)

These cue the plot and hold the window. They do not fly the aircraft.

SourceRoleCost / accessURL
Sentinel via Copernicus Data Space Ecosystem (CDSE)Default Earth Observation (EO). SpatioTemporal Asset Catalog (STAC), openEO, Sentinel Hub Process APIDefault access $0; processing/storage/delivery not freeAPIs · Docs
Planet Tasking APISkySat / Pelican on booked hectares onlyContract + API keyhttps://docs.planet.com/develop/apis/tasking/
EnduroSat SpaceOpsREST + WebSocket, payload tasking, Balkan / Space ServiceASK for a 2026 written quote. Do not buy FRAME Max.https://www.endurosat.com/spaceops/
OpenWeatherWeather window (already in the plan)Existing planhttps://openweathermap.org/api

Other named suppliers (link only — we do not integrate their drones)

NameURL
Rantizo (US Drone-as-a-Service (DaaS))https://rantizo.com/
DroneDeployhttps://www.dronedeploy.com/
Taranishttps://www.taranis.com/
Sentera FieldAgenthttps://sentera.com/fieldagent/
Papple Aviation (CA vendor)https://pappleaviation.ca/drone-ag-services/
AdvancedUAV / AUAV (CA)https://auav.ca/
CropCoptershttps://www.cropcopters.com/
American Spray Drone Coalition (ASDC) surveyhttps://americanspraydronecoalition.com/
University of Nebraska–Lincoln (UNL) 2026 custom rateshttps://cap.unl.edu/customrates/
Plan INFOCA (Andalucía wildfire Remotely Piloted Aircraft System (RPAS) / Junta device)https://www.juntadeandalucia.es/organismos/ema/areas/incendios-forestales/dispositivo-infoca.html
European Maritime Safety Agency (EMSA)https://www.emsa.europa.eu/
US Department of the Interior (DOI)https://www.doi.gov/

UNL page confirmed 17 Aug 2026 (Center for Agricultural Profitability; 2026 Nebraska Agricultural Custom Rates). Plan INFOCA official Junta page is the Dispositivo INFOCA hub (Catálogo de medios 2026). A dedicated RPAS-tender landing page on junta.es was NOT FOUND; do not invent one. Civil/military retool stays Search and Rescue (SAR) / comms / software re-accreditation — no weapons.


v1 punch list

Schema now (job + operator profile):

  • aircraft_oem
  • aircraft_model
  • gcs_app
  • path_source
  • path_geojson
  • as_applied_uri
  • live_source

First two BG handshake crews: record OEM + model on the operator profile. Ship the operator console plus KML / GeoJSON import. Live = beacon.

Do not build a DJI FlightHub integration until we have a Dock or a Matrice survey job.

Do not raise capital to purchase aircraft.

Do not assume remote-control authority.


Sources (accessed 16–17 August 2026)