https://github.com/erikw/firefly
A framework and protocol that is used to communicate serialized data between two nodes.
https://github.com/erikw/firefly
communication protocol sample-data serialization
Last synced: 8 months ago
JSON representation
A framework and protocol that is used to communicate serialized data between two nodes.
- Host: GitHub
- URL: https://github.com/erikw/firefly
- Owner: erikw
- Created: 2025-04-18T09:05:36.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-05-02T09:53:23.000Z (10 months ago)
- Last Synced: 2025-06-24T20:54:07.150Z (8 months ago)
- Topics: communication, protocol, sample-data, serialization
- Language: C
- Homepage:
- Size: 2.64 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Firefly
A research project conducted at Robotics Lab at Lund University.
Upstream: https://lgit945.cs.lth.se/robotlab/firefly
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.
**Tech stack:** Embedded C, Shell scripting, C++, GNU Linux, Robot Operating System, FreeRTOS, lwIP, CUnit, GDB, GNU
Make, Clang, LATEX, Git, SVN, Doxygen
## What is Firefly?

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).
## WARNING
The library's interface is still not set in stone and very prone to changes. Do
_NOT_ consider this as stable yet!