Wiki source code of Notes for ChirpStack

Version 180.1 by Mengting Qiu on 2023/11/08 16:51

Hide last authors
Xiaoling 108.4 1 **~ Table of Contents:**
Xiaoling 1.2 2
Xiaoling 1.1 3 {{toc/}}
4
Xiaoling 86.4 5
6
7
Xiaoling 108.4 8 = 1.  Introduction =
Xiaoling 1.1 9
Xiaoling 108.4 10
Kilight Cao 53.1 11 (% style="color:black" %)The ChirpStack open-source LoRaWAN Network Server stack provides open-source components for LoRaWAN networks And the Chirpstack supports the users in building a private LoRaWAN Server. For more info please refer to this [[link>>url:https://www.chirpstack.io/]]
Xiaoling 1.1 12
Xiaoling 1.5 13 (((
Kilight Cao 51.1 14 (% style="color:black" %)The dragino gateway can connect the ChirpStack server via Semtech UDP or Semtech Basic Station.
Xiaoling 108.4 15
16
Xiaoling 1.5 17 )))
Xiaoling 1.1 18
Xiaoling 108.4 19 (% style="color:blue" %)**Prerequisite:**
Xiaoling 1.1 20
Xiaoling 108.4 21 **1) Have a Chirstack Server.**
Xiaoling 1.1 22
Bei Jinggeng 172.1 23 [[image:image-20230821114047-4.png||height="524" width="990"]]
Xiaoling 1.1 24
Xiaoling 1.2 25 ChirpStack home page
Xiaoling 1.1 26
Xiaoling 54.2 27
Xiaoling 1.1 28
Xiaoling 108.4 29 **2) Gateway model support**
30
Xiaoling 1.2 31 (% class="box" %)
32 (((
Xiaoling 1.5 33 (((
Xiaoling 1.2 34 Semtech UDP : **All Model**
Xiaoling 108.4 35 Basic Station : [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]]
36 (% style="color:red" %)**Note** (%%): the firmware needs >[[lgw~~-~~-build-v5.4.1640315898>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]  if use the Bais station
Xiaoling 1.2 37 )))
Xiaoling 1.5 38 )))
Xiaoling 1.1 39
Xiaoling 176.2 40
Bei Jinggeng 164.1 41 = 2.  Node usage introduction =
Xiaoling 86.5 42
Bei Jinggeng 164.1 43 == 2.1 Register Node ==
Xiaoling 1.1 44
45
Xiaoling 176.2 46 **Step 1: Add application**
47
Bei Jinggeng 164.1 48 [[image:image-20230702094608-1.png||height="537" width="1015"]]
Xiaoling 108.4 49
Bei Jinggeng 164.1 50
Xiaoling 176.2 51 **Step 2:Fill name**
52
Bei Jinggeng 164.1 53 [[image:image-20230702094852-2.png]]
54
55
Xiaoling 176.2 56 **Step3 :Add device profile**
57
Bei Jinggeng 164.1 58 [[image:image-20230702095114-4.png||height="448" width="1061"]]
59
60
Xiaoling 176.2 61 **Step4 :Configure your device profile**
Bei Jinggeng 164.1 62
63 [[image:image-20230702095557-5.png||height="648" width="1121"]]
64
65 Does node support class-c
66
67 [[image:image-20230702095641-6.png||height="349" width="1114"]]
68
69 Add node's decoder
70
71 [[image:image-20230702095827-7.png||height="490" width="1138"]]
72
73
Xiaoling 176.2 74 **Step5 :add device**
Bei Jinggeng 164.1 75
76 [[image:image-20230702094944-3.png||height="439" width="1153"]]
77
78
Xiaoling 176.2 79 [[image:image-20230702100312-8.png||height="550" width="1106"]]
Bei Jinggeng 164.1 80
81
82 [[image:image-20230702100543-10.png||height="313" width="1099"]]
83
Xiaoling 176.2 84
Bei Jinggeng 164.1 85 [[image:image-20230702100930-11.png||height="613" width="1098"]]
86
87
Kilight Cao 176.1 88 = 3.  Semtech UDP for ChirpStack v3 =
Bei Jinggeng 164.1 89
90 == 3.1  Step 1. Add the Network-servers ==
91
92
Xiaoling 1.2 93 The network-Servers address varies depending on the ChirpStack server setup environment
Xiaoling 1.1 94
Xiaoling 1.3 95 (% class="box" %)
96 (((
Xiaoling 108.5 97 Windows       ~-~->  Network-server server *  :  localhost:8000
98 Linux  ~-~->  Network-server server *  :  chirpstack-network-server:8000
Xiaoling 1.3 99 )))
Xiaoling 1.1 100
Xiaoling 108.4 101
Xiaoling 108.6 102 (% style="color:red" %)**If the user cannot add network-Servers, re-check the ChirpStack code or the server building process.**
Xiaoling 1.1 103
Xiaoling 151.2 104 [[image:image-20220531171609-1.png||height="638" width="1268"]](% style="display:none" %)
Xiaoling 1.2 105
106 Add the Network-servers
107
Xiaoling 84.2 108
Bei Jinggeng 164.1 109 == 3.2  Step 2. Create Gateway-profiles ==
Xiaoling 1.2 110
Xiaoling 108.6 111
Xiaoling 151.2 112 [[image:image-20220531171651-2.png||height="632" width="1264"]](% style="display:none" %)
Xiaoling 1.2 113
114 Create Gateway-profiles
115
Xiaoling 84.2 116
Bei Jinggeng 164.1 117 == 3.3  Step 3. Create Service-profiles ==
Xiaoling 108.6 118
119
Xiaoling 151.2 120 [[image:image-20220531171809-3.png||height="761" width="1265"]]
Xiaoling 1.2 121
122 Create Service-profiles
123
Xiaoling 89.3 124
Xiaoling 1.2 125 In Step 3. Create Service-profiles, the above parameters can be set. If necessary, you can set them by yourself. This is only an example.
126
Xiaoling 1.4 127 (% style="color:red" %)**Note : Before add the gateway, the user needs to complete the preceding three steps.**
Xiaoling 1.2 128
Xiaoling 84.2 129 If the user has completed the preceding steps, proceed to the next step.(% style="display:none" %)
Xiaoling 1.2 130
Xiaoling 84.2 131
Bei Jinggeng 164.1 132 == 3.4  Step 4. Add the gateway ==
Xiaoling 1.2 133
Xiaoling 108.7 134
Xiaoling 1.2 135 The example gateway id is: a840411e96744150
136
Xiaoling 1.5 137 (((
Xiaoling 1.4 138 (% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.**
Xiaoling 1.5 139 )))
Xiaoling 1.2 140
Xiaoling 151.2 141 [[image:image-20220531171923-4.png||height="745" width="1253"]](% style="display:none" %)
Xiaoling 1.2 142
143 Add the gateway
144
Xiaoling 108.7 145
Xiaoling 91.2 146 [[image:image-20220531172031-5.png]]
Xiaoling 1.2 147
148 Configure the gateway
149
Xiaoling 84.2 150
Bei Jinggeng 164.1 151 == 3.5  Step 5. Checking gateway Status ==
Xiaoling 108.8 152
153
Xiaoling 151.2 154 [[image:image-20220531172158-6.png||height="704" width="1167"]](% style="display:none" %)
Xiaoling 1.2 155
Xiaoling 84.2 156
Xiaoling 108.8 157
Xiaoling 1.2 158 gateway Status
159
Xiaoling 151.2 160 [[image:image-20220531172304-7.png||height="628" width="1165"]]
Xiaoling 1.2 161
162 gateway Status
163
Xiaoling 176.2 164
Kilight Cao 176.1 165 = 4.  Semtech UDP for ChirpStack v4 =
Xiaoling 86.6 166
Kilight Cao 176.1 167 == 4.1  Step 1. Add the gateway ==
Kilight Cao 9.1 168
Xiaoling 176.2 169
Kilight Cao 176.1 170 [[image:image-20230926092907-1.png||height="598" width="1007"]]
Xiaoling 108.8 171
Kilight Cao 176.1 172
173 [[image:image-20230926093057-2.png||height="541" width="1002"]]
174
175
176 == 4.2  Step 2. Checking gateway Status ==
177
178 [[image:image-20230926093233-3.png||height="581" width="1018"]]
179
180 = 5.  Gateway Registration for Basics Station =
181
182 == 5.1  Introduction ==
183
184
Kilight Cao 9.1 185 The [[Semtech Basic Station>>url:https://doc.sm.tc/station/]] backend implements the [[LNS protocol>>url:https://doc.sm.tc/station/tcproto.html]]. It exposes a WebSocket handler to which Basic Station powered gateways can connect.
186
187 ChirpStack Open-Source LoRaWAN® Network Server needs to set up a configuration that can use Semtech BasicStation.
188
189
Xiaoling 108.8 190 (% style="color:blue" %)**Below list the support products and Requirements:**
191
Kilight Cao 9.1 192 1. LoRaWAN Gateway model: [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] ,[[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]]
193 1. Firmware version since :[[lgw~~-~~-build-v5.4.1651822913>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Test_Firmware/lgw--build-v5.4.1651822913-20220506-1543/]]
194
Xiaoling 108.8 195 (% style="color:blue" %)**How to set up chirpStack Basic Station**
196
Kilight Cao 9.1 197 Users can check out the ChirpStack Basic Station [[link>>https://www.chirpstack.io/gateway-bridge/backends/basic-station/]] and [[forum>>https://forum.chirpstack.io/search?q=basic%20station]]
198
199
Xiaoling 108.8 200 (% style="color:blue" %)**What do you need to prepare**
201
Kilight Cao 9.1 202 A gateway that can access the internet normally
203
Xiaoling 86.7 204
Kilight Cao 176.1 205 == 5.2  Add Gateway ==
Kilight Cao 9.1 206
Xiaoling 108.9 207
Xiaoling 20.2 208 [[image:image-20220524164205-10.png]]
Kilight Cao 9.1 209
Xiaoling 86.8 210
Kilight Cao 176.1 211 == 5.3  Access the gateway GUI ==
Kilight Cao 9.1 212
Xiaoling 108.9 213
Kilight Cao 9.1 214 Access the gateway GUI interface of LoRaWAN~-~->LoRaWAN ~-~- Basic Station
215
Xiaoling 20.2 216 [[image:image-20220524164319-11.png]]
Kilight Cao 9.1 217
Xiaoling 108.9 218
Kilight Cao 9.1 219 User need to Choose the ChirpStack/Senet ~-~- Basic Station , input Server URI and Upload the TLS Certificate
220
221 (% class="box" %)
222 (((
223 Service Provider  ~-~->  Choose the ChirpStack/Senet ~-~- Basic Station
224
Kilight Cao 165.1 225 LNS URI  ~-~->  Enter the LNS URI address, For example : wss:~/~/xxxx.chirpstack.com:443 or ws:~/~/xxxx.chirpstack.com:3001
Kilight Cao 9.1 226
227 LNS TLS trust  ~-~->  Upload the TLS Certificate
228 )))
229
230 (% class="wikigeneratedid" %)
Xiaoling 20.2 231 [[image:image-20220524164341-12.png]]
Kilight Cao 9.1 232
Xiaoling 86.9 233
Kilight Cao 176.1 234 == 5.4  Start Station ==
Kilight Cao 9.1 235
Xiaoling 108.9 236
Xiaoling 108.14 237 When the user has finished the configuration, Please click **Sace&Apply** to start station to connect ChirpStack.
Kilight Cao 9.1 238
Xiaoling 86.10 239
Kilight Cao 176.1 240 == 5.5  Successful Connection ==
Kilight Cao 9.1 241
Xiaoling 108.9 242
Kilight Cao 9.1 243 If user completes the above steps, which will see live date in the ChirpStack.
244
Xiaoling 23.2 245 [[image:image-20220524164448-13.png]]
Kilight Cao 9.1 246
Xiaoling 86.11 247
Kilight Cao 176.1 248 == 5.6  Trouble Shooting ==
Xiaoling 108.9 249
250
Kilight Cao 9.1 251 User can check the station log in the logread/system log page.
252
Xiaoling 95.2 253 [[image:image-20220531172837-8.png]]
Kilight Cao 9.1 254
Xiaoling 86.13 255
Kilight Cao 9.1 256 and recode the station log in the system/Recode log page.
257
Xiaoling 95.2 258 [[image:image-20220531172857-9.png]]
Kilight Cao 9.1 259
Xiaoling 86.12 260
Kilight Cao 176.1 261 = 6.  How the gateway connects to Chirpstack v3 via gateway-bridge =
Xiaoling 108.9 262
Xiaoling 1.2 263
Kilight Cao 128.1 264 (% style="color:blue" %)**Below list the support products and Requirements:**
265
266 1. LoRaWAN Gateway model: [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] ,[[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]],[[LPS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/200-lps8n.html]],[[LG308N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/229-lg308n.html]],[[DLOS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/225-dlos8n.html]]
Kilight Cao 138.1 267 1. Firmware version since: [[Chirpstack-Bridge-V3.14.6>>https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/Chirpstack-gateway-bridge/Chirpstack-Bridge-V3.14.6-Bridge--build-v5.4.1679487778-20230322-2024/]]
Kilight Cao 128.1 268
269 (% style="color:blue" %)**How to set up chirpStack Gateway-bridge**
270
Kilight Cao 138.1 271 Users can check out the ChirpStack gateway-bridge v3 [[link>>https://www.chirpstack.io/gateway-bridge/gateway/dragino/]]
Kilight Cao 128.1 272
273
274 (% style="color:blue" %)**What do you need to prepare**
275
276 A gateway that can access the internet normally
277
Xiaoling 1.2 278
Kilight Cao 138.1 279 The following example does not have configuration certificates:
280
Xiaoling 138.2 281
Kilight Cao 176.1 282 == 6.1  Configure Packet Forwarder ==
Xiaoling 131.2 283
284
Kilight Cao 124.1 285 In the Dragino gateway web interface, you need to configure the Packet Forwarder so that it forwards its data to the port. localhost:1700 or 127.0.0.1:1700
Xiaoling 121.2 286
Xiaoling 138.3 287 * In the (% style="color:blue" %)**LoRaWAN** (%%)menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
Xiaoling 138.2 288
Kilight Cao 124.1 289 * Make sure the following settings are set:
Xiaoling 138.4 290 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
291 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
292 ** **Server port for upstream:** //1700//
293 ** **Server port for downstream:** //1700//
Xiaoling 138.2 294
Xiaoling 138.3 295 Click (% style="color:blue" %)**Save & Apply**.
Kilight Cao 124.1 296
297 [[image:image-20221222114220-2.png||height="748" width="931"]]
298
299
Kilight Cao 176.1 300 == 6.2  Configuring gateway frequency ==
Kilight Cao 124.1 301
Kilight Cao 127.1 302
Xiaoling 131.2 303 (% style="color:red" %)**Note: Gateway frequencies must match**
304
Kilight Cao 127.1 305 [[image:image-20221222134830-3.png||height="408" width="923"]]
306
307
Kilight Cao 176.1 308 == 6.3  Generate and modify the gateway-bridge configuration file ==
Kilight Cao 127.1 309
310
Kilight Cao 138.1 311 **1)Generate the gateway-bridge configuration file**
312
313 By default, the configuration file is not up-to-date,so the user needs to rebuild the gateway-bridge configuration file.
314
315 Users need to access the command line of the gateway through SSH,Then type the following command:
316
317 (% class="box infomessage" %)
318 (((
Xiaoling 138.5 319 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge configfile > /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
Kilight Cao 138.1 320 )))
321
322
323 **2)modify the gateway-bridge configuration file**
324
325 The user needs to modify the server address in line 252 in the configuration file
326
327 (% class="box infomessage" %)
328 (((
Xiaoling 138.5 329 **vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
Kilight Cao 138.1 330 )))
331
332 [[image:image-20230415165254-1.png||height="583" width="956"]]
333
334
Kilight Cao 176.1 335 == 6.4  Debug ==
Kilight Cao 138.1 336
337
338 After the above configuration is completed, the user can enter the command to debug the gateway-bridge connection
339
340 (% class="box infomessage" %)
341 (((
Xiaoling 138.5 342 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge ~-~-config /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml**
Kilight Cao 138.1 343 )))
344
345 If the gateway-bridge connection is normal, the debug log displays **"connected to mqtt broker"**.
346
347 [[image:image-20230415170404-2.png]]
348
349
350 If the debug log shows "**connection error**", check that the server port or server is correct
351
352 [[image:image-20230415170854-3.png]]
353
354
355 More information can be found on the **[[ChirpStack website>>https://www.chirpstack.io/docs/]]**or **[[Forum>>url:https://forum.chirpstack.io/]]**
356
357
Kilight Cao 176.1 358 == 6.5  (Re)start and stop gateway-bridge ==
Kilight Cao 138.1 359
360
361 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
362
363 (% class="box infomessage" %)
364 (((
365 **# start**
366
367 /etc/init.d/chirpstack-gateway-bridge start
368
369 **# stop**
370
371 /etc/init.d/chirpstack-gateway-bridge stop
372
373 **# restart**
374
375 /etc/init.d/chirpstack-gateway-bridge restart
376 )))
377
378
Kilight Cao 176.1 379 = 7.  How the gateway connects to Chirpstack v4 via gateway-bridge =
Kilight Cao 138.1 380
381
382 (% style="color:blue" %)**Below list the support products and Requirements:**
383
384 1. LoRaWAN Gateway model: [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] ,[[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]],[[LPS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/200-lps8n.html]],[[LG308N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/229-lg308n.html]],[[DLOS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/225-dlos8n.html]]
385 1. Firmware version since: [[Chirpstack-Bridge-V4>>https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/Chirpstack-gateway-bridge/Chirpstack-Bridge-V4--build-v5.4.1670655072-20221210-1452/]]
386
387 (% style="color:blue" %)**How to set up chirpStack Gateway-bridge**
388
389 Users can check out the ChirpStack gateway-bridge v4 [[link>>https://www.chirpstack.io/docs/chirpstack-gateway-bridge/install/dragino.html]]
390
391
392 (% style="color:blue" %)**What do you need to prepare**
393
394 A gateway that can access the internet normally
395
396
Kilight Cao 176.1 397 == 7.1  Configure Packet Forwarder ==
Kilight Cao 138.1 398
399
400 In the Dragino gateway web interface, you need to configure the Packet Forwarder so that it forwards its data to the port. localhost:1700 or 127.0.0.1:1700
401
Xiaoling 138.5 402 * In the (% style="color:blue" %)**LoRaWAN**(%%) menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
403
Kilight Cao 138.1 404 * Make sure the following settings are set:
405 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
406 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
407 ** **Server port for upstream:** //1700//
408 ** **Server port for downstream:** //1700//
409
Xiaoling 138.5 410 Click (% style="color:blue" %)**Save & Apply**.
Kilight Cao 138.1 411
412 [[image:image-20221222114220-2.png||height="748" width="931"]]
413
414
Kilight Cao 176.1 415 == 7.2  Configuring gateway frequency ==
Kilight Cao 138.1 416
417
418 (% style="color:red" %)**Note: Gateway frequencies must match**
419
420 [[image:image-20221222134830-3.png||height="408" width="923"]]
421
422
Kilight Cao 176.1 423 == 7.3  Modify the gateway-bridge configuration file ==
Kilight Cao 138.1 424
425
Kilight Cao 127.1 426 Run the gateway command line command to modify the gateway-bridge configuration file:
427
428 (% class="box infomessage" %)
429 (((
Xiaoling 138.5 430 **root@dragino-1d27d4:~~#  vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
Kilight Cao 127.1 431 )))
432
Kilight Cao 124.1 433 [[image:image-20221222113302-1.png]]
434
Xiaoling 131.2 435
Kilight Cao 127.1 436 [[image:image-20221222140203-4.png||height="875" width="806"]]
437
Xiaoling 176.2 438
Kilight Cao 133.1 439 [[image:image-20221230094246-1.png||height="768" width="783"]]
Kilight Cao 127.1 440
441 (% class="wikigeneratedid" id="H" %)
442 After the modification, run the following command: **/etc/init.d/chirpstack-gateway-bridge restart**
443
444
Kilight Cao 176.1 445 == 7.4  (Re)start and stop gateway-bridge ==
Xiaoling 131.2 446
447
Kilight Cao 127.1 448 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
449
450 (% class="box infomessage" %)
451 (((
452 **# start**
453
454 /etc/init.d/chirpstack-gateway-bridge start
455
456 **# stop**
457
458 /etc/init.d/chirpstack-gateway-bridge stop
459
460 **# restart**
461
462 /etc/init.d/chirpstack-gateway-bridge restart
463 )))
464
Kilight Cao 131.1 465
Kilight Cao 176.1 466 == 7.5  Successful Connection ==
Kilight Cao 131.1 467
Xiaoling 131.2 468
Kilight Cao 131.1 469 [[image:image-20221222141754-5.png||height="488" width="1150"]]
470
Xiaoling 131.2 471
Kilight Cao 131.1 472 [[image:image-20221222141830-6.png||height="582" width="1153"]]
473
Xiaoling 131.2 474
Kilight Cao 176.1 475 = 8.  Downlink =
Kilight Cao 124.1 476
Mengting Qiu 177.2 477 === 8.1 Chirpstack Downlink Note ===
Kilight Cao 124.1 478
Mengting Qiu 177.2 479 ==== 8.1.1  Select HEX format for downlink ====
Kilight Cao 124.1 480
Xiaoling 108.9 481
Mengting Qiu 177.2 482 (% style="color:red" %)**Note: The end node user manual provides HEX format of the downlink commands, so users can directly select HEX format downlink.**
Edwin Chen 111.1 483
Mengting Qiu 177.2 484 [[image:image-20231108140540-1.png||height="502" width="973"]]
Edwin Chen 111.1 485
486
487
Xiaoling 121.2 488
Edwin Chen 111.1 489
Kilight Cao 176.1 490 == 8.2  Chirpstack Downlink Note ==
Edwin Chen 111.1 491
492
Xiaoling 108.2 493 [[image:image-20220601102543-2.png]]
Xiaoling 1.2 494
Xiaoling 121.2 495 **Convert the data to Base64**
Xiaoling 1.2 496
Xiaoling 121.2 497 (% style="display:none" %) (%%)
Xiaoling 86.14 498
Xiaoling 1.2 499
Xiaoling 121.2 500 [[image:image-20220531173236-10.png||height="597" width="1215"]]
Xiaoling 1.2 501
Xiaoling 121.2 502 **Check ChripStack downlink DataRate**
Xiaoling 86.15 503
Xiaoling 121.2 504
505
Xiaoling 65.2 506 [[image:image-20220525101326-11.png]]
Xiaoling 1.2 507
Xiaoling 121.2 508 **Make sure the RX2DR is the same in the end node**
Xiaoling 1.2 509
Xiaoling 86.16 510
Kilight Cao 176.1 511 == 8.3  Loraserver Downlink Note ==
Xiaoling 108.9 512
513
Xiaoling 1.2 514 User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End
515
Xiaoling 1.5 516 (((
Xiaoling 108.9 517 **Below is examples:**
Xiaoling 1.5 518 )))
Xiaoling 1.2 519
Xiaoling 1.4 520 (% class="box" %)
521 (((
522 Connect to your server via MQTT:
523 MQTT Client ID: Any   
524 Protocol:mqtt/tcp   Server IP:loraserver_ip:1883
Xiaoling 1.2 525 User name: User name Password: password
Xiaoling 1.4 526 )))
Xiaoling 1.2 527
Xiaoling 97.2 528 [[image:image-20220531173419-11.png]]
Xiaoling 1.2 529
Xiaoling 1.5 530 (((
Xiaoling 121.2 531 **MQTT Connect to ChirpStack**
Xiaoling 86.17 532
Xiaoling 108.9 533
Xiaoling 86.17 534
Xiaoling 1.5 535 )))
Xiaoling 1.2 536
Xiaoling 1.5 537 (((
Xiaoling 108.9 538 **After connect**
Xiaoling 1.5 539 )))
Xiaoling 1.2 540
Xiaoling 1.4 541 (% class="box" %)
542 (((
543 Subscribe : Format:application/ID/device/ Device EUI/rx
Xiaoling 1.2 544 Example: application/7/device/00aedb3da649cb23/rx
Xiaoling 1.4 545 )))
Xiaoling 1.2 546
Xiaoling 1.4 547 (% class="box" %)
548 (((
549 Publish:
Xiaoling 1.2 550 Format: Top: application/ID/device/ Device EUI/tx
551 Payload: {"confirmed":true or false,"fPort":XX,"data":"xxxx"}
552 Example: Top: application/7/device/00aedb3da649cb23/tx
553 Payload: {"confirmed":true,"fPort":2,"data":"AwEB"}
Xiaoling 1.4 554 )))
Xiaoling 1.2 555
Xiaoling 98.2 556 [[image:image-20220531173519-12.png]]
Xiaoling 1.2 557
Xiaoling 121.2 558 **MQTT Connect to ChirpStack**
Xiaoling 1.2 559
Xiaoling 86.18 560
Xiaoling 1.2 561
Mengting Qiu 177.2 562 (((
563 Downlink payload encode javescript code.
Xiaoling 1.2 564
Mengting Qiu 177.2 565 We can run the following Javsscript code on the site:
Xiaoling 1.5 566 )))
Xiaoling 1.2 567
Xiaoling 1.4 568 (% class="box" %)
569 (((
570 function sha1_to_base64(sha1)
Xiaoling 1.2 571 {
572 var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
573 var base64_rep = "";
574 var cnt = 0;
575 var bit_arr = 0;
576 var bit_num = 0;
Xiaoling 1.5 577 \\ for(var n = 0; n < sha1.length; ++n)
Xiaoling 1.2 578 {
579 if(sha1[n] >= 'A' && sha1[n] <= 'Z')
580 {
Jean-Philippe Gagné 121.1 581 ascv = sha1.charCodeAt( n ) - 55;
Xiaoling 1.2 582 }
583 else if(sha1[n] >= 'a' && sha1[n] <= 'z')
584 {
Jean-Philippe Gagné 121.1 585 ascv = sha1.charCodeAt( n ) - 87;
Xiaoling 1.2 586 }
587 else
588 {
Jean-Philippe Gagné 121.1 589 ascv = sha1.charCodeAt( n ) - 48;
Xiaoling 1.2 590 }
Xiaoling 1.5 591 \\ bit_arr = (bit_arr << 4) | ascv;
Xiaoling 1.2 592 bit_num += 4;
593 if(bit_num >= 6)
594 {
Xiaoling 1.4 595 bit_num -= 6;        
Xiaoling 1.2 596 base64_rep += digits[bit_arr >>> bit_num];
Xiaoling 1.4 597 bit_arr &= ~~(-1 << bit_num);
Xiaoling 1.2 598 }
599 }
Xiaoling 1.5 600 \\ if(bit_num > 0)
Xiaoling 1.2 601 {
602 bit_arr <<= 6 - bit_num;
603 base64_rep += digits[bit_arr];
604 }
Xiaoling 1.5 605 \\ var padding = base64_rep.length % 4;   
606 \\ if(padding > 0)
Xiaoling 1.2 607 {
608 for(var n = 0; n < 4 - padding; ++n)
609 {
610 base64_rep += "=";
611 }
612 }
613 return base64_rep;
614 }
Xiaoling 1.5 615 \\console.log(sha1_to_base64("data"));
616 \\data is downlink payload required by end node.
Xiaoling 1.4 617 e.g console.log(sha1_to_base64("030101"));
618 ​result: AwEB     
Xiaoling 1.2 619 AwEB is the 0x030101's base 64 Encode.
Xiaoling 1.5 620 \\​e.g console.log(sha1_to_base64("030000"));
Xiaoling 1.4 621 ​result: AwAA     
622 AwAA is 0x030000's base 64 Encode.
623 )))
Xiaoling 1.2 624
Xiaoling 86.21 625
Kilight Cao 176.1 626 == 8.4  Add the decode function in Chirpstack for the payload ==
Xiaoling 108.9 627
628
Xiaoling 1.2 629 User enters the payload code according to the steps.
630
Kilight Cao 150.1 631 Add the node device decoder you are using. The decoder for each node device is different. The decoder is found in this link: **[[decoder for dragino end node>>https://github.com/dragino/dragino-end-node-decoder]]**
632
Xiaoling 121.2 633 [[image:image-20220531173754-15.png||height="474" width="1334"]]
Xiaoling 1.2 634
635
Xiaoling 102.2 636 [[image:image-20220531173856-16.png]]
Xiaoling 1.2 637
Xiaoling 102.2 638
Xiaoling 106.2 639 [[image:image-20220531174120-20.png]]
Xiaoling 84.2 640
Xiaoling 105.2 641 [[image:image-20220531174046-19.png]]
Xiaoling 1.2 642
Xiaoling 86.22 643
Kilight Cao 176.1 644 = 9.  Multiply Uplink in ChirpStack =
Xiaoling 108.9 645
646
Xiaoling 1.4 647 (((
Xiaoling 1.2 648 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
Xiaoling 1.4 649 )))
Xiaoling 1.2 650
Xiaoling 1.4 651 (((
Xiaoling 1.2 652 ChirpStack will auto adjust nbtrans according to uplink rssi. [[link to source>>url:https://github.com/brocaar/chirpstack-network-server/blob/master/internal/adr/adr.go]]
Xiaoling 108.9 653
654
Xiaoling 1.4 655 )))
Xiaoling 1.2 656
Xiaoling 121.2 657 [[image:image-20220526091912-7.png||height="241" width="1336"]]
Xiaoling 1.2 658
Xiaoling 108.9 659
Xiaoling 1.5 660 (((
Xiaoling 1.2 661 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
Xiaoling 108.9 662
663
Xiaoling 1.5 664 )))
Xiaoling 1.2 665
Xiaoling 76.2 666 [[image:image-20220525104359-21.png]]
Xiaoling 1.2 667
Xiaoling 1.4 668 (((
Xiaoling 1.2 669 Above behaviour will cause the platform shows below two cases of error:
Xiaoling 108.9 670
671
Xiaoling 1.4 672 )))
Xiaoling 1.2 673
Xiaoling 1.4 674 (((
Xiaoling 1.2 675 Error of duplicate Frame Counter
Xiaoling 1.4 676 )))
Xiaoling 1.2 677
Xiaoling 76.2 678 [[image:image-20220525104437-22.png]]
Xiaoling 1.2 679
Xiaoling 86.23 680
Xiaoling 108.9 681
Xiaoling 121.2 682 **Duplicate transmission in short time**
Xiaoling 1.2 683
Xiaoling 176.2 684 [[image:image-20220601102430-1.png||height="508" width="1120"]]
Xiaoling 1.2 685
Xiaoling 86.24 686
Kilight Cao 176.1 687 == 9.1  Solution ==
Xiaoling 108.9 688
689
Xiaoling 1.2 690 This example uses the Windows version as a template, other versions can refer to this. Similiar reference: [[https:~~/~~/confluence.alitecs.de/plugins/servlet/mobile?contentId=79790102#content/view/79790102>>url:https://confluence.alitecs.de/plugins/servlet/mobile?contentId=79790102#content/view/79790102]]
691
Xiaoling 1.5 692 (((
Xiaoling 108.11 693 (% style="color:blue" %)**1.  Install the GO compilation environment: Download the corresponding version of the Go compiler at [[https:~~/~~/go.dev/dl/>>url:https://go.dev/dl/]] and install it.**
Xiaoling 1.5 694 )))
Xiaoling 1.2 695
Xiaoling 79.2 696 [[image:image-20220525104532-24.png]]
Xiaoling 1.2 697
Xiaoling 86.25 698
Xiaoling 108.9 699 **installation path:**
Xiaoling 1.2 700
Xiaoling 79.2 701 [[image:image-20220525104554-25.png]]
Xiaoling 1.2 702
Xiaoling 86.25 703
Xiaoling 108.9 704
Xiaoling 1.5 705 (((
Xiaoling 108.11 706 (% style="color:blue" %)**2.  Environment variable settings:**
Xiaoling 1.5 707 )))
Xiaoling 1.2 708
Xiaoling 1.5 709 (((
Xiaoling 1.2 710 1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
Xiaoling 1.5 711 )))
Xiaoling 1.2 712
Xiaoling 1.5 713 (((
Xiaoling 108.9 714 2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
Xiaoling 1.5 715 )))
Xiaoling 1.2 716
Xiaoling 43.2 717 [[image:image-20220524165433-33.png]]
Xiaoling 1.2 718
Xiaoling 86.26 719
Xiaoling 108.9 720 3) Modify the system variable Path and add C:\Go\bin\:
Xiaoling 1.2 721
Xiaoling 43.2 722 [[image:image-20220524165452-34.png]]
Xiaoling 1.2 723
Xiaoling 106.3 724
Xiaoling 1.2 725 User variable setting file generation directory: D:\go:
726
Xiaoling 43.2 727 [[image:image-20220524165517-35.png]]
Xiaoling 1.2 728
Xiaoling 86.27 729
Xiaoling 1.2 730
Xiaoling 108.11 731 (% style="color:blue" %)**3.  Modify the ADR configuration file according to your own needs, adr.setting.go is an example of the ADR configuration file.**
Xiaoling 108.9 732
Xiaoling 1.2 733 The name of the plugin: Example ADR plugin:
734
Xiaoling 48.2 735 [[image:image-20220524165540-36.png]]
Xiaoling 1.2 736
737 Set Nbtrans: Nbtrans=1 (Nbtrans is the number of retransmissions, if it is 1, no retransmission, it is recommended to be 1). To enable it, you need to uncomment.
738
Xiaoling 48.2 739 [[image:image-20220524165557-37.png]]
Xiaoling 1.2 740
Xiaoling 86.28 741
Xiaoling 1.2 742
Xiaoling 108.11 743 (% style="color:blue" %)**4.  Compile the ADR configuration file and generate the exe file.**
Xiaoling 108.9 744
Xiaoling 1.2 745 1) Create a folder named adr-setting
746
747 2) Open the adr-setting folder
748
749 3) Put adr.setting.go in this folder.
750
751 4) Open the computer cmd and run the following commands in sequencecd adr-setting
752
753 go mod init adr-setting
754
755 go get github.com/brocaar/chirpstack-network-server/v3/adr
756
757 go get github.com/hashicorp/go-plugin
758
759 go get adr-setting
760
761 go build
762
763 5) Finally generate this file:
764
Xiaoling 48.2 765 [[image:image-20220524165623-38.png]]
Xiaoling 1.2 766
Xiaoling 86.29 767
Xiaoling 1.2 768
Xiaoling 108.11 769 (% style="color:blue" %)**5.  Add the plugin and run the plugin.**
Xiaoling 108.9 770
Xiaoling 1.5 771 (((
Xiaoling 1.2 772 The exe file generated in the previous step is placed in the same root directory as chirpstack-network-server.toml, and the ADR plugin is added to the toml file. The location of the addition is as follows:
Xiaoling 1.5 773 )))
Xiaoling 1.2 774
Xiaoling 48.2 775 [[image:image-20220524165641-39.png]]
Xiaoling 1.2 776
Xiaoling 1.4 777 (((
Xiaoling 1.5 778 (((
Xiaoling 1.2 779 For example: adr_plugins=[“adr-setting”]
Xiaoling 1.4 780 )))
Xiaoling 1.5 781 )))
Xiaoling 1.2 782
Xiaoling 1.4 783 * (((
Xiaoling 1.5 784 (((
Xiaoling 1.4 785 Adding a single plugin format is adr_plugins=["filename"]
786 )))
Xiaoling 1.5 787 )))
Xiaoling 1.2 788
Xiaoling 1.4 789 * (((
Xiaoling 1.5 790 (((
Xiaoling 1.4 791 Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
792 )))
Xiaoling 1.5 793 )))
Xiaoling 1.2 794
Xiaoling 1.4 795 (((
Xiaoling 1.5 796 (((
Xiaoling 1.2 797 Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
Xiaoling 1.4 798 )))
Xiaoling 1.5 799 )))
Xiaoling 1.2 800
Xiaoling 79.2 801 [[image:image-20220525104647-26.png]]
Xiaoling 1.2 802
803 Finish.
804
Xiaoling 86.30 805
Kilight Cao 176.1 806 = 10.  How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. =
Xiaoling 108.9 807
Xiaoling 1.2 808
Xiaoye 115.1 809 All data is published to the MQTT topics. if you want to store/get the data, you would have to create an MQTT handler and store the data yourself.
Xiaoling 1.2 810
Xiaoye 115.1 811 This example will be shown how to store/get all the data in two ways:
Xiaoling 108.9 812
Xiaoling 138.5 813 (% style="color:blue" %)**//1). Chirpstack ~-~-> Node-red//**
Xiaoye 115.1 814
815
Xiaoling 176.2 816 [[image:image-20221012184501-1.png||height="608" width="1041"]]
Xiaoye 115.1 817
Xiaoling 121.2 818
Xiaoye 120.1 819 Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file
Xiaoye 115.1 820
821 [[image:image-20221012174220-2.png]]
822
823
Xiaoye 120.1 824 [[image:image-20221012184655-3.png||height="395" width="1049"]]
825
826
Xiaoling 121.2 827 **Each message is continuously logged to a specified file**
Xiaoye 115.1 828
829 [[image:image-20221012174352-3.png]]
830
831
Xiaoling 138.5 832 (% style="color:blue" %)**//2). MQTT  Sub//**
Xiaoye 115.1 833
834 If you don't want to store the information via node-red, you can get the output via the subscribe command.
835
836
837 **If connecting from the same machine, you can use the following command to receive data:**
838
839 (% class="box infomessage" %)
Xiaoling 1.4 840 (((
Xiaoling 138.5 841 **mosquitto_sub -h localhost -t "application/#" -v**
Xiaoye 115.1 842 )))
843
844
Xiaoling 138.5 845 (% style="color:blue" %)**Different host**
Xiaoye 115.1 846
847 (% class="box infomessage" %)
848 (((
Xiaoling 138.5 849 **mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v**
Xiaoye 115.1 850 )))
851
Xiaoling 176.2 852 [[image:image-20221012173639-1.png||height="273" width="1206"]]
Xiaoye 115.1 853
Xiaoling 176.2 854
Kilight Cao 176.1 855 = 11.  Example: Use Local Server ChirpStack and Node-Red in LPS8v2 =
Xiaoye 115.1 856
857
Kilight Cao 151.1 858 LPS8v2 includes a local ChirpStack Server and Node-Red. This example shows how to configure LHT65N to use with the local Node-Red server. This example assumes users already have:
Xiaoye 115.1 859
Kilight Cao 141.1 860 * LHT65N register on LPS8v2 Built-In ChirpStack server already
861 * The user is able to see the data on the built-in ChirpStack server device page.
Xiaoye 115.1 862
Kilight Cao 141.1 863 Below are the steps to plot the sensor data on LPS8v2 Node-Red.
864
Xiaoling 147.2 865
Kilight Cao 176.1 866 == 11.1 Link Node-Red to Local ChirpStack ==
Kilight Cao 141.1 867
Xiaoling 147.2 868
Kilight Cao 145.1 869 Users can download the Node-Red decoder from this link and import it into the Node-Red platform:  **[[attach:LHT65N-ChirpStack-node-red.json||target="_blank"]]**
Kilight Cao 141.1 870
871 For more information on importing Input Flow, check out this link: **[[Import Input Flow for Dragino Sensors>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/#H3.A0ImportInputFlowforDraginoSensors]]**
872
873 After importing the Input Flow is complete, the user needs to edit the MQTT in the node
874
875
Kilight Cao 145.1 876 (% style="color:blue" %)**1. Change the Topic**
877
Kilight Cao 141.1 878 Topic modifies it to the following format:
879
Kilight Cao 145.1 880 **application/(% style="color:red" %)Application ID(%%)/device/(% style="color:red" %)End device ID(%%)/event/up**
Kilight Cao 141.1 881
Kilight Cao 152.1 882 Reference link: [[**Node-RED integration** >>https://www.chirpstack.io/docs/guides/node-red-integration.html]]
883
Kilight Cao 145.1 884 [[image:image-20230527143923-1.png||height="588" width="1132"]]
Kilight Cao 141.1 885
886
Kilight Cao 145.1 887
888 (% style="color:blue" %)**2. Enter the MQTT configuration information**
889
890 [[image:image-20230527144206-2.png||height="590" width="1136"]]
891
892
Xiaoling 176.2 893 (% style="color:blue" %)**3.** **Finally, click "Update" and Deploy**
Kilight Cao 147.1 894
895 "Connected" indicates that the Link Node-red to Local Chirpstack is normal.
896
897 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/Notes%20for%20TTN/WebHome/image-20220914140918-5.png?width=1121&height=602&rev=1.1||alt="image-20220914140918-5.png"]]
898
899
Kilight Cao 176.1 900 == 11.2 Check result. ==
Kilight Cao 147.1 901
Xiaoling 147.2 902
Kilight Cao 147.1 903 Users can check logs by adding debug.
904
905 Browser access: **Node-Red-Server-Address:1880/ui**
906
907 [[image:image-20230529150923-1.png||height="424" width="1118"]]
908
Xiaoling 147.2 909
Kilight Cao 176.1 910 = 12.  Trouble Shooting =
Kilight Cao 141.1 911
Kilight Cao 176.1 912 == 12.1  MIC Mismatch or MIC Failed ==
Kilight Cao 141.1 913
914
Xiaoye 115.1 915 (((
Xiaoling 1.2 916 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
Xiaoling 1.4 917 )))
Xiaoling 1.2 918
Xiaoling 1.4 919 (((
Xiaoling 1.2 920 Under normal circumstances, users need to change the APPKEY to solve this problem.
Xiaoling 131.2 921
Bei Jinggeng 169.1 922
Kilight Cao 176.1 923 == 12.2  The node is very close to the gateway, but the signal is poor ==
Bei Jinggeng 169.1 924
Xiaoling 176.2 925
Bei Jinggeng 169.1 926 If you are using US915 or AU915, you found the frequency points of different subband ranges in your uplink
927
928 Like that:Both 905.1Mhz and 902.3Mhz appear on uplink
929 But they belong to Subband1 and Subband2 of US915 respectively
930
931 Cause: The server and the gateway use different frequency bands (the server uses Subband1, and the gateway uses Subband2)
932
933 In server side, it shows the frequency is 905.1Mhz, which is sub-band2. But the RSSI is very low, Because this is not a signal in 905.1Mhz, it is on 902.3Mhz, the signal is too strong and appear a noise in 905.1Mhz.
934
935 How to check the frequency band used by the server:
936
937 You can view the information sent by the server: ch_mask in Unconfirmdedatadown
938
939 [[image:image-20230821113255-1.png]]
940
941 According to lorawan's protocol, your first ch_mask is 7 for ChMaskCntl = 7 then 125 kHz channels are disabled. Simultaneously the channels 64 to 71 are set according to the ChMask bit mask.
942
Bei Jinggeng 170.1 943 [[image:image-20230821113539-2.png]]
Bei Jinggeng 169.1 944
945 In the second message, the channel 0~~7 is true, which means that your server is using subband2.
946
Bei Jinggeng 170.1 947 [[image:image-20230821113618-3.png]]
Bei Jinggeng 169.1 948
Xiaoling 176.2 949 **Note: lorawan's protocol link——[[LoRaWAN® Regional Parameters v1.0.3revA (lora-alliance.org)>>url:https://resources.lora-alliance.org/document/lorawan-regional-parameters-v1-0-3reva]]**
950
951
Xiaoling 1.4 952 )))