• Stars
    star
    1,627
  • Rank 28,754 (Top 0.6 %)
  • Language
    C++
  • License
    MIT License
  • Created about 8 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An Arduino library for sending and receiving data using LoRa radios.

Arduino LoRa

Build Status

An Arduino library for sending and receiving data using LoRa radios.

Compatible Hardware

Semtech SX1276/77/78/79 wiring

Semtech SX1276/77/78/79 Arduino
VCC 3.3V
GND GND
SCK SCK
MISO MISO
MOSI MOSI
NSS 10
NRESET 9
DIO0 2

NSS, NRESET, and DIO0 pins can be changed by using LoRa.setPins(ss, reset, dio0). DIO0 pin is optional, it is only needed for receive callback mode. If DIO0 pin is used, it must be interrupt capable via attachInterrupt(...).

NOTES:

  • Some boards (like the Arduino Nano), cannot supply enough current for the SX127x in TX mode. This will cause lockups when sending, be sure to use an external 3.3V supply that can provide at least 120mA's when using these boards.
  • If your Arduino board operates at 5V, like the Arduino Uno, Leonardo or Mega, you will need to use a level converter for the wiring to the Semtech SX127x module. Most Semtech SX127x breakout boards do not have logic level converters built-in.

Installation

Using the Arduino IDE Library Manager

  1. Choose Sketch -> Include Library -> Manage Libraries...
  2. Type LoRa into the search box.
  3. Click the row to select the library.
  4. Click the Install button to install the library.

Using Git

cd ~/Documents/Arduino/libraries/
git clone https://github.com/sandeepmistry/arduino-LoRa LoRa

API

See API.md.

Examples

See examples folder.

FAQ

1) Initilizating the LoRa radio is failing

Please check the wiring you are using matches what's listed in Semtech SX1276/77/78/79 wiring. You can also use LoRa.setPins(ss, reset, dio0) to change the default pins used. Some logic level converters cannot operate at 8 MHz, you can call LoRa.setSPIFrequency(frequency) to lower the SPI frequency used by the library. Both API's must be called before LoRa.begin(...).

2) Can other radios see the packets I'm sending?

Yes, any LoRa radio that are configured with the same radio parameters and in range can see the packets you send.

3) Is the data I'm sending encrypted?

No, all data is sent unencrypted. If want your packet data to be encrypted, you must encrypt it before passing it into this library, followed by decrypting on the receiving end.

4) How does this library differ from LoRaWAN libraries?

This library exposes the LoRa radio directly, and allows you to send data to any radios in range with same radio parameters. All data is broadcasted and there is no addressing. LoRaWAN builds on top of LoRA, but adds addressing, encryption, and additional layers. It also requires a LoRaWAN gateway and LoRaWAN network and application server.

5) Does this library honor duty cycles?

No, you have to manage it by your self.

6) Which frequencies can I use?

You can use this table to lookup the available frequencies by your country. The selectable frequency also depends on your hardware. You can lookup the data sheet or ask your supplier.

Please also notice the frequency dependent duty cycles for legal reasons!

License

This libary is licensed under the MIT Licence.

More Repositories

1

arduino-nRF5

Arduino Core for Nordic Semiconductor nRF5 based boards
C
881
star
2

arduino-CAN

An Arduino library for sending and receiving data using CAN bus.
C++
664
star
3

node-bleacon

A Node.js library for creating, discovering, and configuring iBeacons
JavaScript
499
star
4

arduino-BLEPeripheral

An Arduino library for creating custom BLE peripherals with Nordic Semiconductor's nRF8001 or nR51822.
C
454
star
5

arduino-OBD2

An Arduino library for reading OBD-II data from your car over CAN bus
C++
440
star
6

node-sensortag

Node.js lib for the TI SensorTag
JavaScript
215
star
7

pico-rmii-ethernet

C
203
star
8

node-eddystone-beacon-scanner

Scan for Eddystone beacons using Node.js
JavaScript
102
star
9

node-chip-io

Johnny-Five IO Plugin for the Next Thing Co. C.H.I.P.
JavaScript
95
star
10

osx-ble-peripheral

Example of using CoreBluetooth in peripheral mode
Objective-C
84
star
11

node-bbc-microbit

Control a BBC micro:bit from Node.js using BLE
JavaScript
83
star
12

node-ancs

A node.js lib to access the Apple Notification Center Service (ANCS)
JavaScript
67
star
13

arduino-nRF24L01-BLE

Example of using an Arduino and a nRF24L01+ to fake BLE advertisement
Arduino
63
star
14

node-sx127x

Node.js driver for Semtech SX1276/77/78/79 based LoRa radios
JavaScript
61
star
15

rtlsdrjs

📡 Turn your Realtek RTL2832U based device into an SDR receiver using JavaScript
JavaScript
56
star
16

node-blink1

A Node.js library for the blink(1)
JavaScript
51
star
17

aimldevfest-workshop-2019

TinyML on Arduino @ AI/ML DevFest Workshop - September 28, 2019
Jupyter Notebook
45
star
18

node-flower-power

node.js lib for the Parrot Flower Power
JavaScript
45
star
19

node-powermate

A Node.js library for the Griffin PowerMate
JavaScript
40
star
20

node-raspberry-pi-camera-native

Use your Raspberry Pi Camera Module with Node.js
C++
35
star
21

node-xpc-connection

C++
34
star
22

AnyiBeacon-iOS

Use CoreLocation to start/stop ranging for any iBeacon
Objective-C
31
star
23

ANCSExample-iOS

Example app to expose the Apple Notification Center Service (ANCS) on an iOS device
Objective-C
29
star
24

node-yeelight-blue

A Node.js lib for the yeelight blue and yeelight blue lightstrips.
JavaScript
26
star
25

node-chipolo

node.js lib for the Chipolo
JavaScript
18
star
26

node-bbc-microbit-io

Johnny-Five IO Plugin for the BBC micro:bit
JavaScript
17
star
27

node-bbc-microbit-firmware

Source code for the firmware bundled with node-bbc-microbit
C
12
star
28

node-core-bluetooth

JavaScript
11
star
29

node-lumen

Node.js lib for the Tabu Lumen
JavaScript
11
star
30

node-tethercell

Node.js lib for the Tethercell
JavaScript
9
star
31

openocd-code-nrf5

C
8
star
32

rtl8710-openocd

Unofficial mirror of https://bitbucket.org/rebane/rtl8710_openocd
C
6
star
33

Arduino-Nano-33-BLE-Sense-Examples

JavaScript
6
star
34

node-objective-c-runtime

Use the Objective-C Runtime from Node.js
Objective-C++
5
star
35

cordova-ble-ir-remote

JavaScript
4
star
36

node-sensordrone

Node.js lib for the Sensordrone
JavaScript
4
star
37

node-sticknfind

node.js lib for the StickNFind
JavaScript
3
star
38

node-wimoto

Node.js lib for Wimoto devices
JavaScript
2
star
39

node-6lowpan-ble

JavaScript
2
star
40

node-robosmart

A node.js library for the RoboSmart
JavaScript
2
star
41

node-node-sensor

node.js lib for Variable Inc.'s NODE sensor
JavaScript
2
star
42

node-bluetooth-bulb

A node.js library for the BluetoothBulb
JavaScript
1
star
43

colab-notebook-test

Jupyter Notebook
1
star
44

sandeepmistry

1
star
45

df1-browser

Experimental df1 (Device Factory 1) in the browser
JavaScript
1
star
46

ArduinoTimeAPI

C++
1
star