bakercp / PacketSerial

An Arduino Library that facilitates packet-based serial communication using COBS or SLIP encoding.
http://bakercp.github.io/PacketSerial/
MIT License
277 stars 59 forks source link
arduino arduino-library cobs communication decoding encoding packets serial slip

PacketSerial

Build Status

An Arduino Library that facilitates packet-based serial communication using COBS or SLIP encoding.

Features

PacketSerial is an small, efficient, library that allows Arduinos to send and receive serial data packets (with COBS, SLIP or a user-defined encoding) that include bytes of any value (0 - 255). A packet is simply an array of bytes.

Documentation

If you're asking Why do I need this?, read the background introduction page. If you're ready to get started, check out the getting started page. You can also learn a lot by reading through the examples. Finally, if you're interested in learning more about how the code works, read the comments in the source code and check out the API documentation.

Support

If you're looking for help, read the support page.

Compatibility

Requrements

Other Platforms

This project has been used successfully with openFrameworks using the ofxSerial addon. In particular, see the ofx::IO::PacketSerial object. Additionally this project has been used with Python using the PySerial package. In particular, check out the COBS (see this discussion) and SLIP packages.

Ultimately, any library that correctly implements a COBS or SLIP encoding scheme should be compatible with this project.

Continuous Integration

Continuous integration tests are carried out on a variety of common Arduino platforms. See this script for a list.

Licensing

This project is licensed under the MIT License.

Project Management

Repository

https://github.com/bakercp/PacketSerial

Contributing

If you'd like to contribute to this project, please check out the Code of Conduct and the contributing guide.

Versioning

This project uses Semantic Versioning. You can check out recent changes in the changelog.