Last modified by Xiaoling on 2023/04/20 18:14
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 2 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -10,6 +10,7 @@ 10 10 The Dragino LoRaWAN gateway can commuicate with LoRaWAN ABP End Node without the need of LoRaWAN server. It can be used in some cases such as: 11 11 12 12 * No internet connection. 13 + 13 13 * User wants to get data forward in gateway and forward to their server base on MQTT/HTTP, etc. (Combine ABP communication method and [[MQTT forward together>>MQTT Forward Instruction]]). 14 14 15 15 ((( ... ... @@ -16,11 +16,14 @@ 16 16 The basic of this feature is the decoding of (% style="color:red" %)**LoRaWAN ABP End Node**(%%). Requirements: 17 17 ))) 18 18 19 -1. LoRaWAN End Node in ABP mode. Make sure your end node works in this mode. End node most are default set to OTAA mode 20 -1. LoRaWAN Gateway model: [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.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]] ,[[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]] 21 -1. Firmware version for below instruction:**[[(% style="color:purple" %)Since LG02_LG08~~-~~-build-v5.4.1593400722-20200629-1120>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]](%%)** 20 +* LoRaWAN End Node in ABP mode. Make sure your end node works in this mode. End node most are default set to OTAA mode 22 22 22 +* LoRaWAN Gateway model: [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.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]] ,[[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]] 23 23 24 +* Firmware version for below instruction: **[[(% style="color:purple" %)Since LG02_LG08~~-~~-build-v5.4.1593400722-20200629-1120>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]](%%)** 25 + 26 + 27 + 24 24 = 2. How it works = 25 25 26 26 ... ... @@ -44,8 +44,10 @@ 44 44 45 45 We need to input above keys in LG308 and enable ABP decryption. 46 46 51 + 47 47 [[image:image-20220527161119-1.png]] 48 48 54 + 49 49 Input the ABP keys in LG308 50 50 51 51 ... ... @@ -55,14 +55,18 @@ 55 55 Now when this End Node (Dev Addr=2602111D) send a uplink packet. When this packet arrive LG308, LG308 will decode it and put the decode data on the file /var/iot/channels/2602111D . So we have this data for further process with other applications in LG308. 56 56 57 57 ((( 58 -We can see the log of LG308 to know this packet arrive 64 +We can see the log of LG308 to know this packet arrive. 65 + 66 + 59 59 ))) 60 60 61 61 [[image:image-20220527161149-2.png]] 62 62 71 + 63 63 LG308 log by "(% style="color:red" %)**logread -f**" (%%)command 64 64 65 65 75 + 66 66 The data of End Node is stored in the file /var/iot/channels/2602111D. We can use hexdump command to check it. 67 67 68 68 (% class="box" %) ... ... @@ -74,7 +74,9 @@ 74 74 ))) 75 75 76 76 * **RSSI**: 4646 4646 4646 3946 = 0xFFFF FF9F : So RSSI = (0xFFFF FF9F - 0x100000000) = -97 87 + 77 77 * **SNR**: 3030 3030 3030 3546 = 0x0000 005F = 95, need to divide 10 so SNR is 9.5 89 + 78 78 * **Payload**: 0xcc0c 0b63 0266 017f ff7f ff00 79 79 80 80 (% class="box" %) ... ... @@ -87,6 +87,7 @@ 87 87 000001c 88 88 ))) 89 89 102 + 90 90 (% class="box" %) 91 91 ((( 92 92 (% style="color:red" %)**Notice 2**(%%): The upstream payload length should match the LoRaWAN length requirement (max length depends on Frequency and DR), otherwise the gateway can't decode the payload. ... ... @@ -132,7 +132,6 @@ 132 132 Above scripts are store in /etc/lora/decoder/. User can put their scripts here and select it in the UI. 133 133 134 134 135 - 136 136 === 2.2.2 How to Decode My End Node === 137 137 138 138 ... ... @@ -154,10 +154,15 @@ 154 154 **Some notice:** 155 155 156 156 * RSSI and SNR are added when gateway receive the packet, so there is always this field. 169 + 157 157 * If you rename the file, please make it executable. 171 + 158 158 * See this link for lua.bit module: [[http:~~/~~/luaforge.net/projects/bit/>>url:http://luaforge.net/projects/bit/]] 173 + 159 159 * Lua json module: [[http:~~/~~/json.luaforge.net/>>url:http://json.luaforge.net/]] 175 + 160 160 * the last line return is what will be used for MQTT 177 + 161 161 * User can use other language ,not limited to Lua, just make sure the return is what you want to send. 162 162 163 163 ... ... @@ -171,19 +171,25 @@ 171 171 172 172 (% style="color:#037691" %)**dev_addr,imme/time,txt/hex,payload** 173 173 174 -Since fimware > Dragino-v2 lgw-5.4.1608518541 . Support more option 175 175 176 - (%style="color:#037691" %)**dev_addr,imme/time,txt/hex,payload,txpw,txbw,SF,frequency,rxwindow**192 +Since fimware > [[Dragino lgw~~-~~-build-v5.4.1668567157>>https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LG308-LG301/Firmware/Release/]] . Support more option 177 177 194 +(% style="color:#037691" %)**dev_addr,imme/time,txt/hex,payload,txpw,txbw,SF,frequency,rxwindow,Fport** 195 + 178 178 * **dev_addr:** Inptu the device address 197 + 179 179 * **imme/time:** 180 180 ** imme: send downstream immediately,For Class C end node. 181 181 ** time: send downstream after receive device's uplink. For Class A end node 201 + 182 182 * **txt/hex:** 183 183 ** txt: send payload in ASCII 184 184 ** hex: send payload in HEX 205 + 185 185 * **payload: **payload to be sent, payload lenght should match the LoRaWAN protocol requirement. 207 + 186 186 * **txpw:** Transmit Power. example: 20 209 + 187 187 * **txbw:** bandwidth: 188 188 ** 1: 500 kHz 189 189 ** 2: 250 kHz ... ... @@ -190,27 +190,43 @@ 190 190 ** 3: 125 kHz 191 191 ** 4: 62.5 kHz 192 192 * **SF:** Spreading Factor : SF7/SF8/SF9/SF10/SF11/SF12 216 + 193 193 * **Frequency:** Transmit Frequency: example: 923300000 218 + 194 194 * **rxwindow:** transmit on Rx1Window or Rx2Window. 195 195 221 +* **Fport: **Transmit port,example:8 222 + 223 + 196 196 (% style="color:blue" %)**Completely exmaple:** 197 197 198 198 * **Old version:** echo 018193F4,imme,hex,0101 > /var/iot/push/test 199 -* **New version:** echo 018193F4,imme,hex,0101,20,1,SF12,923300000,2 > /var/iot/push/test 200 200 201 - (%style="color:#037691"%)**Downstream Frequency**228 +* **New version:** echo 018193F4,imme,hex,0101,20,1,SF12,923300000,2,8 > /var/iot/push/test 202 202 230 + 231 +Downstream(% style="color:#037691" %)** Frequency:** 232 + 203 203 The LG308 will use the RX2 window info to send the downstream payload, use the default LoRaWAN settings, as below: 204 204 205 205 * EU868: 869.525Mhz, DR0(SF12BW125) 236 + 206 206 * US915: 923.3Mhz, SF12 BW500 238 + 207 207 * CN470: 505.3Mhz, SF12 BW125 240 + 208 208 * AU915: 923.3Mhz, SF12 BW500 242 + 209 209 * AS923: 923.2Mhz, SF10 BW125 244 + 210 210 * KR920: 921.9Mhz, SF12 BW125 246 + 211 211 * IN865: 866.55Mhz, SF10 BW125 248 + 212 212 * RU864: 869.1Mhz, SF12 BW125 213 213 251 + 252 + 214 214 (% style="color:#037691" %)**Examples:** 215 215 216 216 (% class="box" %) ... ... @@ -217,25 +217,19 @@ 217 217 ((( 218 218 we can use echo command to create files in LG308 for downstream. 219 219 root@dragino-1d25dc:~~# echo 2602111D,time,hex,12345678 > /var/iot/push/test 220 -))) 221 221 222 -(% class="box" %) 223 -((( 260 + 224 224 **1)** From logread -f of gateway, we can see it has been added as pedning. 225 225 lora_pkt_fwd[4286]: INFO~~ [DNLK]Looking file : test 226 226 lora_pkt_fwd[4286]: INFO~~ [DNLK]devaddr:2602111D, txmode:time, pdfm:hex, size:4, payload1:4Vx,payload_hex:77C1BB90 227 227 lora_pkt_fwd[4286]: INFO~~ [DNLK] DNLINK PENDING!(1 elems). 228 -))) 229 229 230 -(% class="box" %) 231 -((( 266 + 232 232 **2)** When there is an upstrea from end node, this downstream will be sent and shows: 233 233 lora_pkt_fwd[4286]: INFO: tx_start_delay=1497 (1497.000000) - (1497, bw_delay=0.000000, notch_delay=0.000000) 234 234 lora_pkt_fwd[4286]: [LGWSEND]lgw_send done: count_us=3537314420, freq=923300000, size=17 235 -))) 236 236 237 -(% class="box" %) 238 -((( 271 + 239 239 **3)** and the end node will got: 240 240 [5764825]~*~*~*~** UpLinkCounter= 98 ~*~*~*~** 241 241 [5764827]TX on freq 905300000 Hz at DR 0 ... ... @@ -248,10 +248,8 @@ 248 248 Rssi= -41 249 249 Receive data 250 250 (% style="color:#037691" %)**2:12345678** (%%) ~-~-> Hex 251 -))) 252 252 253 -(% class="box" %) 254 -((( 285 + 255 255 **4) **If we use the command "echo 2602111D,time,txt,12345678 > /var/iot/push/test" for downstream, the end node will got: 256 256 [5955877]~*~*~*~** UpLinkCounter= 102 ~*~*~*~** 257 257 [5955879]TX on freq 904100000 Hz at DR 0 ... ... @@ -310,33 +310,42 @@ 310 310 # whether the Device 2 has been changed.// 311 311 ))) 312 312 313 -**~1. Input keys** 314 314 345 +(% style="color:blue" %)**1. Input keys** 346 + 347 + 315 315 [[image:image-20220527162450-3.png]] 316 316 317 317 Input Keys in LPS8 318 318 319 319 320 -**2. Make sure the LPS8 and LT use the same frequency bands, choose EU868 in this test.** 321 321 322 -** 3.ChooseBuilt-in server**354 +(% style="color:blue" %)**2. Make sure the LPS8 and LT use the same frequency bands, choose EU868 in this test.** 323 323 356 + 357 +(% style="color:blue" %)**3. Choose Built-in server** 358 + 359 + 324 324 [[image:image-20220527162518-4.png]] 325 325 326 326 Choose Built-in server 327 327 328 328 329 -**4. Run the script.** 330 330 331 - [[image:image-20220527162552-5.png]]366 +(% style="color:blue" %)**4. Run the script.** 332 332 368 + 369 +[[image:image-20220722115213-2.png]] 370 + 333 333 Run the script 334 334 335 335 336 -**5. Output:** 337 337 338 - [[image:image-20220527162619-6.png]]375 +(% style="color:blue" %)**5. Output:** 339 339 377 + 378 +[[image:image-20220722115133-1.png]] 379 + 340 340 Output from LPS8 341 341 342 342 ... ... @@ -350,9 +350,9 @@ 350 350 351 351 Full instruction video inlcude how to write scripts to fit server needed is here: 352 352 353 - 354 354 (% style="color:#037691" %)**Video Instruction**(%%): **[[https:~~/~~/youtu.be/-nevW6U2TsE>>url:https://youtu.be/-nevW6U2TsE]]** 355 355 395 +(% style="display:none" %) (%%) 356 356 357 357 (% style="color:red" %)**Note: Firmware version must be higher than lgw-5.4.1607519907** 358 358 ... ... @@ -365,8 +365,9 @@ 365 365 366 366 367 367 368 -**run socket tool in PC** 408 +(% style="color:blue" %)**run socket tool in PC** 369 369 410 + 370 370 [[image:image-20220527163028-9.png]] 371 371 372 372 ... ... @@ -374,8 +374,9 @@ 374 374 375 375 376 376 377 -**Input Server address and port** 418 +(% style="color:blue" %)**Input Server address and port** 378 378 420 + 379 379 [[image:image-20220527163106-10.png]] 380 380 381 381 Input Server address and port ... ... @@ -382,10 +382,11 @@ 382 382 383 383 384 384 385 -**See value receive in socket tool:** 427 +(% style="color:blue" %)**See value receive in socket tool:** 386 386 387 -[[image:image-20220527163144-11.png]] 388 388 430 +[[image:image-20220527163144-11.png||height="502" width="1371"]] 431 + 389 389 value receive in socket tool 390 390 391 391
- image-20220722115133-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +35.1 KB - Content
- image-20220722115213-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +27.7 KB - Content