Wiki source code of Notes for TTN

Version 1.3 by Xiaoling on 2022/05/17 08:55

Show last authors
1 **Contents:**
2
3
4
5 = 1. The Things Network-V3 =
6
7 == 1.1 Introduction ==
8
9 === 1.1.1 What is The Things Network ===
10
11 (((
12 The Things Network is a global collaborative Internet of Things ecosystem that creates networks, devices and solutions using LoRaWAN.
13 )))
14
15 (((
16 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.
17 )))
18
19 === 1.1.2 Login or crate an account ===
20
21 (((
22 [[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.
23 )))
24
25 (((
26 Once you have an account,get started by following steps for adding Gateway,Device and Intergrations.
27 )))
28
29 === 1.1.3 List the support products and Requirements ===
30
31 LoRaWAN Gateway model: Existing Gateway
32
33 = 2. Gateway Registration for Semtech UDP =
34
35 == 2.1 Primary LoRaWAN Server ==
36
37 [[image:https://wiki.dragino.com/images/thumb/0/0c/TTN_v3_Primary_001.png/600px-TTN_v3_Primary_001.png||height="296" width="600"]]
38
39 Register Gateway
40
41
42 [[image:https://wiki.dragino.com/images/thumb/b/ba/TTN_v3_Primary_002.png/600px-TTN_v3_Primary_002.png||height="283" width="600"]]
43
44 Put Gateway ID
45
46
47 [[image:https://wiki.dragino.com/images/thumb/a/a6/TTN_v3_Primary_003.png/600px-TTN_v3_Primary_003.png||height="279" width="600"]]
48
49 Choose Frequency Band
50
51
52 [[image:https://wiki.dragino.com/images/thumb/4/44/TTN_v3_Primary_004.png/600px-TTN_v3_Primary_004.png||height="350" width="600"]]
53
54 Show Status
55
56 == 2.2 Secondary LoRaWAN Server ==
57
58 === 2.2.1 Introduction ===
59
60 The Dragino gateway has supports the Secondary server settings.
61
62 === 2.2.2 Below list the support products and Requirements: ===
63
64 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]]
65
66 1. Firmware version since :[[lgw~~-~~-build-v5.4.1644658774>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LIG16/Firmware/Release/]]
67
68 === 2.2.3 Example ===
69
70 The following takes Helium as a Secondary LoRaWAN server as an example,
71
72 === 2.2.4 Step 1: Download and Install the helium gateway-rs ===
73
74 The users is needing to download and install the helium gateway-rs then click the button of Save&Apply
75
76 [[image:https://wiki.dragino.com/images/thumb/f/f8/Helium_Secondary_001.png/600px-Helium_Secondary_001.png||height="350" width="600"]]
77
78 Download and Install gateway-rs
79
80 === 2.2.5 Step 2: Back to Semtech UDP page ===
81
82 Back to the page of Semtech UDP check the secondary server settings and click the button of Save&Apply
83
84 [[image:https://wiki.dragino.com/images/thumb/c/c8/Helium_Secondary_002.png/600px-Helium_Secondary_002.png||height="415" width="600"]]
85
86 Configuration of helium
87
88 = 3. Gateway Registration for Basics Station =
89
90 == 3.1 Introduction ==
91
92 (((
93 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/]]
94 )))
95
96 **Below list the support products and Requirements:**
97
98 1. (((
99 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]]
100 )))
101
102 1. (((
103 Firmware version since :[[lgw~~-~~-build-v5.4.1640315898>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]
104 )))
105
106 **What do you need to prepare**
107
108 (((
109 A gateway that can access the internet normally
110 )))
111
112 == 3.2 Step 1. Add Gateway ==
113
114 (((
115 The example for **EU**
116 )))
117
118 (((
119 User can add your gateway into The Things Network V3 according to the previous step
120 )))
121
122 (((
123 Following picture is the successful added.
124 )))
125
126 [[image:https://wiki.dragino.com/images/thumb/5/5f/Add_gateway_1.1.png/600px-Add_gateway_1.1.png||height="397" width="600"]]
127
128 Add Gateway
129
130 == 3.3 Step 2. Create the API key ==
131
132 user need to create the CUPS API key and LNS API key.
133
134 [[image:https://wiki.dragino.com/images/thumb/c/c6/Create_cups_api_key.png/600px-Create_cups_api_key.png||height="394" width="600"]]
135
136 Create CUPS API key
137
138
139 [[image:https://wiki.dragino.com/images/thumb/5/55/Create_lns_api_key.png/600px-Create_lns_api_key.png||height="403" width="600"]]
140
141 Create LNS API key
142
143 **Note : Please copy the API key.**
144
145 == 3.4 Step 3. Update the gateway setting ==
146
147 In the LoRa Basics Station LNS Authentication Key field, paste the API key you generated in the previous step.
148
149 [[image:https://wiki.dragino.com/images/thumb/2/2f/Paste_the_lns_API_key.png/600px-Paste_the_lns_API_key.png||height="363" width="600"]]
150
151 paste the API key
152
153 == 3.5 Step 4. Access the gateway GUI ==
154
155 User need to update the API key and install the Certificate
156
157 [[image:https://wiki.dragino.com/images/thumb/a/a3/Access_gateway_gui_ttnstation.png/600px-Access_gateway_gui_ttnstation.png||height="354" width="600"]]
158
159 Access the gateway GUI
160
161 == 3.6 Step 5. Configure Station ==
162
163 User need to input Server URI, Server CUPS Key and LNS Key, as well as install CUPS certificate.
164
165 **just to clarify.**
166
167 {{{ CUPS Server URI --> Server Adress
168 CUPS Authorization Key --> Server CUPS API Key
169 LNS Authorization Key --> Server LNS API Key
170 CUPS certificate --> Server CA(user can use the button to install the certificate by default)
171 }}}
172
173 [[image:https://wiki.dragino.com/images/thumb/8/8c/Confiure_station_cao.png/600px-Confiure_station_cao.png||height="321" width="600"]]
174
175 Congfigure Station
176
177 == 3.7 Start Station ==
178
179 (((
180 When the user has finished the configuration,Please click Sace&Apply to start station to connect The Things Network.
181 )))
182
183 == 3.8 Siccessful Connection ==
184
185 If user completes the above steps,which will see live date in the TTN.
186
187 [[image:https://wiki.dragino.com/images/thumb/4/49/Station_live_date_cao.png/600px-Station_live_date_cao.png||height="391" width="600"]]
188
189 Station live date
190
191 == 3.9 Trouble Shooting ==
192
193 User can check the station log in the logread/system log page.
194
195 [[image:https://wiki.dragino.com/images/thumb/7/7c/Station_log_xiao.png/600px-Station_log_xiao.png||height="457" width="600"]]
196
197 Station Log
198
199 and recode the station log in the system/Recode log page.
200
201 [[image:https://wiki.dragino.com/images/thumb/5/50/Recore_log_xiao.png/600px-Recore_log_xiao.png||height="147" width="600"]]
202
203 Recore Log
204
205 = 4. Configure node connection to TTNv3 =
206
207 (((
208 Following is an example for how to join the TTN v3 LoRaWAN Network.
209 )))
210
211 (((
212 The gateway is already set up to connect to the TTN network, so we now need to configure the TTNv3 server.
213 )))
214
215 (((
216 We take LES01 as an example.
217 )))
218
219 == 4.1 Step1 ==
220
221 (((
222 Create a device in TTN with the OTAA keys from LSE01.
223 )))
224
225 (((
226 Each LSE01 is shipped with a sticker with the default device EUI as below:
227 )))
228
229 (((
230 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
231 )))
232
233 [[image:https://wiki.dragino.com/images/thumb/c/c7/TTNv3--01.png/600px-TTNv3--01.png||alt="TTNv3--01.png" height="277" width="600"]]
234
235 [[image:https://wiki.dragino.com/images/thumb/1/17/TTNv3--02.png/600px-TTNv3--02.png||alt="TTNv3--02.png" height="226" width="600"]]
236
237 == 4.2 Step2 ==
238
239 (((
240 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.
241 )))
242
243 [[image:https://wiki.dragino.com/images/thumb/f/fc/TTNv3--03.png/600px-TTNv3--03.png||alt="TTNv3--03.png" height="333" width="600"]]
244
245 == 4.3 Step3 ==
246
247 Add APP EUI in the application:
248
249 [[image:https://wiki.dragino.com/images/thumb/9/9f/TTNv3--04.png/600px-TTNv3--04.png||alt="TTNv3--04.png" height="439" width="600"]]
250
251 == 4.4 Step4 ==
252
253 Add APP KEY and DEV EUI:
254
255 [[image:https://wiki.dragino.com/images/thumb/a/a4/TTNv3--05.png/600px-TTNv3--05.png||alt="TTNv3--05.png" height="500" width="600"]]
256
257 = 5. TTN V3 integrated into MQTT server =
258
259 == 5.1 Introduction ==
260
261 (((
262 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.
263 )))
264
265 == 5.2 Create device steps at MQTT ==
266
267 (((
268 The user creates a new API KEY after creating a device on TTN V3.
269 )))
270
271 (((
272 Then copy the password and open MQTT.fx.
273 )))
274
275 (((
276 Fill in Broker Address and Broker port.
277 )))
278
279 [[image:https://wiki.dragino.com/images/thumb/8/82/V3_MQTT1_.png/600px-V3_MQTT1_.png||alt="V3 MQTT1 .png" height="325" width="600"]]
280
281 Fill in the username and password into MQTT.
282
283
284 [[image:https://wiki.dragino.com/images/thumb/6/6a/V3_MQTT2.png/600px-V3_MQTT2.png||alt="V3 MQTT2.png" height="434" width="600"]]
285
286 The Application Server publishes uplink traffic on the following topics:
287
288 {{{ v3/{application id}@{tenant id}/devices/{device id}/join
289 v3/{application id}@{tenant id}/devices/{device id}/up
290 v3/{application id}@{tenant id}/devices/{device id}/down/queued
291 v3/{application id}@{tenant id}/devices/{device id}/down/sent
292 v3/{application id}@{tenant id}/devices/{device id}/down/ack
293 v3/{application id}@{tenant id}/devices/{device id}/down/nack
294 v3/{application id}@{tenant id}/devices/{device id}/down/failed
295 v3/{application id}@{tenant id}/devices/{device id}/service/data
296 v3/{application id}@{tenant id}/devices/{device id}/location/solved
297 }}}
298
299 (((
300 Note: Remember that the format of these topics for The Things Stack Open Source would contain {application id} instead of {application id}@{tenant id}.
301 )))
302
303 [[image:https://wiki.dragino.com/images/thumb/d/dc/V3_MQTT3.png/600px-V3_MQTT3.png||alt="V3 MQTT3.png" height="400" width="600"]]
304
305 (((
306 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.
307 )))
308
309 [[image:https://wiki.dragino.com/images/thumb/e/e8/V3_MQTT4.jpg/600px-V3_MQTT4.jpg||alt="V3 MQTT4.jpg" height="326" width="600"]]
310
311 (((
312 Downlinks can be scheduled by publishing the message to the topic v3/{application id}@{tenant id}/devices/{device id}/down/push.
313 )))
314
315 (((
316 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.
317 )))
318
319 (((
320 Instead of /push, you can also use /replace to replace the downlink queue. Replacing with an empty array clears the downlink queue. Example:
321 )))
322
323 [[image:https://wiki.dragino.com/images/thumb/e/e8/V3_MQTT5.png/600px-V3_MQTT5.png||alt="V3 MQTT5.png" height="289" width="600"]]
324
325 (((
326 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:
327 )))
328
329 (((
330 Note: Use this handy tool to convert hexadecimal to base64.
331 )))
332
333 [[image:https://wiki.dragino.com/images/thumb/9/9f/V3_MQTT6.png/600px-V3_MQTT6.png||alt="V3 MQTT6.png" height="313" width="600"]]
334
335 == 5.3 Send Downlink message ==
336
337 (((
338 How to configure downlink in TTN V3?
339 )))
340
341 (((
342 A few examples: set the transmission interval to 90 seconds.
343 )))
344
345 (((
346 Downlink command:01 00 00 5A
347 )))
348
349 [[image:https://wiki.dragino.com/images/thumb/9/90/Downlink_50.png/600px-Downlink_50.png||height="327" width="600"]]
350
351 downlink
352
353 After sending, you can view it in live data.
354
355 [[image:https://wiki.dragino.com/images/thumb/1/15/Downlink_51.png/600px-Downlink_51.png||height="141" width="600"]]
356
357 downlink
358
359 (((
360 When downlink is successfully sent, the downlink information can be received on the serial port.
361 )))
362
363 (((
364 Note: If the downlink byte sent is longer, the number of bytes will be displayed.
365 )))
366
367 [[image:https://wiki.dragino.com/images/thumb/c/c9/Downlink_52.png/600px-Downlink_52.png||height="407" width="600"]]
368
369 downlink
370
371 (((
372 If you want to get a successful reply to send downlink in TTN v3. You need to set the response level.
373 )))
374
375 (((
376 If the equipment uses CLASS A. You can set AT+RPL=2 or send the downlink command: 2102
377 )))
378
379 (((
380 If the equipment uses CLASS C. You can set AT+RPL=4 or send the downlink command: 2104
381 )))
382
383 (((
384 When the device successfully receives the downlink, the server will receive a confirmation packet of 00.
385 )))
386
387 [[image:https://wiki.dragino.com/images/thumb/d/d9/Downlink_54.png/600px-Downlink_54.png||height="127" width="600"]]
388
389 downlink
390
391 = 6. Request Remote Support =
392
393 (((
394 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.
395 \\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]] 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:
396 )))
397
398 * End node is connected to serial port to show the Join frequency and DR. (If possible)
399 * Gateway (from gateway UI) traffic to show the packet got from end node and receive from Server. (If possible)
400 * Gateway traffic (from server UI) to shows the data exchange between gateway and server. (Normally possible)
401 * End Node traffic (from server UI) to shows end node activity in server. (Normally possible)
402 * 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)
403
404
405 **~1. End Device Join Screen shot, we can check:**
406
407 * If the device is sending join request to server?
408 * What frequency the device is sending?
409
410 [[image:https://wiki.dragino.com/images/thumb/7/77/LoRaWAN_Communication_Debug1.png/600px-LoRaWAN_Communication_Debug1.png||height="596" width="600"]]
411
412 Console Output from End device to see the transmit frequency
413
414 User can run AT+CFG command to print configuration information.
415
416 * Is the device in OTAA mode or ABP mode? AT+NJM=1 (OTAA mode), AT+NJM=0 (ABP mode)
417
418 [[image:https://wiki.dragino.com/images/thumb/c/c5/LoRaWAN_Communication_Debug23.png/600px-LoRaWAN_Communication_Debug23.png||height="514" width="600"]]
419
420 Console Output from End device to see the transmit frequency
421
422 **2. Gateway packet traffic in gateway web or ssh. we can check:**
423
424 * If the gateway receive the Join request packet from sensor? (If this fail, check if the gateway and sensor works on the match frequency)
425 * If the gateway gets the Join Accept message from server and transmit it via LoRa?
426
427 [[image:https://wiki.dragino.com/images/thumb/1/1c/OTAA_Join-2.png/600px-OTAA_Join-2.png||height="325" width="600"]]
428
429 Console Output from Gateway to see packets between end node and server.
430
431
432 **3. Gateway Traffic Page in LoRaWAN Server**
433
434 * If the Join Request packet arrive the gateway traffic in server? If not, check the internet connection and gateway LoRaWAN server settings.
435 * 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.
436 * 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.
437
438 [[image:https://wiki.dragino.com/images/thumb/d/da/LoRaWAN_Communication_Debug22.png/600px-LoRaWAN_Communication_Debug22.png||height="268" width="600"]]
439
440 The Traffic for the End node in the server, use TTNv3 as example
441
442
443 [[image:https://wiki.dragino.com/images/thumb/4/4b/LoRaWAN_Communication_Debug3.png/600px-LoRaWAN_Communication_Debug3.png||height="281" width="600"]]
444
445 The Traffic for the End node in the server, use TTNv3 as example
446
447 **4. Data Page in LoRaWAN server**
448
449 * (((
450 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.
451 )))
452
453 [[image:https://wiki.dragino.com/images/thumb/9/99/LoRaWAN_Communication_Debug4.png/600px-LoRaWAN_Communication_Debug4.png||height="222" width="600"]]
454
455 The data for the end device set in server
456
457 [[image:https://wiki.dragino.com/images/thumb/6/69/LoRaWAN_Communication_Debug5.png/600px-LoRaWAN_Communication_Debug5.png||height="279" width="600"]]
458
459 Check if OTAA Keys match the keys in device