Project  
Name Firefly
Tech Embedded C, Shell scripting, C++, GNU Linux, Robot Operating System, FreeRTOS, lwIP, CUnit, GDB, GNU Make, Clang, LATEX, Git, SVN, Doxygen
URL https://github.com/erikw/firefly

A framework and protocol that is used to communicate serialized data between two nodes.

A research project conducted at Robotics Lab at Lund University.

The goal was to creating a service and subscriber for force and torque samples from a sensor with low level hard real time requirements using C, FreeRTOS, Linux and Xenomai. We designed and implemented a general system and API for connecting nodes speaking a sample language and let them communicate over logical channels with different transport methods e.g. (real time) Ethernet, UDP, TCP or sneakernet.

What is Firefly?

Concept slide

Legend:
Concept slide legend

Firefly is a framework and protocol that is used to communicate serialized data between two nodes. It builds upon the Labcomm protocol, which is by design a one way protocol, and extends it to enable two way communication over different transport medium.

The protocol specification is fairly simple by design to avoid any overhead when used in a setting with real time demands. There is a BNF-description of the protocol.

There are reference implementations for three different application examples as well as four different transport mediums (UDP and Ethernet on Posix and FreeRTOS/Stellaris).

Updated: