Use ChirpStack as LoRa Server ============================= Please refer to the official website for more information. https://www.chirpstack.io/guides/docker-compose/ 1. Install ``docker``. 2. Clone the repo ``https://github.com/brocaar/chirpstack-docker.git``. 3. ``docker-compose up``. 4. Open a browser, visit the default application server ``https://localhost:8080``. 5. Login with default username and password, both are ``admin``. 6. Setup a network-server. The default is ``chirpstack-network-server:8000``. 7. Create ``Service-profiles``. 8. Create ``Device-profiles``. 9. Register a gateway, and fill in a Gateway EUI. 10. Create an application, select a service profile. 11. Click the application name, and create a device belongs to the application. * Fill in a Device EUI, * Choose a device profile, * Optional: uncheck the frame-counter validation for convenient test. 12. After click the CREATE DEVICE button, ``NwkKey`` and ``AppKey`` need to be filled (For **LoRaWAN 1.0.2**, only ``AppKey`` is needed), then the configuration of ChirpStack server is completed. 13. Now, we can use lora-motes-emulator to issue join request in OTAA mode. (This part is also shown in README.rst) * Prepare the config files. - For **LoRaWAN 1.0.2**, copy the template file ``config/device102.yml.tpl`` as ``config/device.yml``, for **LoRaWAN 1.1**, copy the template file ``config/device.yml.tpl`` as ``config/device.yml``. - Modify the ``device.yml`` file and fill in the information according to the register information at step 8. - Copy the ``config/config.yml.tpl`` as ``config/config.yml``, fill in the IP and port information of ChirpStack server (Default port number is 1700). * Start the ``pipenv`` environment by ``pipenv shell``. * Send a **PULL_DATA** to ChirpStack server by ``python main.py pull``. * Send a **join request message** to ChirpStack server by ``python main.py join``. * If the **join accept message** is decoded successfully, we can check the device information by ``python main.py info``. * An **Uplink message** can be sent by ``python main.py app -m YOUR_MESSAGE``, which can also combine with MAC command by option ``-f MAC_COMMAND_ID``. 14. Key Points: * The **Uplink data rate index** and the **Channel index** is required to calculate the MIC field (B1 message) in version 1.1.