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, 0 added, 1 removed)
Details
- Page properties
-
- Content
-
... ... @@ -4,7 +4,10 @@ 4 4 5 5 6 6 7 +**RS485-BL – Waterproof RS485 to LoRaWAN Converter User Manual** 7 7 9 + 10 + 8 8 **Table of Contents:** 9 9 10 10 {{toc/}} ... ... @@ -279,29 +279,29 @@ 279 279 RS485-BL default UART settings is **9600, no parity, stop bit 1**. If the sensor has a different settings, user can change the RS485-BL setting to match. 280 280 ))) 281 281 282 -(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)283 -|=(% style="width: 80px;" %)(((285 +(% border="1" style="background-color:#ffffcc; color:green; width:510px" %) 286 +|=(% style="width: 121px;" %)((( 284 284 ((( 285 285 **AT Commands** 286 286 ))) 287 -)))|=(% style="width: 210px;" %)(((290 +)))|=(% style="width: 114px;" %)((( 288 288 ((( 289 289 **Description** 290 290 ))) 291 -)))|=(% style="width: 2 10px;" %)(((294 +)))|=(% style="width: 226px;" %)((( 292 292 ((( 293 293 **Example** 294 294 ))) 295 295 ))) 296 -|(% style="width: 80px" %)(((299 +|(% style="width:121px" %)((( 297 297 ((( 298 298 AT+BAUDR 299 299 ))) 300 -)))|(% style="width: 210px" %)(((303 +)))|(% style="width:114px" %)((( 301 301 ((( 302 302 Set the baud rate (for RS485 connection). Default Value is: 9600. 303 303 ))) 304 -)))|(% style="width:2 10px" %)(((307 +)))|(% style="width:226px" %)((( 305 305 ((( 306 306 ((( 307 307 AT+BAUDR=9600 ... ... @@ -314,11 +314,11 @@ 314 314 ))) 315 315 ))) 316 316 ))) 317 -|(% style="width: 80px" %)(((320 +|(% style="width:121px" %)((( 318 318 ((( 319 319 AT+PARITY 320 320 ))) 321 -)))|(% style="width: 210px" %)(((324 +)))|(% style="width:114px" %)((( 322 322 ((( 323 323 ((( 324 324 Set UART parity (for RS485 connection) ... ... @@ -330,7 +330,7 @@ 330 330 Default Value is: no parity. 331 331 ))) 332 332 ))) 333 -)))|(% style="width:2 10px" %)(((336 +)))|(% style="width:226px" %)((( 334 334 ((( 335 335 ((( 336 336 AT+PARITY=0 ... ... @@ -343,11 +343,11 @@ 343 343 ))) 344 344 ))) 345 345 ))) 346 -|(% style="width: 80px" %)(((349 +|(% style="width:121px" %)((( 347 347 ((( 348 348 AT+STOPBIT 349 349 ))) 350 -)))|(% style="width: 210px" %)(((353 +)))|(% style="width:114px" %)((( 351 351 ((( 352 352 ((( 353 353 Set serial stopbit (for RS485 connection) ... ... @@ -359,7 +359,7 @@ 359 359 Default Value is: 1bit. 360 360 ))) 361 361 ))) 362 -)))|(% style="width:2 10px" %)(((365 +)))|(% style="width:226px" %)((( 363 363 ((( 364 364 ((( 365 365 AT+STOPBIT=0 for 1bit ... ... @@ -379,6 +379,7 @@ 379 379 ))) 380 380 ))) 381 381 385 + 382 382 === 3.3.2 Configure sensors === 383 383 384 384 ((( ... ... @@ -389,26 +389,19 @@ 389 389 When user issue an (% style="color:#4f81bd" %)**AT+CFGDEV**(%%) command, Each (% style="color:#4f81bd" %)**AT+CFGDEV**(%%) equals to send a command to the RS485 or TTL sensors. This command will only run when user input it and won’t run during each sampling. 390 390 ))) 391 391 392 -(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %) 393 -|=(% style="width: 80px;" %)**AT Commands**|=(% style="width: 210px;" %)**Description**|=(% style="width: 210px;" %)**Example** 394 -|AT+CFGDEV|(% style="width:80px" %)((( 395 -((( 396 +(% border="1" style="background-color:#ffffcc; color:green; width:806px" %) 397 +|**AT Commands**|(% style="width:418px" %)**Description**|(% style="width:256px" %)**Example** 398 +|AT+CFGDEV|(% style="width:418px" %)((( 396 396 This command is used to configure the RS485/TTL devices; they won’t be used during sampling. 397 -))) 398 398 399 -((( 400 400 AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx, 401 -))) 402 402 403 -((( 404 404 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 405 -))) 406 -)))|(% style="width:210px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 404 +)))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 407 407 408 408 Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 409 409 410 410 411 - 412 412 === 3.3.3 Configure read commands for each sampling === 413 413 414 414 ((( ... ... @@ -475,213 +475,117 @@ 475 475 After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**. 476 476 ))) 477 477 478 -((( 479 479 **Examples:** 480 -))) 481 481 482 -((( 483 483 Below are examples for the how above AT Commands works. 484 -))) 485 485 486 -((( 487 487 **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is: 488 -))) 489 489 490 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:50 0px" %)481 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:501px" %) 491 491 |(% style="width:498px" %)((( 492 -((( 493 493 **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m** 494 -))) 495 495 496 -((( 497 497 **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent** 498 -))) 499 499 500 -((( 501 501 **m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command** 502 502 ))) 503 -))) 504 504 505 -((( 506 506 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. 507 -))) 508 508 509 -((( 510 510 In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same. 511 -))) 512 512 513 -((( 514 - 515 -))) 516 - 517 -((( 518 518 **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx. 519 -))) 520 520 521 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:50 0px" %)496 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:580px" %) 522 522 |(% style="width:577px" %)((( 523 -((( 524 524 **AT+SEARCHx=aa,xx xx xx xx xx** 525 -))) 526 526 527 -* (((528 -** aa:1:prefix matchmode;2:prefix and suffixmatch mode**500 +* **aa: 1: prefix match mode; 2: prefix and suffix match mode** 501 +* **xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix** 529 529 ))) 530 -* ((( 531 -**xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix** 532 -))) 533 -))) 534 534 535 -((( 536 536 **Examples:** 537 -))) 538 538 539 -((( 540 540 1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 541 -))) 542 542 543 -((( 544 544 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 545 -))) 546 546 547 -((( 548 548 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** 549 -))) 550 550 551 -((( 552 552 [[image:1653271044481-711.png]] 553 -))) 554 554 555 -((( 556 556 2)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 557 -))) 558 558 559 -((( 560 560 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 561 -))) 562 562 563 -((( 564 564 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** 565 -))) 566 566 567 -((( 568 568 [[image:1653271276735-972.png]] 569 -))) 570 570 571 -((( 572 572 **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes. 573 -))) 574 574 575 -(% style="background-color:#4f81bd; color:white; width: 510px" %)524 +(% style="background-color:#4f81bd; color:white; width:729px" %) 576 576 |(% style="width:726px" %)((( 577 -((( 578 578 **AT+DATACUTx=a,b,c** 579 -))) 580 580 581 -* ((( 582 -**a: length for the return of AT+COMMAND** 528 +* **a: length for the return of AT+COMMAND** 529 +* **b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.** 530 +* **c: define the position for valid value. ** 583 583 ))) 584 -* ((( 585 -**b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.** 586 -))) 587 -* ((( 588 -**c: define the position for valid value. ** 589 -))) 590 -))) 591 591 592 -((( 593 593 **Examples:** 594 -))) 595 595 596 -* ((( 597 -Grab bytes: 598 -))) 535 +* Grab bytes: 599 599 600 -((( 601 601 [[image:1653271581490-837.png||height="313" width="722"]] 602 -))) 603 603 604 -((( 605 - 606 -))) 607 607 608 -* ((( 609 -Grab a section. 610 -))) 540 +* Grab a section. 611 611 612 -((( 613 613 [[image:1653271648378-342.png||height="326" width="720"]] 614 -))) 615 615 616 -((( 617 - 618 -))) 619 619 620 -* ((( 621 -Grab different sections. 622 -))) 545 +* Grab different sections. 623 623 624 -((( 625 625 [[image:1653271657255-576.png||height="305" width="730"]] 626 -))) 627 627 628 628 ((( 629 -((( 630 630 (% style="color:red" %)**Note:** 631 631 ))) 632 -))) 633 633 634 634 ((( 635 -((( 636 636 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. 637 637 ))) 638 -))) 639 639 640 640 ((( 641 -((( 642 642 **Example:** 643 643 ))) 644 -))) 645 645 646 646 ((( 647 -((( 648 648 (% style="color:red" %)AT+COMMAND1=11 01 1E D0,0 649 649 ))) 650 -))) 651 651 652 652 ((( 653 -((( 654 654 (% style="color:red" %)AT+SEARCH1=1,1E 56 34 655 655 ))) 656 -))) 657 657 658 658 ((( 659 -((( 660 660 (% style="color:red" %)AT+DATACUT1=0,2,1~~5 661 661 ))) 662 -))) 663 663 664 664 ((( 665 -((( 666 666 (% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 667 667 ))) 668 -))) 669 669 670 670 ((( 671 -((( 672 672 (% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49 673 673 ))) 674 -))) 675 675 676 676 ((( 677 -((( 678 678 (% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36 679 679 ))) 680 -))) 681 681 682 -((( 683 683 [[image:1653271763403-806.png]] 684 -))) 685 685 686 686 687 687 === 3.3.4 Compose the uplink payload === ... ... @@ -688,14 +688,10 @@ 688 688 689 689 ((( 690 690 Through AT+COMMANDx and AT+DATACUTx we got valid value from each RS485 commands, Assume these valid value are RETURN1, RETURN2, .., to RETURNx. The next step is how to compose the LoRa Uplink Payload by these RETURNs. The command is **AT+DATAUP.** 691 - 692 - 693 693 ))) 694 694 695 695 ((( 696 696 (% style="color:#037691" %)**Examples: AT+DATAUP=0** 697 - 698 - 699 699 ))) 700 700 701 701 ((( ... ... @@ -828,8 +828,26 @@ 828 828 829 829 == 3.4 Uplink Payload == 830 830 831 -[[image:image-20220606105412-1.png]] 728 +(% border="1" style="background-color:#4f81bd; color:white; width:850px" %) 729 +|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands** 730 +|Value|(% style="width:130px" %)((( 731 +((( 732 +Battery(mV) 733 +))) 832 832 735 +((( 736 +& 737 +))) 738 + 739 +((( 740 +Interrupt _Flag 741 +))) 742 +)))|(% style="width:93px" %)((( 743 +PAYLOAD_VER 744 + 745 + 746 +)))|(% 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. 747 + 833 833 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 834 834 835 835 ((( ... ... @@ -887,21 +887,13 @@ 887 887 888 888 == 3.5 Configure RS485-BL via AT or Downlink == 889 889 890 -((( 891 891 User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands 892 -))) 893 893 894 -((( 895 895 There are two kinds of Commands: 896 -))) 897 897 898 -* ((( 899 -(% 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]] 900 -))) 809 +* (% 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]] 901 901 902 -* ((( 903 -(% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 904 -))) 811 +* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 905 905 906 906 === 3.5.1 Common Commands: === 907 907 ... ... @@ -911,7 +911,6 @@ 911 911 === 3.5.2 Sensor related commands: === 912 912 913 913 914 - 915 915 ==== **Choose Device Type (RS485 or TTL)** ==== 916 916 917 917 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. ... ... @@ -935,109 +935,57 @@ 935 935 936 936 937 937 938 - 939 939 ==== **RS485 Debug Command (AT+CFGDEV)** ==== 940 940 941 -((( 942 942 This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling. 943 -))) 944 944 945 -* ((( 946 -**AT Command** 947 -))) 848 +* **AT Command** 948 948 949 949 (% class="box infomessage" %) 950 950 ((( 951 -((( 952 952 **AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m** 953 953 ))) 954 -))) 955 955 956 -((( 957 957 m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command. 958 -))) 959 959 960 -((( 961 - 962 -))) 963 963 964 -* ((( 965 -**Downlink Payload** 966 -))) 858 +* **Downlink Payload** 967 967 968 -((( 969 969 Format: A8 MM NN XX XX XX XX YY 970 -))) 971 971 972 -((( 973 973 Where: 974 -))) 975 975 976 -* ((( 977 -MM: 1: add CRC-16/MODBUS ; 0: no CRC 978 -))) 979 -* ((( 980 -NN: The length of RS485 command 981 -))) 982 -* ((( 983 -XX XX XX XX: RS485 command total NN bytes 984 -))) 985 -* ((( 986 -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 987 -))) 864 +* MM: 1: add CRC-16/MODBUS ; 0: no CRC 865 +* NN: The length of RS485 command 866 +* XX XX XX XX: RS485 command total NN bytes 867 +* 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 988 988 989 -((( 990 990 **Example 1:** 991 -))) 992 992 993 -((( 994 994 To connect a Modbus Alarm with below commands. 995 -))) 996 996 997 -* ((( 998 -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. 999 -))) 873 +* 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. 1000 1000 1001 -* ((( 1002 -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. 1003 -))) 875 +* 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. 1004 1004 1005 -((( 1006 1006 So if user want to use downlink command to control to RS485 Alarm, he can use: 1007 -))) 1008 1008 1009 -((( 1010 1010 (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm 1011 -))) 1012 1012 1013 -((( 1014 1014 (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm 1015 -))) 1016 1016 1017 -((( 1018 1018 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. 1019 -))) 1020 1020 1021 -((( 1022 - 1023 -))) 1024 1024 1025 -((( 1026 1026 **Example 2:** 1027 -))) 1028 1028 1029 -((( 1030 1030 Check TTL Sensor return: 1031 -))) 1032 1032 1033 -((( 1034 1034 [[image:1654132684752-193.png]] 1035 -))) 1036 1036 1037 1037 1038 1038 1039 1039 1040 - 1041 1041 ==== **Set Payload version** ==== 1042 1042 1043 1043 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. ... ... @@ -1058,171 +1058,87 @@ 1058 1058 1059 1059 1060 1060 1061 - 1062 1062 ==== **Set RS485 Sampling Commands** ==== 1063 1063 1064 -((( 1065 1065 AT+COMMANDx, AT+DATACUTx and AT+SEARCHx 1066 -))) 1067 1067 1068 -((( 1069 1069 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"]]. 1070 -))) 1071 1071 1072 -((( 1073 - 1074 -))) 1075 1075 1076 -* ((( 1077 -**AT Command:** 1078 -))) 922 +* **AT Command:** 1079 1079 1080 1080 (% class="box infomessage" %) 1081 1081 ((( 1082 -((( 1083 1083 **AT+COMMANDx: Configure RS485 read command to sensor.** 1084 1084 ))) 1085 -))) 1086 1086 1087 1087 (% class="box infomessage" %) 1088 1088 ((( 1089 -((( 1090 1090 **AT+DATACUTx: Configure how to handle return from RS485 devices.** 1091 1091 ))) 1092 -))) 1093 1093 1094 1094 (% class="box infomessage" %) 1095 1095 ((( 1096 -((( 1097 1097 **AT+SEARCHx: Configure search command** 1098 1098 ))) 1099 -))) 1100 1100 1101 -((( 1102 - 1103 -))) 1104 1104 1105 -* ((( 1106 -**Downlink Payload:** 1107 -))) 940 +* **Downlink Payload:** 1108 1108 1109 -((( 1110 1110 **0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 1111 -))) 1112 1112 1113 -((( 1114 1114 (% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 1115 -))) 1116 1116 1117 -((( 1118 1118 Format: AF MM NN LL XX XX XX XX YY 1119 -))) 1120 1120 1121 -((( 1122 1122 Where: 1123 -))) 1124 1124 1125 -* ((( 1126 -MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 1127 -))) 1128 -* ((( 1129 -NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 1130 -))) 1131 -* ((( 1132 -LL: The length of AT+COMMAND or AT+DATACUT command 1133 -))) 1134 -* ((( 1135 -XX XX XX XX: AT+COMMAND or AT+DATACUT command 1136 -))) 1137 -* ((( 1138 -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. 1139 -))) 950 +* MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 951 +* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 952 +* LL: The length of AT+COMMAND or AT+DATACUT command 953 +* XX XX XX XX: AT+COMMAND or AT+DATACUT command 954 +* 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. 1140 1140 1141 -((( 1142 1142 **Example:** 1143 -))) 1144 1144 1145 -((( 1146 1146 (% 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 1147 -))) 1148 1148 1149 -((( 1150 1150 (% 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** 1151 -))) 1152 1152 1153 -((( 1154 1154 (% 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** 1155 -))) 1156 1156 1157 -((( 1158 - 1159 -))) 1160 1160 1161 -((( 1162 1162 **0xAB** downlink command can be used for set AT+SEARCHx 1163 -))) 1164 1164 1165 -((( 1166 1166 **Example:** **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So 1167 -))) 1168 1168 1169 -* ((( 1170 -AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 1171 -))) 1172 -* ((( 1173 -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 1174 -))) 969 +* AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 970 +* 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 1175 1175 1176 -((( 1177 1177 **AB aa 02 03 xx xx xx 02 yy yy** same as **AT+SEARCHaa=2,xx xx xx+yy yy** 1178 -))) 1179 1179 1180 1180 1181 1181 1182 - 1183 1183 ==== **Fast command to handle MODBUS device** ==== 1184 1184 1185 -((( 1186 1186 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]]. 1187 -))) 1188 1188 1189 -((( 1190 1190 This command is valid since v1.3 firmware version 1191 -))) 1192 1192 1193 -((( 1194 - 1195 -))) 1196 1196 1197 -((( 1198 1198 **AT+MBFUN has only two value:** 1199 -))) 1200 1200 1201 -* ((( 1202 -**AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return 1203 -))) 985 +* **AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return 1204 1204 1205 -((( 1206 1206 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. 1207 -))) 1208 1208 1209 -* ((( 1210 -**AT+MBFUN=0**: Disable Modbus fast reading. 1211 -))) 989 +* **AT+MBFUN=0**: Disable Modbus fast reading. 1212 1212 1213 -((( 1214 1214 **Example:** 1215 -))) 1216 1216 1217 -* ((( 1218 -AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 1219 -))) 1220 -* ((( 1221 -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. 1222 -))) 1223 -* ((( 1224 -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. 1225 -))) 993 +* AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 994 +* 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. 995 +* 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. 1226 1226 1227 1227 [[image:1654133913295-597.png]] 1228 1228 ... ... @@ -1230,120 +1230,67 @@ 1230 1230 [[image:1654133954153-643.png]] 1231 1231 1232 1232 1233 -* ((( 1234 -**Downlink Commands:** 1235 -))) 1003 +* **Downlink Commands:** 1236 1236 1237 -((( 1238 1238 **A9 aa** ~-~-> Same as AT+MBFUN=aa 1239 -))) 1240 1240 1241 1241 1242 1242 1243 - 1244 1244 ==== **RS485 command timeout** ==== 1245 1245 1246 -((( 1247 1247 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. 1248 -))) 1249 1249 1250 -((( 1251 1251 Default value: 0, range: 0 ~~ 5 seconds 1252 -))) 1253 1253 1254 -((( 1255 - 1256 -))) 1257 1257 1258 -* ((( 1259 -**AT Command:** 1260 -))) 1016 +* **AT Command:** 1261 1261 1262 1262 (% class="box infomessage" %) 1263 1263 ((( 1264 -((( 1265 1265 **AT+CMDDLaa=hex(bb cc)** 1266 1266 ))) 1267 -))) 1268 1268 1269 -((( 1270 1270 **Example:** 1271 -))) 1272 1272 1273 -((( 1274 1274 **AT+CMDDL1=1000** to send the open time to 1000ms 1275 -))) 1276 1276 1277 -((( 1278 - 1279 -))) 1280 1280 1281 -* ((( 1282 -**Downlink Payload:** 1283 -))) 1028 +* **Downlink Payload:** 1284 1284 1285 -((( 1286 1286 0x AA aa bb cc 1287 -))) 1288 1288 1289 -((( 1290 1290 Same as: AT+CMDDLaa=hex(bb cc) 1291 -))) 1292 1292 1293 -((( 1294 1294 **Example:** 1295 -))) 1296 1296 1297 -((( 1298 1298 **0xAA 01 03 E8** ~-~-> Same as **AT+CMDDL1=1000 ms** 1299 -))) 1300 1300 1301 1301 1302 1302 1303 - 1304 1304 ==== **Uplink payload mode** ==== 1305 1305 1306 -((( 1307 1307 Define to use one uplink or multiple uplinks for the sampling. 1308 -))) 1309 1309 1310 -((( 1311 1311 The use of this command please see: [[Compose Uplink payload>>||anchor="H3.3.4Composetheuplinkpayload"]] 1312 -))) 1313 1313 1314 -* ((( 1315 -**AT Command:** 1316 -))) 1046 +* **AT Command:** 1317 1317 1318 1318 (% class="box infomessage" %) 1319 1319 ((( 1320 -((( 1321 1321 **AT+DATAUP=0** 1322 1322 ))) 1323 -))) 1324 1324 1325 1325 (% class="box infomessage" %) 1326 1326 ((( 1327 -((( 1328 1328 **AT+DATAUP=1** 1329 1329 ))) 1330 -))) 1331 1331 1332 -((( 1333 - 1334 -))) 1335 1335 1336 -* ((( 1337 -**Downlink Payload:** 1338 -))) 1059 +* **Downlink Payload:** 1339 1339 1340 -((( 1341 1341 **0xAD 00** **~-~->** Same as AT+DATAUP=0 1342 -))) 1343 1343 1344 -((( 1345 1345 **0xAD 01** **~-~->** Same as AT+DATAUP=1 1346 -))) 1347 1347 1348 1348 1349 1349 ... ... @@ -1361,229 +1361,131 @@ 1361 1361 1362 1362 ==== **Clear RS485 Command** ==== 1363 1363 1364 -((( 1365 1365 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 1366 -))) 1367 1367 1368 -((( 1369 - 1370 -))) 1371 1371 1372 -* ((( 1373 -**AT Command:** 1374 -))) 1084 +* **AT Command:** 1375 1375 1376 -((( 1377 1377 (% 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 1378 -))) 1379 1379 1380 -((( 1381 1381 Example screen shot after clear all RS485 commands. 1382 -))) 1383 1383 1384 -((( 1385 - 1386 -))) 1387 1387 1388 -((( 1389 1389 The uplink screen shot is: 1390 -))) 1391 1391 1392 -((( 1393 1393 [[image:1654134704555-320.png]] 1394 -))) 1395 1395 1396 -((( 1397 - 1398 -))) 1399 1399 1400 -* ((( 1401 -**Downlink Payload:** 1402 -))) 1096 +* **Downlink Payload:** 1403 1403 1404 -((( 1405 1405 **0x09 aa bb** same as AT+CMDEAR=aa,bb 1406 -))) 1407 1407 1408 1408 1409 1409 1410 - 1411 1411 ==== **Set Serial Communication Parameters** ==== 1412 1412 1413 -((( 1414 1414 Set the Rs485 serial communication parameters: 1415 -))) 1416 1416 1417 -* ((( 1418 -**AT Command:** 1419 -))) 1106 +* **AT Command:** 1420 1420 1421 -((( 1422 1422 Set Baud Rate: 1423 -))) 1424 1424 1425 1425 (% class="box infomessage" %) 1426 1426 ((( 1427 -((( 1428 1428 **AT+BAUDR=9600** ~/~/ Options: (1200,2400,4800,14400,19200,115200) 1113 +))) 1429 1429 1430 1430 Set UART Parity 1116 + 1117 +(% class="box infomessage" %) 1118 +((( 1431 1431 **AT+PARITY=0** ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 1120 +))) 1432 1432 1433 1433 Set STOPBIT 1434 1434 1124 +(% class="box infomessage" %) 1125 +((( 1435 1435 **AT+STOPBIT=0** ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits 1436 1436 ))) 1437 -))) 1438 1438 1439 1439 1440 -* ((( 1441 -**Downlink Payload:** 1442 -))) 1130 +* **Downlink Payload:** 1443 1443 1444 -((( 1445 1445 **A7 01 aa bb**: Same AT+BAUDR=hex(aa bb)*100 1446 -))) 1447 1447 1448 -((( 1449 1449 **Example:** 1450 -))) 1451 1451 1452 -* ((( 1453 -A7 01 00 60 same as AT+BAUDR=9600 1454 -))) 1455 -* ((( 1456 -A7 01 04 80 same as AT+BAUDR=115200 1457 -))) 1136 +* A7 01 00 60 same as AT+BAUDR=9600 1137 +* A7 01 04 80 same as AT+BAUDR=115200 1458 1458 1459 -((( 1460 1460 A7 02 aa: Same as AT+PARITY=aa (aa value: 00 , 01 or 02) 1461 -))) 1462 1462 1463 -((( 1464 1464 A7 03 aa: Same as AT+STOPBIT=aa (aa value: 00 , 01 or 02) 1465 -))) 1466 1466 1467 1467 1468 1468 1469 - 1470 1470 ==== **Control output power duration** ==== 1471 1471 1472 -((( 1473 1473 User can set the output power duration before each sampling. 1474 -))) 1475 1475 1476 -* ((( 1477 -**AT Command:** 1478 -))) 1149 +* **AT Command:** 1479 1479 1480 -((( 1481 1481 **Example:** 1482 -))) 1483 1483 1484 -((( 1485 1485 **AT+3V3T=1000** ~/~/ 3V3 output power will open 1s before each sampling. 1486 -))) 1487 1487 1488 -((( 1489 1489 **AT+5VT=1000** ~/~/ +5V output power will open 1s before each sampling. 1490 -))) 1491 1491 1492 -((( 1493 - 1494 -))) 1495 1495 1496 -* ((( 1497 -**LoRaWAN Downlink Command:** 1498 -))) 1158 +* **LoRaWAN Downlink Command:** 1499 1499 1500 -((( 1501 1501 **07 01 aa bb** Same as AT+5VT=(aa bb) 1502 -))) 1503 1503 1504 -((( 1505 1505 **07 02 aa bb** Same as AT+3V3T=(aa bb) 1506 -))) 1507 1507 1508 1508 1509 1509 1510 1510 == 3.6 Buttons == 1511 1511 1512 -(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:233px" %)1168 +(% border="1" style="background-color:#ffffcc; color:green; width:233px" %) 1513 1513 |=(% style="width: 89px;" %)**Button**|=(% style="width: 141px;" %)**Feature** 1514 1514 |(% style="width:89px" %)**RST**|(% style="width:141px" %)Reboot RS485-BL 1515 1515 1516 1516 == 3.7 +3V3 Output == 1517 1517 1518 -((( 1519 1519 RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor. 1520 -))) 1521 1521 1522 -((( 1523 1523 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. 1524 -))) 1525 1525 1526 -((( 1527 1527 The +3V3 output time can be controlled by AT Command. 1528 -))) 1529 1529 1530 -((( 1531 - 1532 -))) 1533 1533 1534 -((( 1535 1535 (% style="color:#037691" %)**AT+3V3T=1000** 1536 -))) 1537 1537 1538 -((( 1539 - 1540 -))) 1541 1541 1542 -((( 1543 1543 Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors. 1544 -))) 1545 1545 1546 -((( 1547 1547 By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time 1548 -))) 1549 1549 1550 1550 1551 1551 == 3.8 +5V Output == 1552 1552 1553 -((( 1554 1554 RS485-BL has a Controllable +5V output, user can use this output to power external sensor. 1555 -))) 1556 1556 1557 -((( 1558 1558 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. 1559 -))) 1560 1560 1561 -((( 1562 1562 The 5V output time can be controlled by AT Command. 1563 -))) 1564 1564 1565 -((( 1566 - 1567 -))) 1568 1568 1569 -((( 1570 1570 (% style="color:#037691" %)**AT+5VT=1000** 1571 -))) 1572 1572 1573 -((( 1574 - 1575 -))) 1576 1576 1577 -((( 1578 1578 Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors. 1579 -))) 1580 1580 1581 -((( 1582 1582 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. 1583 -))) 1584 1584 1585 1585 1586 - 1587 1587 == 3.9 LEDs == 1588 1588 1589 1589 (% border="1" style="background-color:#ffffcc; color:green; width:332px" %) ... ... @@ -1592,20 +1592,22 @@ 1592 1592 1593 1593 == 3.10 Switch Jumper == 1594 1594 1595 -(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:463px" %) 1596 -|=(% style="width: 123px;" %)**Switch Jumper**|=(% style="width: 336px;" %)**Feature** 1597 -|(% style="width:123px" %)**SW1**|(% style="width:336px" %)ISP position: Upgrade firmware via UART 1214 +(% border="1" style="background-color:#ffffcc; color:green; width:515px" %) 1215 +|=(% style="width: 124px;" %)**Switch Jumper**|=(% style="width: 388px;" %)**Feature** 1216 +|(% style="width:124px" %)**SW1**|(% style="width:388px" %)((( 1217 +ISP position: Upgrade firmware via UART 1218 + 1598 1598 Flash position: Configure device, check running status. 1599 -|(% style="width:123px" %)**SW2**|(% style="width:336px" %)5V position: set to compatible with 5v I/O. 1220 +))) 1221 +|(% style="width:124px" %)**SW2**|(% style="width:388px" %)((( 1222 +5V position: set to compatible with 5v I/O. 1223 + 1600 1600 3.3v position: set to compatible with 3.3v I/O., 1225 +))) 1601 1601 1602 -((( 1603 1603 **+3.3V**: is always ON 1604 -))) 1605 1605 1606 -((( 1607 1607 **+5V**: Only open before every sampling. The time is by default, it is AT+5VT=0. Max open time. 5000 ms. 1608 -))) 1609 1609 1610 1610 1611 1611 = 4. Case Study = ... ... @@ -1617,23 +1617,17 @@ 1617 1617 1618 1618 == 5.1 Access AT Command == 1619 1619 1620 -((( 1621 1621 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. 1622 -))) 1623 1623 1624 1624 [[image:1654135840598-282.png]] 1625 1625 1626 1626 1627 -((( 1628 1628 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: 1629 -))) 1630 1630 1631 1631 [[image:1654136105500-922.png]] 1632 1632 1633 1633 1634 -((( 1635 1635 More detail AT Command manual can be found at [[AT Command Manual>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]] 1636 -))) 1637 1637 1638 1638 1639 1639 == 5.2 Common AT Command Sequence == ... ... @@ -1645,14 +1645,20 @@ 1645 1645 (% class="box infomessage" %) 1646 1646 ((( 1647 1647 **AT+FDR** 1263 +))) 1264 + 1265 +(% class="box infomessage" %) 1266 +((( 1648 1648 **AT+NJM=0** 1268 +))) 1269 + 1270 +(% class="box infomessage" %) 1271 +((( 1649 1649 **ATZ** 1650 1650 ))) 1651 1651 1652 1652 1653 -((( 1654 1654 If device already joined network: 1655 -))) 1656 1656 1657 1657 (% class="box infomessage" %) 1658 1658 ((( ... ... @@ -1691,12 +1691,10 @@ 1691 1691 1692 1692 (% style="color:red" %)**Note:** 1693 1693 1694 -((( 1695 1695 (% style="color:red" %)1. Make sure the device is set to ABP mode in the IoT Server. 1696 1696 2. Make sure the LG01/02 gateway RX frequency is exactly the same as AT+CHS setting. 1697 1697 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. 1698 1698 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 1699 -))) 1700 1700 1701 1701 [[image:1654136435598-589.png]] 1702 1702 ... ... @@ -1705,23 +1705,13 @@ 1705 1705 1706 1706 == 6.1 How to upgrade the image? == 1707 1707 1708 -((( 1709 1709 The RS485-BL LoRaWAN Controller is shipped with a 3.5mm cable, the cable is used to upload image to RS485-BL to: 1710 -))) 1711 1711 1712 -* ((( 1713 -Support new features 1714 -))) 1715 -* ((( 1716 -For bug fix 1717 -))) 1718 -* ((( 1719 -Change LoRaWAN bands. 1720 -))) 1329 +* Support new features 1330 +* For bug fix 1331 +* Change LoRaWAN bands. 1721 1721 1722 -((( 1723 1723 Below shows the hardware connection for how to upload an image to RS485-BL: 1724 -))) 1725 1725 1726 1726 [[image:1654136646995-976.png]] 1727 1727 ... ... @@ -1787,6 +1787,7 @@ 1787 1787 * (% style="color:blue" %)**RU864**(%%): frequency bands RU864 1788 1788 * (% style="color:blue" %)**KZ865**(%%): frequency bands KZ865 1789 1789 1399 + 1790 1790 = 9. Packing Info = 1791 1791 1792 1792 (((
- image-20220606105412-1.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -13.9 KB - Content