<
From version < 1.2 >
edited by Xiaoling
on 2022/05/16 11:21
To version < 13.1 >
edited by Xiaoling
on 2022/05/24 16:40
>
Change comment: Uploaded new attachment "image-20220524164008-5.png", version {1}

Summary

Details

Page properties
Content
... ... @@ -1,4 +1,4 @@
1 -**Contents:**
1 +**~ Contents:**
2 2  
3 3  {{toc/}}
4 4  
... ... @@ -6,14 +6,17 @@
6 6  
7 7  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/]]
8 8  
9 +(((
9 9  The dragino gateway can connect the ChirpStack server via Semtech UDP or Semtech Basic Station.
11 +)))
10 10  
11 11  **Prerequisite**
12 12  
13 13  1) Have a Chirstack Server.
14 14  
15 -[[image:https://wiki.dragino.com/images/thumb/f/f4/ChirpStack_home_page.png/600px-ChirpStack_home_page.png||height="320" width="600"]]
17 +[[image:image-20220524163736-2.png]]
16 16  
19 +
17 17  ChirpStack home page
18 18  
19 19  2) Gateway model support
... ... @@ -20,10 +20,12 @@
20 20  
21 21  (% class="box" %)
22 22  (((
26 +(((
23 23  Semtech UDP : **All Model**
24 24  Basic Station : , , 
25 25  **Note** : the firmware needs >  if use the Bais station
26 26  )))
31 +)))
27 27  
28 28  = 2. Semtech UDP =
29 29  
... ... @@ -31,31 +31,33 @@
31 31  
32 32  The network-Servers address varies depending on the ChirpStack server setup environment
33 33  
34 -{{{ Windows -->Network-server server * : localhost:8000
35 - Linux -->Network-server server * : chirpstack-network-server:8000
36 -}}}
39 +(% class="box" %)
40 +(((
41 + Windows       ~-~->Network-server server * : localhost:8000
42 + Linux         ~-~->Network-server server * : chirpstack-network-server:8000
43 +)))
37 37  
38 38  If the user cannot add network-Servers, re-check the ChirpStack code or the server building process.
39 39  
40 -[[image:https://wiki.dragino.com/images/thumb/6/6b/Add_the_Network-servers.png/600px-Add_the_Network-servers.png||height="363" width="600"]]
47 +[[image:https://wiki.dragino.com/images/thumb/6/6b/Add_the_Network-servers.png/600px-Add_the_Network-servers.png||height="424" width="700"]]
41 41  
42 42  Add the Network-servers
43 43  
44 44  == 2.2 Step 2. Create Gateway-profiles ==
45 45  
46 -[[image:https://wiki.dragino.com/images/thumb/a/a9/Create_Gateway-profiles.png/600px-Create_Gateway-profiles.png||height="363" width="600"]]
53 +[[image:https://wiki.dragino.com/images/thumb/a/a9/Create_Gateway-profiles.png/600px-Create_Gateway-profiles.png||height="424" width="700"]]
47 47  
48 48  Create Gateway-profiles
49 49  
50 50  == 2.3 Step 3. Create Service-profiles ==
51 51  
52 -[[image:https://wiki.dragino.com/images/thumb/1/1f/Create_Service-profiles.png/600px-Create_Service-profiles.png||height="363" width="600"]]
59 +[[image:https://wiki.dragino.com/images/thumb/1/1f/Create_Service-profiles.png/600px-Create_Service-profiles.png||height="424" width="700"]]
53 53  
54 54  Create Service-profiles
55 55  
56 56  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.
57 57  
58 -Note : Before add the gateway, the user needs to complete the preceding three steps.
65 +(% style="color:red" %)**Note : Before add the gateway, the user needs to complete the preceding three steps.**
59 59  
60 60  If the user has completed the preceding steps, proceed to the next step.
61 61  
... ... @@ -63,37 +63,103 @@
63 63  
64 64  The example gateway id is: a840411e96744150
65 65  
66 -Note : The Gateway EUI and server addresses must match the ChirpStack configuration.
73 +(((
74 +(% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.**
75 +)))
67 67  
68 -[[image:https://wiki.dragino.com/images/thumb/c/c6/Add_the_gateway.png/600px-Add_the_gateway.png||height="363" width="600"]]
77 +[[image:https://wiki.dragino.com/images/thumb/c/c6/Add_the_gateway.png/600px-Add_the_gateway.png||height="424" width="700"]]
69 69  
70 70  Add the gateway
71 71  
72 -[[image:https://wiki.dragino.com/images/thumb/1/14/ChirpStack_Configure_the_gateway.png/600px-ChirpStack_Configure_the_gateway.png||height="304" width="600"]]
81 +[[image:https://wiki.dragino.com/images/thumb/1/14/ChirpStack_Configure_the_gateway.png/600px-ChirpStack_Configure_the_gateway.png||height="355" width="700"]]
73 73  
74 74  Configure the gateway
75 75  
76 76  == 2.5 Step 5. Checking gateway Status ==
77 77  
78 -[[image:https://wiki.dragino.com/images/thumb/2/2c/Gateway_Status_cao_1.png/600px-Gateway_Status_cao_1.png||height="363" width="600"]]
87 +[[image:https://wiki.dragino.com/images/thumb/2/2c/Gateway_Status_cao_1.png/600px-Gateway_Status_cao_1.png||height="424" width="700"]]
79 79  
80 80  gateway Status
81 81  
82 -[[image:https://wiki.dragino.com/images/thumb/1/11/Gateway_Status_cao_2.png/600px-Gateway_Status_cao_2.png||height="363" width="600"]]
91 +[[image:https://wiki.dragino.com/images/thumb/1/11/Gateway_Status_cao_2.png/600px-Gateway_Status_cao_2.png||height="424" width="700"]]
83 83  
84 84  gateway Status
85 85  
86 -= 3. Semtech Basic Station =
95 += 3. Gateway Registration for Basics Station =
87 87  
97 +== Introduction ==
98 +
99 +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.
100 +
101 +ChirpStack Open-Source LoRaWAN® Network Server needs to set up a configuration that can use Semtech BasicStation.
102 +
103 +**Below list the support products and Requirements:**
104 +
105 +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]]
106 +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/]]
107 +
108 +**How to set up chirpStack Basic Station**
109 +
110 +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]]
111 +
112 +**What do you need to prepare**
113 +
114 +A gateway that can access the internet normally
115 +
116 +== 3.1 Add Gateway ==
117 +
118 +[[image:image-20220519152235-5.png||height="338" width="699"]]
119 +
120 +
121 +== 3.2 Access the gateway GUI ==
122 +
123 +Access the gateway GUI interface of LoRaWAN~-~->LoRaWAN ~-~- Basic Station
124 +
125 +[[image:image-20220519151612-4.png||height="208" width="700"]]
126 +
127 +User need to Choose the ChirpStack/Senet ~-~- Basic Station , input Server URI and Upload the TLS Certificate
128 +
129 +(% class="box" %)
130 +(((
131 +Service Provider  ~-~->  Choose the ChirpStack/Senet ~-~- Basic Station
132 +
133 +LNS URI  ~-~->  Enter the LNS URI address, For example : wss:~/~/xxxx.chirpstack.com:433 or ws:~/~/xxxx.chirpstack.com:3001
134 +
135 +LNS TLS trust  ~-~->  Upload the TLS Certificate
136 +)))
137 +
138 +(% class="wikigeneratedid" %)
139 +[[image:image-20220519153027-6.png||height="371" width="704"]]
140 +
141 +== 3.3 Start Station ==
142 +
143 +When the user has finished the configuration, Please click Sace&Apply to start station to connect ChirpStack
144 +
145 +== 3.4 Successful Connection ==
146 +
147 +If user completes the above steps, which will see live date in the ChirpStack.
148 +
149 +[[image:image-20220519154215-7.png||height="400" width="707"]]
150 +
151 +== 3.5 Trouble Shooting ==
152 +
153 +User can check the station log in the logread/system log page.
154 +
155 +[[image:https://wiki.dragino.com/images/thumb/7/7c/Station_log_xiao.png/600px-Station_log_xiao.png]]
156 +
157 +and recode the station log in the system/Recode log page.
158 +
159 +[[image:https://wiki.dragino.com/images/thumb/5/50/Recore_log_xiao.png/600px-Recore_log_xiao.png]]
160 +
88 88  = 4. Downlink =
89 89  
90 90  == 4.1 Chirpstack Downlink Note ==
91 91  
92 -[[image:https://wiki.dragino.com/images/thumb/b/ba/ChirpStack_Down_5.png/600px-ChirpStack_Down_5.png||height="293" width="600"]]
165 +[[image:https://wiki.dragino.com/images/thumb/b/ba/ChirpStack_Down_5.png/600px-ChirpStack_Down_5.png||height="342" width="700"]]
93 93  
94 94  Convert the data to Base64
95 95  
96 -[[image:https://wiki.dragino.com/images/thumb/2/2c/ChirpStack_Down_6.png/600px-ChirpStack_Down_6.png||height="300" width="600"]]
169 +[[image:https://wiki.dragino.com/images/thumb/2/2c/ChirpStack_Down_6.png/600px-ChirpStack_Down_6.png||height="349" width="697"]]
97 97  
98 98  Check ChripStack downlink DataRate
99 99  
... ... @@ -105,37 +105,51 @@
105 105  
106 106  User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End
107 107  
181 +(((
108 108  Below is examples:
183 +)))
109 109  
110 -{{{Connect to your server via MQTT:
111 -MQTT Client ID: Any
112 -Protocol:mqtt/tcp Server IP:loraserver_ip:1883
185 +(% class="box" %)
186 +(((
187 +Connect to your server via MQTT:
188 +MQTT Client ID: Any   
189 +Protocol:mqtt/tcp   Server IP:loraserver_ip:1883
113 113  User name: User name Password: password
114 -}}}
191 +)))
115 115  
116 116  [[image:https://wiki.dragino.com/images/thumb/0/06/ChirpStack_Down_1.png/600px-ChirpStack_Down_1.png||height="578" width="600"]]
117 117  
195 +(((
118 118  MQTT Connect to ChirpStack
197 +)))
119 119  
199 +(((
120 120  After connect
201 +)))
121 121  
122 -{{{Subscribe : Format:application/ID/device/ Device EUI/rx
203 +(% class="box" %)
204 +(((
205 +Subscribe : Format:application/ID/device/ Device EUI/rx
123 123  Example: application/7/device/00aedb3da649cb23/rx
207 +)))
124 124  
125 -Publish:
209 +(% class="box" %)
210 +(((
211 +Publish:
126 126  Format: Top: application/ID/device/ Device EUI/tx
127 127  Payload: {"confirmed":true or false,"fPort":XX,"data":"xxxx"}
128 128  Example: Top: application/7/device/00aedb3da649cb23/tx
129 129  Payload: {"confirmed":true,"fPort":2,"data":"AwEB"}
130 -}}}
216 +)))
131 131  
132 132  [[image:https://wiki.dragino.com/images/thumb/c/c8/ChirpStack_Down_2.png/600px-ChirpStack_Down_2.png||height="342" width="600"]]
133 133  
134 134  MQTT Connect to ChirpStack
135 135  
222 +(((
223 +(% 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/]]
224 +)))
136 136  
137 -Note: Chirpstack use base64 to downlink, so need to convert the downlink payload from HEX to base64 [[https:~~/~~/base64.us/>>url:https://base64.us/]]
138 -
139 139  [[image:https://wiki.dragino.com/images/thumb/f/f8/ChirpStack_Down_3.png/600px-ChirpStack_Down_3.png||height="309" width="600"]]
140 140  
141 141  Choose to Use Hex for Encode
... ... @@ -144,9 +144,13 @@
144 144  
145 145  [[image:https://wiki.dragino.com/images/thumb/d/d2/ChirpStack_Down_4.png/600px-ChirpStack_Down_4.png||alt="ChirpStack Down 4.png" height="344" width="600"]]
146 146  
234 +(((
147 147  Downlink payload encode javescript code: 可以在网站上运行以下Javsscript代码:
236 +)))
148 148  
149 -{{{function sha1_to_base64(sha1)
238 +(% class="box" %)
239 +(((
240 +function sha1_to_base64(sha1)
150 150  {
151 151   var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
152 152   var base64_rep = "";
... ... @@ -153,8 +153,7 @@
153 153   var cnt = 0;
154 154   var bit_arr = 0;
155 155   var bit_num = 0;
156
157 - for(var n = 0; n < sha1.length; ++n)
247 +\\ for(var n = 0; n < sha1.length; ++n)
158 158   {
159 159   if(sha1[n] >= 'A' && sha1[n] <= 'Z')
160 160   {
... ... @@ -168,26 +168,22 @@
168 168   {
169 169   ascv = sha1.charCodeAt(n) - 48;
170 170   }
171
172 - bit_arr = (bit_arr << 4) | ascv;
261 +\\ bit_arr = (bit_arr << 4) | ascv;
173 173   bit_num += 4;
174 174   if(bit_num >= 6)
175 175   {
176 - bit_num -= 6;
265 + bit_num -= 6;        
177 177   base64_rep += digits[bit_arr >>> bit_num];
178 - bit_arr &= ~(-1 << bit_num);
267 + bit_arr &= ~~(-1 << bit_num);
179 179   }
180 180   }
181
182 - if(bit_num > 0)
270 +\\ if(bit_num > 0)
183 183   {
184 184   bit_arr <<= 6 - bit_num;
185 185   base64_rep += digits[bit_arr];
186 186   }
187
188 - var padding = base64_rep.length % 4;
189
190 - if(padding > 0)
275 +\\ var padding = base64_rep.length % 4;   
276 +\\ if(padding > 0)
191 191   {
192 192   for(var n = 0; n < 4 - padding; ++n)
193 193   {
... ... @@ -196,17 +196,15 @@
196 196   }
197 197   return base64_rep;
198 198  }
199
200 -console.log(sha1_to_base64("data"));
201
202 -data is downlink payload required by end node.
203 - e.g console.log(sha1_to_base64("030101"));
204 - ​result: AwEB
285 +\\console.log(sha1_to_base64("data"));
286 +\\data is downlink payload required by end node.
287 +e.g console.log(sha1_to_base64("030101"));
288 + ​result: AwEB     
205 205   AwEB is the 0x030101's base 64 Encode.
206 - 
207 - ​e.g console.log(sha1_to_base64("030000"));
208 - ​result: AwAA
209 - AwAA is 0x030000's base 64 Encode.}}}
290 +\\​e.g console.log(sha1_to_base64("030000"));
291 + result: AwAA     
292 + AwAA is 0x030000's base 64 Encode.
293 +)))
210 210  
211 211  == 4.3 Add the decode function in Chirpstack for the payload ==
212 212  
... ... @@ -222,21 +222,29 @@
222 222  
223 223  = 5. Multiply Uplink in ChirpStack =
224 224  
309 +(((
225 225  nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
311 +)))
226 226  
227 -
313 +(((
228 228  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]]
315 +)))
229 229  
230 230  [[image:https://wiki.dragino.com/images/thumb/6/63/Nbtrans_1.png/600px-Nbtrans_1.png||alt="Nbtrans 1.png" height="103" width="600"]]
231 231  
319 +(((
232 232  nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
321 +)))
233 233  
234 234  [[image:https://wiki.dragino.com/images/thumb/1/17/Nbtrans_2.png/300px-Nbtrans_2.png||alt="Nbtrans 2.png" height="462" width="300"]]
235 235  
236 -
325 +(((
237 237  Above behaviour will cause the platform shows below two cases of error:
327 +)))
238 238  
329 +(((
239 239  Error of duplicate Frame Counter
331 +)))
240 240  
241 241  [[image:https://wiki.dragino.com/images/7/7e/Nbtrans_3.png||alt="Nbtrans 3.png" height="677" width="600"]]
242 242  
... ... @@ -248,7 +248,9 @@
248 248  
249 249  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]]
250 250  
343 +(((
251 251  ~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.
345 +)))
252 252  
253 253  [[image:https://wiki.dragino.com/images/3/37/Chirpstacksolution-1.png||alt="Chirpstacksolution-1.png" height="199" width="554"]]
254 254  
... ... @@ -256,11 +256,17 @@
256 256  
257 257  [[image:https://wiki.dragino.com/images/c/ca/Chirpstacksolution-2.png||alt="Chirpstacksolution-2.png" height="283" width="361"]]
258 258  
353 +(((
259 259  2. Environment variable settings:.
355 +)))
260 260  
357 +(((
261 261  1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
359 +)))
262 262  
361 +(((
263 263  2)Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
363 +)))
264 264  
265 265  [[image:https://wiki.dragino.com/images/f/f9/Chirpstacksolution-3.png||alt="Chirpstacksolution-3.png" height="152" width="554"]]
266 266  
... ... @@ -308,17 +308,35 @@
308 308  
309 309  5. Add the plugin and run the plugin.
310 310  
411 +(((
311 311  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:
413 +)))
312 312  
313 313  [[image:https://wiki.dragino.com/images/8/82/Chirpstacksolution-9.png||alt="Chirpstacksolution-9.png" height="73" width="554"]]
314 314  
417 +(((
418 +(((
315 315  For example: adr_plugins=[“adr-setting”]
420 +)))
421 +)))
316 316  
317 -* Adding a single plugin format is adr_plugins=["filename"]
423 +* (((
424 +(((
425 +Adding a single plugin format is adr_plugins=["filename"]
426 +)))
427 +)))
318 318  
319 -* Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
429 +* (((
430 +(((
431 +Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
432 +)))
433 +)))
320 320  
435 +(((
436 +(((
321 321  Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
438 +)))
439 +)))
322 322  
323 323  [[image:https://wiki.dragino.com/images/3/39/Chirpstacksolution-10.png||alt="Chirpstacksolution-10.png" height="275" width="554"]]
324 324  
... ... @@ -328,6 +328,10 @@
328 328  
329 329  == 6.1 MIC Mismatch or MIC Failed ==
330 330  
449 +(((
331 331  When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
451 +)))
332 332  
453 +(((
333 333  Under normal circumstances, users need to change the APPKEY to solve this problem.
455 +)))
image-20220519150940-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +644.9 KB
Content
image-20220519151038-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +680.5 KB
Content
image-20220519151228-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +788.0 KB
Content
image-20220519151612-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +45.2 KB
Content
image-20220519152235-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +679.8 KB
Content
image-20220519153027-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +72.6 KB
Content
image-20220519154215-7.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +239.6 KB
Content
image-20220524163736-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +63.0 KB
Content
image-20220524163926-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +44.8 KB
Content
image-20220524163952-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +52.2 KB
Content
image-20220524164008-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +78.2 KB
Content
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0