The two most used Arduino LMIC libraries are:
|Official library name:||MCCI LoRaWAN LMIC library|
|Classic LMIC||(Use of this library is now deprecated)|
|Official library name:||IBM LMIC framework (formerly LMIC-Arduino)|
Classic LMIC was the first LMIC implementation for the Arduino framework. This library has long served as the defacto LMIC library for the Arduino framework but is no longer maintained.
MCCI LMIC is a fork of and successor to Classic LMIC and is currently actively maintained.
Both use the same repository name ‘arduino-lmic’.
The formal name of Classic LMIC originally was “IBM LMIC framework” which was in 2017 changed to “LMIC-Arduino” but has now been reverted to “IBM LMIC framework” because the Arduino IDE could not properly handle it.
MCCI LMIC was forked from Classic LMIC. The repository name was not changed and so both Classic LMIC and MCCI LMIC use the same name “arduino-lmic” for their repository which can be confusing.
In posts people often need to refer to these libraries but do so in different ways (e.g. Arduino LMIC, arduino-limic, matthijskooijman LMIC, matthijs’ Arduino LMIC, MCCI’s LMIC implementation, etc.) which does not make things easier.
And when users only mention Arduino LMIC or arduino-lmic that does not make clear if they mean Classic LMIC or MCCI LMIC because those names are ambiguous.
To keep things simple (for brevity, unambiguity and uniformity) I suggest to from now:
Use the names Classic LMIC and MCCI LMIC when mentioning or referring to these libraries.
(Where needed repository URL’s can be added or linked but don’t use the URL’s instead of the names mentioned above.)
For more information about these libraries see: Overview of LoRaWAN Libraries [HowTo]
IBM’s original LMiC implementation does not support the Arduino framework. It served as basis for development of Matthijs’ Classic LMIC. Similar to above I suggest to use the short name IBM LMIC when referring to IBM’s original LMiC implementation.