Wiki source code of Notes for TTN

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