Skip to content

Commit

Permalink
doc: Update guide
Browse files Browse the repository at this point in the history
  • Loading branch information
KrishnaIyer committed Nov 13, 2023
1 parent 3e5f791 commit db6650d
Show file tree
Hide file tree
Showing 15 changed files with 34 additions and 41 deletions.
8 changes: 4 additions & 4 deletions doc/content/devices/adding-devices/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ aliases:
weight: 1
---

This section contains instructions for LoRaWAN® adding devices in {{% tts %}}.
This section contains instructions for adding LoRaWAN® devices in {{% tts %}}.

<!--more-->

End devices in {{% tts %}} are managed under **Applications**.
An application is a logical collection devices that can be used to collect devices by function or geographical area. Before proceeding with this guide, [create an application]({{< ref "/integrations/adding-applications/" >}}) first.
An application is a logical collection of devices that can be used to collect devices by function or geographical area. Before proceeding with this guide, [create an application]({{< ref "/integrations/adding-applications/" >}}) first.

This guide assumes that your device is in the [LoRaWAN® Device Repository](https://github.com/TheThingsNetwork/lorawan-devices/) and that you're using the Console. If your device is not in the LoRaWAN® Device Repository or if you want to use {{% tts %}} CLI, see [Manually adding devices ]({{< ref "/devices/adding-devices/manual/" >}}).

Expand All @@ -31,7 +31,7 @@ You will be presented with options to easily onboard your device using its QR co

{{< tabs/tab "With QR Code" >}}

### Onboarding devices using QR codes
#### Onboarding devices using QR codes

If your device has a [TR005 LoRaWAN® Device Identification QR Code](https://lora-alliance.org/resource_hub/tr005-lorawan-device-identification-qr-codes/), adding a device is a simple process.
Note not all QR codes on the physical device are scannable. Only TR005 LoRaWAN® Device Identification QR Codes, are supported for this method.
Expand All @@ -57,7 +57,7 @@ Choose a **Frequency plan** appropriate for your region. Your device and gateway

{{< tabs/tab "Without QR Code" >}}

### Onboarding devices without QR codes
#### Onboarding devices without QR codes

If your device doesn't have a standard [TR005 LoRaWAN® Device Identification QR Code](https://lora-alliance.org/resource_hub/tr005-lorawan-device-identification-qr-codes/), or has a vendor specific QR code, then the device identification and keys have to be entered manually.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ aliases:

<!--more-->

This method is useful when batches of end devices are managed as JSON files or to import end devices from {{% ttnv2 %}}, ChirpStack and other LoRaWAN® networks using a JSON file describing those devices.
This method is useful when batches of end devices are managed as JSON files or to add end devices in bulk from {{% ttnv2 %}}, ChirpStack and other LoRaWAN® networks using a JSON file describing those devices.

Using JSON file with device descriptions, you can migrate end devices with or without their existing sessions.

Expand Down Expand Up @@ -52,7 +52,7 @@ Multiple end devices can also be contained in a single `devices.json` file like
```

The format above is considered by the Console and CLI as a JSON stream, processing one object at a time.
For more details in how to use the file, please refer to [Import End Devices]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}).
For more details in how to use the file, please refer to [Adding End Devices in Bulk]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}).

## JSON End Device Format

Expand Down
29 changes: 10 additions & 19 deletions doc/content/devices/adding-devices/manual/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,21 @@ If your devices are not yet part of the [LoRaWAN® Device Repository](https://gi

<!--more-->

To do this, choose the **Enter end device specifics manually** input method. Please refer to your device's datasheet to ensure entering the following information correctly. If such sheet has not been provided, please contact the manufacturer to assist you with obtaining this data.
This guide lists the common fields required for registering OTAA and ABP devices via the console. If you want to use the CLI, go to the OTAA/ABP guide at the bottom of the page.

Choose a **Frequency plan** appropriate for your region. Your device and gateway must use the same [frequency plan]({{< ref "/reference/frequency-plans/" >}}) to communicate.
Choose the **Enter end device specifics manually** input method. Please refer to your device's datasheet to ensure entering the following information correctly.

Select the device **LoRaWAN version**. This should be provided with your device as the LoRaWAN version, LoRaWAN specification, or MAC version.
Choose the **Enter end device specifics manually** option of the input method.

Choose an appropriate **Frequency Plan**. Your device and gateway must use the same [frequency plan]({{< ref "/reference/frequency-plans/" >}}) to communicate.

Select **LoRaWAN Version** and **Regional Parameters version** fields for your specific device.
These values are usually found in the end device documentation either on the vendor/manufacturer's website or on the data sheet. If this data is not available, check with the device vendor/manufacturer.

{{< warning >}}
Choosing the incorrect LoRaWAN version can lead to complex errors. Activation may work, but the device will not be able to communicate consistently. If you are unsure about the LoRaWAN version you have selected, watch the [event log]({{< ref "the-things-stack/management/events" >}}) for errors!
{{</ warning >}}

Choose the **Regional Parameters version** provided by the manufacturer of your device. This should be specified in the data sheet as Regional Parameters or PHY version.

{{< figure src="manual.png" alt="Manually create end device" >}}

### Advanced settings

To modify advanced settings, expand the **Show advanced activation, LoRaWAN class and cluster settings** dropdown.

Here, you may choose your **Activation mode**. If you choose **OTAA**, follow the [OTAA Devices]({{< ref "/devices/adding-devices/manual/otaa" >}}) subsection after this one, and if you choose **ABP**, follow the [ABP Devices]({{< ref "/devices/adding-devices/manual/abp" >}}) subsection.

If your device supports **Class B** or **Class C** features, you may enable them using the dropdown **Additional LoRaWAN class capabilities**.

Under **Network defaults**, you can choose to **Use network's default MAC settings**. This option is enabled by default because for most deployments, {{% tts %}} defaults for Rx delay and other MAC settings will be suitable. However, if you want to modify **Rx2 data rate** or **Rx2 frequency**, uncheck this option and provide your custom values. If using [ABP activation mode](#abp-devices), this will also allow you to configure **Rx1 data rate offset**, **Rx1 delay**, **Factory preset frequencies** and to reset frame counters.

{{< note >}} There are lots of additional options here that aren't mentioned for the sake of keeping this section concise. If you want to learn more about them, see the [MAC Settings]({{< ref "/devices/configuring-devices/mac-settings" >}}) section and/or hover over the tooltip icons on the respective inputs. {{</ note >}}
{{< figure src="device-input-method.png" alt="ABP input method" >}}

You can also choose to **Skip registration on Join Server** for testing purposes. We advise not to check this option unless you're an expert.
The above fields are common for both OTAA and ABP devices. Now, based on the device you are trying to add, choose the speficic guide for OTAA or ABP below.
8 changes: 5 additions & 3 deletions doc/content/devices/adding-devices/manual/abp/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@ If your device cannot be activated using the more secure OTAA, you may manually

{{< tabs/tab "Console" >}}

In the **Advanced settings** dropdown (see the [Advanced Settings section]({{< ref "/devices/adding-devices#advanced-settings" >}})), select **Activation by Personalization (ABP)**.
Click on the **Show advanced activation, LoRaWAN class and cluster settings** select **Activation by Personalization (ABP)**.

When using ABP, it is important to make sure that the Rx1 settings in your device match those in {{% tts %}}. Uncheck **Use network's Rx and frequency defaults** to specify settings that match those in your device. {{% tts %}} recommends an Rx1 delay of `5` seconds, but this value would have to also be programmed into your device.
Choose the appropriate **Additional LoRaWAN class capabilities**. When using ABP, it is important to make sure that the Rx1 settings in your device match those in {{% tts %}}. Uncheck **Network Defaults** to specify settings that match those in your device. {{% tts %}} recommends an Rx1 delay of `5` seconds, but this value would have to also be programmed into your device.

{{< figure src="abp-network-defaults.png" alt="ABP Network Settings" >}}

Now proceed with **Provisioning information**. Enter a **JoinEUI/AppEUI** if provided by your manufacturer. If it is not provided by the manufacturer and your device is programmable, you can generate a random one in accordance with the test ranges defined by the [IEEE 802 standards](https://ieee802.org/) or use all zeros, just make sure to program the same value into your device. Then click **Confirm**.

Expand All @@ -28,7 +30,7 @@ For LoRaWAN versions 1.1.x, generate an **AppSKey**, **FNwkSIntKey**, **SNwkSInt

Finally, give your device a unique **End device ID**. See [ID and EUI constraints]({{< ref "reference/id-eui-constraints" >}}) for guidelines about choosing a unique ID.

{{< figure src="manual-network-settings-abp.png" alt="Manually create ABP end device" >}}
{{< figure src="abp-fields-set.png" alt="ABP fields set" >}}

Click **Register end device** to create the end device.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/content/integrations/storage/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@ The Storage Integration should not be used for querying realtime data. For scala
- Long-term storage of historical data for end-devices.
- No need to maintain a connection with {{% tts %}} at all times, e.g. for end devices that send messages infrequently.

Detailed instructions about storage integration are int the topics below.
Detailed instructions about storage integration are in the topics below.
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ To export device using the [migration tool]({{< ref "/the-things-stack/migrating
ttn-lw-migrate device --source tts 'my-device' --tts.no-session > devices.json
```

Next, you need to import the `devices.json` file in your {{% tts %}} Cloud application. See instructions on how to [Import End Devices in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you have to configure it to connect to {{% tts %}} Cloud. See [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.
Next, you need to import the `devices.json` file in your {{% tts %}} Cloud application. See instructions on how to [add end devices in bulk in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you have to configure it to connect to {{% tts %}} Cloud. See [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.

The process of migrating OTAA devices using the migration tool ends here and you can ignore the info below the line.

Expand Down Expand Up @@ -89,7 +89,7 @@ ttn-lw-cli end-devices get --application-id <app-id> --device-id <device-id> \

The command above will export your device's description to the `device-description.json` file in the current folder. Open the file with a text editor and remove the following fields: `join_server_address`, `network_server_address` and `application_server_address`.

Next, you need to import the `device-description.json` file in your {{% tts %}} Cloud application. See instructions on how to [Import End Devices in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to re-configure it to connect to {{% tts %}} Cloud. Again, see [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.
Next, you need to import the `device-description.json` file in your {{% tts %}} Cloud application. See instructions on how to [add end devices in bulk in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to re-configure it to connect to {{% tts %}} Cloud. Again, see [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.

{{< /tabs/tab >}}

Expand Down Expand Up @@ -142,7 +142,7 @@ ttn-lw-migrate device --source tts 'my-device' \
--tts.no-session > devices.json
```

Next, you need to import the `devices.json` file in your {{% tts %}} Cloud application. See instructions on how to [Import End Devices in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to configure it to connect to {{% tts %}} Cloud. See [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.
Next, you need to import the `devices.json` file in your {{% tts %}} Cloud application. See instructions on how to [add end devices in bulk in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to configure it to connect to {{% tts %}} Cloud. See [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.

You will also need to reset your ABP device.

Expand Down Expand Up @@ -191,7 +191,7 @@ ttn-lw-cli end-devices get --application-id <app-id> --device-id <device-id> \

The command above will export your device's description to the `device-description.json` file in the current folder. Open the file with a text editor and remove the following fields: `join_server_address`, `network_server_address` and `application_server_address`. Also, set the `mac-settings.resets-f-cnt` field value to `true`.

Next, you need to import the `device-description.json` file in your {{% tts %}} Cloud application. See instructions on how to [Import End Devices in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to re-configure it to connect to {{% tts %}} Cloud. Again, see [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.
Next, you need to import the `device-description.json` file in your {{% tts %}} Cloud application. See instructions on how to [add end devices in bulk in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to re-configure it to connect to {{% tts %}} Cloud. Again, see [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.

When your device is registered in {{% tts %}} Cloud, you need to completely delete it from {{% tts %}} Community Edition network to prevent conflicts. You will also need to reset your ABP device.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ ttn-lw-migrate device --source tts 'my-device' \
--tts.delete-source-device
```

Next, you need to import the `devices.json` file in your {{% tts %}} Cloud application. See instructions on how to [Import End Devices in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to configure it to connect to {{% tts %}} Cloud. See [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.
Next, you need to import the `devices.json` file in your {{% tts %}} Cloud application. See instructions on how to [add end devices in bulk in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to configure it to connect to {{% tts %}} Cloud. See [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.

{{</ tabs/tab >}}

Expand Down Expand Up @@ -95,7 +95,7 @@ The command above will export your device's session to the `device-session.json`

Before your device's session is imported in {{% tts %}} Cloud, you need to completely delete your device from {{% tts %}} Community Edition to prevent conflicts.

Next, you need to import the `devices.json` file in your {{% tts %}} Cloud application. See instructions on how to [Import End Devices in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to configure it to connect to {{% tts %}} Cloud. Again, see [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.
Next, you need to import the `devices.json` file in your {{% tts %}} Cloud application. See instructions on how to [add end devices in bulk in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}). Keep in mind that if you are using the CLI to import devices, you first have to configure it to connect to {{% tts %}} Cloud. Again, see [Configuring the CLI]({{< ref "/the-things-stack/interact/cli/configuring-cli" >}}) guide for instructions.

{{</ tabs/tab >}}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,9 @@ ABP devices must be completely deleted from {{% ttnv2 %}}, especially if you hav

{{< /tabs/container >}}

## Import End Devices in {{% tts %}} Application
## Add end devices in bulk in {{% tts %}} Application

Now that you have exported one or more of your devices to a `devices.json` file, you can continue by importing this file in {{% tts %}} via Console or via CLI. See [Import End Devices in The Things Stack]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}) for detailed instructions on how to do this.
Now that you have exported one or more of your devices to a `devices.json` file, you can continue by importing this file in {{% tts %}} via Console or via CLI. See [add end devices in bulk in The Things Stack]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}) for detailed instructions on how to do this.

{{< tabs/container "OTAA" "ABP" >}}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@ To export all devices contained in {{% ttnv2 %}} application and clear their sec
ttn-lw-migrate application --source ttnv2 "ttn-v2-application-ID" > devices.json
```

## Import End Devices in {{% tts %}} Application
## Add end devices in bulk in {{% tts %}} Application

Now that you have exported one or more of your devices to a `devices.json` file, you can continue by importing this file in {{% tts %}} via Console or via CLI.

> See [Import End Devices in The Things Stack]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}) for detailed instructions on how to do this.
> See [add end devices in bulk in The Things Stack]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}) for detailed instructions on how to do this.
## Next Step - Migrate Gateways

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,4 @@ Please note that `MaxEIRP` parameter may not be always set properly, and that th

---

After exporting, devices and applications can be imported in {{% tts %}}. See [Import End Devices in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}) for details about importing devices.
After exporting, devices and applications can be imported in {{% tts %}}. See [add end devices in bulk in {{% tts %}}]({{< ref "/devices/adding-devices/adding-devices-in-bulk" >}}) for details about importing devices.
Loading

0 comments on commit db6650d

Please sign in to comment.