All Projects → PowerBroker2 → SerialTransfer

PowerBroker2 / SerialTransfer

Licence: MIT license
Arduino library to transfer dynamic, packetized data fast and reliably via Serial, I2C, or SPI

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to SerialTransfer

Packetserial
An Arduino Library that facilitates packet-based serial communication using COBS or SLIP encoding.
Stars: ✭ 177 (-35.16%)
Mutual labels:  serial, communication, packets, arduino-library
gfx demo
GFX Demo for Arduino and the ESP-IDF
Stars: ✭ 63 (-76.92%)
Mutual labels:  i2c, arduino-library, spi
Ssd1306
Driver for SSD1306, SSD1331, SSD1351, IL9163, ILI9341, ST7735, PCD8544, Nokia 5110 displays running on Arduino/ESP32/Linux (Rasperry) platforms
Stars: ✭ 303 (+10.99%)
Mutual labels:  i2c, arduino-library, spi
IOsonata
IOsonata multi-platform multi-architecture power & performance optimized software library for fast and easy IoT MCU firmware development. Object Oriented design, no board package to define, just pure plug & play any boards
Stars: ✭ 40 (-85.35%)
Mutual labels:  i2c, spi, uart
Mraa
Linux Library for low speed IO Communication in C with bindings for C++, Python, Node.js & Java. Supports generic io platforms, as well as Intel Edison, Intel Joule, Raspberry Pi and many more.
Stars: ✭ 1,220 (+346.89%)
Mutual labels:  communication, i2c, spi
BME680
Arduino Library to access the Bosch BME680 - temperature, pressure, humidity and gas sensor
Stars: ✭ 30 (-89.01%)
Mutual labels:  i2c, arduino-library, spi
pySerialTransfer
Python package to transfer data in a fast, reliable, and packetized form
Stars: ✭ 78 (-71.43%)
Mutual labels:  serial, uart, serial-communication
Diozero
Java Device I/O library that is portable across Single Board Computers. Tested with Raspberry Pi, Odroid C2, BeagleBone Black, Next Thing CHIP, Asus Tinker Board and Arduinos. Supports GPIO, I2C, SPI as well as Serial communication. Also known to work with Udoo Quad.
Stars: ✭ 167 (-38.83%)
Mutual labels:  serial, i2c, spi
Johnny Five
JavaScript Robotics and IoT programming framework, developed at Bocoup.
Stars: ✭ 12,498 (+4478.02%)
Mutual labels:  serial, i2c, spi
android-bluetooth-serial
A library for Android to simplify basic serial communication over Bluetooth, for example when communicating with Arduinos.
Stars: ✭ 120 (-56.04%)
Mutual labels:  serial, serial-communication
PCF8591 library
Library to use i2c analog IC with arduino and esp8266. Can read analog value and write analog value with only 2 wire (perfect for ESP-01).
Stars: ✭ 24 (-91.21%)
Mutual labels:  i2c, arduino-library
tinyfont
Text library for TinyGo displays
Stars: ✭ 37 (-86.45%)
Mutual labels:  i2c, spi
SoftWire
Software I2C implementation for Arduino and other Wiring-type environments
Stars: ✭ 105 (-61.54%)
Mutual labels:  i2c, arduino-library
io
Go drivers for pheripheral I/O on Linux.
Stars: ✭ 20 (-92.67%)
Mutual labels:  i2c, spi
stm8s-sdcc-examples
Example codes using sdcc to target STM8S MCUs.
Stars: ✭ 31 (-88.64%)
Mutual labels:  serial, uart
awesome-embedded-swift
⚡️🛠🧰 A curated list for Embedded and Low-Level development in the Swift programming language.
Stars: ✭ 57 (-79.12%)
Mutual labels:  i2c, spi
uPy-rosserial
An implementation of rosserial for uPy.
Stars: ✭ 19 (-93.04%)
Mutual labels:  serial, uart
Quad-Serial
Quad serial project with FTDI CI's, Isolation and 1.8~5.5v UART port.
Stars: ✭ 17 (-93.77%)
Mutual labels:  serial, uart
bluetooth-terminal
ES6 class for serial communication with your own Bluetooth Low Energy (Smart) devices
Stars: ✭ 43 (-84.25%)
Mutual labels:  serial, communication
miniboot
🏗️ An I2C bootloader for Arduino.
Stars: ✭ 62 (-77.29%)
Mutual labels:  i2c, arduino-library

SerialTransfer

GitHub version arduino-library-badge

SerialTransfer is an easy to use Arduino library for transferring packetized data fast and reliably via Serial, I2C, and SPI interfaces. Interconnect your Arduinos today minus the headache with SerialTransfer!

A mirror library is also available for Python!

This library:

  • can be downloaded via the Arduino IDE's Libraries Manager (search "SerialTransfer.h")
  • works with "software-serial", "software-I2C", and "software-SPI" libraries
  • is non blocking
  • uses packet delimiters
  • uses consistent overhead byte stuffing
  • uses CRC-8 (Polynomial 0x9B with lookup table)
  • allows the use of dynamically sized packets (packets can have payload lengths anywhere from 1 to 254 bytes)
  • supports user-specified callback functions
  • can transfer bytes, ints, floats, structs, even large files like JPEGs and CSVs!!

Packet Anatomy:

01111110 00000000 11111111 00000000 00000000 00000000 ... 00000000 10000001
|      | |      | |      | |      | |      | |      | | | |      | |______|__Stop byte
|      | |      | |      | |      | |      | |      | | | |______|___________8-bit CRC
|      | |      | |      | |      | |      | |      | |_|____________________Rest of payload
|      | |      | |      | |      | |      | |______|________________________2nd payload byte
|      | |      | |      | |      | |______|_________________________________1st payload byte
|      | |      | |      | |______|__________________________________________# of payload bytes
|      | |      | |______|___________________________________________________COBS Overhead byte
|      | |______|____________________________________________________________Packet ID (0 by default)
|______|_____________________________________________________________________Start byte (constant)

How To Use:

See the example sketches

  • datum = tx/rx a single object
  • data = tx/rx multiple objects

NOTE:

SPITransfer.h and it's associated features are not supported for the Arduino Nano 33 BLE or DUE and other boards. This header file is disabled by default, but can be enabled by commenting out #define DISABLE_SPI_SERIALTRANSFER 1 within SerialTransfer.h.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].