The Swift Navigation Binary Protocol (SBP) is a fast, simple, and minimal binary protocol for communicating with Swift devices. It is the native binary protocol used by the Piksi GPS receiver to transmit solutions, observations, status and debugging messages, as well as receive messages from the host operating system, such as differential corrections and the almanac.
This project provides language-agnostic specification and documentation for messages used with SBP, a compiler for generating message bindings, and client libraries in a variety of languages. This repository is organized into the following directory structure:
docs
: Protocol documentation and message definitions.spec
: Machine readable protocol specification in YAML.generator
: Simple, template-based generator for different languages.python
: Python client and examples.c
: C client library and examples.haskell
: Haskell client and examples.java
: Java client library and examples.
SBP consists of two pieces: (i) an over-the-wire message framing format and (ii) structured payload definitions. As of Version 1.0, the packet consists of a 6-byte binary header section, a variable-sized payload field, and a 16-bit CRC value. SBP uses the CCITT CRC16 (XMODEM implementation) for error detection.
Please see the docs for a full description of the packet structure and the message types. Developer documentatation for the language-specific sbp libraries is here.
Copyright © 2015 Swift Navigation
Distributed under LGPLv3.0.