Wiki source code of Notes for ChirpStack

Version 246.6 by Xiaoling on 2025/07/31 17:16

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