<
From version < 1.3 >
edited by Xiaoling
on 2022/05/16 11:21
To version < 9.1 >
edited by Kilight Cao
on 2022/05/19 15:43
>
Change comment: There is no comment for this version

Summary

Details

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