Changes for page RS485-BL – Waterproof RS485 to LoRaWAN Converter
Last modified by Xiaoling on 2025/04/23 15:57
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -283,28 +283,28 @@ 283 283 ))) 284 284 285 285 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %) 286 -|=(% style="width: 120px;" %)(((286 +|=(% style="width: 80px;" %)((( 287 287 ((( 288 288 **AT Commands** 289 289 ))) 290 -)))|=(% style="width: 1 90px;" %)(((290 +)))|=(% style="width: 210px;" %)((( 291 291 ((( 292 292 **Description** 293 293 ))) 294 -)))|=(% style="width: 1 90px;" %)(((294 +)))|=(% style="width: 210px;" %)((( 295 295 ((( 296 296 **Example** 297 297 ))) 298 298 ))) 299 -|(% style="width: 120px" %)(((299 +|(% style="width:80px" %)((( 300 300 ((( 301 301 AT+BAUDR 302 302 ))) 303 -)))|(% style="width:1 90px" %)(((303 +)))|(% style="width:210px" %)((( 304 304 ((( 305 305 Set the baud rate (for RS485 connection). Default Value is: 9600. 306 306 ))) 307 -)))|(% style="width:1 90px" %)(((307 +)))|(% style="width:210px" %)((( 308 308 ((( 309 309 ((( 310 310 AT+BAUDR=9600 ... ... @@ -317,11 +317,11 @@ 317 317 ))) 318 318 ))) 319 319 ))) 320 -|(% style="width: 120px" %)(((320 +|(% style="width:80px" %)((( 321 321 ((( 322 322 AT+PARITY 323 323 ))) 324 -)))|(% style="width:1 90px" %)(((324 +)))|(% style="width:210px" %)((( 325 325 ((( 326 326 ((( 327 327 Set UART parity (for RS485 connection) ... ... @@ -333,7 +333,7 @@ 333 333 Default Value is: no parity. 334 334 ))) 335 335 ))) 336 -)))|(% style="width:1 90px" %)(((336 +)))|(% style="width:210px" %)((( 337 337 ((( 338 338 ((( 339 339 AT+PARITY=0 ... ... @@ -346,11 +346,11 @@ 346 346 ))) 347 347 ))) 348 348 ))) 349 -|(% style="width: 120px" %)(((349 +|(% style="width:80px" %)((( 350 350 ((( 351 351 AT+STOPBIT 352 352 ))) 353 -)))|(% style="width:1 90px" %)(((353 +)))|(% style="width:210px" %)((( 354 354 ((( 355 355 ((( 356 356 Set serial stopbit (for RS485 connection) ... ... @@ -362,7 +362,7 @@ 362 362 Default Value is: 1bit. 363 363 ))) 364 364 ))) 365 -)))|(% style="width:1 90px" %)(((365 +)))|(% style="width:210px" %)((( 366 366 ((( 367 367 ((( 368 368 AT+STOPBIT=0 for 1bit ... ... @@ -383,7 +383,6 @@ 383 383 ))) 384 384 385 385 386 - 387 387 === 3.3.2 Configure sensors === 388 388 389 389 ((( ... ... @@ -395,14 +395,14 @@ 395 395 ))) 396 396 397 397 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %) 398 -|=(% style="width: 120px;" %)**AT Commands**|=(% style="width: 190px;" %)**Description**|=(% style="width: 190px;" %)**Example**399 -|AT+CFGDEV|(% style="width: 120px" %)(((397 +|=(% style="width: 80px;" %)**AT Commands**|=(% style="width: 210px;" %)**Description**|=(% style="width: 210px;" %)**Example** 398 +|AT+CFGDEV|(% style="width:80px" %)((( 400 400 This command is used to configure the RS485/TTL devices; they won’t be used during sampling. 401 401 402 402 AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx, 403 403 404 404 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 405 -)))|(% style="width:1 90px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m404 +)))|(% style="width:210px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 406 406 407 407 Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 408 408 ... ... @@ -501,102 +501,186 @@ 501 501 ))) 502 502 ))) 503 503 503 +((( 504 504 For example, if we have a RS485 sensor. The command to get sensor value is: 01 03 0B B8 00 02 46 0A. Where 01 03 0B B8 00 02 is the Modbus command to read the register 0B B8 where stored the sensor value. The 46 0A is the CRC-16/MODBUS which calculate manually. 505 +))) 505 505 507 +((( 506 506 In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same. 509 +))) 507 507 511 +((( 512 + 513 +))) 514 + 515 +((( 508 508 **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx. 517 +))) 509 509 510 510 (% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %) 511 511 |(% style="width:577px" %)((( 521 +((( 512 512 **AT+SEARCHx=aa,xx xx xx xx xx** 523 +))) 513 513 514 -* **aa: 1: prefix match mode; 2: prefix and suffix match mode**515 -* *xxxxxxxx xx:matchstring. Max 5 bytesforprefix and5 bytesfor suffix**525 +* ((( 526 +**aa: 1: prefix match mode; 2: prefix and suffix match mode** 516 516 ))) 528 +* ((( 529 +**xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix** 530 +))) 531 +))) 517 517 533 +((( 518 518 **Examples:** 535 +))) 519 519 537 +((( 520 520 1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 539 +))) 521 521 541 +((( 522 522 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 543 +))) 523 523 545 +((( 524 524 The valid data will be all bytes after 1E 56 34 , so it is (% style="background-color:yellow" %)**2e 30 58 5f 36 41 30 31 00 49** 547 +))) 525 525 549 +((( 526 526 [[image:1653271044481-711.png]] 551 +))) 527 527 553 +((( 528 528 2)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 555 +))) 529 529 557 +((( 530 530 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 559 +))) 531 531 561 +((( 532 532 Device will search the bytes between 1E 56 34 and 31 00 49. So it is(% style="background-color:yellow" %) **2e 30 58 5f 36 41 30** 563 +))) 533 533 565 +((( 534 534 [[image:1653271276735-972.png]] 567 +))) 535 535 569 +((( 536 536 **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes. 571 +))) 537 537 538 538 (% style="background-color:#4f81bd; color:white; width:510px" %) 539 539 |(% style="width:726px" %)((( 575 +((( 540 540 **AT+DATACUTx=a,b,c** 577 +))) 541 541 542 -* **a: length for the return of AT+COMMAND** 543 -* **b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.** 544 -* **c: define the position for valid value. ** 579 +* ((( 580 +**a: length for the return of AT+COMMAND** 545 545 ))) 582 +* ((( 583 +**b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.** 584 +))) 585 +* ((( 586 +**c: define the position for valid value. ** 587 +))) 588 +))) 546 546 590 +((( 547 547 **Examples:** 592 +))) 548 548 549 -* Grab bytes: 594 +* ((( 595 +Grab bytes: 596 +))) 550 550 598 +((( 551 551 [[image:1653271581490-837.png||height="313" width="722"]] 600 +))) 552 552 602 +((( 603 + 604 +))) 553 553 554 -* Grab a section. 606 +* ((( 607 +Grab a section. 608 +))) 555 555 610 +((( 556 556 [[image:1653271648378-342.png||height="326" width="720"]] 612 +))) 557 557 614 +((( 615 + 616 +))) 558 558 559 -* Grab different sections. 618 +* ((( 619 +Grab different sections. 620 +))) 560 560 622 +((( 561 561 [[image:1653271657255-576.png||height="305" width="730"]] 624 +))) 562 562 563 563 ((( 627 +((( 564 564 (% style="color:red" %)**Note:** 565 565 ))) 630 +))) 566 566 567 567 ((( 633 +((( 568 568 AT+SEARCHx and AT+DATACUTx can be used together, if both commands are set, RS485-BL will first process AT+SEARCHx on the return string and get a temporary string, and then process AT+DATACUTx on this temporary string to get the final payload. In this case, AT+DATACUTx need to set to format AT+DATACUTx=0,xx,xx where the return bytes set to 0. 569 569 ))) 636 +))) 570 570 571 571 ((( 639 +((( 572 572 **Example:** 573 573 ))) 642 +))) 574 574 575 575 ((( 645 +((( 576 576 (% style="color:red" %)AT+COMMAND1=11 01 1E D0,0 577 577 ))) 648 +))) 578 578 579 579 ((( 651 +((( 580 580 (% style="color:red" %)AT+SEARCH1=1,1E 56 34 581 581 ))) 654 +))) 582 582 583 583 ((( 657 +((( 584 584 (% style="color:red" %)AT+DATACUT1=0,2,1~~5 585 585 ))) 660 +))) 586 586 587 587 ((( 663 +((( 588 588 (% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 589 589 ))) 666 +))) 590 590 591 591 ((( 669 +((( 592 592 (% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49 593 593 ))) 672 +))) 594 594 595 595 ((( 675 +((( 596 596 (% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36 597 597 ))) 678 +))) 598 598 680 +((( 599 599 [[image:1653271763403-806.png]] 682 +))) 600 600 601 601 602 602 === 3.3.4 Compose the uplink payload === ... ... @@ -743,26 +743,8 @@ 743 743 744 744 == 3.4 Uplink Payload == 745 745 746 -(% border="1" style="background-color:#4f81bd; color:white; width:850px" %) 747 -|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands** 748 -|Value|(% style="width:130px" %)((( 749 -((( 750 -Battery(mV) 751 -))) 829 +[[image:image-20220606105412-1.png]] 752 752 753 -((( 754 -& 755 -))) 756 - 757 -((( 758 -Interrupt _Flag 759 -))) 760 -)))|(% style="width:93px" %)((( 761 -PAYLOAD_VER 762 - 763 - 764 -)))|(% style="width:509px" %)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. 765 - 766 766 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 767 767 768 768 ((( ... ... @@ -806,7 +806,7 @@ 806 806 ))) 807 807 808 808 ((( 809 - **}**874 +} 810 810 811 811 812 812 ))) ... ... @@ -820,14 +820,23 @@ 820 820 821 821 == 3.5 Configure RS485-BL via AT or Downlink == 822 822 888 +((( 823 823 User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands 890 +))) 824 824 892 +((( 825 825 There are two kinds of Commands: 894 +))) 826 826 827 -* (% 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]] 896 +* ((( 897 +(% 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]] 898 +))) 828 828 829 -* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 900 +* ((( 901 +(% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 902 +))) 830 830 904 + 831 831 === 3.5.1 Common Commands: === 832 832 833 833 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]] ... ... @@ -836,6 +836,7 @@ 836 836 === 3.5.2 Sensor related commands: === 837 837 838 838 913 + 839 839 ==== **Choose Device Type (RS485 or TTL)** ==== 840 840 841 841 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. ... ... @@ -859,57 +859,109 @@ 859 859 860 860 861 861 937 + 862 862 ==== **RS485 Debug Command (AT+CFGDEV)** ==== 863 863 940 +((( 864 864 This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling. 942 +))) 865 865 866 -* **AT Command** 944 +* ((( 945 +**AT Command** 946 +))) 867 867 868 868 (% class="box infomessage" %) 869 869 ((( 950 +((( 870 870 **AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m** 871 871 ))) 953 +))) 872 872 955 +((( 873 873 m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command. 957 +))) 874 874 959 +((( 960 + 961 +))) 875 875 876 -* **Downlink Payload** 963 +* ((( 964 +**Downlink Payload** 965 +))) 877 877 967 +((( 878 878 Format: A8 MM NN XX XX XX XX YY 969 +))) 879 879 971 +((( 880 880 Where: 973 +))) 881 881 882 -* MM: 1: add CRC-16/MODBUS ; 0: no CRC 883 -* NN: The length of RS485 command 884 -* XX XX XX XX: RS485 command total NN bytes 885 -* YY: How many bytes will be uplink from the return of this RS485 command, if YY=0, RS485-BL will execute the downlink command without uplink; if YY>0, RS485-BL will uplink total YY bytes from the output of this RS485 command 975 +* ((( 976 +MM: 1: add CRC-16/MODBUS ; 0: no CRC 977 +))) 978 +* ((( 979 +NN: The length of RS485 command 980 +))) 981 +* ((( 982 +XX XX XX XX: RS485 command total NN bytes 983 +))) 984 +* ((( 985 +YY: How many bytes will be uplink from the return of this RS485 command, if YY=0, RS485-BL will execute the downlink command without uplink; if YY>0, RS485-BL will uplink total YY bytes from the output of this RS485 command 986 +))) 886 886 988 +((( 887 887 **Example 1:** 990 +))) 888 888 992 +((( 889 889 To connect a Modbus Alarm with below commands. 994 +))) 890 890 891 -* 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. 996 +* ((( 997 +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. 998 +))) 892 892 893 -* 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. 1000 +* ((( 1001 +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. 1002 +))) 894 894 1004 +((( 895 895 So if user want to use downlink command to control to RS485 Alarm, he can use: 1006 +))) 896 896 1008 +((( 897 897 (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm 1010 +))) 898 898 1012 +((( 899 899 (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm 1014 +))) 900 900 1016 +((( 901 901 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. 1018 +))) 902 902 1020 +((( 1021 + 1022 +))) 903 903 1024 +((( 904 904 **Example 2:** 1026 +))) 905 905 1028 +((( 906 906 Check TTL Sensor return: 1030 +))) 907 907 1032 +((( 908 908 [[image:1654132684752-193.png]] 1034 +))) 909 909 910 910 911 911 912 912 1039 + 913 913 ==== **Set Payload version** ==== 914 914 915 915 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. ... ... @@ -930,87 +930,171 @@ 930 930 931 931 932 932 1060 + 933 933 ==== **Set RS485 Sampling Commands** ==== 934 934 1063 +((( 935 935 AT+COMMANDx, AT+DATACUTx and AT+SEARCHx 1065 +))) 936 936 1067 +((( 937 937 These three commands are used to configure how the RS485-BL polling data from Modbus device. Detail of usage please see : [[polling RS485 device>>||anchor="H3.3.3Configurereadcommandsforeachsampling"]]. 1069 +))) 938 938 1071 +((( 1072 + 1073 +))) 939 939 940 -* **AT Command:** 1075 +* ((( 1076 +**AT Command:** 1077 +))) 941 941 942 942 (% class="box infomessage" %) 943 943 ((( 1081 +((( 944 944 **AT+COMMANDx: Configure RS485 read command to sensor.** 945 945 ))) 1084 +))) 946 946 947 947 (% class="box infomessage" %) 948 948 ((( 1088 +((( 949 949 **AT+DATACUTx: Configure how to handle return from RS485 devices.** 950 950 ))) 1091 +))) 951 951 952 952 (% class="box infomessage" %) 953 953 ((( 1095 +((( 954 954 **AT+SEARCHx: Configure search command** 955 955 ))) 1098 +))) 956 956 1100 +((( 1101 + 1102 +))) 957 957 958 -* **Downlink Payload:** 1104 +* ((( 1105 +**Downlink Payload:** 1106 +))) 959 959 1108 +((( 960 960 **0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 1110 +))) 961 961 1112 +((( 962 962 (% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 1114 +))) 963 963 1116 +((( 964 964 Format: AF MM NN LL XX XX XX XX YY 1118 +))) 965 965 1120 +((( 966 966 Where: 1122 +))) 967 967 968 -* MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 969 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 970 -* LL: The length of AT+COMMAND or AT+DATACUT command 971 -* XX XX XX XX: AT+COMMAND or AT+DATACUT command 972 -* YY: If YY=0, RS485-BL will execute the downlink command without uplink; if YY=1, RS485-BL will execute an uplink after got this command. 1124 +* ((( 1125 +MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 1126 +))) 1127 +* ((( 1128 +NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 1129 +))) 1130 +* ((( 1131 +LL: The length of AT+COMMAND or AT+DATACUT command 1132 +))) 1133 +* ((( 1134 +XX XX XX XX: AT+COMMAND or AT+DATACUT command 1135 +))) 1136 +* ((( 1137 +YY: If YY=0, RS485-BL will execute the downlink command without uplink; if YY=1, RS485-BL will execute an uplink after got this command. 1138 +))) 973 973 1140 +((( 974 974 **Example:** 1142 +))) 975 975 1144 +((( 976 976 (% 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 1146 +))) 977 977 1148 +((( 978 978 (% 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** 1150 +))) 979 979 1152 +((( 980 980 (% 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** 1154 +))) 981 981 1156 +((( 1157 + 1158 +))) 982 982 1160 +((( 983 983 **0xAB** downlink command can be used for set AT+SEARCHx 1162 +))) 984 984 1164 +((( 985 985 **Example:** **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So 1166 +))) 986 986 987 -* AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 988 -* AB aa 02 03 xx xx xx 02 yy yy(03 means there are 3 bytes after 03, they are xx xx xx;02 means there are 2 bytes after 02, they are yy yy) so the commands 1168 +* ((( 1169 +AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 1170 +))) 1171 +* ((( 1172 +AB aa 02 03 xx xx xx 02 yy yy(03 means there are 3 bytes after 03, they are xx xx xx;02 means there are 2 bytes after 02, they are yy yy) so the commands 1173 +))) 989 989 1175 +((( 990 990 **AB aa 02 03 xx xx xx 02 yy yy** same as **AT+SEARCHaa=2,xx xx xx+yy yy** 1177 +))) 991 991 992 992 993 993 1181 + 994 994 ==== **Fast command to handle MODBUS device** ==== 995 995 1184 +((( 996 996 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]]. 1186 +))) 997 997 1188 +((( 998 998 This command is valid since v1.3 firmware version 1190 +))) 999 999 1192 +((( 1193 + 1194 +))) 1000 1000 1196 +((( 1001 1001 **AT+MBFUN has only two value:** 1198 +))) 1002 1002 1003 -* **AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return 1200 +* ((( 1201 +**AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return 1202 +))) 1004 1004 1204 +((( 1005 1005 AT+MBFUN=1, device 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. 1206 +))) 1006 1006 1007 -* **AT+MBFUN=0**: Disable Modbus fast reading. 1208 +* ((( 1209 +**AT+MBFUN=0**: Disable Modbus fast reading. 1210 +))) 1008 1008 1212 +((( 1009 1009 **Example:** 1214 +))) 1010 1010 1011 -* AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 1012 -* 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. 1013 -* 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. 1216 +* ((( 1217 +AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 1218 +))) 1219 +* ((( 1220 +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. 1221 +))) 1222 +* ((( 1223 +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. 1224 +))) 1014 1014 1015 1015 [[image:1654133913295-597.png]] 1016 1016 ... ... @@ -1018,67 +1018,120 @@ 1018 1018 [[image:1654133954153-643.png]] 1019 1019 1020 1020 1021 -* **Downlink Commands:** 1232 +* ((( 1233 +**Downlink Commands:** 1234 +))) 1022 1022 1236 +((( 1023 1023 **A9 aa** ~-~-> Same as AT+MBFUN=aa 1238 +))) 1024 1024 1025 1025 1026 1026 1242 + 1027 1027 ==== **RS485 command timeout** ==== 1028 1028 1245 +((( 1029 1029 Some Modbus device has slow action to send replies. This command is used to configure the RS485-BL to use longer time to wait for their action. 1247 +))) 1030 1030 1249 +((( 1031 1031 Default value: 0, range: 0 ~~ 5 seconds 1251 +))) 1032 1032 1253 +((( 1254 + 1255 +))) 1033 1033 1034 -* **AT Command:** 1257 +* ((( 1258 +**AT Command:** 1259 +))) 1035 1035 1036 1036 (% class="box infomessage" %) 1037 1037 ((( 1263 +((( 1038 1038 **AT+CMDDLaa=hex(bb cc)** 1039 1039 ))) 1266 +))) 1040 1040 1268 +((( 1041 1041 **Example:** 1270 +))) 1042 1042 1272 +((( 1043 1043 **AT+CMDDL1=1000** to send the open time to 1000ms 1274 +))) 1044 1044 1276 +((( 1277 + 1278 +))) 1045 1045 1046 -* **Downlink Payload:** 1280 +* ((( 1281 +**Downlink Payload:** 1282 +))) 1047 1047 1284 +((( 1048 1048 0x AA aa bb cc 1286 +))) 1049 1049 1288 +((( 1050 1050 Same as: AT+CMDDLaa=hex(bb cc) 1290 +))) 1051 1051 1292 +((( 1052 1052 **Example:** 1294 +))) 1053 1053 1296 +((( 1054 1054 **0xAA 01 03 E8** ~-~-> Same as **AT+CMDDL1=1000 ms** 1298 +))) 1055 1055 1056 1056 1057 1057 1302 + 1058 1058 ==== **Uplink payload mode** ==== 1059 1059 1305 +((( 1060 1060 Define to use one uplink or multiple uplinks for the sampling. 1307 +))) 1061 1061 1309 +((( 1062 1062 The use of this command please see: [[Compose Uplink payload>>||anchor="H3.3.4Composetheuplinkpayload"]] 1311 +))) 1063 1063 1064 -* **AT Command:** 1313 +* ((( 1314 +**AT Command:** 1315 +))) 1065 1065 1066 1066 (% class="box infomessage" %) 1067 1067 ((( 1319 +((( 1068 1068 **AT+DATAUP=0** 1069 1069 ))) 1322 +))) 1070 1070 1071 1071 (% class="box infomessage" %) 1072 1072 ((( 1326 +((( 1073 1073 **AT+DATAUP=1** 1074 1074 ))) 1329 +))) 1075 1075 1331 +((( 1332 + 1333 +))) 1076 1076 1077 -* **Downlink Payload:** 1335 +* ((( 1336 +**Downlink Payload:** 1337 +))) 1078 1078 1339 +((( 1079 1079 **0xAD 00** **~-~->** Same as AT+DATAUP=0 1341 +))) 1080 1080 1343 +((( 1081 1081 **0xAD 01** **~-~->** Same as AT+DATAUP=1 1345 +))) 1082 1082 1083 1083 1084 1084 ... ... @@ -1096,131 +1096,248 @@ 1096 1096 1097 1097 ==== **Clear RS485 Command** ==== 1098 1098 1363 +((( 1099 1099 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 1365 +))) 1100 1100 1367 +((( 1368 + 1369 +))) 1101 1101 1102 -* **AT Command:** 1371 +* ((( 1372 +**AT Command:** 1373 +))) 1103 1103 1375 +((( 1104 1104 (% style="color:#037691" %)**AT+CMDEAR=mm,nn** (%%) mm: start position of erase ,nn: stop position of erase Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 1377 +))) 1105 1105 1379 +((( 1106 1106 Example screen shot after clear all RS485 commands. 1381 +))) 1107 1107 1383 +((( 1384 + 1385 +))) 1108 1108 1387 +((( 1109 1109 The uplink screen shot is: 1389 +))) 1110 1110 1391 +((( 1111 1111 [[image:1654134704555-320.png]] 1393 +))) 1112 1112 1395 +((( 1396 + 1397 +))) 1113 1113 1114 -* **Downlink Payload:** 1399 +* ((( 1400 +**Downlink Payload:** 1401 +))) 1115 1115 1403 +((( 1116 1116 **0x09 aa bb** same as AT+CMDEAR=aa,bb 1405 +))) 1117 1117 1118 1118 1119 1119 1409 + 1120 1120 ==== **Set Serial Communication Parameters** ==== 1121 1121 1412 +((( 1122 1122 Set the Rs485 serial communication parameters: 1414 +))) 1123 1123 1124 -* **AT Command:** 1416 +* ((( 1417 +**AT Command:** 1418 +))) 1125 1125 1420 +((( 1126 1126 Set Baud Rate: 1422 +))) 1127 1127 1128 1128 (% class="box infomessage" %) 1129 1129 ((( 1426 +((( 1130 1130 **AT+BAUDR=9600** ~/~/ Options: (1200,2400,4800,14400,19200,115200) 1131 1131 ))) 1429 +))) 1132 1132 1431 +((( 1133 1133 Set UART Parity 1433 +))) 1134 1134 1135 1135 (% class="box infomessage" %) 1136 1136 ((( 1437 +((( 1137 1137 **AT+PARITY=0** ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 1138 1138 ))) 1440 +))) 1139 1139 1442 +((( 1140 1140 Set STOPBIT 1444 +))) 1141 1141 1142 1142 (% class="box infomessage" %) 1143 1143 ((( 1448 +((( 1144 1144 **AT+STOPBIT=0** ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits 1145 1145 ))) 1451 +))) 1146 1146 1453 +((( 1454 + 1455 +))) 1147 1147 1148 -* **Downlink Payload:** 1457 +* ((( 1458 +**Downlink Payload:** 1459 +))) 1149 1149 1461 +((( 1150 1150 **A7 01 aa bb**: Same AT+BAUDR=hex(aa bb)*100 1463 +))) 1151 1151 1465 +((( 1152 1152 **Example:** 1467 +))) 1153 1153 1154 -* A7 01 00 60 same as AT+BAUDR=9600 1155 -* A7 01 04 80 same as AT+BAUDR=115200 1469 +* ((( 1470 +A7 01 00 60 same as AT+BAUDR=9600 1471 +))) 1472 +* ((( 1473 +A7 01 04 80 same as AT+BAUDR=115200 1474 +))) 1156 1156 1476 +((( 1157 1157 A7 02 aa: Same as AT+PARITY=aa (aa value: 00 , 01 or 02) 1478 +))) 1158 1158 1480 +((( 1159 1159 A7 03 aa: Same as AT+STOPBIT=aa (aa value: 00 , 01 or 02) 1482 +))) 1160 1160 1161 1161 1162 1162 1486 + 1163 1163 ==== **Control output power duration** ==== 1164 1164 1489 +((( 1165 1165 User can set the output power duration before each sampling. 1491 +))) 1166 1166 1167 -* **AT Command:** 1493 +* ((( 1494 +**AT Command:** 1495 +))) 1168 1168 1497 +((( 1169 1169 **Example:** 1499 +))) 1170 1170 1501 +((( 1171 1171 **AT+3V3T=1000** ~/~/ 3V3 output power will open 1s before each sampling. 1503 +))) 1172 1172 1505 +((( 1173 1173 **AT+5VT=1000** ~/~/ +5V output power will open 1s before each sampling. 1507 +))) 1174 1174 1509 +((( 1510 + 1511 +))) 1175 1175 1176 -* **LoRaWAN Downlink Command:** 1513 +* ((( 1514 +**LoRaWAN Downlink Command:** 1515 +))) 1177 1177 1517 +((( 1178 1178 **07 01 aa bb** Same as AT+5VT=(aa bb) 1519 +))) 1179 1179 1521 +((( 1180 1180 **07 02 aa bb** Same as AT+3V3T=(aa bb) 1523 +))) 1181 1181 1182 1182 1183 1183 1184 1184 == 3.6 Buttons == 1185 1185 1186 -(% border="1" style="background-color:#ffffcc; color:green; width:233px" %) 1529 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:233px" %) 1187 1187 |=(% style="width: 89px;" %)**Button**|=(% style="width: 141px;" %)**Feature** 1188 1188 |(% style="width:89px" %)**RST**|(% style="width:141px" %)Reboot RS485-BL 1189 1189 1533 + 1190 1190 == 3.7 +3V3 Output == 1191 1191 1536 +((( 1192 1192 RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor. 1538 +))) 1193 1193 1540 +((( 1194 1194 The +3V3 output will be valid for every sampling. RS485-BL will enable +3V3 output before all sampling and disable the +3V3 after all sampling. 1542 +))) 1195 1195 1544 +((( 1196 1196 The +3V3 output time can be controlled by AT Command. 1546 +))) 1197 1197 1548 +((( 1549 + 1550 +))) 1198 1198 1552 +((( 1199 1199 (% style="color:#037691" %)**AT+3V3T=1000** 1554 +))) 1200 1200 1556 +((( 1557 + 1558 +))) 1201 1201 1560 +((( 1202 1202 Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors. 1562 +))) 1203 1203 1564 +((( 1204 1204 By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time 1566 +))) 1205 1205 1206 1206 1207 1207 == 3.8 +5V Output == 1208 1208 1571 +((( 1209 1209 RS485-BL has a Controllable +5V output, user can use this output to power external sensor. 1573 +))) 1210 1210 1575 +((( 1211 1211 The +5V output will be valid for every sampling. RS485-BL will enable +5V output before all sampling and disable the +5v after all sampling. 1577 +))) 1212 1212 1579 +((( 1213 1213 The 5V output time can be controlled by AT Command. 1581 +))) 1214 1214 1583 +((( 1584 + 1585 +))) 1215 1215 1587 +((( 1216 1216 (% style="color:#037691" %)**AT+5VT=1000** 1589 +))) 1217 1217 1591 +((( 1592 + 1593 +))) 1218 1218 1595 +((( 1219 1219 Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors. 1597 +))) 1220 1220 1599 +((( 1221 1221 By default, the AT+5VT=0. If the external sensor which require 5v and require more time to get stable state, user can use this command to increase the power ON duration for this sensor. 1601 +))) 1222 1222 1223 1223 1604 + 1224 1224 == 3.9 LEDs == 1225 1225 1226 1226 (% border="1" style="background-color:#ffffcc; color:green; width:332px" %) ... ... @@ -1227,6 +1227,7 @@ 1227 1227 |=**LEDs**|=(% style="width: 274px;" %)**Feature** 1228 1228 |**LED1**|(% style="width:274px" %)Blink when device transmit a packet. 1229 1229 1611 + 1230 1230 == 3.10 Switch Jumper == 1231 1231 1232 1232 (% border="1" style="background-color:#ffffcc; color:green; width:515px" %) ... ... @@ -1242,9 +1242,13 @@ 1242 1242 3.3v position: set to compatible with 3.3v I/O., 1243 1243 ))) 1244 1244 1627 +((( 1245 1245 **+3.3V**: is always ON 1629 +))) 1246 1246 1631 +((( 1247 1247 **+5V**: Only open before every sampling. The time is by default, it is AT+5VT=0. Max open time. 5000 ms. 1633 +))) 1248 1248 1249 1249 1250 1250 = 4. Case Study = ... ... @@ -1256,17 +1256,23 @@ 1256 1256 1257 1257 == 5.1 Access AT Command == 1258 1258 1645 +((( 1259 1259 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. 1647 +))) 1260 1260 1261 1261 [[image:1654135840598-282.png]] 1262 1262 1263 1263 1652 +((( 1264 1264 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: 1654 +))) 1265 1265 1266 1266 [[image:1654136105500-922.png]] 1267 1267 1268 1268 1659 +((( 1269 1269 More detail AT Command manual can be found at [[AT Command Manual>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]] 1661 +))) 1270 1270 1271 1271 1272 1272 == 5.2 Common AT Command Sequence == ... ... @@ -1291,7 +1291,9 @@ 1291 1291 ))) 1292 1292 1293 1293 1686 +((( 1294 1294 If device already joined network: 1688 +))) 1295 1295 1296 1296 (% class="box infomessage" %) 1297 1297 ((( ... ... @@ -1330,10 +1330,12 @@ 1330 1330 1331 1331 (% style="color:red" %)**Note:** 1332 1332 1727 +((( 1333 1333 (% style="color:red" %)1. Make sure the device is set to ABP mode in the IoT Server. 1334 1334 2. Make sure the LG01/02 gateway RX frequency is exactly the same as AT+CHS setting. 1335 1335 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. 1336 1336 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 1732 +))) 1337 1337 1338 1338 [[image:1654136435598-589.png]] 1339 1339 ... ... @@ -1342,13 +1342,23 @@ 1342 1342 1343 1343 == 6.1 How to upgrade the image? == 1344 1344 1741 +((( 1345 1345 The RS485-BL LoRaWAN Controller is shipped with a 3.5mm cable, the cable is used to upload image to RS485-BL to: 1743 +))) 1346 1346 1347 -* Support new features 1348 -* For bug fix 1349 -* Change LoRaWAN bands. 1745 +* ((( 1746 +Support new features 1747 +))) 1748 +* ((( 1749 +For bug fix 1750 +))) 1751 +* ((( 1752 +Change LoRaWAN bands. 1753 +))) 1350 1350 1755 +((( 1351 1351 Below shows the hardware connection for how to upload an image to RS485-BL: 1757 +))) 1352 1352 1353 1353 [[image:1654136646995-976.png]] 1354 1354 ... ... @@ -1414,6 +1414,7 @@ 1414 1414 * (% style="color:blue" %)**RU864**(%%): frequency bands RU864 1415 1415 * (% style="color:blue" %)**KZ865**(%%): frequency bands KZ865 1416 1416 1823 + 1417 1417 = 9. Packing Info = 1418 1418 1419 1419 (((
- image-20220606105412-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +13.9 KB - Content