est. 2013
Basic MAC is a portable implementation of the LoRa Alliance®’s LoRaWAN® specification in the C programming language. It is a fork of IBM’s LMiC library, and supports multiple regions, which are selectable at compile and/or run time. It can handle Class A, Class B, and Class C devices.
Basic MAC is hosted on GitHub:
Documentation is a work in progress. Please have a look at the Getting Started Guide.
Basic MAC builds on a legacy that traces back to the very beginnings of LoRaWAN. Today, there are hundreds of thousands of devices deployed in production environments that are powered by this stack or one if its derivatives.
In 2013, a team around the co-authors of the fledgling LoRaMAC specification at IBM’s Zurich Research Laboratory created an implementation of this new wireless communications stack for embedded devices. Originally based on IBM’s MoteRunner platform, this stack was then rewritten in C, and eventually became LoRaMAC in C (LMiC). Despite the specification being renamed to LoRaWAN upon its publication, the “LMiC” name stuck and remains ever present throughout the source code. In 2015, IBM released the LMiC stack as a reference implementation of the LoRaWAN specification under an open source license.
In 2016, a number of engineers originally part of the LoRaWAN team at IBM Research joined the technology startup TrackNet. There, development of the LMiC fork TrackMAC started. The stack gained maturity and many features, among them concurrent multi-region support, a modular services framework, and a powerful simulation and test environment. A bootloader was added to enable over-the-air firmware updates, making the stack the first large-scale FUOTA-capable LoRaWAN implementation. The TrackMAC stack powers all LoRaWAN-enabled devices produced by TrackNet, such as the entire line of Tabs™ devices and industrial trackers.
With the acquisition of TrackNet by Semtech in 2018, the TrackMAC stack and its development team changed hands again. Once again, the stack was released under an open source license as part of the LoRa Basics program. After an apparent shift in software strategy, Semtech decided to cease development of the stack in 2020, leaving one of the major LoRaWAN implementations to an uncertain future.
Basic MAC is now maintained and developed privately by one of the original team members that has been part of the stack’s history since the very beginning and throughout. Contributions from the open source community are encouraged and welcome!
Over the years, LMiC and Basic MAC have been forked by 3rd parties and evolved into projects in their own right. These include: