<
From version < 1.6 >
edited by Xiaoling
on 2022/05/16 14:01
To version < 1.3 >
edited by Xiaoling
on 2022/05/16 11:21
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -6,9 +6,7 @@
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 -(((
10 10  The dragino gateway can connect the ChirpStack server via Semtech UDP or Semtech Basic Station.
11 -)))
12 12  
13 13  **Prerequisite**
14 14  
... ... @@ -22,12 +22,10 @@
22 22  
23 23  (% class="box" %)
24 24  (((
25 -(((
26 26  Semtech UDP : **All Model**
27 27  Basic Station : , , 
28 28  **Note** : the firmware needs >  if use the Bais station
29 29  )))
30 -)))
31 31  
32 32  = 2. Semtech UDP =
33 33  
... ... @@ -61,7 +61,7 @@
61 61  
62 62  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.
63 63  
64 -(% style="color:red" %)**Note : Before add the gateway, the user needs to complete the preceding three steps.**
60 +Note : Before add the gateway, the user needs to complete the preceding three steps.
65 65  
66 66  If the user has completed the preceding steps, proceed to the next step.
67 67  
... ... @@ -69,9 +69,7 @@
69 69  
70 70  The example gateway id is: a840411e96744150
71 71  
72 -(((
73 -(% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.**
74 -)))
68 +Note : The Gateway EUI and server addresses must match the ChirpStack configuration.
75 75  
76 76  [[image:https://wiki.dragino.com/images/thumb/c/c6/Add_the_gateway.png/600px-Add_the_gateway.png||height="363" width="600"]]
77 77  
... ... @@ -113,51 +113,37 @@
113 113  
114 114  User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End
115 115  
116 -(((
117 117  Below is examples:
118 -)))
119 119  
120 -(% class="box" %)
121 -(((
122 -Connect to your server via MQTT:
123 -MQTT Client ID: Any   
124 -Protocol:mqtt/tcp   Server IP:loraserver_ip:1883
112 +{{{Connect to your server via MQTT:
113 +MQTT Client ID: Any
114 +Protocol:mqtt/tcp Server IP:loraserver_ip:1883
125 125  User name: User name Password: password
126 -)))
116 +}}}
127 127  
128 128  [[image:https://wiki.dragino.com/images/thumb/0/06/ChirpStack_Down_1.png/600px-ChirpStack_Down_1.png||height="578" width="600"]]
129 129  
130 -(((
131 131  MQTT Connect to ChirpStack
132 -)))
133 133  
134 -(((
135 135  After connect
136 -)))
137 137  
138 -(% class="box" %)
139 -(((
140 -Subscribe : Format:application/ID/device/ Device EUI/rx
124 +{{{Subscribe : Format:application/ID/device/ Device EUI/rx
141 141  Example: application/7/device/00aedb3da649cb23/rx
142 -)))
143 143  
144 -(% class="box" %)
145 -(((
146 -Publish:
127 +Publish:
147 147  Format: Top: application/ID/device/ Device EUI/tx
148 148  Payload: {"confirmed":true or false,"fPort":XX,"data":"xxxx"}
149 149  Example: Top: application/7/device/00aedb3da649cb23/tx
150 150  Payload: {"confirmed":true,"fPort":2,"data":"AwEB"}
151 -)))
132 +}}}
152 152  
153 153  [[image:https://wiki.dragino.com/images/thumb/c/c8/ChirpStack_Down_2.png/600px-ChirpStack_Down_2.png||height="342" width="600"]]
154 154  
155 155  MQTT Connect to ChirpStack
156 156  
157 -(((
158 -(% 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/]]
159 -)))
160 160  
139 +Note: Chirpstack use base64 to downlink, so need to convert the downlink payload from HEX to base64 [[https:~~/~~/base64.us/>>url:https://base64.us/]]
140 +
161 161  [[image:https://wiki.dragino.com/images/thumb/f/f8/ChirpStack_Down_3.png/600px-ChirpStack_Down_3.png||height="309" width="600"]]
162 162  
163 163  Choose to Use Hex for Encode
... ... @@ -166,13 +166,9 @@
166 166  
167 167  [[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"]]
168 168  
169 -(((
170 170  Downlink payload encode javescript code: 可以在网站上运行以下Javsscript代码:
171 -)))
172 172  
173 -(% class="box" %)
174 -(((
175 -function sha1_to_base64(sha1)
151 +{{{function sha1_to_base64(sha1)
176 176  {
177 177   var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
178 178   var base64_rep = "";
... ... @@ -179,7 +179,8 @@
179 179   var cnt = 0;
180 180   var bit_arr = 0;
181 181   var bit_num = 0;
182 -\\ for(var n = 0; n < sha1.length; ++n)
158
159 + for(var n = 0; n < sha1.length; ++n)
183 183   {
184 184   if(sha1[n] >= 'A' && sha1[n] <= 'Z')
185 185   {
... ... @@ -193,22 +193,26 @@
193 193   {
194 194   ascv = sha1.charCodeAt(n) - 48;
195 195   }
196 -\\ bit_arr = (bit_arr << 4) | ascv;
173
174 + bit_arr = (bit_arr << 4) | ascv;
197 197   bit_num += 4;
198 198   if(bit_num >= 6)
199 199   {
200 - bit_num -= 6;        
178 + bit_num -= 6;
201 201   base64_rep += digits[bit_arr >>> bit_num];
202 - bit_arr &= ~~(-1 << bit_num);
180 + bit_arr &= ~(-1 << bit_num);
203 203   }
204 204   }
205 -\\ if(bit_num > 0)
183
184 + if(bit_num > 0)
206 206   {
207 207   bit_arr <<= 6 - bit_num;
208 208   base64_rep += digits[bit_arr];
209 209   }
210 -\\ var padding = base64_rep.length % 4;   
211 -\\ if(padding > 0)
189
190 + var padding = base64_rep.length % 4;
191
192 + if(padding > 0)
212 212   {
213 213   for(var n = 0; n < 4 - padding; ++n)
214 214   {
... ... @@ -217,15 +217,17 @@
217 217   }
218 218   return base64_rep;
219 219  }
220 -\\console.log(sha1_to_base64("data"));
221 -\\data is downlink payload required by end node.
222 -e.g console.log(sha1_to_base64("030101"));
223 - ​result: AwEB     
201
202 +console.log(sha1_to_base64("data"));
203
204 +data is downlink payload required by end node.
205 + e.g console.log(sha1_to_base64("030101"));
206 + ​result: AwEB
224 224   AwEB is the 0x030101's base 64 Encode.
225 -\\​e.g console.log(sha1_to_base64("030000"));
226 - result: AwAA     
227 - AwAA is 0x030000's base 64 Encode.
228 -)))
208 + 
209 + ​e.g console.log(sha1_to_base64("030000"));
210 + ​result: AwAA
211 + AwAA is 0x030000's base 64 Encode.}}}
229 229  
230 230  == 4.3 Add the decode function in Chirpstack for the payload ==
231 231  
... ... @@ -241,29 +241,21 @@
241 241  
242 242  = 5. Multiply Uplink in ChirpStack =
243 243  
244 -(((
245 245  nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
246 -)))
247 247  
248 -(((
229 +
249 249  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]]
250 -)))
251 251  
252 252  [[image:https://wiki.dragino.com/images/thumb/6/63/Nbtrans_1.png/600px-Nbtrans_1.png||alt="Nbtrans 1.png" height="103" width="600"]]
253 253  
254 -(((
255 255  nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
256 -)))
257 257  
258 258  [[image:https://wiki.dragino.com/images/thumb/1/17/Nbtrans_2.png/300px-Nbtrans_2.png||alt="Nbtrans 2.png" height="462" width="300"]]
259 259  
260 -(((
238 +
261 261  Above behaviour will cause the platform shows below two cases of error:
262 -)))
263 263  
264 -(((
265 265  Error of duplicate Frame Counter
266 -)))
267 267  
268 268  [[image:https://wiki.dragino.com/images/7/7e/Nbtrans_3.png||alt="Nbtrans 3.png" height="677" width="600"]]
269 269  
... ... @@ -275,9 +275,7 @@
275 275  
276 276  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]]
277 277  
278 -(((
279 279  ~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.
280 -)))
281 281  
282 282  [[image:https://wiki.dragino.com/images/3/37/Chirpstacksolution-1.png||alt="Chirpstacksolution-1.png" height="199" width="554"]]
283 283  
... ... @@ -285,17 +285,11 @@
285 285  
286 286  [[image:https://wiki.dragino.com/images/c/ca/Chirpstacksolution-2.png||alt="Chirpstacksolution-2.png" height="283" width="361"]]
287 287  
288 -(((
289 289  2. Environment variable settings:.
290 -)))
291 291  
292 -(((
293 293  1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
294 -)))
295 295  
296 -(((
297 297  2)Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
298 -)))
299 299  
300 300  [[image:https://wiki.dragino.com/images/f/f9/Chirpstacksolution-3.png||alt="Chirpstacksolution-3.png" height="152" width="554"]]
301 301  
... ... @@ -343,35 +343,17 @@
343 343  
344 344  5. Add the plugin and run the plugin.
345 345  
346 -(((
347 347  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:
348 -)))
349 349  
350 350  [[image:https://wiki.dragino.com/images/8/82/Chirpstacksolution-9.png||alt="Chirpstacksolution-9.png" height="73" width="554"]]
351 351  
352 -(((
353 -(((
354 354  For example: adr_plugins=[“adr-setting”]
355 -)))
356 -)))
357 357  
358 -* (((
359 -(((
360 -Adding a single plugin format is adr_plugins=["filename"]
361 -)))
362 -)))
319 +* Adding a single plugin format is adr_plugins=["filename"]
363 363  
364 -* (((
365 -(((
366 -Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
367 -)))
368 -)))
321 +* Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
369 369  
370 -(((
371 -(((
372 372  Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
373 -)))
374 -)))
375 375  
376 376  [[image:https://wiki.dragino.com/images/3/39/Chirpstacksolution-10.png||alt="Chirpstacksolution-10.png" height="275" width="554"]]
377 377  
... ... @@ -381,10 +381,6 @@
381 381  
382 382  == 6.1 MIC Mismatch or MIC Failed ==
383 383  
384 -(((
385 385  When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
386 -)))
387 387  
388 -(((
389 389  Under normal circumstances, users need to change the APPKEY to solve this problem.
390 -)))
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0