Wiki source code of Notes for ChirpStack

Version 244.1 by Kilight Cao on 2024/09/24 15:23

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