Changes for page Notes for ChirpStack
Last modified by Edwin Chen on 2025/01/30 09:53
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 10 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Xiaoling1 +XWiki.Kilight - Content
-
... ... @@ -1,4 +1,4 @@ 1 -**~ Contents:** 1 +**~ Table of Contents:** 2 2 3 3 {{toc/}} 4 4 ... ... @@ -5,17 +5,20 @@ 5 5 6 6 7 7 8 -= 1. Introduction = 8 += 1. Introduction = 9 9 10 + 10 10 (% 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/]] 11 11 12 12 ((( 13 13 (% style="color:black" %)The dragino gateway can connect the ChirpStack server via Semtech UDP or Semtech Basic Station. 15 + 16 + 14 14 ))) 15 15 16 -**Prerequisite** 19 +(% style="color:blue" %)**Prerequisite:** 17 17 18 -1) Have a Chirstack Server. 21 +**1) Have a Chirstack Server.** 19 19 20 20 [[image:image-20220525100058-1.png]] 21 21 ... ... @@ -22,47 +22,55 @@ 22 22 ChirpStack home page 23 23 24 24 25 -2) Gateway model support 26 26 29 +**2) Gateway model support** 30 + 27 27 (% class="box" %) 28 28 ((( 29 29 ((( 30 30 Semtech UDP : **All Model** 31 -Basic Station : , , 32 -**Note** 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 33 33 ))) 34 34 ))) 35 35 36 36 37 37 38 -= 2. Semtech UDP = 42 += 2. Semtech UDP = 39 39 40 -== 2.1 Step 1. Add the Network-servers == 44 +== 2.1 Step 1. Add the Network-servers == 41 41 46 + 42 42 The network-Servers address varies depending on the ChirpStack server setup environment 43 43 44 44 (% class="box" %) 45 45 ((( 46 - Windows ~-~->Network-server server * : localhost:8000 47 - Linux 51 + Windows ~-~-> Network-server server * : localhost:8000 52 + Linux ~-~-> Network-server server * : chirpstack-network-server:8000 48 48 ))) 49 49 50 -If the user cannot add network-Servers, re-check the ChirpStack code or the server building process. 51 51 56 +(% style="color:red" %)**If the user cannot add network-Servers, re-check the ChirpStack code or the server building process.** 57 + 58 + 52 52 [[image:image-20220531171609-1.png]] 53 53 54 54 Add the Network-servers 55 55 56 56 57 -== 2.2 Step 2. Create Gateway-profiles == 58 58 65 +== 2.2 Step 2. Create Gateway-profiles == 66 + 67 + 59 59 [[image:image-20220531171651-2.png]] 60 60 61 61 Create Gateway-profiles 62 62 63 63 64 -== 2.3 Step 3. Create Service-profiles == 65 65 74 +== 2.3 Step 3. Create Service-profiles == 75 + 76 + 66 66 [[image:image-20220531171809-3.png]] 67 67 68 68 Create Service-profiles ... ... @@ -75,29 +75,37 @@ 75 75 If the user has completed the preceding steps, proceed to the next step.(% style="display:none" %) 76 76 77 77 78 -== 2.4 Step 4. Add the gateway == 79 79 90 +== 2.4 Step 4. Add the gateway == 91 + 92 + 80 80 The example gateway id is: a840411e96744150 81 81 82 82 ((( 83 83 (% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.** 97 + 98 + 84 84 ))) 85 85 86 86 [[image:image-20220531171923-4.png]](% style="display:none" %) 87 87 88 - 89 89 Add the gateway 90 90 105 + 106 + 91 91 [[image:image-20220531172031-5.png]] 92 92 93 93 Configure the gateway 94 94 95 95 96 -== 2.5 Step 5. Checking gateway Status == 97 97 113 +== 2.5 Step 5. Checking gateway Status == 114 + 115 + 98 98 [[image:image-20220531172158-6.png]](% style="display:none" %) 99 99 100 100 119 + 101 101 gateway Status 102 102 103 103 [[image:image-20220531172304-7.png]] ... ... @@ -105,39 +105,46 @@ 105 105 gateway Status 106 106 107 107 108 -= 3. Gateway Registration for Basics Station = 109 109 110 -= =3.1Introduction ==128 += 3. Gateway Registration for Basics Station = 111 111 130 +== 3.1 Introduction == 131 + 132 + 112 112 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. 113 113 114 114 ChirpStack Open-Source LoRaWAN® Network Server needs to set up a configuration that can use Semtech BasicStation. 115 115 116 -**Below list the support products and Requirements:** 117 117 138 +(% style="color:blue" %)**Below list the support products and Requirements:** 139 + 118 118 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]] 119 119 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/]] 120 120 121 -**How to set up chirpStack Basic Station** 143 +(% style="color:blue" %)**How to set up chirpStack Basic Station** 122 122 123 123 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]] 124 124 125 -**What do you need to prepare** 126 126 148 +(% style="color:blue" %)**What do you need to prepare** 149 + 127 127 A gateway that can access the internet normally 128 128 129 129 130 -== 3.2 Add Gateway == 153 +== 3.2 Add Gateway == 131 131 155 + 132 132 [[image:image-20220524164205-10.png]] 133 133 134 134 135 -== 3.3 Access the gateway GUI == 159 +== 3.3 Access the gateway GUI == 136 136 161 + 137 137 Access the gateway GUI interface of LoRaWAN~-~->LoRaWAN ~-~- Basic Station 138 138 139 139 [[image:image-20220524164319-11.png]] 140 140 166 + 141 141 User need to Choose the ChirpStack/Senet ~-~- Basic Station , input Server URI and Upload the TLS Certificate 142 142 143 143 (% class="box" %) ... ... @@ -153,20 +153,23 @@ 153 153 [[image:image-20220524164341-12.png]] 154 154 155 155 156 -== 3.4 Start Station == 182 +== 3.4 Start Station == 157 157 158 -When the user has finished the configuration, Please click Sace&Apply to start station to connect ChirpStack 159 159 185 +When the user has finished the configuration, Please click **Sace&Apply** to start station to connect ChirpStack. 160 160 161 -== 3.5 Successful Connection == 162 162 188 +== 3.5 Successful Connection == 189 + 190 + 163 163 If user completes the above steps, which will see live date in the ChirpStack. 164 164 165 165 [[image:image-20220524164448-13.png]] 166 166 167 167 168 -== 3.6 Trouble Shooting == 196 +== 3.6 Trouble Shooting == 169 169 198 + 170 170 User can check the station log in the logread/system log page. 171 171 172 172 [[image:image-20220531172837-8.png]] ... ... @@ -177,31 +177,75 @@ 177 177 [[image:image-20220531172857-9.png]] 178 178 179 179 180 -= 4. Downlink =209 += 4. How the gateway connects to Chirpstack v4 via gateway-bridge = 181 181 182 -== 4.1 Chirpstack Downlink Note == 183 183 212 +=== 4.1 Configure Packet Forwarder === 213 + 214 +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 215 + 216 +* In the **LoRaWAN** menu, click on **LoRaWAN ~-~- Semtech UDP** 217 +* Make sure the following settings are set: 218 +** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-// 219 +** **LoRaWAN Server Address:** //localhost or 127.0.0.1// 220 +** **Server port for upstream:** //1700// 221 +** **Server port for downstream:** //1700// 222 + 223 + Click **Save & Apply**. 224 + 225 +[[image:image-20221222114220-2.png||height="748" width="931"]] 226 + 227 + 228 +4.2 229 + 230 +[[image:image-20221222113302-1.png]] 231 + 232 += 5. Downlink = 233 + 234 +== 5.1 Convert HEX to Base64 == 235 + 236 + 237 +(% style="color:red" %)**Note: Chirpstack uses base64 to downlink, the end node user manual provides HEX format of the downlink commands. So user needs to convert the HEX to Base64.** 238 + 239 +**[[Online HEX to Base64 Converter>>https://base64.guru/converter/encode/hex]]:** 240 + 241 +[[image:image-20221010193350-1.png]] 242 + 243 + 244 + 245 +**[[Online Base64 to Hex converter>>https://base64.guru/converter/decode/hex]]** 246 + 247 +[[image:image-20221010193621-2.png]] 248 + 249 + 250 +== 5.2 Chirpstack Downlink Note == 251 + 252 + 184 184 [[image:image-20220601102543-2.png]] 185 185 186 -Convert the data to Base64 255 +**Convert the data to Base64** 187 187 257 +(% style="display:none" %) (%%) 188 188 189 -[[image:image-20220531173236-10.png]] 190 190 191 - Check ChripStackdownlink DataRate260 +[[image:image-20220531173236-10.png||height="597" width="1215"]] 192 192 262 +**Check ChripStack downlink DataRate** 193 193 264 + 265 + 194 194 [[image:image-20220525101326-11.png]] 195 195 196 -Make sure the RX2DR is the same in the end node 268 +**Make sure the RX2DR is the same in the end node** 197 197 198 198 199 -== 4.2Loraserver Downlink Note ==271 +== 5.3 Loraserver Downlink Note == 200 200 273 + 201 201 User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End 202 202 203 203 ((( 204 -Below is examples: 277 +**Below is examples:** 205 205 ))) 206 206 207 207 (% class="box" %) ... ... @@ -215,13 +215,14 @@ 215 215 [[image:image-20220531173419-11.png]] 216 216 217 217 ((( 218 -MQTT Connect to ChirpStack 291 +**MQTT Connect to ChirpStack** 219 219 293 + 220 220 221 221 ))) 222 222 223 223 ((( 224 -After connect 298 +**After connect** 225 225 ))) 226 226 227 227 (% class="box" %) ... ... @@ -241,22 +241,14 @@ 241 241 242 242 [[image:image-20220531173519-12.png]] 243 243 244 -MQTT Connect to ChirpStack 318 +**MQTT Connect to ChirpStack** 245 245 246 246 247 -((( 248 -(% style="color:red" %)Note: Chirpstack use base64 to downlink, so need to convert the downlink payload from HEX to base64 [[https:~~/~~/base64.us/>>url:https://base64.us/]] 249 -))) 321 +**If we want to send downstream hex 030101 to end node, the BASE64 payload is AwEB** 250 250 251 -[[image:image-20220531173601-13.png]] 252 - 253 -Choose to Use Hex for Encode 254 - 255 - 256 -If we want send downstream hex 030101 to end node, the BASE64 payload is AwEB 257 - 258 258 [[image:image-20220531173658-14.png]] 259 259 325 + 260 260 ((( 261 261 Downlink payload encode javescript code: 可以在网站上运行以下Javsscript代码: 262 262 ))) ... ... @@ -274,15 +274,15 @@ 274 274 { 275 275 if(sha1[n] >= 'A' && sha1[n] <= 'Z') 276 276 { 277 - ascv = sha1.charCodeAt(n) - 55; 343 + ascv = sha1.charCodeAt( n ) - 55; 278 278 } 279 279 else if(sha1[n] >= 'a' && sha1[n] <= 'z') 280 280 { 281 - ascv = sha1.charCodeAt(n) - 87; 347 + ascv = sha1.charCodeAt( n ) - 87; 282 282 } 283 283 else 284 284 { 285 - ascv = sha1.charCodeAt(n) - 48; 351 + ascv = sha1.charCodeAt( n ) - 48; 286 286 } 287 287 \\ bit_arr = (bit_arr << 4) | ascv; 288 288 bit_num += 4; ... ... @@ -319,11 +319,13 @@ 319 319 ))) 320 320 321 321 322 -== 4.3 Add the decode function in Chirpstack for the payload == 323 323 389 +== 4.3 Add the decode function in Chirpstack for the payload == 390 + 391 + 324 324 User enters the payload code according to the steps. 325 325 326 -[[image:image-20220531173754-15.png]] 394 +[[image:image-20220531173754-15.png||height="474" width="1334"]] 327 327 328 328 329 329 [[image:image-20220531173856-16.png]] ... ... @@ -334,8 +334,9 @@ 334 334 [[image:image-20220531174046-19.png]] 335 335 336 336 337 -= 5. Multiply Uplink in ChirpStack =405 += 6. Multiply Uplink in ChirpStack = 338 338 407 + 339 339 ((( 340 340 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data. 341 341 ))) ... ... @@ -342,12 +342,17 @@ 342 342 343 343 ((( 344 344 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]] 414 + 415 + 345 345 ))) 346 346 347 -[[image:image-20220526091912-7.png]] 418 +[[image:image-20220526091912-7.png||height="241" width="1336"]] 348 348 420 + 349 349 ((( 350 350 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame. 423 + 424 + 351 351 ))) 352 352 353 353 [[image:image-20220525104359-21.png]] ... ... @@ -354,6 +354,8 @@ 354 354 355 355 ((( 356 356 Above behaviour will cause the platform shows below two cases of error: 431 + 432 + 357 357 ))) 358 358 359 359 ((( ... ... @@ -363,29 +363,36 @@ 363 363 [[image:image-20220525104437-22.png]] 364 364 365 365 366 -Duplicate transmission in short time 367 367 368 - [[image:image-20220601102430-1.png]]443 +**Duplicate transmission in short time** 369 369 445 +[[image:image-20220601102430-1.png||height="598" width="1319"]] 370 370 371 -== 5.1 Solution == 372 372 448 + 449 +== 6.1 Solution == 450 + 451 + 373 373 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]] 374 374 454 + 375 375 ((( 376 -~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. 456 +(% 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.** 457 + 458 + 377 377 ))) 378 378 379 379 [[image:image-20220525104532-24.png]] 380 380 381 381 382 -installation path: 464 +**installation path:** 383 383 384 384 [[image:image-20220525104554-25.png]] 385 385 386 386 469 + 387 387 ((( 388 -2. Environment variable settings: .471 +(% style="color:blue" %)**2. Environment variable settings:** 389 389 ))) 390 390 391 391 ((( ... ... @@ -393,13 +393,13 @@ 393 393 ))) 394 394 395 395 ((( 396 -2)Set the variable name GOROOT and the variable value C:\Go\ (installation directory) 479 +2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory) 397 397 ))) 398 398 399 399 [[image:image-20220524165433-33.png]] 400 400 401 401 402 -3)Modify the system variable Path and add C:\Go\bin\: 485 +3) Modify the system variable Path and add C:\Go\bin\: 403 403 404 404 [[image:image-20220524165452-34.png]] 405 405 ... ... @@ -409,8 +409,9 @@ 409 409 [[image:image-20220524165517-35.png]] 410 410 411 411 412 -3. Modify the ADR configuration file according to your own needs, adr.setting.go is an example of the ADR configuration file. 413 413 496 +(% 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.** 497 + 414 414 The name of the plugin: Example ADR plugin: 415 415 416 416 [[image:image-20220524165540-36.png]] ... ... @@ -420,8 +420,9 @@ 420 420 [[image:image-20220524165557-37.png]] 421 421 422 422 423 -4. Compile the ADR configuration file and generate the exe file. 424 424 508 +(% style="color:blue" %)**4. Compile the ADR configuration file and generate the exe file.** 509 + 425 425 1) Create a folder named adr-setting 426 426 427 427 2) Open the adr-setting folder ... ... @@ -445,8 +445,9 @@ 445 445 [[image:image-20220524165623-38.png]] 446 446 447 447 448 -5. Add the plugin and run the plugin. 449 449 534 +(% style="color:blue" %)**5. Add the plugin and run the plugin.** 535 + 450 450 ((( 451 451 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: 452 452 ))) ... ... @@ -482,11 +482,61 @@ 482 482 Finish. 483 483 484 484 485 -= 6.TroubleShooting =571 += 7. How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. = 486 486 487 -== 6.1 MIC Mismatch or MIC Failed == 488 488 574 +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. 575 + 576 +This example will be shown how to store/get all the data in two ways: 577 + 578 +**//1). Chirpstack ~-~-> Node-red//** 579 + 580 + 581 +[[image:image-20221012184501-1.png]] 582 + 583 + 584 +Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file 585 + 586 +[[image:image-20221012174220-2.png]] 587 + 588 + 589 +[[image:image-20221012184655-3.png||height="395" width="1049"]] 590 + 591 + 592 +**Each message is continuously logged to a specified file** 593 + 594 +[[image:image-20221012174352-3.png]] 595 + 596 + 597 +**//2). MQTT Sub//** 598 + 599 +If you don't want to store the information via node-red, you can get the output via the subscribe command. 600 + 601 + 602 +**If connecting from the same machine, you can use the following command to receive data:** 603 + 604 +(% class="box infomessage" %) 489 489 ((( 606 +mosquitto_sub -h localhost -t "application/#" -v 607 +))) 608 + 609 + 610 +**Different host** 611 + 612 +(% class="box infomessage" %) 613 +((( 614 +mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v 615 +))) 616 + 617 +[[image:image-20221012173639-1.png]] 618 + 619 + 620 += 8. Trouble Shooting = 621 + 622 +== 8.1 MIC Mismatch or MIC Failed == 623 + 624 + 625 +((( 490 490 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs. 491 491 ))) 492 492
- image-20221010193350-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +42.7 KB - Content
- image-20221010193621-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +34.2 KB - Content
- image-20221012173639-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoye - Size
-
... ... @@ -1,0 +1,1 @@ 1 +56.2 KB - Content
- image-20221012174220-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoye - Size
-
... ... @@ -1,0 +1,1 @@ 1 +14.8 KB - Content
- image-20221012174352-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoye - Size
-
... ... @@ -1,0 +1,1 @@ 1 +93.0 KB - Content
- image-20221012184501-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoye - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.3 KB - Content
- image-20221012184631-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoye - Size
-
... ... @@ -1,0 +1,1 @@ 1 +32.4 KB - Content
- image-20221012184655-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoye - Size
-
... ... @@ -1,0 +1,1 @@ 1 +45.4 KB - Content
- image-20221222113302-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +76.3 KB - Content
- image-20221222114220-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +64.3 KB - Content