SX1276GenericLib to support sx1276 bassed LoRa modules, including HopeRF RFM95, Murata CMWX1ZZABZ and Semtech SX1276MB1MAS/SX1276MB1LAS modules

Dependents:   DISCO-L072CZ-LRWAN1_LoRa_PingPong DISCO-L072CZ-LRWAN1_LoRa_PingPong DISCO-L072CZ-LRWAN1_LoRa_PingPong DISCO-L072CZ-LRWAN1_LoRa_USB_Rx ... more

Fork of SX1276Lib by Semtech

Helmut Tschemernjak

File content as of revision 46:e78a1d0391ac:

# SX1276Generic Driver
 * (c) 2017 Helmut Tschemernjak (Helmut64 on mbed).
 * 30826 Garbsen (Hannover) Germany

This library represents a common SX1276 module driver supporting SX1276 based modules. The approach is to support multiple OS versions including mbed, Arduino and Linux using the same driver code and little adjustments for the different OS version. The SX1276 driver is based on the Semtech 1276 code which can be seen in the revisions of this library repository.

## Supported LoRa Modules

The following Lora modules are supported:
- HopeRF RFM95
- Murata MURATA_SX1276 (CMWX1ZZABZ-078, used the STM B_L072Z_LRWAN1 board)
- SX1276MB1MAS (433, 868 MHz version)
- SX1276MB1LAS (433, 915 MHz version)

## Getting Started for Developers
Import the mbed sample project:
- It includes a PingPong sample code
- It includes a PinMap.h which allows to define the LoRa SPI,
  DIO interrupt, reset and antenna pins.
The STM32L0_LoRa is a turnkey sample application for the STM B_L072Z_LRWAN1, however it will work with all other mbed based boards by adjusting the PinMap.h

## Developers help needed
A list of tasks is documented in the file: LoRa_TODO.txt
I (Helmut Tschemernjak) spend a very significant time to complete the initial version of the SX1276Generic packet driver. Enhancements, further module support and tuning is more than welcome. Please send me your patches via mbed. Also questions can be submitted in the mbed “Questions” area or a personal message via mbed.

## Future developments
I work in a advanced private protocol using basic LoRa modules to communicate between simple nodes (battery powered) and stations (permanent power). The station should support thousands of nodes running on an Linux based OS using this 1276Generic driver or the LoRa concentrator module. The station should also work on mbed or Arduino assuming sufficient memory is provided. I believe there is an opportunity to do a better protocol compared to the official LoRa protocol which requires an Concentrator, a LoRa server and an application server. The idea is to over only efficient, reliable and secure communication between the nodes and the stations. Further forwarding to MQTT and other network services can be handled separately on the station.