Arduino Forum

Development => Other Hardware Development => Topic started by: xidameng on Jun 30, 2020, 04:57 am

Title: Using LoRa on Cortex-M3 MCU -- Ameba Arduino
Post by: xidameng on Jun 30, 2020, 04:57 am
LoRa is a low-power wide-area network protocol developed by Semtech. It has a typical range of 10KM at low power consumption which is ideal in some IoT applicaitons. Using LoRa on Realtek's Ameba Dev. board is very easy, here is a tutorial about it,

 

 

Materials

Ameba x 1
Dragino LoRa Shield x 2
Example

Dragino Lora Shield is a long range transceiver and based on Open source library. It allows the user to send data and reach extremely long ranges at low data-rates.It provides ultra-long range spread spectrum communication and high interference immunity whilst minimising current consumption. Due to different frequency regulations on each country, please notice the frquency LoRa Shield used when you purchase it.

Download the LoRa Library:
https://github.com/ambiot/amb1_arduino/raw/master/Arduino_libraries/AmebaLoRa.zip

Refer to the documentation on Arduino website to install library and add the .zip file to Amebaļ¼š
https://www.arduino.cc/en/Guide/Libraries#toc4

Dragino LoRa Shield SPI example wiring explanation:

Dragino LoRa Shield can be embedded on Ameba board directly, but the Ameba CS pin is different to the standard SPI protocol. Therefore, Dragino LoRa Shield CS pin cannot connect to Ameba CS pin directly. Modify and pull the CS pin which is pin 10 toward inside and connect to pin 0 with dupont line on Dragino LoRa Shield. The example is shown below:



Dragino LoRa Shield SPI Data is produced from ICSP SPI BUS, then connect to AMEBA SPI pin as follows:



Below is the RTL8710 Wiring Diagram:


Example Illustration
This example uses send and receive code to do the functional verification for two Dragino LoRa Shield. One is for sender and another one is fr receiver. Open "File" -> "Examples" -> "AmebaLoRa" -> "LoRaSender" and LoRaReceiverCallback. Compile them separately and upload to Ameba, push the Reset button. Then you can see the results on the terminal: