Setup IC880A-SPI (LoRaWAN concentrator) on Raspberry Pi 3: Difference between revisions
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Configure Raspberry Pi == | == Configure Raspberry Pi == | ||
===Install Rasbian OS on Raspberry Pi=== | |||
The official installation guide is available at: https://www.raspberrypi.org/documentation/installation/installing-images/README.md | The official installation guide is available at: https://www.raspberrypi.org/documentation/installation/installing-images/README.md | ||
Line 15: | Line 15: | ||
- Once we wrote the image file into the SD card. We can mount the SD card into Raspberry Pi. And boot up the OS by connecting the power supply to power socket. | - Once we wrote the image file into the SD card. We can mount the SD card into Raspberry Pi. And boot up the OS by connecting the power supply to power socket. | ||
===Configure Local time=== | |||
We need to configure the Raspberry Pi local. So that the LoRaWAN software is can access to the correct time. | We need to configure the Raspberry Pi local. So that the LoRaWAN software is can access to the correct time. | ||
Line 22: | Line 22: | ||
- And configure your local time and time zone | - And configure your local time and time zone | ||
===Enable SPI Interface=== | |||
- sudo raspi-config | - sudo raspi-config | ||
- Select “Advanced Options” | - Select “Advanced Options” | ||
Line 28: | Line 28: | ||
- Set the option to “Yes” | - Set the option to “Yes” | ||
== Connect IC880A-SPI to Raspberry Pi == | |||
Additional document: | |||
IC880A-SPI Quick start guide: https://wireless-solutions.de/images/stories/downloads/Radio%20Modules/iC880A/iC880A-SPI_QuickStartGuide.pdf | |||
TTN guide: https://github.com/ttn-zh/ic880a-gateway/wiki | |||
===IC880A-SPI Pinout === | |||
In order to connect the IC880A-SPI to Raspberry Pi the following PIN on IC880A-SPI have to be connected. | In order to connect the IC880A-SPI to Raspberry Pi the following PIN on IC880A-SPI have to be connected. | ||
Line 84: | Line 89: | ||
|} | |} | ||
[[File:pinout.jpg| 500px]] | |||
===Connect Raspberry Pi to IC880A-SPI=== | |||
Since we use the LoRaWAN software from GitHub and the PIN we need to connect to on Raspberry Pi is the following: | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 121: | Line 130: | ||
|24 | |24 | ||
|} | |} | ||
[[File:mounted_boards.jpg| 500px]] | |||
Once we have connect the PIN to Raspberry Pi. We can start installing the LoRaWAN software onto the Raspberry Pi. | Once we have connect the PIN to Raspberry Pi. We can start installing the LoRaWAN software onto the Raspberry Pi. | ||
== Prepare IC880A-SPI reset script == | == Prepare IC880A-SPI reset script == | ||
Line 188: | Line 198: | ||
Finally, We can start the LoRaWAN the software to listen and forward our package | Finally, We can start the LoRaWAN the software to listen and forward our package | ||
sudo ./lora_pkt_fwd | sudo ./lora_pkt_fwd | ||
We should see the similar output to the following if the program successfully started. | |||
lgw_start:823: Note: calibration started (time: 2300 ms) | |||
lgw_start:844: Note: calibration finished (status = 191) | |||
Info: Initialising AGC firmware... | |||
Info: putting back original RADIO_SELECT value | |||
INFO: [main] concentrator started, packet can now be received | |||
INFO: Disabling GPS mode for concentrator's counter... | |||
INFO: host/sx1301 time offset=(1513330337s:252766µs) - drift=-1389492834µs | |||
INFO: Enabling GPS mode for concentrator's counter. | |||
INFO: [down] PULL_ACK received in 30 ms | |||
Sometime it fails to start the concentrator because we are using the long jumper wire. We can try to start the program again by running sudo ./lora_pkt_fwd again. | |||
Note: Always execute the ic880a reset script to reset the board every time the Raspberry Pi is restart | Note: Always execute the ic880a reset script to reset the board every time the Raspberry Pi is restart | ||
Line 199: | Line 224: | ||
LoRa net GitHub link: https://github.com/Lora-net | LoRa net GitHub link: https://github.com/Lora-net | ||
[[File:pinout.jpg| | [[File:pinout.jpg| 700px]] | ||
[[File:mounted_boards.jpg| | [[File:mounted_boards.jpg| 700px]] |
Latest revision as of 12:47, 15 December 2017
Configure Raspberry Pi
Install Rasbian OS on Raspberry Pi
The official installation guide is available at: https://www.raspberrypi.org/documentation/installation/installing-images/README.md
- First, we download the image file from: https://www.raspberrypi.org/downloads/ - Once we have the image file, we can install it into Raspberry Pi SD card with “Etcher”: . Etcher is a graphical SD card writing tool. . Download and install Etcher from: https://etcher.io/ . Connect an SD card reader with the SD card inside. . Open Etcher and select from your hard drive the Raspberry Pi “.img” or “.zip” file you wish to write to the SD card. . Select the SD card you wish to write your image to. . Review your selections and click 'Flash!' to begin writing data to the SD card. - Once we wrote the image file into the SD card. We can mount the SD card into Raspberry Pi. And boot up the OS by connecting the power supply to power socket.
Configure Local time
We need to configure the Raspberry Pi local. So that the LoRaWAN software is can access to the correct time.
- Type sudo raspi-config - Choose Internationalisation Options - And configure your local time and time zone
Enable SPI Interface
- sudo raspi-config - Select “Advanced Options” - Select the “SPI” option - Set the option to “Yes”
Connect IC880A-SPI to Raspberry Pi
Additional document:
IC880A-SPI Quick start guide: https://wireless-solutions.de/images/stories/downloads/Radio%20Modules/iC880A/iC880A-SPI_QuickStartGuide.pdf
TTN guide: https://github.com/ttn-zh/ic880a-gateway/wiki
IC880A-SPI Pinout
In order to connect the IC880A-SPI to Raspberry Pi the following PIN on IC880A-SPI have to be connected.
PIN | PIN Name | PIN Type | Description |
21 | VDD | Power | "+5 V Supply Voltage(>700mA)" |
22 | GND | Power | |
14 | CLK | Input | Sx1301 SPI-Clock |
15 | MISO | Output | Sx1301 SPI-MISO |
16 | MOSI | Input | Sx1301 SPI-MOSI |
17 | NSS | Input | Sx1301 SPI-NSS |
13 | Reset | Reset | Sx1301 SPI-reset |
12 | GND | Power |
Connect Raspberry Pi to IC880A-SPI
Since we use the LoRaWAN software from GitHub and the PIN we need to connect to on Raspberry Pi is the following:
IC880A | Name | Raspberry Pi (Physical PIN) |
21 | Supply 5V | 2 |
22 | GND | 6 |
13 | Reset | 22 |
14 | SPI CLK | 23 |
15 | MISO | 21 |
16 | MOSI | 19 |
17 | NSS | 24 |
Once we have connect the PIN to Raspberry Pi. We can start installing the LoRaWAN software onto the Raspberry Pi.
Prepare IC880A-SPI reset script
Once we have connect the board to Raspberry Pi we can create the following script and execute, in order to reset the board.
Note: We need to reset the board every time the Raspberry Pi restart. In order to be able to run the package LoRaWAN software.
Create a script file with the following code. And save it as ic880a_reset.sh
#!/bin/bash echo "25" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio25/direction echo "1" > /sys/class/gpio/gpio25/value sleep 5 echo "0" > /sys/class/gpio/gpio25/value sleep 1 echo "0" > /sys/class/gpio/gpio25/value
Set the file permission to executable, and execute the file to reset the board.
Install LoRaWAN software on Raspberry Pi
First, we need to install git to clone the software from source code from GitHub
sudo apt-get install git
Then go to the directory we want to store the lora_gateway. For example
cd ~/Desktop
Then clone the lora_gateway
git clone https://github.com/Lora-net/lora_gateway.git
Compile the library:
cd lora_gateway make
Once we successfully build the software. We can install the package forwarder software to forward the LoRaWAN package to the network server
Back to the folder where we store the lora_gateway folder
cd ~/Desktop
Clone the package forwarder
git clone https://github.com/Lora-net/packet_forwarder.git
Compile the package forwarder
cd package_forwarder make
Once we successfully make the package forwarder. We can go the the lora_pkt_fwd folder to configure the network server's IP address and Ports, And start the package forwarder to listen and forward LoRaWAN package
cd lora_pkt_fwd sudo nano local_conf.json
Example local_conf.json configure to forward the package to thethingsnetwork LoRaWAN network server
{ "gateway_conf": { "gateway_ID": "b827ebFFFE7f3677", "server_address": "router.eu.thethings.network", "serv_port_up": 1700, "serv_port_down": 1700 } }
Finally, We can start the LoRaWAN the software to listen and forward our package
sudo ./lora_pkt_fwd
We should see the similar output to the following if the program successfully started.
lgw_start:823: Note: calibration started (time: 2300 ms) lgw_start:844: Note: calibration finished (status = 191) Info: Initialising AGC firmware... Info: putting back original RADIO_SELECT value INFO: [main] concentrator started, packet can now be received INFO: Disabling GPS mode for concentrator's counter... INFO: host/sx1301 time offset=(1513330337s:252766µs) - drift=-1389492834µs INFO: Enabling GPS mode for concentrator's counter. INFO: [down] PULL_ACK received in 30 ms
Sometime it fails to start the concentrator because we are using the long jumper wire. We can try to start the program again by running sudo ./lora_pkt_fwd again.
Note: Always execute the ic880a reset script to reset the board every time the Raspberry Pi is restart
Additional documents
IC880A-SPI official Quick start guide: https://wireless-solutions.de/images/stories/downloads/Radio%20Modules/iC880A/iC880A-SPI_QuickStartGuide.pdf
IC880A-SPI on Raspberry Pi tutorial: https://github.com/ttn-zh/ic880a-gateway/wiki
LoRa net GitHub link: https://github.com/Lora-net