Wiki source code of Notes for ChirpStack

Version 246.4 by Xiaoling on 2025/07/31 17:05

Show last authors
1 **~ Table of Contents:**
2
3 {{toc/}}
4
5
6
7
8 = 1.  Introduction =
9
10
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/]]
12
13 (((
14 (% style="color:black" %)The dragino gateway can connect the ChirpStack server via Semtech UDP or Semtech Basic Station.
15
16
17 )))
18
19 (% style="color:blue" %)**Prerequisite:**
20
21 **1) Have a Chirstack Server.**
22
23 [[image:image-20230821114047-4.png||height="524" width="990"]]
24
25 ChirpStack home page
26
27
28
29 **2) Gateway model support**
30
31 (% class="box" %)
32 (((
33 (((
34 Semtech UDP : **All Model**
35 Basic Station : [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[LOS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/225-dlos8n.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]]
36
37 (% 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
38 )))
39 )))
40
41
42 = 2.  Node usage introduction =
43
44 == 2.1 Register Node ==
45
46
47 **Step 1: Add application**
48
49 [[image:image-20240831154333-1.png||height="553" width="1074"]]
50
51
52 **Step 2:Fill name**
53
54 [[image:image-20230702094852-2.png]]
55
56
57 **Step3 :Add device profile**
58
59 [[image:image-20230702095114-4.png||height="448" width="1061"]]
60
61
62 **Step4 :Configure your device profile**
63
64 [[image:image-20230702095557-5.png||height="648" width="1121"]]
65
66 Does node support class-c
67
68 [[image:image-20230702095641-6.png||height="349" width="1114"]]
69
70 Add node's decoder
71
72 [[image:image-20230702095827-7.png||height="490" width="1138"]]
73
74
75 **Step5 :add device**
76
77 [[image:image-20230702094944-3.png||height="439" width="1153"]]
78
79
80 [[image:image-20230702100312-8.png||height="550" width="1106"]]
81
82
83 [[image:image-20230702100543-10.png||height="313" width="1099"]]
84
85
86 [[image:image-20230702100930-11.png||height="613" width="1098"]]
87
88
89 = 3.  Semtech UDP for ChirpStack v3 =
90
91 == 3.1  Step 1. Add the Network-servers ==
92
93
94 The network-Servers address varies depending on the ChirpStack server setup environment
95
96 (% class="box" %)
97 (((
98 Windows       ~-~->  Network-server server *  :  localhost:8000
99 Linux  ~-~->  Network-server server *  :  chirpstack-network-server:8000
100 )))
101
102
103 (% style="color:red" %)**If the user cannot add network-Servers, re-check the ChirpStack code or the server building process.**
104
105 [[image:image-20220531171609-1.png||height="638" width="1268"]](% style="display:none" %)
106
107 Add the Network-servers
108
109
110 == 3.2  Step 2. Create Gateway-profiles ==
111
112
113 [[image:image-20220531171651-2.png||height="632" width="1264"]](% style="display:none" %)
114
115 Create Gateway-profiles
116
117
118 == 3.3  Step 3. Create Service-profiles ==
119
120
121 [[image:image-20220531171809-3.png||height="761" width="1265"]]
122
123 Create Service-profiles
124
125
126 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.
127
128 (% style="color:red" %)**Note : Before add the gateway, the user needs to complete the preceding three steps.**
129
130 If the user has completed the preceding steps, proceed to the next step.(% style="display:none" %)
131
132
133 == 3.4  Step 4. Add the gateway ==
134
135
136 The example gateway id is: a840411e96744150
137
138 (((
139 (% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.**
140 )))
141
142 [[image:image-20220531171923-4.png||height="745" width="1253"]](% style="display:none" %)
143
144 Add the gateway
145
146
147 [[image:image-20220531172031-5.png]]
148
149 Configure the gateway
150
151
152 == 3.5  Step 5. Checking gateway Status ==
153
154
155 [[image:image-20220531172158-6.png||height="704" width="1167"]](% style="display:none" %)
156
157
158
159 gateway Status
160
161 [[image:image-20220531172304-7.png||height="628" width="1165"]]
162
163 gateway Status
164
165
166 = 4.  Semtech UDP for ChirpStack v4 =
167
168 == 4.1  Step 1. Add the gateway ==
169
170
171 [[image:image-20230926092907-1.png||height="598" width="1007"]]
172
173
174 [[image:image-20230926093057-2.png||height="541" width="1002"]]
175
176
177 == 4.2  Step 2. Checking gateway Status ==
178
179 [[image:image-20230926093233-3.png||height="581" width="1018"]]
180
181 = 5.  Gateway Registration for Basics Station =
182
183 == 5.1  Introduction ==
184
185
186 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.
187
188 ChirpStack Open-Source LoRaWAN® Network Server needs to set up a configuration that can use Semtech BasicStation.
189
190
191 (% style="color:blue" %)**Below list the support products and Requirements:**
192
193 1. LoRaWAN Gateway model: [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[DLOS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/225-dlos8n.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]]
194 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/]]
195
196 (% style="color:blue" %)**How to set up chirpStack Basic Station**
197
198 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]]
199
200
201 (% style="color:blue" %)**What do you need to prepare**
202
203 A gateway that can access the internet normally
204
205
206 == 5.2  Add Gateway ==
207
208 [[image:image-20220524164205-10.png]]
209
210 == 5.3  Access the gateway GUI ==
211
212
213 Access the gateway GUI interface of LoRaWAN~-~->LoRaWAN ~-~- Basic Station
214
215 [[image:image-20220524164319-11.png]]
216
217
218 User need to Choose the ChirpStack/Senet ~-~- Basic Station , input Server URI and Upload the TLS Certificate
219
220 (% class="box" %)
221 (((
222 Service Provider  ~-~->  Choose the ChirpStack/Senet ~-~- Basic Station
223
224 LNS URI  ~-~->  Enter the LNS URI address, For example : wss:~/~/xxxx.chirpstack.com:443 or ws:~/~/xxxx.chirpstack.com:3001
225
226 LNS TLS trust  ~-~->  Upload the TLS Certificate
227 )))
228
229 (% class="wikigeneratedid" %)
230 [[image:image-20220524164341-12.png]]
231
232
233 == 5.4  Start Station ==
234
235
236 When the user has finished the configuration, Please click **Sace&Apply** to start station to connect ChirpStack.
237
238
239 == 5.5  Successful Connection ==
240
241
242 If user completes the above steps, which will see live date in the ChirpStack.
243
244 [[image:image-20220524164448-13.png]]
245
246
247 == 5.6  Trouble Shooting ==
248
249
250 User can check the station log in the logread/system log page.
251
252 [[image:image-20220531172837-8.png]]
253
254
255 and recode the station log in the system/Recode log page.
256
257 [[image:image-20220531172857-9.png]]
258
259
260 = 6.  How the gateway connects to Chirpstack v3 via gateway-bridge =
261
262
263 (% style="color:blue" %)**Below list the support products and Requirements:**
264
265 1. LoRaWAN Gateway model: [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.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]]
266 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/]]
267
268 (% style="color:blue" %)**What do you need to prepare**
269
270 A gateway that can access the internet normally
271
272
273 The following example does not have configuration certificates:
274
275
276 == 6.1  Configure Packet Forwarder ==
277
278
279 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
280
281 * In the (% style="color:blue" %)**LoRaWAN** (%%)menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
282
283 * Make sure the following settings are set:
284 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
285 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
286 ** **Server port for upstream:** //1700//
287 ** **Server port for downstream:** //1700//
288
289 Click (% style="color:blue" %)**Save & Apply**.
290
291 [[image:image-20221222114220-2.png||height="748" width="931"]]
292
293
294 == 6.2  Configuring gateway frequency ==
295
296
297 (% style="color:red" %)**Note: Gateway frequencies must match**
298
299 [[image:image-20221222134830-3.png||height="408" width="923"]]
300
301
302 == 6.3  Generate and modify the gateway-bridge configuration file ==
303
304
305 **1)Generate the gateway-bridge configuration file**
306
307 By default, the configuration file is not up-to-date,so the user needs to rebuild the gateway-bridge configuration file.
308
309 Users need to access the command line of the gateway through SSH,Then type the following command:
310
311 (% class="box infomessage" %)
312 (((
313 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge configfile > /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
314 )))
315
316
317 **2)modify the gateway-bridge configuration file**
318
319 The user needs to modify the server address in line 252 in the configuration file
320
321 (% class="box infomessage" %)
322 (((
323 **vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
324 )))
325
326 [[image:image-20230415165254-1.png||height="583" width="956"]]
327
328
329 == 6.4  Debug ==
330
331
332 After the above configuration is completed, the user can enter the command to debug the gateway-bridge connection
333
334 (% class="box infomessage" %)
335 (((
336 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge ~-~-config /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml**
337 )))
338
339 If the gateway-bridge connection is normal, the debug log displays **"connected to mqtt broker"**.
340
341 [[image:image-20230415170404-2.png]]
342
343
344 If the debug log shows "**connection error**", check that the server port or server is correct
345
346 [[image:image-20230415170854-3.png]]
347
348
349 More information can be found on the **[[ChirpStack website>>https://www.chirpstack.io/docs/]]**or **[[Forum>>url:https://forum.chirpstack.io/]]**
350
351
352 == 6.5  (Re)start and stop gateway-bridge ==
353
354
355 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
356
357 (% class="box infomessage" %)
358 (((
359 **# start**
360
361 /etc/init.d/chirpstack-gateway-bridge start
362
363 **# stop**
364
365 /etc/init.d/chirpstack-gateway-bridge stop
366
367 **# restart**
368
369 /etc/init.d/chirpstack-gateway-bridge restart
370 )))
371
372
373 = 7.  How the gateway connects to Chirpstack v4 via gateway-bridge =
374
375
376 (% style="color:blue" %)**Below list the support products and Requirements:**
377
378 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]]
379 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/]]
380
381 (% style="color:blue" %)**What do you need to prepare**
382
383 A gateway that can access the internet normally
384
385
386 == 7.1  Configure Packet Forwarder ==
387
388
389 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
390
391 * In the (% style="color:blue" %)**LoRaWAN**(%%) menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
392
393 * Make sure the following settings are set:
394 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
395 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
396 ** **Server port for upstream:** //1700//
397 ** **Server port for downstream:** //1700//
398
399 Click (% style="color:blue" %)**Save & Apply**.
400
401 [[image:image-20221222114220-2.png||height="748" width="931"]]
402
403
404 == 7.2  Configuring gateway frequency ==
405
406
407 (% style="color:red" %)**Note: Gateway frequencies must match**
408
409 [[image:image-20221222134830-3.png||height="408" width="923"]]
410
411
412 == 7.3  Modify the gateway-bridge configuration file ==
413
414
415 Run the gateway command line command to modify the gateway-bridge configuration file:
416
417 (% class="box infomessage" %)
418 (((
419 **root@dragino-1d27d4:~~#  vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
420 )))
421
422 [[image:image-20221222113302-1.png]]
423
424
425 [[image:image-20221222140203-4.png||height="875" width="806"]]
426
427
428 Configure the server address to which the gateway needs to be connected,"tcp:~/~/chirpstack_address:1883"
429
430 [[image:image-20221230094246-1.png||height="768" width="783"]]
431
432 (% class="wikigeneratedid" id="H" %)
433 After the modification, run the following command: **/etc/init.d/chirpstack-gateway-bridge restart**
434
435
436 == 7.4  (Re)start and stop gateway-bridge ==
437
438
439 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
440
441 (% class="box infomessage" %)
442 (((
443 **# start**
444
445 /etc/init.d/chirpstack-gateway-bridge start
446
447 **# stop**
448
449 /etc/init.d/chirpstack-gateway-bridge stop
450
451 **# restart**
452
453 /etc/init.d/chirpstack-gateway-bridge restart
454 )))
455
456
457 == 7.5  Successful Connection ==
458
459
460 [[image:image-20221222141754-5.png||height="488" width="1150"]]
461
462
463 [[image:image-20221222141830-6.png||height="582" width="1153"]]
464
465
466 = 8.  Downlink =
467
468 == 8.1 Schedule Downlink via Web UI ==
469
470
471 === Select HEX format for downlink ===
472
473
474 (% style="color:red" %)**Note: The end node user manual provides HEX format of the downlink commands, so users can directly select HEX format downlink.**
475
476
477 [[image:image-20231108171112-5.png||height="629" width="1117"]]
478
479
480 [[image:image-20231108171145-6.png||height="497" width="1101"]]
481
482
483
484
485
486 [[image:image-20220531173236-10.png||height="597" width="1215"]]
487
488 **Check ChripStack downlink DataRate**
489
490
491
492 [[image:image-20220525101326-11.png]]
493
494 **Make sure the RX2DR is the same in the end node**
495
496
497 == 8.2 Schedule Downlink via API ==
498
499
500 User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End Node
501
502 (((
503 **Below is examples:**
504 )))
505
506 (% class="box" %)
507 (((
508 Connect to your server via MQTT:
509 MQTT Client ID: Any   
510 Protocol:mqtt/tcp   Server IP:loraserver_ip:1883
511 User name: User name Password: password
512 )))
513
514 [[image:image-20220531173419-11.png]]
515
516 (((
517 **MQTT Connect to ChirpStack**
518
519
520 )))
521
522 (((
523 **After connect**
524 )))
525
526 (% class="box" %)
527 (((
528 Subscribe : Format:application/ID/device/ Device EUI/rx
529 Example: application/7/device/00aedb3da649cb23/rx
530 )))
531
532 (% class="box" %)
533 (((
534 Publish:
535 Format: Top: application/ID/device/ Device EUI/tx
536 Payload: {"confirmed":true or false,"fPort":XX,"data":"xxxx"}
537 Example: Top: application/7/device/00aedb3da649cb23/tx
538 Payload: {"confirmed":true,"fPort":2,"data":"AwEB"}
539 )))
540
541 [[image:image-20220531173519-12.png]]
542
543 **MQTT Connect to ChirpStack**
544
545
546
547 (((
548 Downlink payload encode javescript code.
549
550 We can run the following Javsscript code on the site:
551 )))
552
553 (% class="box" %)
554 (((
555 function sha1_to_base64(sha1)
556 {
557 var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
558 var base64_rep = "";
559 var cnt = 0;
560 var bit_arr = 0;
561 var bit_num = 0;
562 \\ for(var n = 0; n < sha1.length; ++n)
563 {
564 if(sha1[n] >= 'A' && sha1[n] <= 'Z')
565 {
566 ascv = sha1.charCodeAt( n ) - 55;
567 }
568 else if(sha1[n] >= 'a' && sha1[n] <= 'z')
569 {
570 ascv = sha1.charCodeAt( n ) - 87;
571 }
572 else
573 {
574 ascv = sha1.charCodeAt( n ) - 48;
575 }
576 \\ bit_arr = (bit_arr << 4) | ascv;
577 bit_num += 4;
578 if(bit_num >= 6)
579 {
580 bit_num -= 6;        
581 base64_rep += digits[bit_arr >>> bit_num];
582 bit_arr &= ~~(-1 << bit_num);
583 }
584 }
585 \\ if(bit_num > 0)
586 {
587 bit_arr <<= 6 - bit_num;
588 base64_rep += digits[bit_arr];
589 }
590 \\ var padding = base64_rep.length % 4;   
591 \\ if(padding > 0)
592 {
593 for(var n = 0; n < 4 - padding; ++n)
594 {
595 base64_rep += "=";
596 }
597 }
598 return base64_rep;
599 }
600 \\console.log(sha1_to_base64("data"));
601 \\data is downlink payload required by end node.
602 e.g console.log(sha1_to_base64("030101"));
603 ​result: AwEB     
604 AwEB is the 0x030101's base 64 Encode.
605 \\​e.g console.log(sha1_to_base64("030000"));
606 ​result: AwAA     
607 AwAA is 0x030000's base 64 Encode.
608 )))
609
610
611 == 8.3  Add decoder function in Chirpstack for downlink message ==
612
613
614
615 = 9.  Chirpstack Multicast Configuration =
616
617
618 == 9.1  Introduction ==
619
620 ChirpStack has support for creating multicast-groups to which devices can be assigned. When enqueueing a downlink payload for a multicast-group, ChirpStack will analyze which gateways must be used for broadcasting to cover the complete multicast-group. This means that potentially, a single multicast downlink payload will be emitted multiple times.
621
622 Multicast can be used for the following device-classes:
623
624 * Class-B
625 * Class-C
626
627 == 9.2  Example to configure chirpstack Multicast ==
628
629
630 This section illustrates how to configure ChirpStack Multicast. Below is the network structure, we use our LPS8v2 as the LoRaWAN gateway and two SN50v3-LB as the LoRaWAN end-node here.
631
632 [[image:image-20240923105725-1.png]]
633
634
635 This example assumes that the user already has the prerequisites:
636
637 * (% style="color:blue" %)**SN50v3-LB Software Location:   **(%%)**[[SN50v3-LB_protocol_008(AU915).bin>>attach:https://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-LB/#H3.ConfigureSN50v3-LB2FLS||target="_blank"]] .**Users need to flash them with the firmware support Multicast.
638 * (% style="color:blue" %)**SN50v3-LB Configure:   **(%%)Enable CLASS C and DISFCNTCHECK(The downlink fcnt is not compared with the fcnt of the node).
639
640 (% class="wikigeneratedid" %)
641 **AT command:** (% style="color:blue" %)**AT+CLASS=C**
642
643 (% class="wikigeneratedid" %)
644 (% style="color:blue" %)**AT+DISFCNTCHECK=1**
645
646 (% class="wikigeneratedid" %)
647 For details on how to configure the SN50v3-LB, please refer to the link:** [[Configure SN50v3-LB>>https://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-LB/#H3.ConfigureSN50v3-LB2FLS]]**
648
649 * (% style="color:blue" %)**Chirpstack Configuration: **(%%)LPS8v2 gateway and SN50v3-LB register on ChirpStack server already
650
651 Register LPS8v2 gateway to Chirpstack. See section :[[https:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20ChirpStack/#H4.A0SemtechUDPforChirpStackv4>>https://wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20ChirpStack/#H4.A0SemtechUDPforChirpStackv4]]
652
653 Register SN50v3-LB to Chirpstack. See section :[[https:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20ChirpStack/#H2.A0Nodeusageintroduction>>https://wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20ChirpStack/#H2.A0Nodeusageintroduction]]
654
655
656 === Step 1. Create the multicast group ===
657
658
659 Create the multicast group on the corresponding **Application~-~->multicast groups~-~->Add multicast-group** interface, For example, multicast_test01_au915
660
661 [[image:image-20240923141847-3.png||height="620" width="1207"]]
662
663
664 Enter the Multicast address,Multicast network session key,Multicast application session key.
665
666 Use the default LoRaWAN settings, as below:
667
668 * EU868: 869525000hz, DR0
669
670 * US915: 923300000hz, DR8
671
672 * CN470: 505300000hz, DR0
673
674 * AU915: 923300000hz, DR8
675
676 * AS923: 923200000hz, DR2
677
678 * KR920: 921900000hz, DR0
679
680 * IN865: 866550000hz, DR2
681
682 * RU864: 869100000hz, DR0
683
684 Group type: **Class-C**
685
686 Class-C scheduling type : **Delay**
687
688 [[image:image-20240923142446-5.png||height="720" width="1208"]]
689
690
691 === Step 2. Add gateways and devices to the multicast group ===
692
693
694 Select a gateway on the "**Gateways**" screen, click "**selected gateways"**, and click "**Add to multicast-group**" to add the gateway to the corresponding multicast group, for example, **multicast_test01_au915**.
695
696 [[image:image-20240923144335-6.png||height="619" width="1209"]]
697
698 [[image:image-20240923144418-7.png||height="572" width="1206"]]
699
700
701 On the **Application->Devices** interface, select two SN50v3-LB nodes registered with multicast support, and then click "**Selected devices**". and click "**Add to multicast-group**" to add the node to the corresponding multicast group
702
703 [[image:image-20240923144749-9.png||height="623" width="1211"]]
704
705
706 Access the multicast group to check whether two SN50V3-LBs and gateways are added successfully
707
708 [[image:image-20240923145148-10.png||height="601" width="1218"]]
709
710
711 === Step 3. Use the API for multicast Downlink ===
712
713
714 To use API Downlink, user first need to generate an API key
715
716 [[image:image-20240923145624-18.png||height="429" width="1211"]]
717
718 [[image:image-20240923145520-16.png||height="422" width="1212"]]
719
720
721 For example:**[[https:~~/~~/www.chirpstack.io/docs/chirpstack/api/index.html>>url:https://www.chirpstack.io/docs/chirpstack/api/index.html]]**
722
723 [[image:image-20240923145953-21.png||height="808" width="1222"]]
724
725
726 Users can access the Linux console of the gateway via SSH, and then use the curl command to multicast Downlink
727
728 The format is as follows:
729
730 (% class="box infomessage" %)
731 (((
732 curl -X POST 'http:~/~/**Chirpstack_Server_Address**:8090/api/multicast-groups/**Multicast_Groups_ID**/queue' -H "Content-Type: application/json" -H "Authorization: Bearer **eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjaGlycHN0YWNrIiwiaXNzIjoiY2hpcnBzdGFjayIsInN1YiI6IjM3YmRiNzBjLTNjODgtNDFjMi04YmQ2LTgyMDI4ZjdkNzY3NyIsInR5cCI6ImtleSJ9.p1xvRP1PAdwLnLAJn9w6ef612KM8oPZSa_2v4UYPV0w**" -d '{
733 "queueItem": {
734 "data": "EjRWeA==",
735 "fCnt": 0,
736 "fPort": 123
737 }
738 }'
739 )))
740
741 In the command,eyJ........._2v4UYPV0w is the API key, which can be obtained from the Chirpstack server and the data format is base64,
742
743
744 === Result ===
745
746 Connecting to the SN50v3-LB using the serial USB-TTL port can check that two SN50v3-LBs are receiving Downlink at the same time
747
748 [[image:image-20240923151814-23.png||height="563" width="1255"]]
749
750
751 = 10.  Multiply Uplink in ChirpStack =
752
753
754 (((
755 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
756 )))
757
758 (((
759 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]]
760
761
762 )))
763
764 [[image:image-20220526091912-7.png||height="241" width="1336"]]
765
766
767 (((
768 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
769
770
771 )))
772
773 [[image:image-20220525104359-21.png]]
774
775 (((
776 Above behaviour will cause the platform shows below two cases of error:
777
778
779 )))
780
781 (((
782 Error of duplicate Frame Counter
783 )))
784
785 [[image:image-20220525104437-22.png]]
786
787
788
789 **Duplicate transmission in short time**
790
791 [[image:image-20220601102430-1.png||height="508" width="1120"]]
792
793
794 == 10.1  Solution ==
795
796
797 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]]
798
799 (((
800 (% 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.**
801 )))
802
803 [[image:image-20220525104532-24.png]]
804
805
806 **installation path:**
807
808 [[image:image-20220525104554-25.png]]
809
810
811
812 (((
813 (% style="color:blue" %)**2.  Environment variable settings:**
814 )))
815
816 (((
817 1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
818 )))
819
820 (((
821 2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
822 )))
823
824 [[image:image-20220524165433-33.png]]
825
826
827 3) Modify the system variable Path and add C:\Go\bin\:
828
829 [[image:image-20220524165452-34.png]]
830
831
832 User variable setting file generation directory: D:\go:
833
834 [[image:image-20220524165517-35.png]]
835
836
837
838 (% 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.**
839
840 The name of the plugin: Example ADR plugin:
841
842 [[image:image-20220524165540-36.png]]
843
844 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.
845
846 [[image:image-20220524165557-37.png]]
847
848
849
850 (% style="color:blue" %)**4.  Compile the ADR configuration file and generate the exe file.**
851
852 1) Create a folder named adr-setting
853
854 2) Open the adr-setting folder
855
856 3) Put adr.setting.go in this folder.
857
858 4) Open the computer cmd and run the following commands in sequencecd adr-setting
859
860 go mod init adr-setting
861
862 go get github.com/brocaar/chirpstack-network-server/v3/adr
863
864 go get github.com/hashicorp/go-plugin
865
866 go get adr-setting
867
868 go build
869
870 5) Finally generate this file:
871
872 [[image:image-20220524165623-38.png]]
873
874
875
876 (% style="color:blue" %)**5.  Add the plugin and run the plugin.**
877
878 (((
879 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:
880 )))
881
882 [[image:image-20220524165641-39.png]]
883
884 (((
885 (((
886 For example: adr_plugins=[“adr-setting”]
887 )))
888 )))
889
890 * (((
891 (((
892 Adding a single plugin format is adr_plugins=["filename"]
893 )))
894 )))
895
896 * (((
897 (((
898 Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
899 )))
900 )))
901
902 (((
903 (((
904 Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
905 )))
906 )))
907
908 [[image:image-20220525104647-26.png]]
909
910 Finish.
911
912
913 = 11.  How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. =
914
915
916 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.
917
918 This example will be shown how to store/get all the data in two ways:
919
920 (% style="color:blue" %)**//1). Chirpstack ~-~-> Node-red//**
921
922
923 [[image:image-20221012184501-1.png||height="608" width="1041"]]
924
925
926 Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file
927
928 [[image:image-20221012174220-2.png]]
929
930
931 [[image:image-20221012184655-3.png||height="395" width="1049"]]
932
933
934 **Each message is continuously logged to a specified file**
935
936 [[image:image-20221012174352-3.png]]
937
938
939 (% style="color:blue" %)**//2). MQTT  Sub//**
940
941 If you don't want to store the information via node-red, you can get the output via the subscribe command.
942
943
944 **If connecting from the same machine, you can use the following command to receive data:**
945
946 (% class="box infomessage" %)
947 (((
948 **mosquitto_sub -h localhost -t "application/#" -v**
949 )))
950
951
952 (% style="color:blue" %)**Different host**
953
954 (% class="box infomessage" %)
955 (((
956 **mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v**
957 )))
958
959 [[image:image-20221012173639-1.png||height="273" width="1206"]]
960
961
962 = 12.  How to use Chirpstack API to batch register Sensor Node/Gateway in Chistapstack Server =
963
964 The following example is based on the built-in ChirpStack server for LPS8V2
965
966 [[image:image-20231201174640-1.png||height="584" width="1148"]]
967
968
969 == **12.1 Generate API Tokens** ==
970
971 Access the built-in chirpstack , click "**API Key**" and "**Add API Key**".
972
973 [[image:image-20231201175118-2.png||height="597" width="1156"]]
974
975 **Save the generated API Tokens**
976
977 [[image:image-20231201175648-3.png||height="596" width="1155"]]
978
979 [[image:image-20231204104802-1.png]]
980
981
982 == **12.2 Template file** ==
983
984
985 Click on **"Template File Download"**, the user will download a **register.csv** template file,
986
987 [[image:image-20231204105201-2.png]]
988
989
990 Before registering in batches, the user needs to add an **Application** and **Device profile**, If  you have already added them, you do not need to add them again,
991
992 Open the corresponding **Application** and **Device profile** and copy their IDs
993
994 [[image:image-20231204110902-5.png||height="618" width="1197"]]
995
996 [[image:image-20231204111116-7.png||height="619" width="1199"]]
997
998 [[image:image-20231204111834-9.png||height="273" width="1205"]]
999
1000 [[image:image-20231204112107-10.png||height="621" width="1203"]]
1001
1002
1003
1004 == **12.3 Batch Register** ==
1005
1006 [[image:image-20231204113136-11.png||height="362" width="1062"]]
1007
1008
1009 **Check whether the batch registration is successful**
1010
1011 [[image:image-20231204113212-12.png]]
1012
1013 [[image:image-20231204113237-13.png||height="558" width="1081"]]
1014
1015
1016
1017 = 13.  Example: Use Local Server ChirpStack and Node-Red in LPS8v2 =
1018
1019
1020 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:
1021
1022 * LHT65N register on LPS8v2 Built-In ChirpStack server already
1023 * The user is able to see the data on the built-in ChirpStack server device page.
1024
1025 Below are the steps to plot the sensor data on LPS8v2 Node-Red.
1026
1027
1028 == 13.1 Link Node-Red to Local ChirpStack ==
1029
1030
1031 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"]]**
1032
1033 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]]**
1034
1035 After importing the Input Flow is complete, the user needs to edit the MQTT in the node
1036
1037
1038 (% style="color:blue" %)**1. Change the Topic**
1039
1040 Topic modifies it to the following format:
1041
1042 **application/(% style="color:red" %)Application ID(%%)/device/(% style="color:red" %)End device ID(%%)/event/up**
1043
1044 Reference link: [[**Node-RED integration** >>https://www.chirpstack.io/docs/guides/node-red-integration.html]]
1045
1046 [[image:image-20230527143923-1.png||height="588" width="1132"]]
1047
1048
1049
1050 (% style="color:blue" %)**2. Enter the MQTT configuration information**
1051
1052 [[image:image-20230527144206-2.png||height="590" width="1136"]]
1053
1054
1055 (% style="color:blue" %)**3.** **Finally, click "Update" and Deploy**
1056
1057 "Connected" indicates that the Link Node-red to Local Chirpstack is normal.
1058
1059 [[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"]]
1060
1061
1062 == 13.2 Check result. ==
1063
1064
1065 Users can check logs by adding debug.
1066
1067 Browser access: **Node-Red-Server-Address:1880/ui**
1068
1069 [[image:image-20230529150923-1.png||height="424" width="1118"]]
1070
1071
1072 = 14.  Trouble Shooting =
1073
1074 == 14.1  MIC Mismatch or MIC Failed ==
1075
1076
1077 (((
1078 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
1079 )))
1080
1081 (((
1082 Under normal circumstances, users need to change the APPKEY to solve this problem.
1083
1084
1085 == 14.2  The node is very close to the gateway, but the signal is poor ==
1086
1087
1088 If you are using US915 or AU915, you found the frequency points of different subband ranges in your uplink
1089
1090 Like that:Both 905.1Mhz and 902.3Mhz appear on uplink
1091 But they belong to Subband1 and Subband2 of US915 respectively
1092
1093 Cause: The server and the gateway use different frequency bands (the server uses Subband1, and the gateway uses Subband2)
1094
1095 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.
1096
1097 How to check the frequency band used by the server:
1098
1099 You can view the information sent by the server: ch_mask in Unconfirmdedatadown
1100
1101 [[image:image-20230821113255-1.png]]
1102
1103 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.
1104
1105 [[image:image-20230821113539-2.png]]
1106
1107 In the second message, the channel 0~~7 is true, which means that your server is using subband2.
1108
1109 [[image:image-20230821113618-3.png]]
1110
1111 **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]]**
1112
1113
1114 == 14.3  ChirpStackv4 node device displays "UPLINK_F_CNT_RETRANSMISSION" ==
1115
1116
1117 This is because the node's packets are retransmitted, and the Fcnt of these packets is the same.
1118
1119 The user can Disable frame-counter validation on the chirpstack node and this warning message will not appear in the logs.
1120
1121
1122 The packet is retransmitted because the node device has enabled the acknowledgment uplink packet mode and the node cannot receive the ACK acknowledgment packet delivered by the gateway.
1123
1124
1125 **The possible reasons are: **
1126
1127 ~1. The signal of the node device and the gateway is not good
1128
1129 2. Too many node devices affect the downlink of the gateway
1130
1131
1132 [[image:image-20240717085339-1.jpeg]]
1133
1134
1135 * **Disable frame-counter validation**
1136
1137 [[image:image-20240717102613-5.png||height="803" width="1211"]]
1138
1139
1140 * **Result**
1141
1142 [[image:image-20240717092428-4.jpeg]]
1143
1144
1145 == 14.4  How to get the log information of the node? ==
1146
1147
1148 ~1. Get information about a single node.
1149
1150 * Download this file in the node's live data interface.
1151
1152 [[image:image-20240117173123-1.png||height="526" width="1086"]]
1153
1154 * The LoRaWAN frames download gateway receives real-time data from the current node.
1155
1156 [[image:image-20240117174452-2.png||height="525" width="1081"]]
1157
1158
1159 2. Get information about the entire Gateway.
1160
1161 * Click to select the online gateway of the current node.
1162
1163 [[image:image-20240117175058-4.png||height="532" width="1077"]]
1164
1165
1166 * Download this file on the LoRaWAN frames interface.
1167
1168 [[image:image-20240117175009-3.png||height="524" width="1076"]]
1169
1170
1171
1172 After the data collection is completed, you can send this file directly to our technical support personnel for analysis.
1173
1174
1175 You can also use the packet analysis tool developed by our company to check it yourself. Please refer to the following [[link>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20of%20Dragino%20LoRaWAN%20Packet%20Analyze%20Tool/#H4.Chirpstack]] to use this tool.
1176
1177 [[image:image-20240117175738-5.png]]
1178
1179 (% class="wikigeneratedid" id="H" %)
1180
1181 )))