Skip to content

Dronecode/APEX

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APEX — Adaptive Payload EXchange

APEX is an open, plug-and-play protocol for connecting drone platforms (hosts) and payloads (devices) over a standard connector. It is analogous to USB: the bus protocol itself is small and class-agnostic, while device-specific behavior is defined through separate device classes.

Status: Draft. These specifications are under active development and may change. Mechanical and electrical details are still being finalized. The specification documents and the C reference implementation are versioned together as one snapshot; the current version is recorded in VERSION.txt.

Specifications

The protocol is defined by a set of Markdown documents under spec/. Each device class corresponds to a traffic_type value in the APEX outer header and is specified in its own companion document; the core protocol is class-agnostic.

Document Description
APEX — Core Core protocol: framing, the outer header, baud negotiation, the discovery handshake, capability exchange, and device-level lifecycle status. Does not define device behavior.
APEX — Device Classes The traffic_type registry mapping each device class to its companion specification.
APEX Device Class — Activation Devices that progress through enable and trigger phases.
APEX Device Class — Analog HMI Analog HMI: control packets (CRSF / MAVLink 2) in, CVBS video out.
APEX Device Class — Wayfinding Devices that produce directional cues — "point me there" updates for the operator, from any source.
APEX Device Class — Repeater RF relay node: extends C2 and video links between ground and a distal drone.

Planned classes reserved in the registry: USB_FS_HUB.

Once a device is discovered and its class accepted, all further traffic is routed by traffic_type to the relevant device-class specification.

The specifications can be rendered to PDF with the build tooling under spec/tools/ (cd spec && npm install && npm run build writes per-document PDFs to spec/build/).

Reference implementation

A small, portable C99 reference library implementing the protocol — both the Host and Device roles — lives under lib/. It has no dynamic allocation, no stdio, and no third-party dependencies. See lib/README.md for build and consumption details.

Mechanical

The mechanical standard package is provided under spec/mechanical/: a 3D CAD model of the connector assembly in STEP format and the corresponding 2D drawing in PDF.

License

MIT License. See LICENSE.

About

Adaptive Payload EXchange (APEX) — a plug-and-play UART protocol for drone host/payload interoperability over a standard connector. Class-agnostic core with discovery, config, and extensible device classes.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 62.7%
  • C++ 28.4%
  • JavaScript 6.3%
  • CSS 1.6%
  • Makefile 1.0%