Skip to content
An cross platform Serial library for openFrameworks.
C++ C Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Clean up examples, move OSC examples to ofxOscSerial. Apr 6, 2019
src Revert missing header. May 25, 2018
.travis.yml Further clean up. Jun 2, 2018 Update Apr 6, 2019
ofxaddons_thumbnail.png Update Aug 14, 2013



A cross-platform serial addon for openFrameworks wrapping the Serial Communication Library.


  • Full Port configuration via SerialDevice
    • baud rate
    • data bits
    • parity
    • stop bits
  • Full Flow Control
    • CTS get / set
    • DSR get / set
    • RI get / set
    • CD get / set
  • Read/write blocking control via custom timeouts.
  • Event-driven serial via BufferedSerial class.
  • Packet-based serial system with byte stuffing via PacketSerialDevice
    • SLIP, COBS and others packet encoding supported.
  • Cross-platform compatibility.
    • Tested on:
      • OSX
      • Windows Visual Studio
      • Windows Codeblocks / MinGW / MSYS
      • Linux
  • Robust Cross-platform port listing.
  • Arduino Examples for sanity testing.

Required Addons

  • ofxPoco (included in openFrameworks)
  • ofxIO

Getting Started

To get started, generate the example project files using the openFrameworks Project Generator.


API documentation can be found here.

Build Status

Linux, macOS Build Status

Visual Studio, MSYS Build status


The stable branch of this repository is meant to be compatible with the openFrameworks stable branch, which corresponds to the latest official openFrameworks release.

The master branch of this repository is meant to be compatible with the openFrameworks master branch.

Some past openFrameworks releases are supported via tagged versions, but only stable and master branches are actively supported.


This project uses Semantic Versioning, although strict adherence will only come into effect at version 1.0.0.




Check out the Help Wanted tag in the issues section for specific ideas or propose your own new ideas.

Pull Requests are always welcome, so if you make any improvements please feel free to float them back upstream :)

  1. Fork this repository.
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin my-new-feature).
  5. Create new Pull Request.
You can’t perform that action at this time.