Wiki source code of Notes for ChirpStack

Last modified by Xiaoling on 2025/07/31 17:18

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 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.
621
622 [[image:image-20240923105725-1.png]]
623
624
625 This example assumes that the user already has the prerequisites:
626
627 * (% 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.
628 * (% style="color:blue" %)**SN50v3-LB Configure:   **(%%)Enable CLASS C and DISFCNTCHECK(The downlink fcnt is not compared with the fcnt of the node).
629
630 (% class="wikigeneratedid" %)
631 **AT command:** (% style="color:blue" %)**AT+CLASS=C**
632
633 (% class="wikigeneratedid" %)
634 (% style="color:blue" %)**AT+DISFCNTCHECK=1**
635
636 (% class="wikigeneratedid" %)
637 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]]**
638
639 * (% style="color:blue" %)**Chirpstack Configuration: **(%%)LPS8v2 gateway and SN50v3-LB register on ChirpStack server already
640
641 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]]
642
643 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]]
644
645
646 === Step 1. Create the multicast group ===
647
648
649 Create the multicast group on the corresponding **Application~-~->multicast groups~-~->Add multicast-group** interface, For example, multicast_test01_au915
650
651 [[image:image-20240923141847-3.png||height="620" width="1207"]]
652
653
654 Enter the Multicast address,Multicast network session key,Multicast application session key.
655
656 Use the default LoRaWAN settings, as below:
657
658 * EU868: 869525000hz, DR0
659
660 * US915: 923300000hz, DR8
661
662 * CN470: 505300000hz, DR0
663
664 * AU915: 923300000hz, DR8
665
666 * AS923: 923200000hz, DR2
667
668 * KR920: 921900000hz, DR0
669
670 * IN865: 866550000hz, DR2
671
672 * RU864: 869100000hz, DR0
673
674 Group type: **Class-C**
675
676 Class-C scheduling type : **Delay**
677
678 [[image:image-20240923142446-5.png||height="720" width="1208"]]
679
680
681 === Step 2. Add gateways and devices to the multicast group ===
682
683
684 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**.
685
686 [[image:image-20240923144335-6.png||height="619" width="1209"]]
687
688 [[image:image-20240923144418-7.png||height="572" width="1206"]]
689
690
691 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
692
693 [[image:image-20240923144749-9.png||height="623" width="1211"]]
694
695
696 Access the multicast group to check whether two SN50V3-LBs and gateways are added successfully
697
698 [[image:image-20240923145148-10.png||height="601" width="1218"]]
699
700
701 === Step 3. Use the API for multicast Downlink ===
702
703
704 To use API Downlink, user first need to generate an API key
705
706 [[image:image-20240923145624-18.png||height="429" width="1211"]]
707
708 [[image:image-20240923145520-16.png||height="422" width="1212"]]
709
710
711 For example:**[[https:~~/~~/www.chirpstack.io/docs/chirpstack/api/index.html>>url:https://www.chirpstack.io/docs/chirpstack/api/index.html]]**
712
713 [[image:image-20240923145953-21.png||height="808" width="1222"]]
714
715
716 Users can access the Linux console of the gateway via SSH, and then use the curl command to multicast Downlink
717
718 The format is as follows:
719
720 (% class="box infomessage" %)
721 (((
722 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 '{
723 "queueItem": {
724 "data": "EjRWeA==",
725 "fCnt": 0,
726 "fPort": 123
727 }
728 }'
729 )))
730
731 In the command,eyJ........._2v4UYPV0w is the API key, which can be obtained from the Chirpstack server and the data format is base64,
732
733
734 === Result ===
735
736 Connecting to the SN50v3-LB using the serial USB-TTL port can check that two SN50v3-LBs are receiving Downlink at the same time
737
738 [[image:image-20240923151814-23.png||height="563" width="1255"]]
739
740
741 = 10.  Multiply Uplink in ChirpStack =
742
743
744 (((
745 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
746 )))
747
748 (((
749 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]]
750
751
752 )))
753
754 [[image:image-20220526091912-7.png||height="241" width="1336"]]
755
756
757 (((
758 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
759
760
761 )))
762
763 [[image:image-20220525104359-21.png]]
764
765 (((
766 Above behaviour will cause the platform shows below two cases of error:
767
768
769 )))
770
771 (((
772 Error of duplicate Frame Counter
773 )))
774
775 [[image:image-20220525104437-22.png]]
776
777
778
779 **Duplicate transmission in short time**
780
781 [[image:image-20220601102430-1.png||height="508" width="1120"]]
782
783
784 == 10.1  Solution ==
785
786
787 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]]
788
789 (((
790 (% 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.**
791 )))
792
793 [[image:image-20220525104532-24.png]]
794
795
796 **installation path:**
797
798 [[image:image-20220525104554-25.png]]
799
800
801
802 (((
803 (% style="color:blue" %)**2.  Environment variable settings:**
804 )))
805
806 (((
807 1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
808 )))
809
810 (((
811 2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
812 )))
813
814 [[image:image-20220524165433-33.png]]
815
816
817 3) Modify the system variable Path and add C:\Go\bin\:
818
819 [[image:image-20220524165452-34.png]]
820
821
822 User variable setting file generation directory: D:\go:
823
824 [[image:image-20220524165517-35.png]]
825
826
827
828 (% 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.**
829
830 The name of the plugin: Example ADR plugin:
831
832 [[image:image-20220524165540-36.png]]
833
834 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.
835
836 [[image:image-20220524165557-37.png]]
837
838
839
840 (% style="color:blue" %)**4.  Compile the ADR configuration file and generate the exe file.**
841
842 1) Create a folder named adr-setting
843
844 2) Open the adr-setting folder
845
846 3) Put adr.setting.go in this folder.
847
848 4) Open the computer cmd and run the following commands in sequencecd adr-setting
849
850 go mod init adr-setting
851
852 go get github.com/brocaar/chirpstack-network-server/v3/adr
853
854 go get github.com/hashicorp/go-plugin
855
856 go get adr-setting
857
858 go build
859
860 5) Finally generate this file:
861
862 [[image:image-20220524165623-38.png]]
863
864
865
866 (% style="color:blue" %)**5.  Add the plugin and run the plugin.**
867
868 (((
869 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:
870 )))
871
872 [[image:image-20220524165641-39.png]]
873
874 (((
875 (((
876 For example: adr_plugins=[“adr-setting”]
877 )))
878 )))
879
880 * (((
881 (((
882 Adding a single plugin format is adr_plugins=["filename"]
883 )))
884 )))
885
886 * (((
887 (((
888 Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
889 )))
890 )))
891
892 (((
893 (((
894 Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
895 )))
896 )))
897
898 [[image:image-20220525104647-26.png]]
899
900 Finish.
901
902
903 = 11.  How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. =
904
905
906 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.
907
908 This example will be shown how to store/get all the data in two ways:
909
910 (% style="color:blue" %)**//1). Chirpstack ~-~-> Node-red//**
911
912
913 [[image:image-20221012184501-1.png||height="608" width="1041"]]
914
915
916 Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file
917
918 [[image:image-20221012174220-2.png]]
919
920
921 [[image:image-20221012184655-3.png||height="395" width="1049"]]
922
923
924 **Each message is continuously logged to a specified file**
925
926 [[image:image-20221012174352-3.png]]
927
928
929 (% style="color:blue" %)**//2). MQTT  Sub//**
930
931 If you don't want to store the information via node-red, you can get the output via the subscribe command.
932
933
934 **If connecting from the same machine, you can use the following command to receive data:**
935
936 (% class="box infomessage" %)
937 (((
938 **mosquitto_sub -h localhost -t "application/#" -v**
939 )))
940
941
942 (% style="color:blue" %)**Different host**
943
944 (% class="box infomessage" %)
945 (((
946 **mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v**
947 )))
948
949 [[image:image-20221012173639-1.png||height="273" width="1206"]]
950
951
952 = 12.  How to use Chirpstack API to batch register Sensor Node/Gateway in Chistapstack Server =
953
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 == **12.3 Batch Register** ==
995
996 [[image:image-20231204113136-11.png||height="362" width="1062"]]
997
998
999 **Check whether the batch registration is successful**
1000
1001 [[image:image-20231204113212-12.png]]
1002
1003 [[image:image-20231204113237-13.png||height="558" width="1081"]]
1004
1005
1006 = 13.  Example: Use Local Server ChirpStack and Node-Red in LPS8v2 =
1007
1008
1009 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:
1010
1011 * LHT65N register on LPS8v2 Built-In ChirpStack server already
1012 * The user is able to see the data on the built-in ChirpStack server device page.
1013
1014 Below are the steps to plot the sensor data on LPS8v2 Node-Red.
1015
1016
1017 == 13.1 Link Node-Red to Local ChirpStack ==
1018
1019
1020 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"]]**
1021
1022 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]]**
1023
1024 After importing the Input Flow is complete, the user needs to edit the MQTT in the node
1025
1026
1027 (% style="color:blue" %)**1. Change the Topic**
1028
1029 Topic modifies it to the following format:
1030
1031 **application/(% style="color:red" %)Application ID(%%)/device/(% style="color:red" %)End device ID(%%)/event/up**
1032
1033 Reference link: [[**Node-RED integration** >>https://www.chirpstack.io/docs/guides/node-red-integration.html]]
1034
1035 [[image:image-20230527143923-1.png||height="588" width="1132"]]
1036
1037
1038 (% style="color:blue" %)**2. Enter the MQTT configuration information**
1039
1040 [[image:image-20230527144206-2.png||height="590" width="1136"]]
1041
1042
1043 (% style="color:blue" %)**3.** **Finally, click "Update" and Deploy**
1044
1045 "Connected" indicates that the Link Node-red to Local Chirpstack is normal.
1046
1047 [[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"]]
1048
1049
1050 == 13.2 Check result. ==
1051
1052
1053 Users can check logs by adding debug.
1054
1055 Browser access: **Node-Red-Server-Address:1880/ui**
1056
1057 [[image:image-20230529150923-1.png||height="424" width="1118"]]
1058
1059
1060 = 14.  Trouble Shooting =
1061
1062 == 14.1  MIC Mismatch or MIC Failed ==
1063
1064
1065 (((
1066 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
1067 )))
1068
1069 (((
1070 Under normal circumstances, users need to change the APPKEY to solve this problem.
1071
1072
1073 == 14.2  The node is very close to the gateway, but the signal is poor ==
1074
1075
1076 If you are using US915 or AU915, you found the frequency points of different subband ranges in your uplink
1077
1078 Like that:Both 905.1Mhz and 902.3Mhz appear on uplink
1079 But they belong to Subband1 and Subband2 of US915 respectively
1080
1081 Cause: The server and the gateway use different frequency bands (the server uses Subband1, and the gateway uses Subband2)
1082
1083 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.
1084
1085 How to check the frequency band used by the server:
1086
1087 You can view the information sent by the server: ch_mask in Unconfirmdedatadown
1088
1089 [[image:image-20230821113255-1.png]]
1090
1091 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.
1092
1093 [[image:image-20230821113539-2.png]]
1094
1095 In the second message, the channel 0~~7 is true, which means that your server is using subband2.
1096
1097 [[image:image-20230821113618-3.png]]
1098
1099 **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]]**
1100
1101
1102 == 14.3  ChirpStackv4 node device displays "UPLINK_F_CNT_RETRANSMISSION" ==
1103
1104
1105 This is because the node's packets are retransmitted, and the Fcnt of these packets is the same.
1106
1107 The user can Disable frame-counter validation on the chirpstack node and this warning message will not appear in the logs.
1108
1109
1110 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.
1111
1112
1113 **The possible reasons are: **
1114
1115 ~1. The signal of the node device and the gateway is not good
1116
1117 2. Too many node devices affect the downlink of the gateway
1118
1119
1120 [[image:image-20240717085339-1.jpeg]]
1121
1122
1123 * **Disable frame-counter validation**
1124
1125 [[image:image-20240717102613-5.png||height="803" width="1211"]]
1126
1127
1128 * **Result**
1129
1130 [[image:image-20240717092428-4.jpeg]]
1131
1132
1133 == 14.4  How to get the log information of the node? ==
1134
1135
1136 ~1. Get information about a single node.
1137
1138 * Download this file in the node's live data interface.
1139
1140 [[image:image-20240117173123-1.png||height="526" width="1086"]]
1141
1142 * The LoRaWAN frames download gateway receives real-time data from the current node.
1143
1144 [[image:image-20240117174452-2.png||height="525" width="1081"]]
1145
1146
1147 2. Get information about the entire Gateway.
1148
1149 * Click to select the online gateway of the current node.
1150
1151 [[image:image-20240117175058-4.png||height="532" width="1077"]]
1152
1153
1154 * Download this file on the LoRaWAN frames interface.
1155
1156 [[image:image-20240117175009-3.png||height="524" width="1076"]]
1157
1158
1159 After the data collection is completed, you can send this file directly to our technical support personnel for analysis.
1160
1161
1162 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.
1163
1164 [[image:image-20240117175738-5.png]]
1165
1166 (% class="wikigeneratedid" id="H" %)
1167
1168 )))