LoRaPHY project, based upon SX1276Lib, hardware with NUCLEO-F103EB/L053R8 and other boards as well as multiple Radio modules of SX1272/1276/1278. The code contains MACRO definitions and can be configured as TX/RX only, PINGPONG and consider to be a code base of RTTY.

Dependencies:   SX1276Lib mbed

You are viewing an older revision! See the latest version

Homepage

About LoRaPHY/RTTY

This project has two goals:

  1. Setup and verify a extra low cost LoRa RF Shield for Arduino shield interface and compatible boards, Nucleo/Freedom and etc.
  2. Setup another MAC layer based upon LoRaPHY radio link to address mobile asset ,

Hardware

We delivery LoRa shield for Arduino/Nucleo/Freedom boards based upon mature RF modules. In order to avoid sourcing issues, we selected carefully and added solder jumpers to support multiple modules, therefore the developers can get constant supplies. Up to now, we have verified several SX1278 modules, and we will move on to verified SX1276 and SX1272 to cover EU/US bands.

Since we also develop based upon these boards, we added solder jumper for 3V3 VCC, so you can measure the power consumption of RF module. Additionally, we added some test pins, so you can use a logic analyzer to probe the SPI bus . This interface is very handy, I have removed some firmware bugs with this interface.

In this next version, I am considering to add I2C EEPROM. However since we can use internal Flash ROM to emulate EEPROM and some parts even have on-chip NVM, so it is still under evaluation.

Firmware

Most of the LoRa applications follow LoRaWAN specifications. LoRaWAN is suitable for fixed location IoT DAQ system. In some applications like people positioning system, we may need different MAC layer design due to different topology, which is similiar to early age of radio communications, HAM or walkie talkie. Therefore peer to peer and competitive MAC layer is required, instead of hybird MAC like LoRaWAN, which is competitive for uplink and time scheduler for downlink.

CSMA/CA

Since LoRa RFIC is a half duplex design, so we can not use CSMA/CD (Conflict Detect), we can use CSMA/CA(Conflict Avoidance). We will leverage wideband RSSI and CAD preamble detection as Carrier Sensing method. This part will borrow from LoRaWAN codebase.

In order to avoid conflict, we use RTS/CTS with timestamp information before real packet transaction. So other nodes will know how long the channel will be occupied. Then we will define packet structure. And X.25 over LoRa, and then IP based upon X.25.......

AT MODEM Interface

In order to make it a RTTY MODEM, we will define extra AT command set to interface to any host support UART/USB CDC, like PC/Raspberry Pi/Android/Router.

Software

The software running on host will be written in Python as well as Java, including CPython/Jython, Java for Android and Processing.

Please contact me (allankliu(at)163.com) if you are interested in this project.


All wikipages