You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository contains the IBM LMIC (LoRaWAN-MAC-in-C) library, slightly
4
-
modified to run in the Arduino environment, allowing using the SX1272,
5
-
SX1276 transceivers and compatible modules (such as some HopeRF RFM9x
6
-
modules and the Murata LoRa modules).
7
-
8
-
> Note on names: the library was originally ported to Arduino by Matthijs Kooijman and Thomas Telkamp, and was named Arduino LMIC. Subsequently, MCCI did a lot of work to support other regions, and ultimately took over maintenance. The Arduino IDE doesn't like two libraries with the same name, so we had to come up with a new name. So in the IDE, it will appear as MCCI LoRaWAN LMIC Library; but all us know it by the primary header file, which is `<arduino_lmic.h>`.
9
-
10
-
Information about the LoRaWAN protocol is summarized in [LoRaWAN-at-a-glance](doc/LoRaWAN-at-a-glance.pdf). Full information is available from the [LoRa Alliance](https://lora-alliance.org).
11
-
12
-
A support forum is available at [forum.mcci.io](https://forum.mcci.io/c/device-software/arduino-lmic/5).
13
-
14
-
The base Arduino library mostly exposes the functions defined by LMIC. It makes no
15
-
attempt to wrap them in a higher level API that is more in the Arduino
16
-
style. To find out how to use the library itself, see the examples, or
17
-
see the PDF files in the doc subdirectory.
18
-
19
-
A separate library, [MCCI `arduino-lorawan`](https://github.com/mcci-catena/arduino-lorawan), provides a higher level, more Arduino-like wrapper which may be useful.
20
-
21
-
The examples in this library (apart from the compliance sketch) are somewhat primitive. A very complete cross-platform Arduino application based on the LMIC has been published by Leonel Lopes Parente ([`@lnlp`](https://github.com/lnlp)) as [LMIC-node](https://github.com/lnlp/LMIC-node). That application specifically targets The Things Network.
22
-
23
-
Although the wrappers in this library are designed to make the LMIC useful in the Arduino environment, the maintainers have tried to be careful to keep the core LMIC code generally useful. For example, I use this library without modification (but with wrappers) on a RISC-V platform in a non-Arduino environment.
@@ -39,6 +17,7 @@ Although the wrappers in this library are designed to make the LMIC useful in th
39
17
<!-- markdownlint-disable -->
40
18
<!-- TOC depthFrom:2 updateOnSave:true -->
41
19
20
+
-[Introduction](#introduction)
42
21
-[Installing](#installing)
43
22
-[Getting Help](#getting-help)
44
23
- [If it's not working](#if-its-not-working)
@@ -117,6 +96,31 @@ Although the wrappers in this library are designed to make the LMIC useful in th
117
96
<!-- markdownlint-restore -->
118
97
<!-- Due to a bug in Markdown TOC, the table is formatted incorrectly if tab indentation is set other than 4. Due to another bug, this comment must be *after* the TOC entry. -->
119
98
99
+
## Introduction
100
+
101
+
This repository contains the IBM LMIC (LoRaWAN-MAC-in-C) library, slightly
102
+
modified to run in the Arduino environment, allowing using the SX1272,
103
+
SX1276 transceivers and compatible modules (such as some HopeRF RFM9x
104
+
modules and the Murata LoRa modules).
105
+
106
+
> Note on names: the library was originally ported to Arduino by Matthijs Kooijman and Thomas Telkamp, and was named Arduino LMIC. Subsequently, MCCI did a lot of work to support other regions, and ultimately took over maintenance. The Arduino IDE doesn't like two libraries with the same name, so we had to come up with a new name. So in the IDE, it will appear as MCCI LoRaWAN LMIC Library; but all us know it by the primary header file, which is `<arduino_lmic.h>`.
107
+
108
+
Information about the LoRaWAN protocol is summarized in [LoRaWAN-at-a-glance](doc/LoRaWAN-at-a-glance.pdf). Full information is available from the [LoRa Alliance](https://lora-alliance.org).
109
+
110
+
A support forum is available at [forum.mcci.io](https://forum.mcci.io/c/device-software/arduino-lmic/5).
111
+
112
+
The base Arduino library mostly exposes the functions defined by LMIC. It makes no
113
+
attempt to wrap them in a higher level API that is more in the Arduino
114
+
style. To find out how to use the library itself, see the examples, or
115
+
see the PDF files in the doc subdirectory.
116
+
117
+
A separate library, [MCCI `arduino-lorawan`](https://github.com/mcci-catena/arduino-lorawan), provides a higher level, more Arduino-like wrapper which may be useful.
118
+
119
+
The examples in this library (apart from the compliance sketch) are somewhat primitive. A very complete cross-platform Arduino application based on the LMIC has been published by Leonel Lopes Parente ([`@lnlp`](https://github.com/lnlp)) as [LMIC-node](https://github.com/lnlp/LMIC-node). That application specifically targets The Things Network.
120
+
121
+
Although the wrappers in this library are designed to make the LMIC useful in the Arduino environment, the maintainers have tried to be careful to keep the core LMIC code generally useful. For example, I use this library without modification (but with wrappers) on a RISC-V platform in a non-Arduino environment.
122
+
123
+
120
124
## Installing
121
125
122
126
To install this library:
@@ -169,7 +173,7 @@ us know (creating a GitHub issue is probably the best way for that).
169
173
170
174
### PDF/Word Documentation
171
175
172
-
The `doc` directory contains [LMIC-v4.0.0.pdf](doc/LMIC-v4.0.0.pdf), which documents the library APIs and use. It's based on the original IBM documentation, but has been adapted for this version of the library. However, as this library is used for more than Arduino, that document is supplemented by practical details in this document.
176
+
The `doc` directory contains [LMIC-v4.1.0.pdf](doc/LMIC-v4.1.0.pdf), which documents the library APIs and use. It's based on the original IBM documentation, but has been adapted for this version of the library. However, as this library is used for more than Arduino, that document is supplemented by Arduino-specific details in this document.
173
177
174
178
### Adding Regions
175
179
@@ -1240,7 +1244,7 @@ function uflt12f(rawUflt12)
1240
1244
1241
1245
## Release History
1242
1246
1243
-
-HEAD contains the following changes
1247
+
-v4.1 contains the following changes
1244
1248
- Adapt `ttn-otaa-network-time` example to be compatible with [PaulStoffregen/Time](https://github.com/PaulStoffregen/Time) v1.6.1, which deletes `Time.h` in favor of `TimeLib.h`[#763](https://github.com/mcci-catena/arduino-lmic/issues/763). Version is v4.0.1-pre1.
1245
1249
- Add support for TTGO LoRa32-OLED v2.1.6. (Thanks to [@ChrSchultz](https://github.com/ChrSchultz), [#692](https://github.com/mcci-catena/arduino-lmic/pull/692).)
1246
1250
- Correct max TX EIRP for Japan to 13 dBm. (Thanks to [@ryos36](https://github.com/ryos36), [#662](https://github.com/mcci-catena/arduino-lmic/pull/662).)
@@ -1249,6 +1253,8 @@ function uflt12f(rawUflt12)
1249
1253
- Fix typos in this document ([#780](https://github.com/mcci-catena/arduino-lmic/issues/780), thanks [@PeeJay](https://github.com/PeeJay)).
1250
1254
- Fix additional warnings on non-ARM platforms ([#791](https://github.com/mcci-catena/arduino-lmic/issues/791), thanks [@d-a-v](https://github.com/d-a-v)).
1251
1255
- Allow application to set the value to be used in `DeviceStatusAns` MAC messages ([#576](https://github.com/mcci-catena/arduino-lmic/issues/576) and [#560](https://github.com/mcci-catena/arduino-lmic/issues/560), thanks to [@altishchenko](https://github.com/altishchenko)).
1256
+
- Minor adjustments to the compliance sketch ([#800](https://github.com/mcci-catena/arduino-lmic/issues/576)).
1257
+
- Update the LMIC reference manual to `LMIC-v4.1.0.pdf`.
1252
1258
1253
1259
- v4.0 is a major release; changes are significant enough to be "likely breaking". It includes the following changes.
0 commit comments