Wiki source code of Notes for TTN

Version 99.15 by Xiaoling on 2022/07/25 09:15

Show last authors
1 **~ Table of Contents:**
2
3 {{toc/}}
4
5
6
7 = 1. The Things Network-V3 =
8
9
10 == 1.1  Introduction ==
11
12
13 === 1.1.1  What is The Things Network ===
14
15
16 (((
17 The Things Network is a global collaborative Internet of Things ecosystem that creates networks, devices and solutions using LoRaWAN.
18 )))
19
20 (((
21 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.
22
23
24
25 )))
26
27 === 1.1.2  Login or crate an account ===
28
29
30 (((
31 [[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.
32 )))
33
34 (((
35 Once you have an account,get started by following steps for adding Gateway,Device and Intergrations.
36
37
38
39 )))
40
41 === 1.1.3  List the support products and Requirements ===
42
43
44 LoRaWAN Gateway model: Existing Gateway
45
46
47
48 = 2.  Gateway Registration for Semtech UDP =
49
50
51 == 2.1  Primary LoRaWAN Server ==
52
53
54 [[image:image-20220526134633-2.png||height="616" width="1323"]]
55
56 Register Gateway
57
58
59
60 [[image:image-20220526134826-4.png]]
61
62 Put Gateway ID
63
64
65
66 [[image:image-20220526134759-3.png]]
67
68 Choose Frequency Band
69
70
71
72 [[image:image-20220526134919-5.png]]
73
74 Show Status
75
76
77
78 == 2.2  Secondary LoRaWAN Server ==
79
80
81 === 2.2.1  Introduction ===
82
83
84 The Dragino gateway has supports the Secondary server settings.
85
86
87 === 2.2.2  Below list the support products and Requirements: ===
88
89
90 (((
91 ~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]]
92 )))
93
94 (((
95 2. Firmware version since :[[lgw~~-~~-build-v5.4.1644658774>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LIG16/Firmware/Release/]]
96 )))
97
98
99
100 === 2.2.3  Example ===
101
102
103 The following takes Helium as a Secondary LoRaWAN server as an example
104
105
106
107 === 2.2.4  Step 1: Download and Install the helium gateway-rs ===
108
109
110 The users is needing to download and install the helium gateway-rs then click the button of Save&Apply
111
112 [[image:image-20220526135049-6.png]]
113
114 Download and Install gateway-rs
115
116
117
118 === 2.2.5  Step 2: Back to Semtech UDP page ===
119
120
121 Back to the page of Semtech UDP check the secondary server settings and click the button of Save&Apply
122
123 ​​​​[[image:image-20220526135125-7.png]]
124
125 Configuration of helium
126
127
128
129 = 3.  Gateway Registration for Basics Station =
130
131
132 == 3.1  Introduction ==
133
134
135 (((
136 (((
137 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/]]
138
139
140 )))
141 )))
142
143 (((
144 (% style="color:blue" %)**Below list the support products and Requirements:**
145 )))
146
147 (((
148 (((
149 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]]
150 )))
151
152 (((
153 2. Firmware version since :[[lgw~~-~~-build-v5.4.1640315898>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]
154
155
156
157
158 )))
159 )))
160
161 (((
162 (% style="color:blue" %)**What do you need to prepare**
163 )))
164
165 (((
166 (((
167 A gateway that can access the internet normally
168
169
170
171 )))
172 )))
173
174 == 3.2  Step 1: Add Gateway ==
175
176
177 (((
178 (((
179 The example for **EU**
180 )))
181 )))
182
183 (((
184 (((
185 User can add your gateway into The Things Network V3 according to the previous step
186 )))
187 )))
188
189 (((
190 (((
191 Following picture is the successful added.
192
193
194 )))
195 )))
196
197 [[image:image-20220526135316-8.png]]
198
199 Add Gateway
200
201
202
203 == 3.3  Step 2: Create the API key ==
204
205
206 user need to create the CUPS API key and LNS API key.
207
208
209 [[image:image-20220526135349-9.png]]
210
211 Create CUPS API key
212
213
214
215 [[image:image-20220526135428-10.png]]
216
217 Create LNS API key
218
219
220 (% style="color:red" %)**Note : Please copy the API key.**
221
222
223
224 == 3.4  Step 3: Update the gateway setting ==
225
226
227 In the LoRa Basics Station LNS Authentication Key field, paste the API key you generated in the previous step.
228
229
230 [[image:image-20220526135528-11.png]]
231
232 paste the API key
233
234
235
236 == 3.5  Step 4: Access the gateway GUI ==
237
238
239 User need to update the API key and install the Certificate
240
241
242 [[image:image-20220526135601-12.png]]
243
244 Access the gateway GUI
245
246
247
248 == 3.6  Step 5: Configure Station ==
249
250
251 User need to input Server URI, Server CUPS Key and LNS Key, as well as install CUPS certificate.
252
253
254 (% style="color:blue" %)**just to clarify:**
255
256 (% class="box" %)
257 (((
258 CUPS Server URI  ~-~->  Server Adress
259 CUPS Authorization Key         ~-~->  Server CUPS API Key
260 LNS Authorization Key  ~-~->  Server LNS API Key
261 CUPS certificate  ~-~->  Server CA(user can use the button to install the certificate by default)
262 )))
263
264 [[image:image-20220526135654-13.png]]
265
266 Congfigure Station
267
268
269
270 == 3.7  Start Station ==
271
272
273 (((
274 When the user has finished the configuration,Please click Sace&Apply to start station to connect The Things Network.
275
276
277
278 )))
279
280 == 3.8  Siccessful Connection ==
281
282
283 If user completes the above steps,which will see live date in the TTN.
284
285
286 [[image:image-20220526135734-14.png]]
287
288 Station live date
289
290
291
292 == 3.9  Trouble Shooting ==
293
294
295 User can check the station log in the logread/system log page.
296
297
298 [[image:image-20220526135845-15.png]]
299
300 Station Log
301
302
303
304 and recode the station log in the system/Recode log page.
305
306 [[image:image-20220526135940-16.png]]
307
308 Recore Log
309
310
311
312 = 4.  Configure node connection to TTNv3 =
313
314
315 (((
316 (((
317 Following is an example for how to join the TTN v3 LoRaWAN Network.
318 )))
319 )))
320
321 (((
322 (((
323 The gateway is already set up to connect to the TTN network, so we now need to configure the TTNv3 server.
324 )))
325 )))
326
327 (((
328 (((
329 We take LES01 as an example.
330
331
332
333 )))
334 )))
335
336 == 4.1  Step1 ==
337
338
339 (((
340 (((
341 Create a device in TTN with the OTAA keys from LSE01.
342 )))
343 )))
344
345 (((
346 (((
347 Each LSE01 is shipped with a sticker with the default device EUI as below:
348 )))
349 )))
350
351 (((
352 (((
353 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
354 )))
355 )))
356
357 [[image:image-20220526140015-17.png]]
358
359 [[image:image-20220526140044-18.png]]
360
361
362
363 == 4.2  Step2 ==
364
365
366 (((
367 (((
368 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.
369
370
371 )))
372 )))
373
374 [[image:image-20220526140132-19.png]]
375
376
377
378 == 4.3  Step3 ==
379
380
381 Add APP EUI in the application:
382
383
384 [[image:image-20220526140205-20.png]]
385
386
387
388 == 4.4  Step4 ==
389
390
391 Add APP KEY and DEV EUI:
392
393
394 [[image:image-20220526140251-21.png]]
395
396
397
398 = 5.  TTN V3 integrated into MQTT server =
399
400
401 == 5.1  Introduction ==
402
403
404 (((
405 (((
406 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.
407
408
409
410 )))
411 )))
412
413 == 5.2  Create device steps at MQTT ==
414
415
416 (((
417 (((
418 The user creates a new API KEY after creating a device on TTN V3.
419 )))
420 )))
421
422 (((
423 (((
424 Then copy the password and open MQTT.fx.
425 )))
426 )))
427
428 (((
429 (((
430 Fill in Broker Address and Broker port.
431
432
433 )))
434 )))
435
436 [[image:image-20220526140347-22.png]]
437
438 Fill in the username and password into MQTT.
439
440
441
442 [[image:image-20220526140420-23.png]]
443
444
445 The Application Server publishes uplink traffic on the following topics:
446
447 (% class="box" %)
448 (((
449 v3/{application id}@{tenant id}/devices/{device id}/join
450 v3/{application id}@{tenant id}/devices/{device id}/up
451 v3/{application id}@{tenant id}/devices/{device id}/down/queued
452 v3/{application id}@{tenant id}/devices/{device id}/down/sent
453 v3/{application id}@{tenant id}/devices/{device id}/down/ack
454 v3/{application id}@{tenant id}/devices/{device id}/down/nack
455 v3/{application id}@{tenant id}/devices/{device id}/down/failed
456 v3/{application id}@{tenant id}/devices/{device id}/service/data
457 v3/{application id}@{tenant id}/devices/{device id}/location/solved
458 )))
459
460 (((
461
462
463 (((
464 (% style="color:red" %)**Note**: **Remember that the format of these topics for The Things Stack Open Source would contain {application id} instead of {application id}@{tenant id}.**
465
466
467 )))
468 )))
469
470 [[image:image-20220526140452-24.png]]
471
472
473 (((
474 (((
475 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.
476 )))
477 )))
478
479 [[image:image-20220526140708-25.png]]
480
481 (((
482 (((
483 Downlinks can be scheduled by publishing the message to the topic v3/{application id}@{tenant id}/devices/{device id}/down/push.
484 )))
485 )))
486
487 (((
488 (((
489
490
491 (% style="color:red" %)**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.**
492
493
494 )))
495 )))
496
497 (((
498 (((
499 Instead of /push, you can also use /replace to replace the downlink queue. Replacing with an empty array clears the downlink queue. Example:
500 )))
501 )))
502
503 [[image:image-20220526140856-26.png]]
504
505 (((
506 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:
507
508
509 )))
510
511 (((
512 (% style="color:red" %)**Note**: **Use this handy tool to convert hexadecimal to base64.**
513
514
515 )))
516
517 [[image:image-20220526140936-27.png]]
518
519
520
521 == 5.3  Send Downlink message ==
522
523
524 (((
525 How to configure downlink in TTN V3?
526 )))
527
528 (((
529 A few examples: set the transmission interval to 90 seconds.
530 )))
531
532 (((
533 (% style="color:blue" %)**Downlink command: 01 00 00 5A**
534
535
536 )))
537
538 [[image:image-20220526141021-28.png]]
539
540 downlink
541
542
543
544 After sending, you can view it in live data.
545
546 [[image:image-20220526141052-29.png]]
547
548 downlink
549
550
551
552 (((
553 When downlink is successfully sent, the downlink information can be received on the serial port.
554 )))
555
556 (((
557 (% style="color:red" %)**Note**:** If the downlink byte sent is longer, the number of bytes will be displayed.**
558
559
560 )))
561
562 [[image:image-20220526141116-30.png]]
563
564 downlink
565
566
567 (((
568 (((
569 If you want to get a successful reply to send downlink in TTN v3. You need to set the response level.
570 )))
571 )))
572
573 (((
574 (((
575 If the equipment uses (% style="color:blue" %)**CLASS A**(%%). You can set (% style="color:red" %)**AT+RPL=2** (%%)or send the downlink command: (% style="color:red" %)**2102**
576 )))
577 )))
578
579 (((
580 (((
581 If the equipment uses (% style="color:blue" %)**CLASS C**(%%). You can set** (% style="color:red" %)AT+RPL=4(%%)** or send the downlink command: (% style="color:red" %)**2104**
582 )))
583 )))
584
585 (((
586 (((
587 When the device successfully receives the downlink, the server will receive a confirmation packet of 00.
588
589
590 )))
591 )))
592
593 [[image:image-20220526141149-31.png]]
594
595 downlink
596
597
598
599 = 6.  Request Remote Support =
600
601
602 (((
603 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.
604 \\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:**
605 )))
606
607 * End node is connected to serial port to show the Join frequency and DR. (If possible)
608 * Gateway (from gateway UI) traffic to show the packet got from end node and receive from Server. (If possible)
609 * Gateway traffic (from server UI) to shows the data exchange between gateway and server. (Normally possible)
610 * End Node traffic (from server UI) to shows end node activity in server. (Normally possible)
611 * 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)
612
613
614 (% style="color:blue" %)**1. End Device Join Screen shot, we can check:**
615
616 * If the device is sending join request to server?
617 * What frequency the device is sending?
618
619
620 [[image:image-20220526141308-33.png]]
621
622 Console Output from End device to see the transmit frequency
623
624
625 User can run (% style="color:blue" %)**AT+CFG **(%%)command to print configuration information.
626
627 * Is the device in OTAA mode or ABP mode? (% style="color:red" %)**AT+NJM=1** (%%)(OTAA mode), (% style="color:red" %)**AT+NJM=0**(%%) (ABP mode)
628
629
630
631 [[image:image-20220526141612-36.png]]
632
633
634 Console Output from End device to see the transmit frequency
635
636
637
638 (% style="color:blue" %)**2. Gateway packet traffic in gateway web or ssh. we can check:**
639
640 * (((
641 If the gateway receive the Join request packet from sensor? (If this fail, check if the gateway and sensor works on the match frequency)
642 )))
643 * (((
644 If the gateway gets the Join Accept message from server and transmit it via LoRa?
645
646
647
648 )))
649
650 [[image:image-20220526141739-37.png]]
651
652 Console Output from Gateway to see packets between end node and server.
653
654
655
656 (% style="color:blue" %)**3. Gateway Traffic Page in LoRaWAN Server**
657
658 * (((
659 If the Join Request packet arrive the gateway traffic in server? If not, check the internet connection and gateway LoRaWAN server settings.
660 )))
661 * (((
662 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.
663 )))
664 * (((
665 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.
666
667
668
669 )))
670
671 [[image:image-20220526141823-38.png||height="501" width="1144"]]
672
673 The Traffic for the End node in the server, use TTNv3 as example
674
675
676
677 [[image:image-20220526141917-39.png]]
678
679 The Traffic for the End node in the server, use TTNv3 as example
680
681
682
683 (% style="color:blue" %)**4. Data Page in LoRaWAN server**
684
685 (((
686 (((
687 (((
688 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.
689
690
691 [[image:image-20220526141956-40.png]]
692 )))
693 )))
694 )))
695
696 The data for the end device set in server
697
698
699
700 [[image:image-20220526142033-41.png]]
701
702 Check if OTAA Keys match the keys in device