• Stars
    star
    189
  • Rank 204,649 (Top 5 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 6 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

A LoRaWAN library for compatible arduino board

LibraryBuild

Arduino LoRaWAN library

This repository contains the simple LoRaWAN library encapsulated to run in the generic platform, allowing using the SX1272, SX1276 transceivers and compatible modules (such as some HopeRF RFM9x modules).

This repository is all based on the library originally created by Ideetron B.V. This library is slightly modified and this repo, with the principal purpose to have an LoRaWAN MAC layer for arduino with an easy API.

Features

The Arduino LoRaWAN library supports LoRaWAN Class A and Class C implementations operating in EU-868, AS-923, US-915 and AU-915 bands. Note that this library is fairly simple with the aim of demonstrating the LoRaWAN capabilities.

What certainly works:

  • Sending packets uplink, taking into account duty cycling.
  • Custom frequencies and datarate settings.
  • Receiving downlink packets in the RX1 window (EU-868, AS-923,US-915,AU-915).
  • Over-the-air activation (OTAA / joining) (EU-868, AS-923).
  • Class C operation.
  • Receiving downlink packets in the RX1 window (US-915).
  • Receiving downlink packets in the RX2 window.
  • Over-the-air activation (OTAA / joining) (US-915).

What has not been tested:

  • Receiving and processing MAC commands.

If you try one of these untested features and it works, be sure to let us know (creating a Github issue is probably the best way for that, also so you can submit a pull request to improve this repository).

Installing the library

Please refer to the wiki's first steps section for instructions on installing the library.

Configuration

A number of features can be configured or disabled by editing the config.h file in the library folder. Unfortunately the Arduino environment does not offer any way to do this (compile-time) configuration from the sketch, so be careful to recheck your configuration when you switch between sketches or update the library.

At the very least, you should set the right type of board in config.h, most other values should be fine at their defaults.

When using the US_915 you need to select which sub-band you will use, by default it is sub-band 6.

We have to manually set the frequency plan (EU_868, US_915, AS_923, AS_923_2...) in the Config.h of the library.

Supported hardware

This library is intended to be used with plain LoRa transceivers, connecting to them using SPI. In particular, the SX1272 and SX1276 families are supported (which should include SX1273, SX1277, SX1278 and SX1279 which only differ in the available frequencies, bandwidths and spreading factors). It has been tested with both SX1272 and SX1276 chips, using the Semtech SX1272 evaluation board and the HopeRF RFM92 and RFM95 boards (which supposedly contain an SX1272 and SX1276 chip respectively).

Some of the supported pre-built board currently available in the market are:

This library has been tested using:

  • Arduino Uno
  • WeMos D1 R2 (ESP8266 family board)
  • ESP32
  • Electronic Cats CatWAN USB-Stick
  • Electronic Cats Bast-WAN (Based on SAMR34)
  • NINA B302 is NRF52840 core
  • STMDuino
  • RENESAS compatible boards

Connections

To make this library work, your Arduino (or whatever Arduino-compatible board you are using) should be connected to the transceiver. The exact connections are a bit dependent on the transceiver board and Arduino used, so this section tries to explain what each connection is for and in what cases it is (not) required.

Pin mapping

As described above, most connections can use arbitrary I/O pins on the Arduino side. To tell the arduino LoRaWAN library about these, a pin mapping struct is used in the sketch file.

For example, this could look like this:

sRFM_pins RFM_pins = {
  	.CS = SS,
  	.RST = RFM_RST,
  	.DIO0 = RFM_DIO0,
  	.DIO1 = RFM_DIO1,
  	.DIO2 = RFM_DIO2,
  	.DIO5 = RFM_DIO5
}; 

API

Tests

Maintainer

Electronic Cats invests time and resources providing this open source design, please support Electronic Cats and open-source hardware by purchasing products from Electronic Cats! Thanks Beelan

License

Most source files in this repository are made available under the MIT License. The examples which use a more liberal license. Some of the AES code is available under the LGPL. Refer to each individual source file for more details.

More Repositories

1

CatSniffer

CatSniffer is an original multiprotocol and multiband board for sniffing, communicating, and attacking IoT (Internet of Things) devices using the latest radio IoT protocols. It is a highly portable USB stick that integrates TI CC1352, Semtech SX1262, and an RP2040 for V3 or a Microchip SAMD21E17 for V2
Python
536
star
2

mpu6050

MPU6050 Arduino Library
C++
204
star
3

HunterCatNFC

The Hunter Cat NFC is the latest security tool for contactless (Near Field Communication) used in access control, identification and bank cards. Specially created to identify NFC readers and sniffing tools, with this tool you can audit, read or emulate cards of different types.
C++
127
star
4

CayenneLPP

Library for Arduino compatible with Cayenne Low Power Payload
C++
110
star
5

BomberCat

BomberCat is the latest security tool that combines the most common card technologies: NFC technology (Near Field Communication) and magnetic stripe technology used in access control, identification, and banking cards. Specially created to audit banking terminals, and identify NFC readers and sniffing tools, with this tool you can audit
HTML
106
star
6

DAP-Cat-Programmer

An Open-Source CMSIS-DAP Debug Probe based on DAPLink and USB bus convert and it can realize USB convert to serial interface based in CH552, low-cost of $3 dollars
C
83
star
7

NFC-Copy-Cat

NFC Copy Cat is a small device that combines two powerful cybersecurity tools, NFCopy and MagSpoof. NFCopy works by reading or emulating a NFC card; depending on the necessities of the researcher.
83
star
8

SamyKamTools

Magnetic Pentesting tool for Raspberry Pi
HTML
58
star
9

CatSat

Kit CatSat I
C++
33
star
10

BastWAN

BastWAN is all the best in the world format Feather and LoRa with a RAK4260 and LoRaWAN
31
star
11

CatWAN_USB_Stick

An Open Source USB Stick compatible with LoRa and LoRaWAN with Cortex M0+. To connect, review and analyze packages of LoRa庐
C++
31
star
12

arduino-wch58x

Arduino core for the WCH58x
C
21
star
13

MeowMeow

Using the Meow Meow you can make anything into a key just by connecting a few alligator clips
HTML
20
star
14

LoRa_Sniffer

An Open Source software for connect, review and analyze packages of LoRa庐, we recommend using with catWAN USB Stick
JavaScript
19
star
15

CatSniffer-Tools

HUB repository for all the Catsniffer Tools available maintaned by Electronic Cats
Python
19
star
16

Arduino_Boards_Index

Electronic Cats Package Lists for the Arduino Board Manager
17
star
17

ElectronicCats-KiCad-Libraries

Electronic Cats KiCad Libraries
Python
13
star
18

ElectronicCats_InternalTemperatureZero

Arduino library for internal temperature of the family SAMD21 and SAMD51
C++
11
star
19

CatSniffer-Firmware

HUB repository for all the Catsniffer Firmware code available maintaned by Electronic Cats
C
11
star
20

CatSatZero

Kit CatSat Zero
C++
9
star
21

Cat-Sink

A USB-C PD Sink up to 20V 5A based on the Cypress CYPD3177 USB PD Controller
8
star
22

CatFinder

Our amazing (and cheap) Rover Kit for everybody
C++
7
star
23

badge-owasp-latam-mexico-2020

Badge of OWASP LATAM Mexico 2020
C++
6
star
24

WiFiTracker

Arduino
5
star
25

CatWAN_Relay

A board for relay control with LoRa compatible with LoRaWAN
C++
5
star
26

PicoWAN

PicoWAN is all the best in the world format Feather and LoRa with a Raspberry Pico Core!, Feather pin to pin compatible with a USB-C port.
5
star
27

BastBLE

Bast BLE is all the best in the world format Feather and BLE with a Nordic NRF!, Feather pin to pin compatible with a USB port type C
4
star
28

pxt-lora

MakeCode package LoRa by Electronic Cats - beta
C++
4
star
29

AqualaboSensorsLibrary

Arduino Library for Aqualabo Sensors by Electronic Cats
C++
4
star
30

ATECC608A-Croquette

Electronic Croquette Cats ATECC608 Breakout Board Cryptographic co-processor with secure hardware-based key storage
4
star
31

TLV493D-Croquette

TLV493D Breakout 3D magnetic sensor for Arduino
3
star
32

BastWiFi

BastWiFi is all the best in the world format Feather and ESP32-S2!, Feather pin to pin compatible with a USB port type C
3
star
33

CatWAN-Monitor

CatWAN Monitor allows you to connect, monitor and control the CatWAN devices of Electronic Cats through a serial port and send the information received to a server through an HTTP POST.
JavaScript
3
star
34

pxt-airQuality

Maker Code Package for the CCS811 Air Quality Sensor
TypeScript
3
star
35

Bast-Pro-Mini-M0

Bast Pro Mini M0 Dev Board for SAMD21E18A
3
star
36

CatWANShield

LoRaCat Shield for Arduino
HTML
3
star
37

meteoritoboard

Kit de estaci贸n meteorologica para "Curso de estaci贸n y fen贸menos meteorol贸gicos"
C++
3
star
38

LoRaCatKitty

Board ESP8266 with LoRa and OTA
KiCad Layout
3
star
39

LoRaCatTrack

Board Track with LoRa and GPS
KiCad Layout
2
star
40

Sam-badge

Sam Badge Dulces Sue帽os
C
2
star
41

RocketCat

Kit of Water Rocket WiFi based in ESP8266 and ESP32
C++
2
star
42

ComponentLibrariesKicadWurthElektronik

Component Libraries W眉rth Elektronik for Kicad
2
star
43

MKR_shield_template

Template of shield family MKR in KiCad 5
HTML
2
star
44

CatWAN_Farmer

CatWAN Farmer, a grower's water saving open source project with LoRa
C++
2
star
45

BastWAN-WLE

BastWAN is all the best in the world format Feather and LoRa with a RAK3172 (STM32WL) and LoRaWAN
2
star
46

inteligent_machines

Pagina Web de m谩quinas Inteligentes es un programa educativo en espa帽ol, para desarrollar habilidades interpretativas de lectura de informaci贸n, obtenida a trav茅s de los sensores en dispositivos embebidos.
JavaScript
2
star
47

MicroBatteryCharger-Croquette

Electronic Cats Micro for Lipo/Lion Battery Charger
2
star
48

michi

Using the Michi you can make anything into a key just by connecting a few alligator clips
C++
2
star
49

CatWAN_Trackers

Tracker of CatWAN Family
2
star
50

pxt-bme280

MakeCode package for the bme280 sensor - beta
TypeScript
2
star
51

FeatherWing-HUBUSB

Schematic and PCB files for ElectronicCats HubUSB FeatherWing with CH559
C
1
star
52

CatWAN_Citizen

CatWAN Citizen for the Urban Sensor Board
C++
1
star
53

pxt-gps

MakeCode package for GPS - beta
TypeScript
1
star
54

WiFiNotificationCat

1
star
55

OpenHackBadge

Badge for OpenHack Guatemala 2019 with SAMD11
C++
1
star
56

NyanCatEarrings

NyanCat PCB Earrings
1
star
57

faultycat

Faulty Cat is a low-cost Electromagnetic Fault Injection (EMFI) tool, designed specifically for self-study and hobbiest research.
1
star
58

TrackingCatSatI

Example of software for tracking in GroundStation, CatSat I
JavaScript
1
star
59

Badge-BugCON-2022

Badge Electronico para BugCON 2022 CDMX
C++
1
star
60

templateNodeMCU

KiCad Layout
1
star
61

Template-Project-KiCAD-CI

Template for Project KiCad CI with Github Action
1
star
62

pawprotector

Protects your mobile data from being accidentally shared, stolen, or infected with malware
1
star