Wiki source code of Notes for TTN

Version 71.2 by Xiaoling on 2022/05/26 13:56

Show last authors
1 **~ Contents:**
2
3 {{toc/}}
4
5
6 = 1. The Things Network-V3 =
7
8 == 1.1 Introduction ==
9
10 === 1.1.1 What is The Things Network ===
11
12 (((
13 The Things Network is a global collaborative Internet of Things ecosystem that creates networks, devices and solutions using LoRaWAN.
14 )))
15
16 (((
17 The Things Network runs The Things Stack Community Edition, which is a crowdsourced, open and decentralized LoRaWAN network. This network is a great way to get started testing devices, applications, and integrations, and get familiar with LoRaWAN.
18
19
20 )))
21
22 === 1.1.2 Login or crate an account ===
23
24 (((
25 [[Login or create an account>>url:https://console.cloud.thethings.network/]] to get started with The Things Network and start using The Things Stack Console.
26 )))
27
28 (((
29 Once you have an account,get started by following steps for adding Gateway,Device and Intergrations.
30
31
32 )))
33
34 === 1.1.3 List the support products and Requirements ===
35
36 LoRaWAN Gateway model: Existing Gateway
37
38
39 = 2. Gateway Registration for Semtech UDP =
40
41 == 2.1 Primary LoRaWAN Server ==
42
43 [[image:image-20220526134633-2.png||height="616" width="1323"]]
44
45 Register Gateway
46
47
48 [[image:image-20220526134826-4.png]]
49
50 Put Gateway ID
51
52
53 [[image:image-20220526134759-3.png]]
54
55 Choose Frequency Band
56
57
58 [[image:image-20220526134919-5.png]]
59
60 Show Status
61
62
63 == 2.2 Secondary LoRaWAN Server ==
64
65 === 2.2.1 Introduction ===
66
67 The Dragino gateway has supports the Secondary server settings.
68
69
70 === 2.2.2 Below list the support products and Requirements: ===
71
72 (((
73 ~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]]
74 )))
75
76 (((
77 2. Firmware version since :[[lgw~~-~~-build-v5.4.1644658774>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LIG16/Firmware/Release/]]
78 )))
79
80
81 === 2.2.3 Example ===
82
83 The following takes Helium as a Secondary LoRaWAN server as an example
84
85
86 === 2.2.4 Step 1: Download and Install the helium gateway-rs ===
87
88 The users is needing to download and install the helium gateway-rs then click the button of Save&Apply
89
90 [[image:image-20220526135049-6.png]]
91
92 Download and Install gateway-rs
93
94
95 === 2.2.5 Step 2: Back to Semtech UDP page ===
96
97 Back to the page of Semtech UDP check the secondary server settings and click the button of Save&Apply
98
99 ​​​​[[image:image-20220526135125-7.png]]
100
101 Configuration of helium
102
103
104 = 3. Gateway Registration for Basics Station =
105
106 == 3.1 Introduction ==
107
108 (((
109 (((
110 The LoRa Basics™ Station protocol simplifies management of large scale LoRaWAN networks. LoRa Basics™ Station is the preferred way of connecting Gateways to The Things Stack. [[The LoRa Basics Station doc>>url:https://www.thethingsindustries.com/docs/gateways/lora-basics-station/]]
111 )))
112 )))
113
114 (((
115 **Below list the support products and Requirements:**
116 )))
117
118 (((
119 (((
120 ~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]]
121 )))
122
123 (((
124 2. Firmware version since :[[lgw~~-~~-build-v5.4.1640315898>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]
125 )))
126 )))
127
128 (((
129 **What do you need to prepare**
130 )))
131
132 (((
133 (((
134 A gateway that can access the internet normally
135
136
137 )))
138 )))
139
140 == 3.2 Step 1. Add Gateway ==
141
142 (((
143 (((
144 The example for **EU**
145 )))
146 )))
147
148 (((
149 (((
150 User can add your gateway into The Things Network V3 according to the previous step
151 )))
152 )))
153
154 (((
155 (((
156 Following picture is the successful added.
157 )))
158 )))
159
160 [[image:image-20220526135316-8.png]]
161
162 Add Gateway
163
164
165 == 3.3 Step 2. Create the API key ==
166
167 user need to create the CUPS API key and LNS API key.
168
169 [[image:image-20220526135349-9.png]]
170
171 Create CUPS API key
172
173
174 [[image:image-20220526135428-10.png]]
175
176 Create LNS API key
177
178 (% style="color:red" %)**Note : Please copy the API key.**
179
180 (% style="color:red" %)**​​​​​​​**
181
182 == 3.4 Step 3. Update the gateway setting ==
183
184 In the LoRa Basics Station LNS Authentication Key field, paste the API key you generated in the previous step.
185
186 [[image:image-20220526135528-11.png]]
187
188 paste the API key
189
190
191 == 3.5 Step 4. Access the gateway GUI ==
192
193 User need to update the API key and install the Certificate
194
195 [[image:image-20220526135601-12.png]]
196
197 Access the gateway GUI
198
199 == 3.6 Step 5. Configure Station ==
200
201 User need to input Server URI, Server CUPS Key and LNS Key, as well as install CUPS certificate.
202
203 **just to clarify.**
204
205 (% class="box" %)
206 (((
207 CUPS Server URI  ~-~-> Server Adress
208 CUPS Authorization Key         ~-~-> Server CUPS API Key
209 LNS Authorization Key  ~-~-> Server LNS API Key
210 CUPS certificate  ~-~-> Server CA(user can use the button to install the certificate by default)
211 )))
212
213 [[image:image-20220525094329-7.png]]
214
215 Congfigure Station
216
217 == 3.7 Start Station ==
218
219 (((
220 When the user has finished the configuration,Please click Sace&Apply to start station to connect The Things Network.
221 )))
222
223 == 3.8 Siccessful Connection ==
224
225 If user completes the above steps,which will see live date in the TTN.
226
227 [[image:image-20220525094409-8.png]]
228
229 Station live date
230
231 == 3.9 Trouble Shooting ==
232
233 User can check the station log in the logread/system log page.
234
235 [[image:image-20220525090622-14.png]]
236
237 Station Log
238
239 and recode the station log in the system/Recode log page.
240
241 [[image:image-20220525090705-15.png]]
242
243 Recore Log
244
245 = 4. Configure node connection to TTNv3 =
246
247 (((
248 (((
249 Following is an example for how to join the TTN v3 LoRaWAN Network.
250 )))
251 )))
252
253 (((
254 (((
255 The gateway is already set up to connect to the TTN network, so we now need to configure the TTNv3 server.
256 )))
257 )))
258
259 (((
260 (((
261 We take LES01 as an example.
262 )))
263 )))
264
265 == 4.1 Step1 ==
266
267 (((
268 (((
269 Create a device in TTN with the OTAA keys from LSE01.
270 )))
271 )))
272
273 (((
274 (((
275 Each LSE01 is shipped with a sticker with the default device EUI as below:
276 )))
277 )))
278
279 (((
280 (((
281 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
282 )))
283 )))
284
285 [[image:image-20220525090739-16.png]]
286
287 [[image:image-20220525090833-17.png]]
288
289 == 4.2 Step2 ==
290
291 (((
292 (((
293 There are all our nodes in the repository. Users can choose the corresponding brand, model, firmware version and frequency.The decoder and configuration information of the node are pre-configured.Users do not need to configure them.
294 )))
295 )))
296
297 [[image:image-20220525090920-18.png]]
298
299 == 4.3 Step3 ==
300
301 Add APP EUI in the application:
302
303 [[image:image-20220525091022-19.png]]
304
305 == 4.4 Step4 ==
306
307 Add APP KEY and DEV EUI:
308
309 [[image:image-20220525091128-20.png]]
310
311 = 5. TTN V3 integrated into MQTT server =
312
313 == 5.1 Introduction ==
314
315 (((
316 (((
317 The Application Server exposes an MQTT server to work with streaming events. In order to use the MQTT server you need to create a new API key, which will function as connection password. You can also use an existing API key, as long as it has the necessary rights granted.
318 )))
319 )))
320
321 == 5.2 Create device steps at MQTT ==
322
323 (((
324 (((
325 The user creates a new API KEY after creating a device on TTN V3.
326 )))
327 )))
328
329 (((
330 (((
331 Then copy the password and open MQTT.fx.
332 )))
333 )))
334
335 (((
336 (((
337 Fill in Broker Address and Broker port.
338 )))
339 )))
340
341 [[image:image-20220525091251-22.png]]
342
343 Fill in the username and password into MQTT.
344
345
346 [[image:image-20220525091333-23.png]]
347
348 The Application Server publishes uplink traffic on the following topics:
349
350 (% class="box" %)
351 (((
352 v3/{application id}@{tenant id}/devices/{device id}/join
353 v3/{application id}@{tenant id}/devices/{device id}/up
354 v3/{application id}@{tenant id}/devices/{device id}/down/queued
355 v3/{application id}@{tenant id}/devices/{device id}/down/sent
356 v3/{application id}@{tenant id}/devices/{device id}/down/ack
357 v3/{application id}@{tenant id}/devices/{device id}/down/nack
358 v3/{application id}@{tenant id}/devices/{device id}/down/failed
359 v3/{application id}@{tenant id}/devices/{device id}/service/data
360 v3/{application id}@{tenant id}/devices/{device id}/location/solved
361 )))
362
363 (((
364 (((
365 **Note**: Remember that the format of these topics for The Things Stack Open Source would contain {application id} instead of {application id}@{tenant id}.
366 )))
367 )))
368
369 [[image:image-20220525091430-24.png]]
370
371 (((
372 (((
373 While you could subscribe to all of these topics separately, for the simplicity of this tutorial we use # to subscribe to all topics, i.e. to receive all uplink traffic.
374 )))
375 )))
376
377 [[image:image-20220525091458-25.png]]
378
379 (((
380 (((
381 Downlinks can be scheduled by publishing the message to the topic v3/{application id}@{tenant id}/devices/{device id}/down/push.
382 )))
383 )))
384
385 (((
386 (((
387 **Note**: Remember that the format of this topic for The Things Stack Open Source deployment would be v3/{application id}/devices/{device id}/down/push.
388 )))
389 )))
390
391 (((
392 (((
393 Instead of /push, you can also use /replace to replace the downlink queue. Replacing with an empty array clears the downlink queue. Example:
394 )))
395 )))
396
397 [[image:image-20220525091618-27.png]]
398
399 (((
400 To send an unconfirmed downlink message to the device dev1 in application app1 in tenant tenant1 with the hexadecimal payload BE EF on FPort 15 with normal priority, use the topic v3/app1@tenant1/devices/dev1/down/push with the following contents:
401 )))
402
403 (((
404 **Note**: Use this handy tool to convert hexadecimal to base64.
405 )))
406
407 [[image:image-20220525091702-28.png]]
408
409 == 5.3 Send Downlink message ==
410
411 (((
412 How to configure downlink in TTN V3?
413 )))
414
415 (((
416 A few examples: set the transmission interval to 90 seconds.
417 )))
418
419 (((
420 Downlink command:01 00 00 5A
421 )))
422
423 [[image:image-20220525091752-29.png]]
424
425 downlink
426
427 After sending, you can view it in live data.
428
429 [[image:image-20220525091816-30.png]]
430
431 downlink
432
433 (((
434 When downlink is successfully sent, the downlink information can be received on the serial port.
435 )))
436
437 (((
438 **Note**: If the downlink byte sent is longer, the number of bytes will be displayed.
439 )))
440
441 [[image:image-20220525091855-31.png]]
442
443 downlink
444
445 (((
446 (((
447 If you want to get a successful reply to send downlink in TTN v3. You need to set the response level.
448 )))
449 )))
450
451 (((
452 (((
453 If the equipment uses CLASS A. You can set **AT+RPL=2** or send the downlink command: **2102**
454 )))
455 )))
456
457 (((
458 (((
459 If the equipment uses CLASS C. You can set** AT+RPL=4** or send the downlink command: **2104**
460 )))
461 )))
462
463 (((
464 (((
465 When the device successfully receives the downlink, the server will receive a confirmation packet of 00.
466 )))
467 )))
468
469 [[image:image-20220525091925-32.png]]
470
471 downlink
472
473 = 6. Request Remote Support =
474
475 (((
476 These pages are useful to check what is wrong on the Join process. Below shows the four steps that we can check the Join Process.
477 \\If problem not solve, and you need dragino remote support, please follow to this document: [[TTN Support instruction>>url:https://www.dragino.com/downloads/index.php?dir=&file=TTNv3_Support_Guide.pdf]](% style="color:red" %) **If user has checked below steps and still can't solve the problem, please send us (support @ dragino.com) the screenshots for each step to check. They include:**
478 )))
479
480 * End node is connected to serial port to show the Join frequency and DR. (If possible)
481 * Gateway (from gateway UI) traffic to show the packet got from end node and receive from Server. (If possible)
482 * Gateway traffic (from server UI) to shows the data exchange between gateway and server. (Normally possible)
483 * End Node traffic (from server UI) to shows end node activity in server. (Normally possible)
484 * End Node Keys screen shot shows in end node and server. so we can check if the keys are correct. (In most case, we found keys doesn't match, especially APP EUI)
485
486 **~1. End Device Join Screen shot, we can check:**
487
488 * If the device is sending join request to server?
489 * What frequency the device is sending?
490
491 [[image:image-20220525092012-33.png]]
492
493 Console Output from End device to see the transmit frequency
494
495 User can run **AT+CFG **command to print configuration information.
496
497 * Is the device in OTAA mode or ABP mode? **AT+NJM=1** (OTAA mode), **AT+NJM=0** (ABP mode)
498
499 [[image:image-20220525092043-34.png]]
500
501 Console Output from End device to see the transmit frequency
502
503 **2. Gateway packet traffic in gateway web or ssh. we can check:**
504
505 * (((
506 If the gateway receive the Join request packet from sensor? (If this fail, check if the gateway and sensor works on the match frequency)
507 )))
508 * (((
509 If the gateway gets the Join Accept message from server and transmit it via LoRa?
510 )))
511
512 [[image:image-20220525092124-35.png]]
513
514 Console Output from Gateway to see packets between end node and server.
515
516
517 **3. Gateway Traffic Page in LoRaWAN Server**
518
519 * (((
520 If the Join Request packet arrive the gateway traffic in server? If not, check the internet connection and gateway LoRaWAN server settings.
521 )))
522 * (((
523 If the server send back a Join Accept for the Join Request? if not, check if the keys from the device match the keys you put in the server, or try to choose a different server route for this end device.
524 )))
525 * (((
526 If the Join Accept message are in correct frequency? If you set the server to use US915 band, and your end node and gateway is EU868, you will see the Join Accept message are in US915 band so no possible to Join success.
527 )))
528
529 [[image:image-20220525092157-36.png]]
530
531 The Traffic for the End node in the server, use TTNv3 as example
532
533
534 [[image:image-20220525092231-37.png]]
535
536 The Traffic for the End node in the server, use TTNv3 as example
537
538 **4. Data Page in LoRaWAN server**
539
540 (((
541 (((
542 (((
543 If this data page shows the Join Request message from the end node? If not, most properly you have wrong settings in the keys. Keys in the server doesn't match the keys in End Node.
544
545 [[image:image-20220525092546-1.png]]
546 )))
547 )))
548 )))
549
550 The data for the end device set in server
551
552 [[image:image-20220525092430-40.png]]
553
554 Check if OTAA Keys match the keys in device