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, 7 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -25,19 +25,19 @@ 25 25 ))) 26 26 27 27 ((( 28 -The Dragino RS485-BL is a **RS485 / UART to LoRaWAN Converter** for Internet of Things solutions. User can connect RS485 or UART sensor to RS485-BL converter, and configure RS485-BL to periodically read sensor data and upload via LoRaWAN network to IoT server. 28 +The Dragino RS485-BL is a (% style="color:blue" %)**RS485 / UART to LoRaWAN Converter**(%%) for Internet of Things solutions. User can connect RS485 or UART sensor to RS485-BL converter, and configure RS485-BL to periodically read sensor data and upload via LoRaWAN network to IoT server. 29 29 ))) 30 30 31 31 ((( 32 -RS485-BL can interface to RS485 sensor, 3.3v/5v UART sensor or interrupt sensor. RS485-BL provides **a 3.3v output** and** a 5v output** to power external sensors. Both output voltages are controllable to minimize the total system power consumption. 32 +RS485-BL can interface to RS485 sensor, 3.3v/5v UART sensor or interrupt sensor. RS485-BL provides (% style="color:blue" %)**a 3.3v output**(%%) and** (% style="color:blue" %)a 5v output(%%)** to power external sensors. Both output voltages are controllable to minimize the total system power consumption. 33 33 ))) 34 34 35 35 ((( 36 -RS485-BL is IP67 **waterproof** and powered by **8500mAh Li-SOCI2 battery**, it is designed for long term use for several years. 36 +RS485-BL is IP67 (% style="color:blue" %)**waterproof**(%%) and powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use for several years. 37 37 ))) 38 38 39 39 ((( 40 -RS485-BL runs standard **LoRaWAN 1.0.3 in Class A**. It can reach long transfer range and easy to integrate with LoRaWAN compatible gateway and IoT server. 40 +RS485-BL runs standard (% style="color:blue" %)**LoRaWAN 1.0.3 in Class A**(%%). It can reach long transfer range and easy to integrate with LoRaWAN compatible gateway and IoT server. 41 41 ))) 42 42 43 43 ((( ... ... @@ -54,8 +54,11 @@ 54 54 55 55 [[image:1652953304999-717.png||height="424" width="733"]] 56 56 57 + 58 + 57 57 == 1.2 Specifications == 58 58 61 + 59 59 **Hardware System:** 60 60 61 61 * STM32L072CZT6 MCU ... ... @@ -62,8 +62,6 @@ 62 62 * SX1276/78 Wireless Chip 63 63 * Power Consumption (exclude RS485 device): 64 64 ** Idle: 6uA@3.3v 65 - 66 -* 67 67 ** 20dB Transmit: 130mA@3.3v 68 68 69 69 **Interface for Model:** ... ... @@ -113,8 +113,6 @@ 113 113 * Smart Cities 114 114 * Smart Factory 115 115 116 - 117 - 118 118 == 1.5 Firmware Change log == 119 119 120 120 [[RS485-BL Image files – Download link and Change log>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/RS485-BL/Firmware/||style="background-color: rgb(255, 255, 255);"]] ... ... @@ -123,6 +123,8 @@ 123 123 == 1.6 Hardware Change log == 124 124 125 125 ((( 125 + 126 + 126 126 v1.4 127 127 ))) 128 128 ... ... @@ -205,8 +205,6 @@ 205 205 ))) 206 206 207 207 208 - 209 - 210 210 [[image:image-20220519174512-1.png]] 211 211 212 212 [[image:image-20220519174512-2.png||height="328" width="731"]] ... ... @@ -230,6 +230,7 @@ 230 230 231 231 [[image:1652953568895-172.png||height="232" width="724"]] 232 232 232 + 233 233 == 3.3 Configure Commands to read data == 234 234 235 235 ((( ... ... @@ -336,8 +336,9 @@ 336 336 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 337 337 )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 338 338 339 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>> path:#AT_CFGDEV]].339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 340 340 341 + 341 341 === 3.3.3 Configure read commands for each sampling === 342 342 343 343 ((( ... ... @@ -435,7 +435,7 @@ 435 435 436 436 **Examples:** 437 437 438 -1 .For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49439 +1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 439 439 440 440 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 441 441 ... ... @@ -443,7 +443,7 @@ 443 443 444 444 [[image:1653271044481-711.png]] 445 445 446 - 1.For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49447 +2)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 447 447 448 448 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 449 449 ... ... @@ -462,16 +462,18 @@ 462 462 * **c: define the position for valid value. ** 463 463 ))) 464 464 465 -Examples: 466 +**Examples:** 466 466 467 467 * Grab bytes: 468 468 469 469 [[image:1653271581490-837.png||height="313" width="722"]] 470 470 472 + 471 471 * Grab a section. 472 472 473 473 [[image:1653271648378-342.png||height="326" width="720"]] 474 474 477 + 475 475 * Grab different sections. 476 476 477 477 [[image:1653271657255-576.png||height="305" width="730"]] ... ... @@ -514,6 +514,7 @@ 514 514 515 515 [[image:1653271763403-806.png]] 516 516 520 + 517 517 === 3.3.4 Compose the uplink payload === 518 518 519 519 ((( ... ... @@ -521,7 +521,7 @@ 521 521 ))) 522 522 523 523 ((( 524 -(% style="color:# 4f81bd" %)**Examples: AT+DATAUP=0**528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0** 525 525 ))) 526 526 527 527 ((( ... ... @@ -533,7 +533,7 @@ 533 533 ))) 534 534 535 535 ((( 536 -(% style="color:#4f81bd" %)Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx 540 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx** 537 537 ))) 538 538 539 539 ((( ... ... @@ -542,8 +542,12 @@ 542 542 543 543 [[image:1653272787040-634.png||height="515" width="719"]] 544 544 549 + 550 + 545 545 ((( 546 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1** 552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1** 553 + 554 + 547 547 ))) 548 548 549 549 ((( ... ... @@ -555,7 +555,7 @@ 555 555 ))) 556 556 557 557 ((( 558 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA** 559 559 ))) 560 560 561 561 1. ((( ... ... @@ -578,6 +578,7 @@ 578 578 579 579 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA 580 580 589 + 581 581 DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41 582 582 583 583 DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20 ... ... @@ -584,10 +584,12 @@ 584 584 585 585 DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30 586 586 596 + 587 587 Below are the uplink payloads: 588 588 589 589 [[image:1653272901032-107.png]] 590 590 601 + 591 591 (% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 592 592 593 593 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) ... ... @@ -598,6 +598,8 @@ 598 598 599 599 ~* For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). 600 600 612 + 613 + 601 601 === 3.3.5 Uplink on demand === 602 602 603 603 ((( ... ... @@ -614,6 +614,8 @@ 614 614 615 615 ((( 616 616 **0xA8 command**: Send a command to RS485-BL and uplink the output from sensors. 630 + 631 + 617 617 ))) 618 618 619 619 === 3.3.6 Uplink on Interrupt === ... ... @@ -622,6 +622,7 @@ 622 622 623 623 [[image:1653273818896-432.png]] 624 624 640 + 625 625 ((( 626 626 AT+INTMOD=0 Disable Interrupt 627 627 ))) ... ... @@ -636,6 +636,8 @@ 636 636 637 637 ((( 638 638 AT+INTMOD=3 Interrupt trigger by rising edge. 655 + 656 + 639 639 ))) 640 640 641 641 == 3.4 Uplink Payload == ... ... @@ -663,47 +663,49 @@ 663 663 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 664 664 665 665 ((( 666 -function Decoder(bytes, port) { 684 +{{{function Decoder(bytes, port) {}}} 667 667 ))) 668 668 669 669 ((( 670 - ~/~/Payload Formats of RS485-BL Deceive688 +{{{//Payload Formats of RS485-BL Deceive}}} 671 671 ))) 672 672 673 673 ((( 674 -return { 692 +{{{return {}}} 675 675 ))) 676 676 677 677 ((( 678 - ~/~/Battery,units:V696 +{{{ //Battery,units:V}}} 679 679 ))) 680 680 681 681 ((( 682 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000, 700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}} 683 683 ))) 684 684 685 685 ((( 686 - ~/~/GPIO_EXTI704 +{{{ //GPIO_EXTI }}} 687 687 ))) 688 688 689 689 ((( 690 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE", 708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}} 691 691 ))) 692 692 693 693 ((( 694 - ~/~/payload of version712 +{{{ //payload of version}}} 695 695 ))) 696 696 697 697 ((( 698 - Pay_ver:bytes[2], 716 +{{{ Pay_ver:bytes[2],}}} 699 699 ))) 700 700 701 701 ((( 702 - }; 720 +{{{ }; }}} 703 703 ))) 704 704 705 705 ((( 706 - } 724 +} 725 + 726 + 707 707 ))) 708 708 709 709 ((( ... ... @@ -712,58 +712,65 @@ 712 712 713 713 [[image:1653274001211-372.png||height="192" width="732"]] 714 714 735 + 715 715 == 3.5 Configure RS485-BL via AT or Downlink == 716 716 717 -User can configure RS485-BL via [[AT Commands>>path:#_Using_the_AT]]or LoRaWAN Downlink Commands738 +User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands 718 718 719 719 There are two kinds of Commands: 720 720 721 -* **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: http:~/~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands742 +* (% 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: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]] 722 722 723 -* **Sensor Related Commands**: These commands are special designed for RS485-BL. User can see these commands below: 744 +* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 724 724 725 -1. 726 -11. 727 -111. Common Commands: 746 +=== 3.5.1 Common Commands: === 728 728 729 -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: [[ http:~~/~~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands>>url:http://wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands]]748 +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]] 730 730 731 731 732 -1. 733 -11. 734 -111. Sensor related commands: 751 +=== 3.5.2 Sensor related commands: === 735 735 736 -==== ChooseDeviceType (RS485 or TTL)====753 +==== ==== 737 737 755 +==== **Choose Device Type (RS485 or TTL)** ==== 756 + 738 738 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 739 739 740 -* AT Command 759 +* **AT Command** 741 741 761 +(% class="box infomessage" %) 762 +((( 742 742 **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 764 +))) 743 743 766 +(% class="box infomessage" %) 767 +((( 744 744 **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 769 +))) 745 745 746 746 747 -* Downlink Payload 772 +* **Downlink Payload** 748 748 749 -**0A aa** àsame as AT+MOD=aa774 +**0A aa** ~-~-> same as AT+MOD=aa 750 750 751 751 752 752 753 -==== [[RS485 Debug Command>>path:#downlink_A8]](AT+CFGDEV) ====778 +==== **RS485 Debug Command (AT+CFGDEV)** ==== 754 754 755 755 This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling. 756 756 757 -* AT Command 782 +* **AT Command** 758 758 759 -AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 784 +(% class="box infomessage" %) 785 +((( 786 +**AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m** 787 +))) 760 760 761 761 m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command. 762 762 763 763 792 +* **Downlink Payload** 764 764 765 -* Downlink Payload 766 - 767 767 Format: A8 MM NN XX XX XX XX YY 768 768 769 769 Where: ... ... @@ -777,15 +777,15 @@ 777 777 778 778 To connect a Modbus Alarm with below commands. 779 779 780 -* 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. 807 +* 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. 781 781 782 -* 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. 809 +* 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. 783 783 784 784 So if user want to use downlink command to control to RS485 Alarm, he can use: 785 785 786 -**A8 01 06 0A 05 00 04 00 01 00**: to activate the RS485 Alarm 813 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm 787 787 788 -**A8 01 06 0A 05 00 04 00 00 00**: to deactivate the RS485 Alarm 815 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm 789 789 790 790 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. 791 791 ... ... @@ -794,48 +794,60 @@ 794 794 795 795 Check TTL Sensor return: 796 796 797 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]824 +[[image:1654132684752-193.png]] 798 798 799 799 800 800 828 +==== **Set Payload version** ==== 801 801 802 -==== Set Payload version ==== 803 - 804 804 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. 805 805 806 -* AT Command: 832 +* **AT Command:** 807 807 808 -AT+PAYVER: Set PAYVER field = 1 834 +(% class="box infomessage" %) 835 +((( 836 +**AT+PAYVER: Set PAYVER field = 1** 837 +))) 809 809 810 810 811 -* Downlink Payload: 840 +* **Downlink Payload:** 812 812 813 -0xAE 01 àSet PAYVER field = 0x01842 +**0xAE 01** ~-~-> Set PAYVER field = 0x01 814 814 815 -0xAE 0F àSet PAYVER field = 0x0F844 +**0xAE 0F** ~-~-> Set PAYVER field = 0x0F 816 816 817 817 818 -==== Set RS485 Sampling Commands ==== 819 819 848 +==== **Set RS485 Sampling Commands** ==== 849 + 820 820 AT+COMMANDx, AT+DATACUTx and AT+SEARCHx 821 821 822 -These three commands are used to configure how the RS485-BL polling data from Modbus device. Detail of usage please see : [[polling RS485 device>> path:#polling_485]].852 +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"]]. 823 823 824 824 825 -* AT Command: 855 +* **AT Command:** 826 826 827 -AT+COMMANDx: Configure RS485 read command to sensor. 857 +(% class="box infomessage" %) 858 +((( 859 +**AT+COMMANDx: Configure RS485 read command to sensor.** 860 +))) 828 828 829 -AT+DATACUTx: Configure how to handle return from RS485 devices. 862 +(% class="box infomessage" %) 863 +((( 864 +**AT+DATACUTx: Configure how to handle return from RS485 devices.** 865 +))) 830 830 831 -AT+SEARCHx: Configure search command 867 +(% class="box infomessage" %) 868 +((( 869 +**AT+SEARCHx: Configure search command** 870 +))) 832 832 833 833 834 -* Downlink Payload: 873 +* **Downlink Payload:** 835 835 836 -0xAF downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 875 +**0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 837 837 838 -Note: if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 877 +(% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 839 839 840 840 Format: AF MM NN LL XX XX XX XX YY 841 841 ... ... @@ -842,23 +842,23 @@ 842 842 Where: 843 843 844 844 * MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 845 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 846 -* LL: The length of AT+COMMAND or AT+DATACUT command 884 +* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 885 +* LL: The length of AT+COMMAND or AT+DATACUT command 847 847 * XX XX XX XX: AT+COMMAND or AT+DATACUT command 848 -* 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. 887 +* 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. 849 849 850 -Example: 889 +**Example:** 851 851 852 -**AF 03 01 06 0A 05 00 04 00 01 00**: Same as AT+COMMAND3=0A 05 00 04 00 01,1 891 +(% 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 853 853 854 -**AF 03 02 06 10 01 05 06 09 0A 00**: Same as AT+DATACUT3=**16**,**1**,**5+6+9+10** 893 +(% 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** 855 855 856 -**AF 03 02 06 0B 02 05 07 08 0A 00**: Same as AT+DATACUT3=**11**,**2**,**5~~7+8~~10** 895 +(% 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** 857 857 858 858 859 -0xAB downlink command can be used for set AT+SEARCHx 898 +**0xAB** downlink command can be used for set AT+SEARCHx 860 860 861 -Example: **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So 900 +**Example:** **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So 862 862 863 863 * AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 864 864 * 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 ... ... @@ -866,145 +866,164 @@ 866 866 **AB aa 02 03 xx xx xx 02 yy yy** same as **AT+SEARCHaa=2,xx xx xx+yy yy** 867 867 868 868 869 -==== Fast command to handle MODBUS device ==== 870 870 909 +==== **Fast command to handle MODBUS device** ==== 910 + 871 871 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]]. 872 872 873 873 This command is valid since v1.3 firmware version 874 874 875 875 876 -AT+MBFUN has only two value: 916 +**AT+MBFUN has only two value:** 877 877 878 -* AT+MBFUN=1: Enable Modbus reading. And get response base on the MODBUS return 918 +* **AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return 879 879 880 880 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. 881 881 882 -* AT+MBFUN=0: Disable Modbus fast reading. 922 +* **AT+MBFUN=0**: Disable Modbus fast reading. 883 883 884 -Example: 924 +**Example:** 885 885 886 886 * AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 887 887 * 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. 888 888 * 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. 889 889 890 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png]]930 +[[image:1654133913295-597.png]] 891 891 892 892 893 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png]]933 +[[image:1654133954153-643.png]] 894 894 895 895 896 -* Downlink Commands: 936 +* **Downlink Commands:** 897 897 898 -A9 aa - àSame as AT+MBFUN=aa938 +**A9 aa** ~-~-> Same as AT+MBFUN=aa 899 899 900 900 901 -==== RS485 command timeout ==== 902 902 942 +==== **RS485 command timeout** ==== 943 + 903 903 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. 904 904 905 905 Default value: 0, range: 0 ~~ 5 seconds 906 906 907 907 908 -* AT Command: 949 +* **AT Command:** 909 909 910 -AT+CMDDLaa=hex(bb cc) 951 +(% class="box infomessage" %) 952 +((( 953 +**AT+CMDDLaa=hex(bb cc)** 954 +))) 911 911 912 -Example: 956 +**Example:** 913 913 914 914 **AT+CMDDL1=1000** to send the open time to 1000ms 915 915 916 916 917 -* Downlink Payload: 961 +* **Downlink Payload:** 918 918 919 919 0x AA aa bb cc 920 920 921 921 Same as: AT+CMDDLaa=hex(bb cc) 922 922 923 - Example: 967 + **Example:** 924 924 925 - 0xAA 01 03 E8 àSame as **AT+CMDDL1=1000 ms**969 + **0xAA 01 03 E8** ~-~-> Same as **AT+CMDDL1=1000 ms** 926 926 927 927 928 -==== [[Uplink>>path:#downlink_A8]] payload mode ==== 929 929 973 +==== **Uplink payload mode** ==== 974 + 930 930 Define to use one uplink or multiple uplinks for the sampling. 931 931 932 -The use of this command please see: [[Compose Uplink payload>> path:#DataUP]]977 +The use of this command please see: [[Compose Uplink payload>>||anchor="H3.3.4Composetheuplinkpayload"]] 933 933 934 -* AT Command: 979 +* **AT Command:** 935 935 936 -AT+DATAUP=0 981 +(% class="box infomessage" %) 982 +((( 983 +**AT+DATAUP=0** 984 +))) 937 937 938 -AT+DATAUP=1 986 +(% class="box infomessage" %) 987 +((( 988 +**AT+DATAUP=1** 989 +))) 939 939 940 940 941 -* Downlink Payload: 992 +* **Downlink Payload:** 942 942 943 -0xAD 00 àSame as AT+DATAUP=0994 +**0xAD 00** **~-~->** Same as AT+DATAUP=0 944 944 945 -0xAD 01 àSame as AT+DATAUP=1996 +**0xAD 01** **~-~->** Same as AT+DATAUP=1 946 946 947 947 948 -==== Manually trigger an Uplink ==== 949 949 1000 +==== **Manually trigger an Uplink** ==== 1001 + 950 950 Ask device to send an uplink immediately. 951 951 952 -* Downlink Payload: 1004 +* **Downlink Payload:** 953 953 954 -0x08 FF, RS485-BL will immediately send an uplink. 1006 +**0x08 FF**, RS485-BL will immediately send an uplink. 955 955 956 956 957 -==== Clear RS485 Command ==== 958 958 1010 +==== **Clear RS485 Command** ==== 1011 + 959 959 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 960 960 961 961 962 -* AT Command: 1015 +* **AT Command:** 963 963 964 -**AT+CMDEAR=mm,nn** 1017 +(% 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 965 965 966 -Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 967 - 968 968 Example screen shot after clear all RS485 commands. 969 969 970 970 971 - 972 972 The uplink screen shot is: 973 973 974 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]1024 +[[image:1654134704555-320.png]] 975 975 976 976 977 -* Downlink Payload: 1027 +* **Downlink Payload:** 978 978 979 -0x09 aa bb same as AT+CMDEAR=aa,bb 1029 +**0x09 aa bb** same as AT+CMDEAR=aa,bb 980 980 981 981 982 -==== Set Serial Communication Parameters ==== 983 983 1033 +==== **Set Serial Communication Parameters** ==== 1034 + 984 984 Set the Rs485 serial communication parameters: 985 985 986 -* AT Command: 1037 +* **AT Command:** 987 987 988 988 Set Baud Rate: 989 989 990 -AT+BAUDR=9600 ~/~/ Options: (1200,2400,4800,14400,19200,115200) 1041 +(% class="box infomessage" %) 1042 +((( 1043 +**AT+BAUDR=9600** ~/~/ Options: (1200,2400,4800,14400,19200,115200) 1044 +))) 991 991 1046 +Set UART Parity 992 992 993 -Set UART parity 1048 +(% class="box infomessage" %) 1049 +((( 1050 +**AT+PARITY=0** ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 1051 +))) 994 994 995 -AT+PARITY=0 ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 996 - 997 - 998 998 Set STOPBIT 999 999 1000 -AT+STOPBIT=0 ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits 1055 +(% class="box infomessage" %) 1056 +((( 1057 +**AT+STOPBIT=0** ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits 1058 +))) 1001 1001 1002 1002 1003 -* Downlink Payload: 1061 +* **Downlink Payload:** 1004 1004 1005 -A7 01 aa bb: Same AT+BAUDR=hex(aa bb)*100 1063 +**A7 01 aa bb**: Same AT+BAUDR=hex(aa bb)*100 1006 1006 1007 -Example: 1065 +**Example:** 1008 1008 1009 1009 * A7 01 00 60 same as AT+BAUDR=9600 1010 1010 * A7 01 04 80 same as AT+BAUDR=115200 ... ... @@ -1014,169 +1014,175 @@ 1014 1014 A7 03 aa: Same as AT+STOPBIT=aa (aa value: 00 , 01 or 02) 1015 1015 1016 1016 1017 -==== Control output power duration ==== 1018 1018 1076 +==== **Control output power duration** ==== 1077 + 1019 1019 User can set the output power duration before each sampling. 1020 1020 1021 -* AT Command: 1080 +* **AT Command:** 1022 1022 1023 -Example: 1082 +**Example:** 1024 1024 1025 -AT+3V3T=1000 ~/~/ 3V3 output power will open 1s before each sampling. 1084 +**AT+3V3T=1000** ~/~/ 3V3 output power will open 1s before each sampling. 1026 1026 1027 -AT+5VT=1000 ~/~/ +5V output power will open 1s before each sampling. 1086 +**AT+5VT=1000** ~/~/ +5V output power will open 1s before each sampling. 1028 1028 1029 1029 1030 -* LoRaWAN Downlink Command: 1089 +* **LoRaWAN Downlink Command:** 1031 1031 1032 -07 01 aa bb Same as AT+5VT=(aa bb) 1091 +**07 01 aa bb** Same as AT+5VT=(aa bb) 1033 1033 1034 -07 02 aa bb Same as AT+3V3T=(aa bb) 1093 +**07 02 aa bb** Same as AT+3V3T=(aa bb) 1035 1035 1036 1036 1096 +== 3.6 Buttons == 1037 1037 1098 +(% border="1" style="background-color:#ffffcc; color:green; width:233px" %) 1099 +|=(% style="width: 89px;" %)**Button**|=(% style="width: 141px;" %)**Feature** 1100 +|(% style="width:89px" %)**RST**|(% style="width:141px" %)Reboot RS485-BL 1038 1038 1039 -1. 1040 -11. Buttons 1102 +== 3.7 +3V3 Output == 1041 1041 1042 -|**Button**|**Feature** 1043 -|**RST**|Reboot RS485-BL 1044 - 1045 -1. 1046 -11. +3V3 Output 1047 - 1048 1048 RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor. 1049 1049 1050 1050 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. 1051 1051 1052 - 1053 1053 The +3V3 output time can be controlled by AT Command. 1054 1054 1055 -**AT+3V3T=1000** 1056 1056 1057 - Meansset+3v3 valid timetohave 1000ms. So, thereal+3v3output will actually have1000ms + sampling time for other sensors.1111 +(% style="color:#037691" %)**AT+3V3T=1000** 1058 1058 1059 1059 1114 +Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors. 1115 + 1060 1060 By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time 1061 1061 1062 1062 1063 -1. 1064 -11. +5V Output 1119 +== 3.8 +5V Output == 1065 1065 1066 1066 RS485-BL has a Controllable +5V output, user can use this output to power external sensor. 1067 1067 1068 1068 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. 1069 1069 1070 - 1071 1071 The 5V output time can be controlled by AT Command. 1072 1072 1073 -**AT+5VT=1000** 1074 1074 1075 - Meansset5V valid timetohave 1000ms. So, thereal5Voutput will actually have1000ms + sampling time for other sensors.1128 +(% style="color:#037691" %)**AT+5VT=1000** 1076 1076 1077 1077 1131 +Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors. 1132 + 1078 1078 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. 1079 1079 1080 1080 1136 +== 3.9 LEDs == 1081 1081 1138 +(% border="1" style="background-color:#ffffcc; color:green; width:332px" %) 1139 +|=**LEDs**|=(% style="width: 274px;" %)**Feature** 1140 +|**LED1**|(% style="width:274px" %)Blink when device transmit a packet. 1082 1082 1083 -1. 1084 -11. LEDs 1142 +== 3.10 Switch Jumper == 1085 1085 1086 -|**LEDs**|**Feature** 1087 -|**LED1**|Blink when device transmit a packet. 1088 - 1089 -1. 1090 -11. Switch Jumper 1091 - 1092 -|**Switch Jumper**|**Feature** 1093 -|**SW1**|((( 1144 +(% border="1" style="background-color:#ffffcc; color:green; width:515px" %) 1145 +|=(% style="width: 124px;" %)**Switch Jumper**|=(% style="width: 388px;" %)**Feature** 1146 +|(% style="width:124px" %)**SW1**|(% style="width:388px" %)((( 1094 1094 ISP position: Upgrade firmware via UART 1095 1095 1096 1096 Flash position: Configure device, check running status. 1097 1097 ))) 1098 -|**SW2**|((( 1151 +|(% style="width:124px" %)**SW2**|(% style="width:388px" %)((( 1099 1099 5V position: set to compatible with 5v I/O. 1100 1100 1101 1101 3.3v position: set to compatible with 3.3v I/O., 1102 1102 ))) 1103 1103 1104 -+3.3V: is always ON 1157 +**+3.3V**: is always ON 1105 1105 1106 -+5V: Only open before every sampling. The time is by default, it is AT+5VT=0. Max open time. 5000 ms. 1159 +**+5V**: Only open before every sampling. The time is by default, it is AT+5VT=0. Max open time. 5000 ms. 1107 1107 1108 -1. Case Study 1109 1109 1110 - Usercancheck this URL for some casestudies.1162 += 4. Case Study = 1111 1111 1112 - [[http:~~/~~/wiki.dragino.com/index.php?title=APP_RS485_COMMUNICATE_WITH_SENSORS>>url:http://wiki.dragino.com/index.php?title=APP_RS485_COMMUNICATE_WITH_SENSORS]]1164 +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]] 1113 1113 1114 1114 1167 += 5. Use AT Command = 1115 1115 1169 +== 5.1 Access AT Command == 1116 1116 1117 -1. Use AT Command 1118 -11. Access AT Command 1119 - 1120 1120 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. 1121 1121 1122 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png]]1173 +[[image:1654135840598-282.png]] 1123 1123 1124 1124 1125 -In PC, User needs to set **serial tool**(such as [[putty>>url:https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]], SecureCRT) baud rate to **9600** to access to access serial console of RS485-BL. The default password is 123456. Below is the output for reference: 1176 +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: 1126 1126 1127 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image028.png]]1178 +[[image:1654136105500-922.png]] 1128 1128 1129 1129 1181 +More detail AT Command manual can be found at [[AT Command Manual>>||anchor="3.5ConfigureRS485-BLviaATorDownlink"]] 1130 1130 1131 -More detail AT Command manual can be found at [[AT Command Manual>>path:#AT_COMMAND]] 1132 1132 1184 +== 5.2 Common AT Command Sequence == 1133 1133 1186 +=== 5.2.1 Multi-channel ABP mode (Use with SX1301/LG308) === 1134 1134 1135 -1. 1136 -11. Common AT Command Sequence 1137 -111. Multi-channel ABP mode (Use with SX1301/LG308) 1138 - 1139 1139 If device has not joined network yet: 1140 1140 1141 -AT+FDR 1190 +(% class="box infomessage" %) 1191 +((( 1192 +**AT+FDR** 1193 +))) 1142 1142 1143 -AT+NJM=0 1195 +(% class="box infomessage" %) 1196 +((( 1197 +**AT+NJM=0** 1198 +))) 1144 1144 1145 -ATZ 1200 +(% class="box infomessage" %) 1201 +((( 1202 +**ATZ** 1203 +))) 1146 1146 1147 1147 1148 1148 If device already joined network: 1149 1149 1150 -AT+NJM=0 1208 +(% class="box infomessage" %) 1209 +((( 1210 +**AT+NJM=0** 1211 +))) 1151 1151 1152 -ATZ 1213 +(% class="box infomessage" %) 1214 +((( 1215 +**ATZ** 1216 +))) 1153 1153 1154 -1. 1155 -11. 1156 -111. Single-channel ABP mode (Use with LG01/LG02) 1157 1157 1158 - AT+FDRResetParameters toFactoryDefault, Keys Reserve1219 +=== 5.5.2 Single-channel ABP mode (Use with LG01/LG02) === 1159 1159 1160 -AT+NJM=0 Set to ABP mode 1161 1161 1162 -AT+ ADR=0Set theAdaptiveDataRateOff1222 +(% style="background-color:#dcdcdc" %)**AT+FDR** (%%) Reset Parameters to Factory Default, Keys Reserve 1163 1163 1164 -AT+ DR=5SetDataRate1224 +(% style="background-color:#dcdcdc" %)**AT+NJM=0 **(%%)Set to ABP mode 1165 1165 1166 -AT+ TDC=60000Set transmitntervalto60 seconds1226 +(% style="background-color:#dcdcdc" %)**AT+ADR=0** (%%)Set the Adaptive Data Rate Off 1167 1167 1168 -AT+ CHS=868400000Settransmitfrequencyto 868.4Mhz1228 +(% style="background-color:#dcdcdc" %)**AT+DR=5** (%%)Set Data Rate 1169 1169 1170 -AT+ RX2FQ=868400000SetRX2Frequencyto868.4Mhz (accordingto theesultfromserver)1230 +(% style="background-color:#dcdcdc" %)**AT+TDC=60000** (%%) Set transmit interval to 60 seconds 1171 1171 1172 -AT+ RX2DR=5SetRX2DRto match the downlinkDRfrom server.see below1232 +(% style="background-color:#dcdcdc" %)**AT+CHS=868400000**(%%) Set transmit frequency to 868.4Mhz 1173 1173 1174 -AT+ DADDR=2611AF1SetDeviceAddressto2601 1A F1, thisID can be foundLoRaServerportal.1234 +(% style="background-color:#dcdcdc" %)**AT+RX2FQ=868400000** (%%) Set RX2Frequency to 868.4Mhz (according to the result from server) 1175 1175 1176 -AT ZtMCU1236 +(% style="background-color:#dcdcdc" %)**AT+RX2DR=5** (%%) Set RX2DR to match the downlink DR from server. see below 1177 1177 1178 - **Note:**1238 +(% style="background-color:#dcdcdc" %)**AT+DADDR=26** (%%) 01 1A F1 Set Device Address to 26 01 1A F1, this ID can be found in the LoRa Server portal. 1179 1179 1240 +(% style="background-color:#dcdcdc" %)**ATZ** (%%) Reset MCU 1241 + 1242 +(% style="color:red" %)**Note:** 1243 + 1180 1180 1. Make sure the device is set to ABP mode in the IoT Server. 1181 1181 1. Make sure the LG01/02 gateway RX frequency is exactly the same as AT+CHS setting. 1182 1182 1. 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. ... ... @@ -1227,7 +1227,7 @@ 1227 1227 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png]] [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png]] 1228 1228 1229 1229 1230 -1. 1294 +1. 1231 1231 11. How to change the LoRa Frequency Bands/Region? 1232 1232 1233 1233 User can follow the introduction for [[how to upgrade image>>path:#upgrade_image]]. When download the images, choose the required image file for download. ... ... @@ -1234,7 +1234,7 @@ 1234 1234 1235 1235 1236 1236 1237 -1. 1301 +1. 1238 1238 11. How many RS485-Slave can RS485-BL connects? 1239 1239 1240 1240 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>>path:#downlink_A8]]. ... ... @@ -1251,7 +1251,7 @@ 1251 1251 1252 1252 1253 1253 1254 -1. 1318 +1. 1255 1255 11. Why I can’t join TTN V3 in US915 /AU915 bands? 1256 1256 1257 1257 It might about the channels mapping. Please see for detail.
- 1654132684752-193.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +22.8 KB - Content
- 1654133913295-597.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +116.2 KB - Content
- 1654133954153-643.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.2 KB - Content
- 1654134704555-320.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.4 KB - Content
- 1654135840598-282.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.3 MB - Content
- 1654136105500-922.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +203.7 KB - Content
- 1654136435598-589.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +158.9 KB - Content