LCC Libraries

Several open-source OpenLCB/LCC libraries are available to assist with Node Development.

C/C++ Libraries

The list below is in alphabetical order.

LibLCC

A C library implementing the LCC protocol.  Designed to be agnostic to
the hardware that it is running on, it can be used on both MCUs
on either bare metal or Linux. Also available through the Arduino
Library Manager.  Sub-project of my TrainUtils project, which contains
various utilities for Loconet and Cab Bus communications. https://github.com/rm5248/TrainUtils/tree/master/LCC

OpenLcbCLib

C library and examples to create an OpenLcb (NMRA LCC) compliant Node. It is written to be agnostic to what MCU/PC it is compiled against. It supports virtual nodes and is written such that implementing CAN/TCP or other physical layers should be easy to achieve. https://github.com/JimKueneman/OpenLcbCLib/tree/master

OpenLCB_Single_Thread

The oldest Arduino library, developed during the early days of OpenLCB prototyping, is available here: https://github.com/openlcb/OpenLCB_Single_Thread. It is still being maintained.

OpenMRN and OpenMRNLite

The OpenMRN library exists in two forms:

The full version of OpenMRN is used in the TCS products, including the LT-50 and LT-100 throttles, CS-105, and MRC’s Nexxt platform. However, building code with the full version requires Linux or a Mac (on Windows, you can use WSL with Ubuntu).

OpenMRN Documentation is available here: https://openlcb.github.io/OpenLCB_Technical_Introduction/title-page.html

A slide presentation introducing OpenMRNLite is available here: https://docs.google.com/presentation/d/1_g9B7z2QH9oO9RFB_pEbV1Ok-HAFlI29Pb4WuWfVP3A/edit?slide=id.g37a2070c7cf_0_0&pli=1#slide=id.g37a2070c7cf_0_0

A series of YouTube videos are available here: https://www.youtube.com/watch?v=n9zZwy4TjzE&list=PL2Mz1GBib5AueCSIC4eFR1ufDVSxo34-R

Java

Java implementation of OpenLCB / LCC protocols. This implementation operates inside JMRI, and can also be used inside Android apps: https://github.com/openlcb/OpenLCB_Java

Python

https://github.com/openlcb/OpenLCB_Python

Swift

A Swift implementation, used with SwiftUI to make the LccTools app: