This is code is part of a Technion course project in advanced IoT, implementing a device to receive and present sensors data from a Formula racing car built by students at Technion - Israel Institute of Technology.
Fork of DISCO-L072CZ-LRWAN1_LoRa_PingPong by
This is code is part of a Technion course project in advanced IoT, implementing a device to receive sensors data from another L072CZ-LRWAN1 installed on a Formula racing car (built by students at Technion - Israel Institute of Technology), and sends it to a GUI presenting the data (GUI project: github.com/ward-mattar/TechnionFormulaGUI).
How to install
- Create an account on Mbed: https://os.mbed.com/account/signup/
- Import project into Compiler
- In the Program Workspace select "Formula_Nucleo_Receiver"
- Select a Platform like so:
- Click button at top-left
- Add Board
- Search "NUCLEO F103RB" and then "Add to your Mbed Compiler"
- Finally click "Compile", if the build was successful, the binary would download automatically
- To install it on device simply plug it in to a PC, open device drive and drag then drop binary file in it
SX1276GenericLib/README.md@12:046346a16ff4, 2018-05-19 (annotated)
- Committer:
- wardm
- Date:
- Sat May 19 15:42:38 2018 +0000
- Revision:
- 12:046346a16ff4
V1.0.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wardm | 12:046346a16ff4 | 1 | # SX1276Generic Driver |
wardm | 12:046346a16ff4 | 2 | /* |
wardm | 12:046346a16ff4 | 3 | * (c) 2017 Helmut Tschemernjak (Helmut64 on mbed). |
wardm | 12:046346a16ff4 | 4 | * 30826 Garbsen (Hannover) Germany |
wardm | 12:046346a16ff4 | 5 | */ |
wardm | 12:046346a16ff4 | 6 | |
wardm | 12:046346a16ff4 | 7 | This library represents a common SX1276 module driver supporting SX1276 |
wardm | 12:046346a16ff4 | 8 | based modules. The approach is to support multiple OS versions including |
wardm | 12:046346a16ff4 | 9 | mbed, Arduino and Linux using the same driver code and little |
wardm | 12:046346a16ff4 | 10 | adjustments for the different OS version. The SX1276 driver is based on |
wardm | 12:046346a16ff4 | 11 | the Semtech 1276 code which can be seen in the revisions of this library |
wardm | 12:046346a16ff4 | 12 | repository. |
wardm | 12:046346a16ff4 | 13 | |
wardm | 12:046346a16ff4 | 14 | ## Supported LoRa Modules |
wardm | 12:046346a16ff4 | 15 | |
wardm | 12:046346a16ff4 | 16 | The following Lora modules are supported: |
wardm | 12:046346a16ff4 | 17 | - HopeRF RFM95 |
wardm | 12:046346a16ff4 | 18 | - Murata MURATA_SX1276 (CMWX1ZZABZ-078, used the STM B_L072Z_LRWAN1 board) |
wardm | 12:046346a16ff4 | 19 | - SX1276MB1MAS (433, 868 MHz version) |
wardm | 12:046346a16ff4 | 20 | - SX1276MB1LAS (433, 915 MHz version) |
wardm | 12:046346a16ff4 | 21 | |
wardm | 12:046346a16ff4 | 22 | ## Getting Started for Developers |
wardm | 12:046346a16ff4 | 23 | Import the mbed sample project: |
wardm | 12:046346a16ff4 | 24 | http://developer.mbed.org/users/Helmut64/code/STM32L0_LoRa |
wardm | 12:046346a16ff4 | 25 | - It includes a PingPong sample code |
wardm | 12:046346a16ff4 | 26 | - It includes a PinMap.h which allows to define the LoRa SPI, |
wardm | 12:046346a16ff4 | 27 | DIO interrupt, reset and antenna pins. |
wardm | 12:046346a16ff4 | 28 | The STM32L0_LoRa is a turnkey sample application for the STM B_L072Z_LRWAN1, |
wardm | 12:046346a16ff4 | 29 | however it will work with all other mbed based boards by adjusting the PinMap.h |
wardm | 12:046346a16ff4 | 30 | |
wardm | 12:046346a16ff4 | 31 | ## Developers help needed |
wardm | 12:046346a16ff4 | 32 | A list of tasks is documented in the file: LoRa_TODO.txt |
wardm | 12:046346a16ff4 | 33 | I (Helmut Tschemernjak) spend a very significant time to complete the |
wardm | 12:046346a16ff4 | 34 | initial version of the SX1276Generic packet driver. Enhancements, |
wardm | 12:046346a16ff4 | 35 | further module support and tuning is more than welcome. Please send me |
wardm | 12:046346a16ff4 | 36 | your patches via mbed. Also questions can be submitted in the mbed |
wardm | 12:046346a16ff4 | 37 | “Questions” area or a personal message via mbed. |
wardm | 12:046346a16ff4 | 38 | |
wardm | 12:046346a16ff4 | 39 | ## Future developments |
wardm | 12:046346a16ff4 | 40 | I work in a advanced private protocol using basic LoRa modules to |
wardm | 12:046346a16ff4 | 41 | communicate between simple nodes (battery powered) and stations |
wardm | 12:046346a16ff4 | 42 | (permanent power). The station should support thousands of nodes running |
wardm | 12:046346a16ff4 | 43 | on an Linux based OS using this 1276Generic driver or the LoRa |
wardm | 12:046346a16ff4 | 44 | concentrator module. The station should also work on mbed or Arduino |
wardm | 12:046346a16ff4 | 45 | assuming sufficient memory is provided. I believe there is an |
wardm | 12:046346a16ff4 | 46 | opportunity to do a better protocol compared to the official LoRa |
wardm | 12:046346a16ff4 | 47 | protocol which requires an Concentrator, a LoRa server and an |
wardm | 12:046346a16ff4 | 48 | application server. The idea is to over only efficient, reliable and |
wardm | 12:046346a16ff4 | 49 | secure communication between the nodes and the stations. Further |
wardm | 12:046346a16ff4 | 50 | forwarding to MQTT and other network services can be handled separately |
wardm | 12:046346a16ff4 | 51 | on the station. |
wardm | 12:046346a16ff4 | 52 | |
wardm | 12:046346a16ff4 | 53 |