Wiki source code of Notes for ChirpStack

Version 246.5 by Xiaoling on 2025/07/31 17:07

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]],[[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]]
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/||style="background-color: rgb(255, 255, 255);"]]
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 == 6.1  Configure Packet Forwarder ==
276
277
278 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
279
280 * In the (% style="color:blue" %)**LoRaWAN** (%%)menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
281
282 * Make sure the following settings are set:
283 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
284 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
285 ** **Server port for upstream:** //1700//
286 ** **Server port for downstream:** //1700//
287
288 Click (% style="color:blue" %)**Save & Apply**.
289
290 [[image:image-20221222114220-2.png||height="748" width="931"]]
291
292
293 == 6.2  Configuring gateway frequency ==
294
295
296 (% style="color:red" %)**Note: Gateway frequencies must match**
297
298 [[image:image-20221222134830-3.png||height="408" width="923"]]
299
300
301 == 6.3  Generate and modify the gateway-bridge configuration file ==
302
303
304 **1)Generate the gateway-bridge configuration file**
305
306 By default, the configuration file is not up-to-date,so the user needs to rebuild the gateway-bridge configuration file.
307
308 Users need to access the command line of the gateway through SSH,Then type the following command:
309
310 (% class="box infomessage" %)
311 (((
312 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge configfile > /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
313 )))
314
315
316 **2)modify the gateway-bridge configuration file**
317
318 The user needs to modify the server address in line 252 in the configuration file
319
320 (% class="box infomessage" %)
321 (((
322 **vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
323 )))
324
325 [[image:image-20230415165254-1.png||height="583" width="956"]]
326
327
328 == 6.4  Debug ==
329
330
331 After the above configuration is completed, the user can enter the command to debug the gateway-bridge connection
332
333 (% class="box infomessage" %)
334 (((
335 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge ~-~-config /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml**
336 )))
337
338 If the gateway-bridge connection is normal, the debug log displays **"connected to mqtt broker"**.
339
340 [[image:image-20230415170404-2.png]]
341
342
343 If the debug log shows "**connection error**", check that the server port or server is correct
344
345 [[image:image-20230415170854-3.png]]
346
347
348 More information can be found on the **[[ChirpStack website>>https://www.chirpstack.io/docs/]]**or **[[Forum>>url:https://forum.chirpstack.io/]]**
349
350
351 == 6.5  (Re)start and stop gateway-bridge ==
352
353
354 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
355
356 (% class="box infomessage" %)
357 (((
358 **# start**
359
360 /etc/init.d/chirpstack-gateway-bridge start
361
362 **# stop**
363
364 /etc/init.d/chirpstack-gateway-bridge stop
365
366 **# restart**
367
368 /etc/init.d/chirpstack-gateway-bridge restart
369 )))
370
371
372 = 7.  How the gateway connects to Chirpstack v4 via gateway-bridge =
373
374
375 (% style="color:blue" %)**Below list the support products and Requirements:**
376
377 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]]
378 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/]]
379
380 (% style="color:blue" %)**What do you need to prepare**
381
382 A gateway that can access the internet normally
383
384
385 == 7.1  Configure Packet Forwarder ==
386
387
388 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
389
390 * In the (% style="color:blue" %)**LoRaWAN**(%%) menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
391
392 * Make sure the following settings are set:
393 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
394 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
395 ** **Server port for upstream:** //1700//
396 ** **Server port for downstream:** //1700//
397
398 Click (% style="color:blue" %)**Save & Apply**.
399
400 [[image:image-20221222114220-2.png||height="748" width="931"]]
401
402
403 == 7.2  Configuring gateway frequency ==
404
405
406 (% style="color:red" %)**Note: Gateway frequencies must match**
407
408 [[image:image-20221222134830-3.png||height="408" width="923"]]
409
410
411 == 7.3  Modify the gateway-bridge configuration file ==
412
413
414 Run the gateway command line command to modify the gateway-bridge configuration file:
415
416 (% class="box infomessage" %)
417 (((
418 **root@dragino-1d27d4:~~#  vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
419 )))
420
421 [[image:image-20221222113302-1.png]]
422
423
424 [[image:image-20221222140203-4.png||height="875" width="806"]]
425
426
427 Configure the server address to which the gateway needs to be connected,"tcp:~/~/chirpstack_address:1883"
428
429 [[image:image-20221230094246-1.png||height="768" width="783"]]
430
431 (% class="wikigeneratedid" id="H" %)
432 After the modification, run the following command: **/etc/init.d/chirpstack-gateway-bridge restart**
433
434
435 == 7.4  (Re)start and stop gateway-bridge ==
436
437
438 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
439
440 (% class="box infomessage" %)
441 (((
442 **# start**
443
444 /etc/init.d/chirpstack-gateway-bridge start
445
446 **# stop**
447
448 /etc/init.d/chirpstack-gateway-bridge stop
449
450 **# restart**
451
452 /etc/init.d/chirpstack-gateway-bridge restart
453 )))
454
455
456 == 7.5  Successful Connection ==
457
458
459 [[image:image-20221222141754-5.png||height="488" width="1150"]]
460
461
462 [[image:image-20221222141830-6.png||height="582" width="1153"]]
463
464
465 = 8.  Downlink =
466
467 == 8.1 Schedule Downlink via Web UI ==
468
469
470 === Select HEX format for downlink ===
471
472
473 (% style="color:red" %)**Note: The end node user manual provides HEX format of the downlink commands, so users can directly select HEX format downlink.**
474
475
476 [[image:image-20231108171112-5.png||height="629" width="1117"]]
477
478
479 [[image:image-20231108171145-6.png||height="497" width="1101"]]
480
481
482
483
484
485 [[image:image-20220531173236-10.png||height="597" width="1215"]]
486
487 **Check ChripStack downlink DataRate**
488
489
490
491 [[image:image-20220525101326-11.png]]
492
493 **Make sure the RX2DR is the same in the end node**
494
495
496 == 8.2 Schedule Downlink via API ==
497
498
499 User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End Node
500
501 (((
502 **Below is examples:**
503 )))
504
505 (% class="box" %)
506 (((
507 Connect to your server via MQTT:
508 MQTT Client ID: Any   
509 Protocol:mqtt/tcp   Server IP:loraserver_ip:1883
510 User name: User name Password: password
511 )))
512
513 [[image:image-20220531173419-11.png]]
514
515 (((
516 **MQTT Connect to ChirpStack**
517
518
519 )))
520
521 (((
522 **After connect**
523 )))
524
525 (% class="box" %)
526 (((
527 Subscribe : Format:application/ID/device/ Device EUI/rx
528 Example: application/7/device/00aedb3da649cb23/rx
529 )))
530
531 (% class="box" %)
532 (((
533 Publish:
534 Format: Top: application/ID/device/ Device EUI/tx
535 Payload: {"confirmed":true or false,"fPort":XX,"data":"xxxx"}
536 Example: Top: application/7/device/00aedb3da649cb23/tx
537 Payload: {"confirmed":true,"fPort":2,"data":"AwEB"}
538 )))
539
540 [[image:image-20220531173519-12.png]]
541
542 **MQTT Connect to ChirpStack**
543
544
545
546 (((
547 Downlink payload encode javescript code.
548
549 We can run the following Javsscript code on the site:
550 )))
551
552 (% class="box" %)
553 (((
554 function sha1_to_base64(sha1)
555 {
556 var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
557 var base64_rep = "";
558 var cnt = 0;
559 var bit_arr = 0;
560 var bit_num = 0;
561 \\ for(var n = 0; n < sha1.length; ++n)
562 {
563 if(sha1[n] >= 'A' && sha1[n] <= 'Z')
564 {
565 ascv = sha1.charCodeAt( n ) - 55;
566 }
567 else if(sha1[n] >= 'a' && sha1[n] <= 'z')
568 {
569 ascv = sha1.charCodeAt( n ) - 87;
570 }
571 else
572 {
573 ascv = sha1.charCodeAt( n ) - 48;
574 }
575 \\ bit_arr = (bit_arr << 4) | ascv;
576 bit_num += 4;
577 if(bit_num >= 6)
578 {
579 bit_num -= 6;        
580 base64_rep += digits[bit_arr >>> bit_num];
581 bit_arr &= ~~(-1 << bit_num);
582 }
583 }
584 \\ if(bit_num > 0)
585 {
586 bit_arr <<= 6 - bit_num;
587 base64_rep += digits[bit_arr];
588 }
589 \\ var padding = base64_rep.length % 4;   
590 \\ if(padding > 0)
591 {
592 for(var n = 0; n < 4 - padding; ++n)
593 {
594 base64_rep += "=";
595 }
596 }
597 return base64_rep;
598 }
599 \\console.log(sha1_to_base64("data"));
600 \\data is downlink payload required by end node.
601 e.g console.log(sha1_to_base64("030101"));
602 ​result: AwEB     
603 AwEB is the 0x030101's base 64 Encode.
604 \\​e.g console.log(sha1_to_base64("030000"));
605 ​result: AwAA     
606 AwAA is 0x030000's base 64 Encode.
607 )))
608
609
610 == 8.3  Add decoder function in Chirpstack for downlink message ==
611
612
613
614 = 9.  Chirpstack Multicast Configuration =
615
616
617 == 9.1  Introduction ==
618
619 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.
620
621 Multicast can be used for the following device-classes:
622
623 * Class-B
624 * Class-C
625
626 == 9.2  Example to configure chirpstack Multicast ==
627
628
629 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.
630
631 [[image:image-20240923105725-1.png]]
632
633
634 This example assumes that the user already has the prerequisites:
635
636 * (% 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.
637 * (% style="color:blue" %)**SN50v3-LB Configure:   **(%%)Enable CLASS C and DISFCNTCHECK(The downlink fcnt is not compared with the fcnt of the node).
638
639 (% class="wikigeneratedid" %)
640 **AT command:** (% style="color:blue" %)**AT+CLASS=C**
641
642 (% class="wikigeneratedid" %)
643 (% style="color:blue" %)**AT+DISFCNTCHECK=1**
644
645 (% class="wikigeneratedid" %)
646 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]]**
647
648 * (% style="color:blue" %)**Chirpstack Configuration: **(%%)LPS8v2 gateway and SN50v3-LB register on ChirpStack server already
649
650 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]]
651
652 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]]
653
654
655 === Step 1. Create the multicast group ===
656
657
658 Create the multicast group on the corresponding **Application~-~->multicast groups~-~->Add multicast-group** interface, For example, multicast_test01_au915
659
660 [[image:image-20240923141847-3.png||height="620" width="1207"]]
661
662
663 Enter the Multicast address,Multicast network session key,Multicast application session key.
664
665 Use the default LoRaWAN settings, as below:
666
667 * EU868: 869525000hz, DR0
668
669 * US915: 923300000hz, DR8
670
671 * CN470: 505300000hz, DR0
672
673 * AU915: 923300000hz, DR8
674
675 * AS923: 923200000hz, DR2
676
677 * KR920: 921900000hz, DR0
678
679 * IN865: 866550000hz, DR2
680
681 * RU864: 869100000hz, DR0
682
683 Group type: **Class-C**
684
685 Class-C scheduling type : **Delay**
686
687 [[image:image-20240923142446-5.png||height="720" width="1208"]]
688
689
690 === Step 2. Add gateways and devices to the multicast group ===
691
692
693 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**.
694
695 [[image:image-20240923144335-6.png||height="619" width="1209"]]
696
697 [[image:image-20240923144418-7.png||height="572" width="1206"]]
698
699
700 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
701
702 [[image:image-20240923144749-9.png||height="623" width="1211"]]
703
704
705 Access the multicast group to check whether two SN50V3-LBs and gateways are added successfully
706
707 [[image:image-20240923145148-10.png||height="601" width="1218"]]
708
709
710 === Step 3. Use the API for multicast Downlink ===
711
712
713 To use API Downlink, user first need to generate an API key
714
715 [[image:image-20240923145624-18.png||height="429" width="1211"]]
716
717 [[image:image-20240923145520-16.png||height="422" width="1212"]]
718
719
720 For example:**[[https:~~/~~/www.chirpstack.io/docs/chirpstack/api/index.html>>url:https://www.chirpstack.io/docs/chirpstack/api/index.html]]**
721
722 [[image:image-20240923145953-21.png||height="808" width="1222"]]
723
724
725 Users can access the Linux console of the gateway via SSH, and then use the curl command to multicast Downlink
726
727 The format is as follows:
728
729 (% class="box infomessage" %)
730 (((
731 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 '{
732 "queueItem": {
733 "data": "EjRWeA==",
734 "fCnt": 0,
735 "fPort": 123
736 }
737 }'
738 )))
739
740 In the command,eyJ........._2v4UYPV0w is the API key, which can be obtained from the Chirpstack server and the data format is base64,
741
742
743 === Result ===
744
745 Connecting to the SN50v3-LB using the serial USB-TTL port can check that two SN50v3-LBs are receiving Downlink at the same time
746
747 [[image:image-20240923151814-23.png||height="563" width="1255"]]
748
749
750 = 10.  Multiply Uplink in ChirpStack =
751
752
753 (((
754 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
755 )))
756
757 (((
758 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]]
759
760
761 )))
762
763 [[image:image-20220526091912-7.png||height="241" width="1336"]]
764
765
766 (((
767 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
768
769
770 )))
771
772 [[image:image-20220525104359-21.png]]
773
774 (((
775 Above behaviour will cause the platform shows below two cases of error:
776
777
778 )))
779
780 (((
781 Error of duplicate Frame Counter
782 )))
783
784 [[image:image-20220525104437-22.png]]
785
786
787
788 **Duplicate transmission in short time**
789
790 [[image:image-20220601102430-1.png||height="508" width="1120"]]
791
792
793 == 10.1  Solution ==
794
795
796 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]]
797
798 (((
799 (% 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.**
800 )))
801
802 [[image:image-20220525104532-24.png]]
803
804
805 **installation path:**
806
807 [[image:image-20220525104554-25.png]]
808
809
810
811 (((
812 (% style="color:blue" %)**2.  Environment variable settings:**
813 )))
814
815 (((
816 1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
817 )))
818
819 (((
820 2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
821 )))
822
823 [[image:image-20220524165433-33.png]]
824
825
826 3) Modify the system variable Path and add C:\Go\bin\:
827
828 [[image:image-20220524165452-34.png]]
829
830
831 User variable setting file generation directory: D:\go:
832
833 [[image:image-20220524165517-35.png]]
834
835
836
837 (% 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.**
838
839 The name of the plugin: Example ADR plugin:
840
841 [[image:image-20220524165540-36.png]]
842
843 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.
844
845 [[image:image-20220524165557-37.png]]
846
847
848
849 (% style="color:blue" %)**4.  Compile the ADR configuration file and generate the exe file.**
850
851 1) Create a folder named adr-setting
852
853 2) Open the adr-setting folder
854
855 3) Put adr.setting.go in this folder.
856
857 4) Open the computer cmd and run the following commands in sequencecd adr-setting
858
859 go mod init adr-setting
860
861 go get github.com/brocaar/chirpstack-network-server/v3/adr
862
863 go get github.com/hashicorp/go-plugin
864
865 go get adr-setting
866
867 go build
868
869 5) Finally generate this file:
870
871 [[image:image-20220524165623-38.png]]
872
873
874
875 (% style="color:blue" %)**5.  Add the plugin and run the plugin.**
876
877 (((
878 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:
879 )))
880
881 [[image:image-20220524165641-39.png]]
882
883 (((
884 (((
885 For example: adr_plugins=[“adr-setting”]
886 )))
887 )))
888
889 * (((
890 (((
891 Adding a single plugin format is adr_plugins=["filename"]
892 )))
893 )))
894
895 * (((
896 (((
897 Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
898 )))
899 )))
900
901 (((
902 (((
903 Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
904 )))
905 )))
906
907 [[image:image-20220525104647-26.png]]
908
909 Finish.
910
911
912 = 11.  How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. =
913
914
915 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.
916
917 This example will be shown how to store/get all the data in two ways:
918
919 (% style="color:blue" %)**//1). Chirpstack ~-~-> Node-red//**
920
921
922 [[image:image-20221012184501-1.png||height="608" width="1041"]]
923
924
925 Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file
926
927 [[image:image-20221012174220-2.png]]
928
929
930 [[image:image-20221012184655-3.png||height="395" width="1049"]]
931
932
933 **Each message is continuously logged to a specified file**
934
935 [[image:image-20221012174352-3.png]]
936
937
938 (% style="color:blue" %)**//2). MQTT  Sub//**
939
940 If you don't want to store the information via node-red, you can get the output via the subscribe command.
941
942
943 **If connecting from the same machine, you can use the following command to receive data:**
944
945 (% class="box infomessage" %)
946 (((
947 **mosquitto_sub -h localhost -t "application/#" -v**
948 )))
949
950
951 (% style="color:blue" %)**Different host**
952
953 (% class="box infomessage" %)
954 (((
955 **mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v**
956 )))
957
958 [[image:image-20221012173639-1.png||height="273" width="1206"]]
959
960
961 = 12.  How to use Chirpstack API to batch register Sensor Node/Gateway in Chistapstack Server =
962
963 The following example is based on the built-in ChirpStack server for LPS8V2
964
965 [[image:image-20231201174640-1.png||height="584" width="1148"]]
966
967
968 == **12.1 Generate API Tokens** ==
969
970 Access the built-in chirpstack , click "**API Key**" and "**Add API Key**".
971
972 [[image:image-20231201175118-2.png||height="597" width="1156"]]
973
974 **Save the generated API Tokens**
975
976 [[image:image-20231201175648-3.png||height="596" width="1155"]]
977
978 [[image:image-20231204104802-1.png]]
979
980
981 == **12.2 Template file** ==
982
983
984 Click on **"Template File Download"**, the user will download a **register.csv** template file,
985
986 [[image:image-20231204105201-2.png]]
987
988
989 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,
990
991 Open the corresponding **Application** and **Device profile** and copy their IDs
992
993 [[image:image-20231204110902-5.png||height="618" width="1197"]]
994
995 [[image:image-20231204111116-7.png||height="619" width="1199"]]
996
997 [[image:image-20231204111834-9.png||height="273" width="1205"]]
998
999 [[image:image-20231204112107-10.png||height="621" width="1203"]]
1000
1001
1002
1003 == **12.3 Batch Register** ==
1004
1005 [[image:image-20231204113136-11.png||height="362" width="1062"]]
1006
1007
1008 **Check whether the batch registration is successful**
1009
1010 [[image:image-20231204113212-12.png]]
1011
1012 [[image:image-20231204113237-13.png||height="558" width="1081"]]
1013
1014
1015
1016 = 13.  Example: Use Local Server ChirpStack and Node-Red in LPS8v2 =
1017
1018
1019 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:
1020
1021 * LHT65N register on LPS8v2 Built-In ChirpStack server already
1022 * The user is able to see the data on the built-in ChirpStack server device page.
1023
1024 Below are the steps to plot the sensor data on LPS8v2 Node-Red.
1025
1026
1027 == 13.1 Link Node-Red to Local ChirpStack ==
1028
1029
1030 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"]]**
1031
1032 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]]**
1033
1034 After importing the Input Flow is complete, the user needs to edit the MQTT in the node
1035
1036
1037 (% style="color:blue" %)**1. Change the Topic**
1038
1039 Topic modifies it to the following format:
1040
1041 **application/(% style="color:red" %)Application ID(%%)/device/(% style="color:red" %)End device ID(%%)/event/up**
1042
1043 Reference link: [[**Node-RED integration** >>https://www.chirpstack.io/docs/guides/node-red-integration.html]]
1044
1045 [[image:image-20230527143923-1.png||height="588" width="1132"]]
1046
1047
1048
1049 (% style="color:blue" %)**2. Enter the MQTT configuration information**
1050
1051 [[image:image-20230527144206-2.png||height="590" width="1136"]]
1052
1053
1054 (% style="color:blue" %)**3.** **Finally, click "Update" and Deploy**
1055
1056 "Connected" indicates that the Link Node-red to Local Chirpstack is normal.
1057
1058 [[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"]]
1059
1060
1061 == 13.2 Check result. ==
1062
1063
1064 Users can check logs by adding debug.
1065
1066 Browser access: **Node-Red-Server-Address:1880/ui**
1067
1068 [[image:image-20230529150923-1.png||height="424" width="1118"]]
1069
1070
1071 = 14.  Trouble Shooting =
1072
1073 == 14.1  MIC Mismatch or MIC Failed ==
1074
1075
1076 (((
1077 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
1078 )))
1079
1080 (((
1081 Under normal circumstances, users need to change the APPKEY to solve this problem.
1082
1083
1084 == 14.2  The node is very close to the gateway, but the signal is poor ==
1085
1086
1087 If you are using US915 or AU915, you found the frequency points of different subband ranges in your uplink
1088
1089 Like that:Both 905.1Mhz and 902.3Mhz appear on uplink
1090 But they belong to Subband1 and Subband2 of US915 respectively
1091
1092 Cause: The server and the gateway use different frequency bands (the server uses Subband1, and the gateway uses Subband2)
1093
1094 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.
1095
1096 How to check the frequency band used by the server:
1097
1098 You can view the information sent by the server: ch_mask in Unconfirmdedatadown
1099
1100 [[image:image-20230821113255-1.png]]
1101
1102 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.
1103
1104 [[image:image-20230821113539-2.png]]
1105
1106 In the second message, the channel 0~~7 is true, which means that your server is using subband2.
1107
1108 [[image:image-20230821113618-3.png]]
1109
1110 **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]]**
1111
1112
1113 == 14.3  ChirpStackv4 node device displays "UPLINK_F_CNT_RETRANSMISSION" ==
1114
1115
1116 This is because the node's packets are retransmitted, and the Fcnt of these packets is the same.
1117
1118 The user can Disable frame-counter validation on the chirpstack node and this warning message will not appear in the logs.
1119
1120
1121 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.
1122
1123
1124 **The possible reasons are: **
1125
1126 ~1. The signal of the node device and the gateway is not good
1127
1128 2. Too many node devices affect the downlink of the gateway
1129
1130
1131 [[image:image-20240717085339-1.jpeg]]
1132
1133
1134 * **Disable frame-counter validation**
1135
1136 [[image:image-20240717102613-5.png||height="803" width="1211"]]
1137
1138
1139 * **Result**
1140
1141 [[image:image-20240717092428-4.jpeg]]
1142
1143
1144 == 14.4  How to get the log information of the node? ==
1145
1146
1147 ~1. Get information about a single node.
1148
1149 * Download this file in the node's live data interface.
1150
1151 [[image:image-20240117173123-1.png||height="526" width="1086"]]
1152
1153 * The LoRaWAN frames download gateway receives real-time data from the current node.
1154
1155 [[image:image-20240117174452-2.png||height="525" width="1081"]]
1156
1157
1158 2. Get information about the entire Gateway.
1159
1160 * Click to select the online gateway of the current node.
1161
1162 [[image:image-20240117175058-4.png||height="532" width="1077"]]
1163
1164
1165 * Download this file on the LoRaWAN frames interface.
1166
1167 [[image:image-20240117175009-3.png||height="524" width="1076"]]
1168
1169
1170
1171 After the data collection is completed, you can send this file directly to our technical support personnel for analysis.
1172
1173
1174 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.
1175
1176 [[image:image-20240117175738-5.png]]
1177
1178 (% class="wikigeneratedid" id="H" %)
1179
1180 )))