Wiki source code of Notes for TTN

Version 99.17 by Xiaoling on 2022/07/25 09:19

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