<
From version < 57.43 >
edited by Xiaoling
on 2022/06/06 10:12
To version < 61.3 >
edited by Xiaoling
on 2022/06/14 11:27
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -RS485-LN – RS485 to LoRaWAN Converter
1 +RS485-LN – RS485 to LoRaWAN Converter User Manual
Content
... ... @@ -3,7 +3,6 @@
3 3  
4 4  
5 5  
6 -**RS485-LN – RS485 to LoRaWAN Converter User Manual**
7 7  
8 8  
9 9  
... ... @@ -25,6 +25,8 @@
25 25  (((
26 26  (((
27 27  (((
27 +
28 +
28 28  The Dragino RS485-LN is a (% style="color:blue" %)**RS485 to LoRaWAN Converter**(%%). It converts the RS485 signal into LoRaWAN wireless signal which simplify the IoT installation and reduce the installation/maintaining cost.
29 29  )))
30 30  )))
... ... @@ -48,6 +48,8 @@
48 48  
49 49  (((
50 50  (% style="color:blue" %)**Demo Dashboard for RS485-LN**(%%) connect to two energy meters: [[https:~~/~~/app.datacake.de/dashboard/d/58844a26-378d-4c5a-aaf5-b5b5b153447a>>url:https://app.datacake.de/dashboard/d/58844a26-378d-4c5a-aaf5-b5b5b153447a]]
52 +
53 +
51 51  )))
52 52  )))
53 53  )))
... ... @@ -92,6 +92,8 @@
92 92  * Automatic RF Sense and CAD with ultra-fast AFC.
93 93  * Packet engine up to 256 bytes with CRC
94 94  
98 +
99 +
95 95  == 1.3 Features ==
96 96  
97 97  * LoRaWAN Class A & Class C protocol (default Class C)
... ... @@ -114,6 +114,8 @@
114 114  * Smart Cities
115 115  * Smart Factory
116 116  
122 +
123 +
117 117  == 1.5 Firmware Change log ==
118 118  
119 119  [[RS485-LN Image files – Download link and Change log>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/]]
... ... @@ -123,9 +123,13 @@
123 123  
124 124  (((
125 125  (((
133 +(((
126 126  v1.2: Add External Interrupt Pin.
135 +)))
127 127  
137 +(((
128 128  v1.0: Release
139 +)))
129 129  
130 130  
131 131  )))
... ... @@ -153,7 +153,9 @@
153 153  == 3.1 How it works? ==
154 154  
155 155  (((
167 +(((
156 156  The RS485-LN is configured as LoRaWAN OTAA Class C mode by default. It has OTAA keys to join network. To connect a local LoRaWAN network, user just need to input the OTAA keys in the network server and power on the RS485-LN. It will auto join the network via OTAA.
169 +)))
157 157  
158 158  
159 159  )))
... ... @@ -176,12 +176,13 @@
176 176  
177 177  [[image:1653268227651-549.png||height="592" width="720"]]
178 178  
192 +
179 179  (((
180 180  The LG308 is already set to connect to [[TTN V3 network >>path:https://www.thethingsnetwork.org/]]. So what we need to now is only configure the TTN V3:
181 181  )))
182 182  
183 183  (((
184 -**Step 1**: Create a device in TTN V3 with the OTAA keys from RS485-LN.
198 +(% style="color:blue" %)**Step 1**(%%): Create a device in TTN V3 with the OTAA keys from RS485-LN.
185 185  )))
186 186  
187 187  (((
... ... @@ -191,6 +191,7 @@
191 191  
192 192  [[image:1652953462722-299.png]]
193 193  
208 +
194 194  (((
195 195  (((
196 196  User can enter this key in their LoRaWAN Server portal. Below is TTN V3 screen shot:
... ... @@ -197,7 +197,7 @@
197 197  )))
198 198  
199 199  (((
200 -Add APP EUI in the application.
215 +**Add APP EUI in the application.**
201 201  )))
202 202  )))
203 203  
... ... @@ -213,13 +213,15 @@
213 213  
214 214  [[image:1652953542269-423.png||height="710" width="723"]]
215 215  
216 -Add APP KEY and DEV EUI
217 217  
232 +
233 +**Add APP KEY and DEV EUI**
234 +
218 218  [[image:1652953553383-907.png||height="514" width="724"]]
219 219  
220 220  
221 221  (((
222 -**Step 2**: Power on RS485-LN and it will auto join to the TTN V3 network. After join success, it will start to upload message to TTN V3 and user can see in the panel.
239 +(% style="color:blue" %)**Step 2**(%%): Power on RS485-LN and it will auto join to the TTN V3 network. After join success, it will start to upload message to TTN V3 and user can see in the panel.
223 223  )))
224 224  
225 225  [[image:1652953568895-172.png||height="232" width="724"]]
... ... @@ -229,11 +229,15 @@
229 229  
230 230  (((
231 231  (((
232 -There are plenty of RS485 devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-LN supports flexible command set. User can use [[AT Commands>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]] or LoRaWAN Downlink Command to configure what commands RS485-LN should send for each sampling and how to handle the return from RS485 devices.
249 +(((
250 +There are plenty of RS485 devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-LN supports flexible command set. User can use [[AT Commands>>||anchor="H3.5ConfigureRS485-LNviaATorDownlink"]] or LoRaWAN Downlink Command to configure what commands RS485-LN should send for each sampling and how to handle the return from RS485 devices.
233 233  )))
252 +)))
234 234  
235 235  (((
255 +(((
236 236  (% style="color:red" %)Note: below description and commands are for firmware version >v1.1, if you have firmware version v1.0. Please check the [[user manual v1.0>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/&file=RS485-LN_UserManual_v1.0.1.pdf]] or upgrade the firmware to v1.1
257 +)))
237 237  
238 238  
239 239  )))
... ... @@ -243,19 +243,19 @@
243 243  
244 244  To use RS485-LN to read data from RS485 sensors, connect the RS485-LN A/B traces to the sensors. And user need to make sure RS485-LN use the match UART setting to access the sensors. The related commands for UART settings are:
245 245  
246 -(% border="1" style="background-color:#ffffcc; color:green; width:782px" %)
247 -|(% style="width:128px" %)(((
267 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
268 +|=(% style="width: 110px;" %)(((
248 248  **AT Commands**
249 -)))|(% style="width:305px" %)(((
270 +)))|=(% style="width: 190px;" %)(((
250 250  **Description**
251 -)))|(% style="width:346px" %)(((
272 +)))|=(% style="width: 190px;" %)(((
252 252  **Example**
253 253  )))
254 -|(% style="width:128px" %)(((
275 +|(% style="width:110px" %)(((
255 255  AT+BAUDR
256 -)))|(% style="width:305px" %)(((
277 +)))|(% style="width:190px" %)(((
257 257  Set the baud rate (for RS485 connection). Default Value is: 9600.
258 -)))|(% style="width:346px" %)(((
279 +)))|(% style="width:190px" %)(((
259 259  (((
260 260  AT+BAUDR=9600
261 261  )))
... ... @@ -264,11 +264,11 @@
264 264  Options: (1200,2400,4800,14400,19200,115200)
265 265  )))
266 266  )))
267 -|(% style="width:128px" %)(((
288 +|(% style="width:110px" %)(((
268 268  AT+PARITY
269 -)))|(% style="width:305px" %)(((
290 +)))|(% style="width:190px" %)(((
270 270  Set UART parity (for RS485 connection)
271 -)))|(% style="width:346px" %)(((
292 +)))|(% style="width:190px" %)(((
272 272  (((
273 273  AT+PARITY=0
274 274  )))
... ... @@ -277,9 +277,9 @@
277 277  Option: 0: no parity, 1: odd parity, 2: even parity
278 278  )))
279 279  )))
280 -|(% style="width:128px" %)(((
301 +|(% style="width:110px" %)(((
281 281  AT+STOPBIT
282 -)))|(% style="width:305px" %)(((
303 +)))|(% style="width:190px" %)(((
283 283  (((
284 284  Set serial stopbit (for RS485 connection)
285 285  )))
... ... @@ -287,7 +287,7 @@
287 287  (((
288 288  
289 289  )))
290 -)))|(% style="width:346px" %)(((
311 +)))|(% style="width:190px" %)(((
291 291  (((
292 292  AT+STOPBIT=0 for 1bit
293 293  )))
... ... @@ -301,6 +301,9 @@
301 301  )))
302 302  )))
303 303  
325 +
326 +
327 +
304 304  === 3.3.2 Configure sensors ===
305 305  
306 306  (((
... ... @@ -309,16 +309,25 @@
309 309  )))
310 310  )))
311 311  
312 -(% border="1" style="background-color:#ffffcc; color:green; width:806px" %)
313 -|**AT Commands**|(% style="width:418px" %)**Description**|(% style="width:256px" %)**Example**
314 -|AT+CFGDEV|(% style="width:418px" %)(((
336 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
337 +|=(% style="width: 110px;" %)**AT Commands**|=(% style="width: 190px;" %)**Description**|=(% style="width: 190px;" %)**Example**
338 +|AT+CFGDEV|(% style="width:110px" %)(((
339 +(((
315 315  This command is used to configure the RS485/TTL devices; they won’t be used during sampling.
341 +)))
316 316  
343 +(((
317 317  AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,
345 +)))
318 318  
347 +(((
319 319  mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
320 -)))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
349 +)))
350 +)))|(% style="width:190px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
321 321  
352 +
353 +
354 +
322 322  === 3.3.3 Configure read commands for each sampling ===
323 323  
324 324  (((
... ... @@ -331,7 +331,7 @@
331 331  During each sampling, the RS485-LN can support 15 commands to read sensors. And combine the return to one or several uplink payloads.
332 332  
333 333  
334 -**Each RS485 commands include two parts:**
367 +(% style="color:#037691" %)**Each RS485 commands include two parts:**
335 335  
336 336  ~1. What commands RS485-LN will send to the RS485 sensors. There are total 15 commands from **AT+COMMAD1**, **ATCOMMAND2**,…, to **AT+COMMANDF**. All commands are of same grammar.
337 337  
... ... @@ -346,11 +346,11 @@
346 346  Below are examples for the how above AT Commands works.
347 347  
348 348  
349 -**AT+COMMANDx : **This command will be sent to RS485 devices during each sampling, Max command length is 14 bytes. The grammar is:
382 +(% style="color:#037691" %)**AT+COMMANDx **(%%)**: **This command will be sent to RS485 devices during each sampling, Max command length is 14 bytes. The grammar is:
350 350  
351 351  (% border="1" style="background-color:#4bacc6; color:white; width:499px" %)
352 352  |(% style="width:496px" %)(((
353 -**AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m**
386 +(% style="color:#037691" %)**AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m**
354 354  
355 355  **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent**
356 356  
... ... @@ -362,10 +362,10 @@
362 362  In the RS485-LN, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same.
363 363  
364 364  
365 -**AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes.
398 +(% style="color:#037691" %)**AT+DATACUTx **(%%)**: **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes.
366 366  
367 -(% border="1" style="background-color:#4bacc6; color:white; width:725px" %)
368 -|(% style="width:722px" %)(((
400 +(% border="1" style="background-color:#4bacc6; color:white; width:510px" %)
401 +|(% style="width:510px" %)(((
369 369  **AT+DATACUTx=a,b,c**
370 370  
371 371  * **a: length for the return of AT+COMMAND**
... ... @@ -375,20 +375,21 @@
375 375  
376 376  **Examples:**
377 377  
378 -* Grab bytes:
411 +* (% style="color:#037691" %)**Grab bytes**
379 379  
380 380  [[image:image-20220602153621-1.png]]
381 381  
382 382  
383 -* Grab a section.
416 +* (% style="color:#037691" %)**Grab a section**
384 384  
385 385  [[image:image-20220602153621-2.png]]
386 386  
387 387  
388 -* Grab different sections.
421 +* (% style="color:#037691" %)**Grab different sections**
389 389  
390 390  [[image:image-20220602153621-3.png]]
391 391  
425 +
392 392  
393 393  )))
394 394  
... ... @@ -491,33 +491,35 @@
491 491  
492 492  == 3.4 Uplink Payload ==
493 493  
494 -(% border="1" style="background-color:#4bacc6; color:white; width:734px" %)
495 -|**Size(bytes)**|(% style="width:120px" %)**2**|(% style="width:116px" %)**1**|(% style="width:386px" %)**Length depends on the return from the commands**
496 -|Value|(% style="width:120px" %)(((
497 -Battery(mV)
498 498  
499 -&
529 +[[image:image-20220606110929-1.png]]
500 500  
501 -Interrupt _Flag
502 -)))|(% style="width:116px" %)(((
503 -PAYLOAD_VER
504 -
505 -
506 -)))|(% style="width:386px" %)If the valid payload is too long and exceed the maximum support payload length in server, server will show payload not provided in the LoRaWAN server.
507 -
508 508  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
509 509  
510 510  
511 -== 3.5 Configure RS485-BL via AT or Downlink ==
534 +== 3.5 Configure RS485-LN via AT or Downlink ==
512 512  
536 +(((
513 513  User can configure RS485-LN via AT Commands or LoRaWAN Downlink Commands
538 +)))
514 514  
540 +(((
515 515  There are two kinds of Commands:
542 +)))
516 516  
517 -* (% style="color:#4f81bd" %)**Common Commands**(%%): They should be available for each sensor, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
544 +* (((
545 +(% style="color:#4f81bd" %)**Common Commands**(%%): They should be available for each sensor, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
546 +)))
518 518  
519 -* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-LN.  User can see these commands below:
548 +* (((
549 +(% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-LN.  User can see these commands below:
550 +)))
520 520  
552 +(((
553 +
554 +)))
555 +
556 +
521 521  === 3.5.1 Common Commands ===
522 522  
523 523  They should be available for each of Dragino Sensors, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
... ... @@ -536,142 +536,282 @@
536 536  
537 537  
538 538  
575 +
539 539  ==== **RS485 Debug Command** ====
540 540  
578 +(((
541 541  This command is used to configure the RS485 devices; they won’t be used during sampling.
580 +)))
542 542  
543 -* **AT Command**
582 +* (((
583 +**AT Command**
584 +)))
544 544  
545 545  (% class="box infomessage" %)
546 546  (((
588 +(((
547 547  **AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m**
548 548  )))
591 +)))
549 549  
593 +(((
550 550  m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
595 +)))
551 551  
552 -* **Downlink Payload**
597 +* (((
598 +**Downlink Payload**
599 +)))
553 553  
601 +(((
554 554  Format: A8 MM NN XX XX XX XX YY
603 +)))
555 555  
605 +(((
556 556  Where:
607 +)))
557 557  
558 -* MM: 1: add CRC-16/MODBUS ; 0: no CRC
559 -* NN: The length of RS485 command
560 -* XX XX XX XX: RS485 command total NN bytes
561 -* YY: How many bytes will be uplink from the return of this RS485 command,
562 -** if YY=0, RS485-LN will execute the downlink command without uplink;
563 -** if YY>0, RS485-LN will uplink total YY bytes from the output of this RS485 command; Fport=200
564 -** if YY=FF, RS485-LN will uplink RS485 output with the downlink command content; Fport=200.
609 +* (((
610 +MM: 1: add CRC-16/MODBUS ; 0: no CRC
611 +)))
612 +* (((
613 +NN: The length of RS485 command
614 +)))
615 +* (((
616 +XX XX XX XX: RS485 command total NN bytes
617 +)))
618 +* (((
619 +(((
620 +YY: How many bytes will be uplink from the return of this RS485 command,
621 +)))
565 565  
623 +* (((
624 +if YY=0, RS485-LN will execute the downlink command without uplink;
625 +)))
626 +* (((
627 +if YY>0, RS485-LN will uplink total YY bytes from the output of this RS485 command; Fport=200
628 +)))
629 +* (((
630 +if YY=FF, RS485-LN will uplink RS485 output with the downlink command content; Fport=200.
631 +)))
632 +)))
633 +
634 +(((
566 566  **Example 1** ~-~-> Configure without ask for uplink (YY=0)
636 +)))
567 567  
638 +(((
568 568  To connect a Modbus Alarm with below commands.
640 +)))
569 569  
570 -* The command to active alarm is: 0A 05 00 04 00 01 4C B0. Where 0A 05 00 04 00 01 is the Modbus command to read the register 00 40 where stored the DI status. The 4C B0 is the CRC-16/MODBUS which calculate manually.
642 +* (((
643 +The command to active alarm is: 0A 05 00 04 00 01 4C B0. Where 0A 05 00 04 00 01 is the Modbus command to read the register 00 40 where stored the DI status. The 4C B0 is the CRC-16/MODBUS which calculate manually.
644 +)))
571 571  
572 -* The command to deactivate alarm is: 0A 05 00 04 00 00 8D 70. Where 0A 05 00 04 00 00 is the Modbus command to read the register 00 40 where stored the DI status. The 8D 70 is the CRC-16/MODBUS which calculate manually.
646 +* (((
647 +The command to deactivate alarm is: 0A 05 00 04 00 00 8D 70. Where 0A 05 00 04 00 00 is the Modbus command to read the register 00 40 where stored the DI status. The 8D 70 is the CRC-16/MODBUS which calculate manually.
648 +)))
573 573  
650 +(((
574 574  So if user want to use downlink command to control to RS485 Alarm, he can use:
652 +)))
575 575  
654 +(((
576 576  (% style="color:#4f81bd" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm
656 +)))
577 577  
658 +(((
578 578  (% style="color:#4f81bd" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm
660 +)))
579 579  
662 +(((
580 580  A8 is type code and 01 means add CRC-16/MODBUS at the end, the 3^^rd^^ byte is 06, means the next 6 bytes are the command to be sent to the RS485 network, the final byte 00 means this command don’t need to acquire output.
664 +)))
581 581  
666 +(((
667 +
668 +)))
582 582  
670 +(((
583 583  **Example 2** ~-~-> Configure with requesting uplink and original downlink command (**YY=FF**)
672 +)))
584 584  
674 +(((
585 585  User in IoT server send a downlink command: (% style="color:#4f81bd" %)**A8 01 06 0A 08 00 04 00 01 YY**
676 +)))
586 586  
678 +(((
679 +
680 +)))
587 587  
682 +(((
588 588  RS485-LN got this downlink command and send (% style="color:#4f81bd" %)**0A 08 00 04 00 01 **(%%)to Modbus network. One of the RS485 sensor in the network send back Modbus reply **0A 08 00 04 00 00**. RS485-LN get this reply and combine with the original downlink command and uplink. The uplink message is:
684 +)))
589 589  
686 +(((
590 590   **A8** (% style="color:#4f81bd" %)**0A 08 00 04 00  **(% style="color:red" %)**01 06** ** **(% style="color:green" %)**0A 08 00 04 00 00**
688 +)))
591 591  
690 +(((
592 592   [[image:1654159460680-153.png]]
692 +)))
593 593  
594 594  
595 595  
696 +
596 596  ==== **Set Payload version** ====
597 597  
598 -This is the first byte of the uplink payload. RS485-BL can connect to different sensors. User can set the PAYVER field to tell server how to decode the current payload.
699 +(((
700 +This is the first byte of the uplink payload. RS485-LN can connect to different sensors. User can set the PAYVER field to tell server how to decode the current payload.
701 +)))
599 599  
600 -* **AT Command:**
703 +* (((
704 +**AT Command:**
705 +)))
601 601  
602 602  (% class="box infomessage" %)
603 603  (((
709 +(((
604 604  **AT+PAYVER: Set PAYVER field = 1**
605 605  )))
712 +)))
606 606  
607 -* **Downlink Payload:**
714 +* (((
715 +**Downlink Payload:**
716 +)))
608 608  
718 +(((
609 609  **0xAE 01**  ~-~-> Set PAYVER field =  0x01
720 +)))
610 610  
722 +(((
611 611  **0xAE 0F**   ~-~-> Set PAYVER field =  0x0F
724 +)))
612 612  
613 613  
614 614  
728 +
615 615  ==== **Set RS485 Sampling Commands** ====
616 616  
731 +(((
617 617  AT+COMMANDx or AT+DATACUTx
733 +)))
618 618  
735 +(((
619 619  These three commands are used to configure how the RS485-LN polling data from Modbus device. Detail of usage please see : [[polling RS485 device>>||anchor="H3.3.3Configurereadcommandsforeachsampling"]].
737 +)))
620 620  
739 +(((
740 +
741 +)))
621 621  
622 -* **AT Command:**
743 +* (((
744 +**AT Command:**
745 +)))
623 623  
624 624  (% class="box infomessage" %)
625 625  (((
749 +(((
626 626  **AT+COMMANDx: Configure RS485 read command to sensor.**
627 627  )))
752 +)))
628 628  
629 629  (% class="box infomessage" %)
630 630  (((
756 +(((
631 631  **AT+DATACUTx: Configure how to handle return from RS485 devices.**
632 632  )))
759 +)))
633 633  
761 +(((
762 +
763 +)))
634 634  
635 -* **Downlink Payload:**
765 +* (((
766 +**Downlink Payload:**
767 +)))
636 636  
769 +(((
637 637  **0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
771 +)))
638 638  
773 +(((
639 639  (% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.
775 +)))
640 640  
777 +(((
641 641  Format: AF MM NN LL XX XX XX XX YY
779 +)))
642 642  
781 +(((
643 643  Where:
783 +)))
644 644  
645 -* MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
646 -* NN:  0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
647 -* LL:  The length of AT+COMMAND or AT+DATACUT command
648 -* XX XX XX XX: AT+COMMAND or AT+DATACUT command
649 -* YY:  If YY=0, RS485-BL will execute the downlink command without uplink; if YY=1, RS485-LN will execute an uplink after got this command.
785 +* (((
786 +MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
787 +)))
788 +* (((
789 +NN:  0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
790 +)))
791 +* (((
792 +LL:  The length of AT+COMMAND or AT+DATACUT command
793 +)))
794 +* (((
795 +XX XX XX XX: AT+COMMAND or AT+DATACUT command
796 +)))
797 +* (((
798 +YY:  If YY=0, RS485-LN will execute the downlink command without uplink; if YY=1, RS485-LN will execute an uplink after got this command.
799 +)))
650 650  
801 +(((
651 651  **Example:**
803 +)))
652 652  
805 +(((
653 653  (% style="color:#037691" %)**AF 03 01 06 0A 05 00 04 00 01 00**(%%): Same as AT+COMMAND3=0A 05 00 04 00 01,1
807 +)))
654 654  
809 +(((
655 655  (% style="color:#037691" %)**AF 03 02 06**(% style="color:orange" %)** 10 **(% style="color:red" %)**01 **(% style="color:green" %)**05 06 09 0A**(% style="color:#037691" %)** 00**(%%): Same as AT+DATACUT3=(% style="color:orange" %)**16**(%%),(% style="color:red" %)**1**(%%),(% style="color:green" %)**5+6+9+10**
811 +)))
656 656  
813 +(((
657 657  (% style="color:#037691" %)**AF 03 02 06 **(% style="color:orange" %)**0B**(% style="color:red" %)** 02 **(% style="color:green" %)**05 07 08 0A **(% style="color:#037691" %)**00**(%%): Same as AT+DATACUT3=(% style="color:orange" %)**11**(%%),(% style="color:red" %)**2**(%%),(% style="color:green" %)**5~~7+8~~10**
815 +)))
658 658  
659 659  
660 660  
819 +
661 661  ==== **Fast command to handle MODBUS device** ====
662 662  
822 +(((
663 663  AT+MBFUN is valid since v1.3 firmware version. The command is for fast configure to read Modbus devices. It is only valid for the devices which follow the [[MODBUS-RTU protocol>>url:https://www.modbustools.com/modbus.html]].
824 +)))
664 664  
826 +(((
665 665  This command is valid since v1.3 firmware version
828 +)))
666 666  
830 +(((
667 667  AT+MBFUN can auto read the Modbus function code: 01, 02, 03 or 04. AT+MBFUN has lower priority vs AT+DATACUT command. If AT+DATACUT command is configured, AT+MBFUN will be ignore.
832 +)))
668 668  
834 +(((
835 +
836 +)))
669 669  
838 +(((
670 670  **Example:**
840 +)))
671 671  
672 -* AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). So RS485-LN.
673 -* AT+COMMAND1= 01 03 00 10 00 08,1 ~-~-> read slave address 01 , function code 03, start address 00 01, quantity of registers 00 08.
674 -* AT+COMMAND2= 01 02 00 40 00 10,1 ~-~-> read slave address 01 , function code 02, start address 00 40, quantity of inputs 00 10.
842 +* (((
843 +AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). So RS485-LN.
844 +)))
845 +* (((
846 +AT+COMMAND1= 01 03 00 10 00 08,1 ~-~-> read slave address 01 , function code 03, start address 00 01, quantity of registers 00 08.
847 +)))
848 +* (((
849 +AT+COMMAND2= 01 02 00 40 00 10,1 ~-~-> read slave address 01 , function code 02, start address 00 40, quantity of inputs 00 10.
850 +)))
675 675  
676 676  [[image:image-20220602165351-6.png]]
677 677  
... ... @@ -679,203 +679,375 @@
679 679  
680 680  
681 681  
858 +
682 682  ==== **RS485 command timeout** ====
683 683  
861 +(((
684 684  Some Modbus device has slow action to send replies. This command is used to configure the RS485-LN to use longer time to wait for their action.
863 +)))
685 685  
865 +(((
686 686  Default value: 0, range:  0 ~~ 65 seconds
867 +)))
687 687  
688 -* **AT Command:**
869 +* (((
870 +**AT Command:**
871 +)))
689 689  
690 690  (% class="box infomessage" %)
691 691  (((
875 +(((
692 692  **AT+CMDDLaa=hex(bb cc)*1000**
693 693  )))
878 +)))
694 694  
880 +(((
695 695  **Example:**
882 +)))
696 696  
884 +(((
697 697  **AT+CMDDL1=1000** to send the open time to 1000ms
886 +)))
698 698  
888 +(((
889 +
890 +)))
699 699  
700 -* **Downlink Payload:**
892 +* (((
893 +**Downlink Payload:**
894 +)))
701 701  
896 +(((
702 702  **0x AA aa bb cc**
898 +)))
703 703  
900 +(((
704 704  Same as: AT+CMDDLaa=hex(bb cc)*1000
902 +)))
705 705  
904 +(((
706 706   **Example:**
906 +)))
707 707  
908 +(((
708 708   0xAA 01 00 01  ~-~-> Same as **AT+CMDDL1=1000 ms**
910 +)))
709 709  
710 710  
711 711  
914 +
712 712  ==== **Uplink payload mode** ====
713 713  
917 +(((
714 714  Define to use one uplink or multiple uplinks for the sampling.
919 +)))
715 715  
921 +(((
716 716  The use of this command please see: [[Compose Uplink payload>>||anchor="H3.3.4Composetheuplinkpayload"]]
923 +)))
717 717  
718 -* **AT Command:**
925 +* (((
926 +**AT Command:**
927 +)))
719 719  
720 720  (% class="box infomessage" %)
721 721  (((
931 +(((
722 722  **AT+DATAUP=0**
723 723  )))
934 +)))
724 724  
725 725  (% class="box infomessage" %)
726 726  (((
938 +(((
727 727  **AT+DATAUP=1**
728 728  )))
941 +)))
729 729  
943 +(((
944 +
945 +)))
730 730  
731 -* **Downlink Payload:**
947 +* (((
948 +**Downlink Payload:**
949 +)))
732 732  
951 +(((
733 733  **0xAD 00**  **~-~->** Same as AT+DATAUP=0
953 +)))
734 734  
955 +(((
735 735  **0xAD 01**  **~-~->** Same as AT+DATAUP=1
957 +)))
736 736  
737 737  
738 738  
961 +
739 739  ==== **Manually trigger an Uplink** ====
740 740  
964 +(((
741 741  Ask device to send an uplink immediately.
966 +)))
742 742  
743 -* **AT Command:**
968 +* (((
969 +**AT Command:**
970 +)))
744 744  
972 +(((
745 745  No AT Command for this, user can press the [[ACT button>>||anchor="H3.7Buttons"]] for 1 second for the same.
974 +)))
746 746  
976 +(((
977 +
978 +)))
747 747  
748 -* **Downlink Payload:**
980 +* (((
981 +**Downlink Payload:**
982 +)))
749 749  
984 +(((
750 750  **0x08 FF**, RS485-LN will immediately send an uplink.
986 +)))
751 751  
752 752  
753 753  
990 +
754 754  ==== **Clear RS485 Command** ====
755 755  
993 +(((
756 756  The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them.
995 +)))
757 757  
758 -* **AT Command:**
997 +* (((
998 +**AT Command:**
999 +)))
759 759  
1001 +(((
760 760  **AT+CMDEAR=mm,nn**   mm: start position of erase ,nn: stop position of erase
1003 +)))
761 761  
1005 +(((
762 762  Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10
1007 +)))
763 763  
1009 +(((
764 764  Example screen shot after clear all RS485 commands. 
1011 +)))
765 765  
1013 +(((
1014 +
1015 +)))
766 766  
1017 +(((
767 767  The uplink screen shot is:
1019 +)))
768 768  
769 769  [[image:1654160691922-496.png]]
770 770  
771 771  
772 -* **Downlink Payload:**
1024 +* (((
1025 +**Downlink Payload:**
1026 +)))
773 773  
1028 +(((
774 774  **0x09 aa bb** same as AT+CMDEAR=aa,bb
1030 +)))
775 775  
776 776  
777 777  
1034 +
778 778  ==== **Set Serial Communication Parameters** ====
779 779  
1037 +(((
780 780  Set the Rs485 serial communication parameters:
1039 +)))
781 781  
782 -* **AT Command:**
1041 +* (((
1042 +**AT Command:**
1043 +)))
783 783  
1045 +(((
784 784  Set Baud Rate:
1047 +)))
785 785  
786 786  (% class="box infomessage" %)
787 787  (((
1051 +(((
788 788  **AT+BAUDR=9600**    ~/~/ Options: (1200,2400,4800,14400,19200,115200)
789 789  )))
1054 +)))
790 790  
1056 +(((
791 791  Set UART Parity
1058 +)))
792 792  
793 793  (% class="box infomessage" %)
794 794  (((
1062 +(((
795 795  **AT+PARITY=0**    ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity
796 796  )))
1065 +)))
797 797  
1067 +(((
798 798  Set STOPBIT
1069 +)))
799 799  
800 800  (% class="box infomessage" %)
801 801  (((
1073 +(((
802 802  **AT+STOPBIT=0**    ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits
803 803  )))
1076 +)))
804 804  
1078 +(((
1079 +
1080 +)))
805 805  
806 -* **Downlink Payload:**
1082 +* (((
1083 +**Downlink Payload:**
1084 +)))
807 807  
1086 +(((
808 808  **A7 01 aa bb**: Same  AT+BAUDR=hex(aa bb)*100
1088 +)))
809 809  
1090 +(((
810 810  **Example:**
1092 +)))
811 811  
812 -* A7 01 00 60   same as AT+BAUDR=9600
813 -* A7 01 04 80  same as AT+BAUDR=115200
1094 +* (((
1095 +A7 01 00 60   same as AT+BAUDR=9600
1096 +)))
1097 +* (((
1098 +A7 01 04 80  same as AT+BAUDR=115200
1099 +)))
814 814  
1101 +(((
815 815  A7 02 aa: Same as  AT+PARITY=aa  (aa value: 00 , 01 or 02)
1103 +)))
816 816  
1105 +(((
817 817  A7 03 aa: Same as  AT+STOPBIT=aa  (aa value: 00 , 01 or 02)
1107 +)))
818 818  
819 819  
1110 +
1111 +
820 820  == 3.6 Listening mode for RS485 network ==
821 821  
1114 +(((
822 822  This feature support since firmware v1.4
1116 +)))
823 823  
1118 +(((
824 824  RS485-LN supports listening mode, it can listen the RS485 network packets and send them via LoRaWAN uplink. Below is the structure. The blue arrow shows the RS485 network packets to RS485-LN.
1120 +)))
825 825  
826 826  [[image:image-20220602171200-8.png||height="567" width="1007"]]
827 827  
1124 +(((
828 828  To enable the listening mode, use can run the command AT+RXMODE.
1126 +)))
829 829  
1128 +(((
1129 +
1130 +)))
830 830  
831 -(% border="1" style="background-color:#ffffcc; width:500px" %)
832 -|=(% style="width: 161px;" %)**Command example:**|=(% style="width: 337px;" %)**Function**
833 -|(% style="width:161px" %)AT+RXMODE=1,10 |(% style="width:337px" %)Enable listening mode 1, if RS485-LN has received more than 10 RS485 commands from the network. RS485-LN will send these commands via LoRaWAN uplinks.
834 -|(% style="width:161px" %)AT+RXMODE=2,500|(% style="width:337px" %)Enable listening mode 2, RS485-LN will capture and send a 500ms content once from the first detect of character. Max value is 65535 ms
835 -|(% style="width:161px" %)AT+RXMODE=0,0|(% style="width:337px" %)Disable listening mode. This is the default settings.
836 -|(% style="width:161px" %) |(% style="width:337px" %)A6 aa bb cc  same as AT+RXMODE=aa,(bb<<8 ~| cc)
1132 +(% border="1" cellspacing="10" style="background-color:#ffffcc; width:500px" %)
1133 +|=(% style="width: 100px;" %)(((
1134 +**Command example**
1135 +)))|=(% style="width: 400px;" %)(((
1136 +**Function**
1137 +)))
1138 +|(% style="width:100px" %)(((
1139 +AT+RXMODE=1,10
1140 +)))|(% style="width:400px" %)(((
1141 +Enable listening mode 1, if RS485-LN has received more than 10 RS485 commands from the network. RS485-LN will send these commands via LoRaWAN uplinks.
1142 +)))
1143 +|(% style="width:100px" %)(((
1144 +AT+RXMODE=2,500
1145 +)))|(% style="width:400px" %)(((
1146 +Enable listening mode 2, RS485-LN will capture and send a 500ms content once from the first detect of character. Max value is 65535 ms
1147 +)))
1148 +|(% style="width:100px" %)(((
1149 +AT+RXMODE=0,0
1150 +)))|(% style="width:400px" %)(((
1151 +Disable listening mode. This is the default settings.
1152 +)))
1153 +|(% style="width:100px" %)(((
1154 +
1155 +)))|(% style="width:400px" %)(((
1156 +A6 aa bb cc  same as AT+RXMODE=aa,(bb<<8 | cc)
1157 +)))
837 837  
1159 +(((
838 838  **Downlink Command:**
1161 +)))
839 839  
1163 +(((
840 840  **0xA6 aa bb cc ** same as AT+RXMODE=aa,(bb<<8 | cc)
1165 +)))
841 841  
1167 +(((
1168 +
1169 +)))
842 842  
1171 +(((
843 843  **Example**:
1173 +)))
844 844  
1175 +(((
845 845  The RS485-LN is set to AT+RXMODE=2,1000
1177 +)))
846 846  
1179 +(((
847 847  There is a two Modbus commands in the RS485 network as below:
1181 +)))
848 848  
1183 +(((
849 849  The Modbus master send a command: (% style="background-color:#ffc000" %)01 03 00 00 00 02 c4 0b
1185 +)))
850 850  
1187 +(((
851 851  And Modbus slave reply with: (% style="background-color:green" %)01 03 04 00 00 00 00 fa 33
1189 +)))
852 852  
1191 +(((
853 853  RS485-LN will capture both and send the uplink: (% style="background-color:#ffc000" %)01 03 00 00 00 02 c4 0b  (% style="background-color:green" %)01 03 04 00 00 00 00 fa 33
1193 +)))
854 854  
1195 +(((
855 855  [[image:image-20220602171200-9.png]]
1197 +)))
856 856  
1199 +(((
1200 +
1201 +)))
857 857  
1203 +(((
1204 +(((
858 858  (% style="color:red" %)Notice: Listening mode can work with the default polling mode of RS485-LN. When RS485-LN is in to send the RS485 commands (from AT+COMMANDx), the listening mode will be interrupt for a while.
1206 +)))
1207 +)))
859 859  
860 860  
861 861  == 3.7 Buttons ==
862 862  
863 863  
864 -(% border="1" style="background-color:#f7faff; width:500px" %)
865 -|=**Button**|=(% style="width: 1420px;" %)**Feature**
866 -|**ACT**|(% style="width:1420px" %)If RS485 joined in network, press this button for more than 1 second, RS485 will upload a packet, and the SYS LED will give a (% style="color:blue" %)**Blue blink**
867 -|**RST**|(% style="width:1420px" %)Reboot RS485
868 -|**PRO**|(% style="width:1420px" %)Use for upload image, see [[How to Update Image>>||anchor="H6.1Howtoupgradetheimage3F"]]
1213 +(% border="1" cellspacing="10" style="background-color:#f7faff; width:430px" %)
1214 +|=(% style="width: 50px;" %)**Button**|=(% style="width: 361px;" %)**Feature**
1215 +|(% style="width:50px" %)**ACT**|(% style="width:361px" %)If RS485 joined in network, press this button for more than 1 second, RS485 will upload a packet, and the SYS LED will give a (% style="color:blue" %)**Blue blink**
1216 +|(% style="width:50px" %)**RST**|(% style="width:361px" %)Reboot RS485
1217 +|(% style="width:50px" %)**PRO**|(% style="width:361px" %)Use for upload image, see [[How to Update Image>>||anchor="H6.1Howtoupgradetheimage3F"]]
869 869  
870 -
871 871  == 3.8 LEDs ==
872 872  
873 -(% border="1" style="background-color:#f7faff; width:500px" %)
874 -|=**LEDs**|=**Feature**
1221 +
1222 +(% border="1" cellspacing="10" style="background-color:#f7faff; width:430px" %)
1223 +|=(% style="width: 50px;" %)**LEDs**|=(% style="width: 380px;" %)**Feature**
875 875  |**PWR**|Always on if there is power
876 -|**SYS**|After device is powered on, the SYS will (% style="color:green" %)**fast blink in GREEN** (%%)for 5 times, means RS485-LN start to join LoRaWAN network. If join success, SYS will be (% style="color:green" %)**on GREEN for 5 seconds**(%%)**. **SYS will (% style="color:green" %)**blink Blue**(%%) on every upload and (% style="color:green" %)**blink Green**(%%) once receive a downlink message.
1225 +|**SYS**|After device is powered on, the SYS will (% style="color:green" %)**fast blink in GREEN**(%%) for 5 times, means RS485-LN start to join LoRaWAN network. If join success, SYS will be (% style="color:green" %)**on GREEN for 5 seconds** (%%)**. **SYS will (% style="color:green" %)**blink Blue**(%%) on every upload and (% style="color:green" %)**blink Green**(%%) once receive a downlink message.
877 877  
878 -
879 879  = 4. Case Study =
880 880  
881 881  User can check this URL for some case studies: [[APP RS485 COMMUNICATE WITH SENSORS>>doc:Main.Application Note \: Communicate with Different Sensors ----- RS485-LN RS485-BL.WebHome]]
... ... @@ -885,19 +885,26 @@
885 885  
886 886  == 5.1 Access AT Command ==
887 887  
888 -RS485-BL supports AT Command set. User can use a USB to TTL adapter plus the 3.5mm Program Cable to connect to RS485-BL to use AT command, as below.
1236 +(((
1237 +RS485-LN supports AT Command set. User can use a USB to TTL adapter plus the 3.5mm Program Cable to connect to RS485-LN to use AT command, as below.
1238 +)))
889 889  
890 890  [[image:1654162355560-817.png]]
891 891  
892 892  
893 -In PC, User needs to set (% style="color:blue" %)**serial tool**(%%)(such as [[putty>>url:https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]], SecureCRT) baud rate to (% style="color:green" %)**9600**(%%) to access to access serial console of RS485-BL. The default password is 123456. Below is the output for reference:
1243 +(((
1244 +In PC, User needs to set (% style="color:blue" %)**serial tool**(%%)(such as [[putty>>url:https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]], SecureCRT) baud rate to (% style="color:green" %)**9600**(%%) to access to access serial console of RS485-LN. The default password is 123456. Below is the output for reference:
1245 +)))
894 894  
895 895  [[image:1654162368066-342.png]]
896 896  
897 897  
1250 +(((
898 898  More detail AT Command manual can be found at [[AT Command Manual>>https://www.dragino.com/downloads/index.php?dir=LT_LoRa_IO_Controller/LT33222-L/]]
1252 +)))
899 899  
900 900  
1255 +
901 901  == 5.2 Common AT Command Sequence ==
902 902  
903 903  === 5.2.1 Multi-channel ABP mode (Use with SX1301/LG308) ===
... ... @@ -920,7 +920,9 @@
920 920  )))
921 921  
922 922  
1278 +(((
923 923  If device already joined network:
1280 +)))
924 924  
925 925  (% class="box infomessage" %)
926 926  (((
... ... @@ -959,10 +959,12 @@
959 959  
960 960  (% style="color:red" %)**Note:**
961 961  
1319 +(((
962 962  (% style="color:red" %)1. Make sure the device is set to ABP mode in the IoT Server.
963 963  2. Make sure the LG01/02 gateway RX frequency is exactly the same as AT+CHS setting.
964 964  3. Make sure SF / bandwidth setting in LG01/LG02 match the settings of AT+DR. refer [[this link>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/&file=LoRaWAN%201.0.3%20Regional%20Parameters.xlsx]] to see what DR means.
965 965  4. The command AT+RX2FQ and AT+RX2DR is to let downlink work. to set the correct parameters, user can check the actually downlink parameters to be used. As below. Which shows the RX2FQ should use 868400000 and RX2DR should be 5
1324 +)))
966 966  
967 967  [[image:1654162478620-421.png]]
968 968  
... ... @@ -971,25 +971,45 @@
971 971  
972 972  == 6.1 How to upgrade the image? ==
973 973  
1333 +(((
974 974  The RS485-LN LoRaWAN Controller is shipped with a 3.5mm cable, the cable is used to upload image to RS485-LN to:
1335 +)))
975 975  
976 -* Support new features
977 -* For bug fix
978 -* Change LoRaWAN bands.
1337 +* (((
1338 +Support new features
1339 +)))
1340 +* (((
1341 +For bug fix
1342 +)))
1343 +* (((
1344 +Change LoRaWAN bands.
1345 +)))
979 979  
1347 +(((
980 980  Below shows the hardware connection for how to upload an image to RS485-LN:
1349 +)))
981 981  
982 982  [[image:1654162535040-878.png]]
983 983  
1353 +(((
984 984  **Step1:** Download [[flash loader>>url:https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html]].
1355 +)))
985 985  
1357 +(((
986 986  **Step2**: Download the [[LT Image files>>url:http://www.dragino.com/downloads/index.php?dir=LT_LoRa_IO_Controller/LT33222-L/image/]].
1359 +)))
987 987  
1361 +(((
988 988  **Step3: **Open flashloader; choose the correct COM port to update.
1363 +)))
989 989  
990 990  (((
1366 +(((
1367 +(((
991 991  (% style="color:blue" %) Hold down the PRO button and then momentarily press the RST reset button and the SYS led will change from OFF to ON, While SYS LED is RED ON, it means the RS485-LN is ready to be program.
992 992  )))
1370 +)))
1371 +)))
993 993  
994 994  
995 995  [[image:image-20220602175818-12.png]]
... ... @@ -1011,9 +1011,9 @@
1011 1011  User can follow the introduction for [[how to upgrade image>>||anchor="H6.1Howtoupgradetheimage3F"]]. When download the images, choose the required image file for download.
1012 1012  
1013 1013  
1014 -== 6.3 How many RS485-Slave can RS485-BL connects? ==
1393 +== 6.3 How many RS485-Slave can RS485-LN connects? ==
1015 1015  
1016 -The RS485-BL can support max 32 RS485 devices. Each uplink command of RS485-BL can support max 16 different RS485 command. So RS485-BL can support max 16 RS485 devices pre-program in the device for uplink. For other devices no pre-program, user can use the [[downlink message (type code 0xA8) to poll their info>>||anchor="H3.3.3Configurereadcommandsforeachsampling"]].
1395 +The RS485-LN can support max 32 RS485 devices. Each uplink command of RS485-LN can support max 16 different RS485 command. So RS485-LN can support max 16 RS485 devices pre-program in the device for uplink. For other devices no pre-program, user can use the [[downlink message (type code 0xA8) to poll their info>>||anchor="H3.3.3Configurereadcommandsforeachsampling"]].
1017 1017  
1018 1018  
1019 1019  == 6.4 Compatible question to ChirpStack and TTI LoRaWAN server ? ==
... ... @@ -1052,8 +1052,6 @@
1052 1052  * (% style="color:blue" %)**RU864**(%%): frequency bands RU864
1053 1053  * (% style="color:blue" %)**KZ865**(%%): frequency bands KZ865
1054 1054  
1055 -
1056 -
1057 1057  = 9.Packing Info =
1058 1058  
1059 1059  
... ... @@ -1070,8 +1070,6 @@
1070 1070  * Package Size / pcs : 14.5 x 8 x 5 cm
1071 1071  * Weight / pcs : 170g
1072 1072  
1073 -
1074 -
1075 1075  = 10. FCC Caution for RS485LN-US915 =
1076 1076  
1077 1077  (((
image-20220606110929-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +13.9 KB
Content
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0