Wiki source code of Notes for TTN

Version 99.9 by Xiaoling on 2022/07/25 08:44

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