skydroid-protocol 0.1.0

no_std, allocation-free Rust implementation of the SkydroidCameraFPV control protocol (#TP and AT+ command families). Build and parse camera control packets for embedded and OS projects.
Documentation
  • Coverage
  • 8.16%
    12 out of 147 items documented3 out of 43 items with examples
  • Size
  • Source code size: 44.69 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.26 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 2s Average build duration of successful builds.
  • all releases: 2s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • AhmedBoin/Skydroid-Protocol
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • AhmedBoin

skydroid-fpv

A no_std, allocation-free Rust implementation of the Skydroid camera FPV control protocol (reverse-engineered from the Android app, see PROTOCOL.md).

The crate builds packets to send ([packet], [command]) and parses frames you receive ([framing]), with no heap allocation: all output is written into caller-provided buffers. It works on bare-metal embedded targets and normal OS projects alike.

Features

  • default = [] — pure no_std, no alloc, no std.
  • std — enables the optional OS socket transport ([transport]).
  • transport — implies std; enables the [transport] module.

Quick start (send a command)

use skydroid_protocol::packet::build_command;
use skydroid_protocol::command::Capture;

let mut out = [0u8; 32];
let n = build_command(&Capture::TakePicture, &mut out).unwrap();
let wire = &out[..n]; // bytes ready for the socket
assert_eq!(&wire[..12], b"#TPUD2wCAP01");