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, 4 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -7,12 +7,15 @@ 7 7 **RS485-BL – Waterproof RS485 to LoRaWAN Converter User Manual** 8 8 9 9 10 + 10 10 **Table of Contents:** 11 11 13 +{{toc/}} 12 12 13 13 14 14 15 15 18 + 16 16 = 1.Introduction = 17 17 18 18 == 1.1 What is RS485-BL RS485 to LoRaWAN Converter == ... ... @@ -22,19 +22,19 @@ 22 22 ))) 23 23 24 24 ((( 25 -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. 26 26 ))) 27 27 28 28 ((( 29 -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. 30 30 ))) 31 31 32 32 ((( 33 -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. 34 34 ))) 35 35 36 36 ((( 37 -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. 38 38 ))) 39 39 40 40 ((( ... ... @@ -51,8 +51,11 @@ 51 51 52 52 [[image:1652953304999-717.png||height="424" width="733"]] 53 53 57 + 58 + 54 54 == 1.2 Specifications == 55 55 61 + 56 56 **Hardware System:** 57 57 58 58 * STM32L072CZT6 MCU ... ... @@ -59,8 +59,6 @@ 59 59 * SX1276/78 Wireless Chip 60 60 * Power Consumption (exclude RS485 device): 61 61 ** Idle: 6uA@3.3v 62 - 63 -* 64 64 ** 20dB Transmit: 130mA@3.3v 65 65 66 66 **Interface for Model:** ... ... @@ -114,9 +114,12 @@ 114 114 115 115 [[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);"]] 116 116 121 + 117 117 == 1.6 Hardware Change log == 118 118 119 119 ((( 125 + 126 + 120 120 v1.4 121 121 ))) 122 122 ... ... @@ -140,6 +140,8 @@ 140 140 141 141 ((( 142 142 Release version 150 + 151 + 143 143 ))) 144 144 145 145 = 2. Pin mapping and Power ON Device = ... ... @@ -153,6 +153,7 @@ 153 153 154 154 The Left TXD and RXD are TTL interface for external sensor. TTL level is controlled by 3.3/5v Jumper. 155 155 165 + 156 156 = 3. Operation Mode = 157 157 158 158 == 3.1 How it works? == ... ... @@ -159,6 +159,8 @@ 159 159 160 160 ((( 161 161 The RS485-BL is configured as LoRaWAN OTAA Class A mode by default. It has OTAA keys to join network. To connect a local LoRaWAN network, user just need to input the OTAA keys in the network server and power on the RS485-BL. It will auto join the network via OTAA. 172 + 173 + 162 162 ))) 163 163 164 164 == 3.2 Example to join LoRaWAN network == ... ... @@ -194,8 +194,6 @@ 194 194 ))) 195 195 196 196 197 - 198 - 199 199 [[image:image-20220519174512-1.png]] 200 200 201 201 [[image:image-20220519174512-2.png||height="328" width="731"]] ... ... @@ -219,10 +219,13 @@ 219 219 220 220 [[image:1652953568895-172.png||height="232" width="724"]] 221 221 232 + 222 222 == 3.3 Configure Commands to read data == 223 223 224 224 ((( 225 -There are plenty of RS485 and TTL level devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-BL supports flexible command set. User can use [[AT Commands or LoRaWAN Downlink>>path:#AT_COMMAND]] Command to configure how RS485-BL should read the sensor and how to handle the return from RS485 or TTL sensors. 236 +There are plenty of RS485 and TTL level devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-BL supports flexible command set. User can use [[AT Commands or LoRaWAN Downlink>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]] Command to configure how RS485-BL should read the sensor and how to handle the return from RS485 or TTL sensors. 237 + 238 + 226 226 ))) 227 227 228 228 === 3.3.1 onfigure UART settings for RS485 or TTL communication === ... ... @@ -323,8 +323,9 @@ 323 323 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 324 324 )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 325 325 326 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>> path:#AT_CFGDEV]].339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 327 327 341 + 328 328 === 3.3.3 Configure read commands for each sampling === 329 329 330 330 ((( ... ... @@ -422,7 +422,7 @@ 422 422 423 423 **Examples:** 424 424 425 -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 426 426 427 427 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 428 428 ... ... @@ -430,7 +430,7 @@ 430 430 431 431 [[image:1653271044481-711.png]] 432 432 433 - 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 434 434 435 435 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 436 436 ... ... @@ -449,16 +449,18 @@ 449 449 * **c: define the position for valid value. ** 450 450 ))) 451 451 452 -Examples: 466 +**Examples:** 453 453 454 454 * Grab bytes: 455 455 456 456 [[image:1653271581490-837.png||height="313" width="722"]] 457 457 472 + 458 458 * Grab a section. 459 459 460 460 [[image:1653271648378-342.png||height="326" width="720"]] 461 461 477 + 462 462 * Grab different sections. 463 463 464 464 [[image:1653271657255-576.png||height="305" width="730"]] ... ... @@ -501,6 +501,7 @@ 501 501 502 502 [[image:1653271763403-806.png]] 503 503 520 + 504 504 === 3.3.4 Compose the uplink payload === 505 505 506 506 ((( ... ... @@ -508,7 +508,7 @@ 508 508 ))) 509 509 510 510 ((( 511 -(% style="color:# 4f81bd" %)**Examples: AT+DATAUP=0**528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0** 512 512 ))) 513 513 514 514 ((( ... ... @@ -520,7 +520,7 @@ 520 520 ))) 521 521 522 522 ((( 523 -(% 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** 524 524 ))) 525 525 526 526 ((( ... ... @@ -529,8 +529,12 @@ 529 529 530 530 [[image:1653272787040-634.png||height="515" width="719"]] 531 531 549 + 550 + 532 532 ((( 533 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1** 552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1** 553 + 554 + 534 534 ))) 535 535 536 536 ((( ... ... @@ -542,7 +542,7 @@ 542 542 ))) 543 543 544 544 ((( 545 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA** 546 546 ))) 547 547 548 548 1. ((( ... ... @@ -565,6 +565,7 @@ 565 565 566 566 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA 567 567 589 + 568 568 DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41 569 569 570 570 DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20 ... ... @@ -571,10 +571,12 @@ 571 571 572 572 DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30 573 573 596 + 574 574 Below are the uplink payloads: 575 575 576 576 [[image:1653272901032-107.png]] 577 577 601 + 578 578 (% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 579 579 580 580 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) ... ... @@ -585,6 +585,8 @@ 585 585 586 586 ~* For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). 587 587 612 + 613 + 588 588 === 3.3.5 Uplink on demand === 589 589 590 590 ((( ... ... @@ -601,6 +601,8 @@ 601 601 602 602 ((( 603 603 **0xA8 command**: Send a command to RS485-BL and uplink the output from sensors. 630 + 631 + 604 604 ))) 605 605 606 606 === 3.3.6 Uplink on Interrupt === ... ... @@ -609,117 +609,160 @@ 609 609 610 610 [[image:1653273818896-432.png]] 611 611 640 + 641 +((( 612 612 AT+INTMOD=0 Disable Interrupt 643 +))) 613 613 645 +((( 614 614 AT+INTMOD=1 Interrupt trigger by rising or falling edge. 647 +))) 615 615 649 +((( 616 616 AT+INTMOD=2 Interrupt trigger by falling edge. ( Default Value) 651 +))) 617 617 653 +((( 618 618 AT+INTMOD=3 Interrupt trigger by rising edge. 619 619 656 + 657 +))) 658 + 620 620 == 3.4 Uplink Payload == 621 621 622 -|**Size(bytes)**|**2**|**1**|**Length depends on the return from the commands** 623 -|Value|((( 661 +(% border="1" style="background-color:#4f81bd; color:white; width:850px" %) 662 +|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands** 663 +|Value|(% style="width:130px" %)((( 664 +((( 624 624 Battery(mV) 666 +))) 625 625 668 +((( 626 626 & 670 +))) 627 627 672 +((( 628 628 Interrupt _Flag 629 -)))|((( 674 +))) 675 +)))|(% style="width:93px" %)((( 630 630 PAYLOAD_VER 631 631 632 632 633 -)))|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. 679 +)))|(% 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. 634 634 635 635 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 636 636 683 +((( 684 +{{{function Decoder(bytes, port) {}}} 685 +))) 637 637 638 -function Decoder(bytes, port) { 687 +((( 688 +{{{//Payload Formats of RS485-BL Deceive}}} 689 +))) 639 639 640 -~/~/Payload Formats of RS485-BL Deceive 691 +((( 692 +{{{return {}}} 693 +))) 641 641 642 -return { 695 +((( 696 +{{{ //Battery,units:V}}} 697 +))) 643 643 644 - ~/~/Battery,units:V 699 +((( 700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}} 701 +))) 645 645 646 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000, 703 +((( 704 +{{{ //GPIO_EXTI }}} 705 +))) 647 647 648 - ~/~/GPIO_EXTI 707 +((( 708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}} 709 +))) 649 649 650 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE", 711 +((( 712 +{{{ //payload of version}}} 713 +))) 651 651 652 - ~/~/payload of version 715 +((( 716 +{{{ Pay_ver:bytes[2],}}} 717 +))) 653 653 654 - Pay_ver:bytes[2], 719 +((( 720 +{{{ }; }}} 721 +))) 655 655 656 - }; 723 +((( 724 +} 657 657 658 - } 726 + 727 +))) 659 659 660 - 661 - 662 - 663 - 664 - 665 - 729 +((( 666 666 TTN V3 uplink screen shot. 731 +))) 667 667 668 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]733 +[[image:1653274001211-372.png||height="192" width="732"]] 669 669 670 -1. 671 -11. Configure RS485-BL via AT or Downlink 672 672 673 - Usercanconfigure RS485-BL via[[ATCommands >>path:#_Using_the_AT]]orLoRaWANDownlinkCommands736 +== 3.5 Configure RS485-BL via AT or Downlink == 674 674 738 +User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands 739 + 675 675 There are two kinds of Commands: 676 676 677 -* **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]] 678 678 679 -* **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: 680 680 681 -1. 682 -11. 683 -111. Common Commands: 746 +=== 3.5.1 Common Commands: === 684 684 685 -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]] 686 686 687 687 688 -1. 689 -11. 690 -111. Sensor related commands: 751 +=== 3.5.2 Sensor related commands: === 691 691 692 -==== ChooseDeviceType (RS485 or TTL)====753 +==== ==== 693 693 755 +==== **Choose Device Type (RS485 or TTL)** ==== 756 + 694 694 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 695 695 696 -* AT Command 759 +* **AT Command** 697 697 761 +(% class="box infomessage" %) 762 +((( 698 698 **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 764 +))) 699 699 766 +(% class="box infomessage" %) 767 +((( 700 700 **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 769 +))) 701 701 702 702 703 -* Downlink Payload 772 +* **Downlink Payload** 704 704 705 -**0A aa** àsame as AT+MOD=aa774 +**0A aa** ~-~-> same as AT+MOD=aa 706 706 707 707 708 708 709 -==== [[RS485 Debug Command>>path:#downlink_A8]](AT+CFGDEV) ====778 +==== **RS485 Debug Command (AT+CFGDEV)** ==== 710 710 711 711 This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling. 712 712 713 -* AT Command 782 +* **AT Command** 714 714 715 -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 +))) 716 716 717 717 m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command. 718 718 719 719 792 +* **Downlink Payload** 720 720 721 -* Downlink Payload 722 - 723 723 Format: A8 MM NN XX XX XX XX YY 724 724 725 725 Where: ... ... @@ -733,15 +733,15 @@ 733 733 734 734 To connect a Modbus Alarm with below commands. 735 735 736 -* 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. 737 737 738 -* 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. 739 739 740 740 So if user want to use downlink command to control to RS485 Alarm, he can use: 741 741 742 -**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 743 743 744 -**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 745 745 746 746 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. 747 747 ... ... @@ -750,48 +750,60 @@ 750 750 751 751 Check TTL Sensor return: 752 752 753 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]824 +[[image:1654132684752-193.png]] 754 754 755 755 756 756 828 +==== **Set Payload version** ==== 757 757 758 -==== Set Payload version ==== 759 - 760 760 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. 761 761 762 -* AT Command: 832 +* **AT Command:** 763 763 764 -AT+PAYVER: Set PAYVER field = 1 834 +(% class="box infomessage" %) 835 +((( 836 +**AT+PAYVER: Set PAYVER field = 1** 837 +))) 765 765 766 766 767 -* Downlink Payload: 840 +* **Downlink Payload:** 768 768 769 -0xAE 01 àSet PAYVER field = 0x01842 +**0xAE 01** ~-~-> Set PAYVER field = 0x01 770 770 771 -0xAE 0F àSet PAYVER field = 0x0F844 +**0xAE 0F** ~-~-> Set PAYVER field = 0x0F 772 772 773 773 774 -==== Set RS485 Sampling Commands ==== 775 775 848 +==== **Set RS485 Sampling Commands** ==== 849 + 776 776 AT+COMMANDx, AT+DATACUTx and AT+SEARCHx 777 777 778 -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"]]. 779 779 780 780 781 -* AT Command: 855 +* **AT Command:** 782 782 783 -AT+COMMANDx: Configure RS485 read command to sensor. 857 +(% class="box infomessage" %) 858 +((( 859 +**AT+COMMANDx: Configure RS485 read command to sensor.** 860 +))) 784 784 785 -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 +))) 786 786 787 -AT+SEARCHx: Configure search command 867 +(% class="box infomessage" %) 868 +((( 869 +**AT+SEARCHx: Configure search command** 870 +))) 788 788 789 789 790 -* Downlink Payload: 873 +* **Downlink Payload:** 791 791 792 -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. 793 793 794 -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. 795 795 796 796 Format: AF MM NN LL XX XX XX XX YY 797 797 ... ... @@ -798,23 +798,23 @@ 798 798 Where: 799 799 800 800 * MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 801 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 802 -* 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 803 803 * XX XX XX XX: AT+COMMAND or AT+DATACUT command 804 -* 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. 805 805 806 -Example: 889 +**Example:** 807 807 808 -**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 809 809 810 -**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** 811 811 812 -**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** 813 813 814 814 815 -0xAB downlink command can be used for set AT+SEARCHx 898 +**0xAB** downlink command can be used for set AT+SEARCHx 816 816 817 -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 818 818 819 819 * AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 820 820 * 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 ... ... @@ -822,87 +822,100 @@ 822 822 **AB aa 02 03 xx xx xx 02 yy yy** same as **AT+SEARCHaa=2,xx xx xx+yy yy** 823 823 824 824 825 -==== Fast command to handle MODBUS device ==== 826 826 909 +==== **Fast command to handle MODBUS device** ==== 910 + 827 827 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]]. 828 828 829 829 This command is valid since v1.3 firmware version 830 830 831 831 832 -AT+MBFUN has only two value: 916 +**AT+MBFUN has only two value:** 833 833 834 -* 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 835 835 836 836 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. 837 837 838 -* AT+MBFUN=0: Disable Modbus fast reading. 922 +* **AT+MBFUN=0**: Disable Modbus fast reading. 839 839 840 -Example: 924 +**Example:** 841 841 842 842 * AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 843 843 * 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. 844 844 * 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. 845 845 846 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png]]930 +[[image:1654133913295-597.png]] 847 847 848 848 849 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png]]933 +[[image:1654133954153-643.png]] 850 850 851 851 852 -* Downlink Commands: 936 +* **Downlink Commands:** 853 853 854 -A9 aa - àSame as AT+MBFUN=aa938 +**A9 aa** ~-~-> Same as AT+MBFUN=aa 855 855 856 856 857 -==== RS485 command timeout ==== 858 858 942 +==== **RS485 command timeout** ==== 943 + 859 859 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. 860 860 861 861 Default value: 0, range: 0 ~~ 5 seconds 862 862 863 863 864 -* AT Command: 949 +* **AT Command:** 865 865 866 -AT+CMDDLaa=hex(bb cc) 951 +(% class="box infomessage" %) 952 +((( 953 +**AT+CMDDLaa=hex(bb cc)** 954 +))) 867 867 868 -Example: 956 +**Example:** 869 869 870 870 **AT+CMDDL1=1000** to send the open time to 1000ms 871 871 872 872 873 -* Downlink Payload: 961 +* **Downlink Payload:** 874 874 875 875 0x AA aa bb cc 876 876 877 877 Same as: AT+CMDDLaa=hex(bb cc) 878 878 879 - Example: 967 + **Example:** 880 880 881 - 0xAA 01 03 E8 àSame as **AT+CMDDL1=1000 ms**969 + **0xAA 01 03 E8** ~-~-> Same as **AT+CMDDL1=1000 ms** 882 882 883 883 884 -==== [[Uplink>>path:#downlink_A8]] payload mode ==== 885 885 973 +==== **Uplink payload mode** ==== 974 + 886 886 Define to use one uplink or multiple uplinks for the sampling. 887 887 888 -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"]] 889 889 890 -* AT Command: 979 +* **AT Command:** 891 891 892 -AT+DATAUP=0 981 +(% class="box infomessage" %) 982 +((( 983 +**AT+DATAUP=0** 984 +))) 893 893 894 -AT+DATAUP=1 986 +(% class="box infomessage" %) 987 +((( 988 +**AT+DATAUP=1** 989 +))) 895 895 896 896 897 -* Downlink Payload: 992 +* **Downlink Payload:** 898 898 899 -0xAD 00 àSame as AT+DATAUP=0994 +**0xAD 00** **~-~->** Same as AT+DATAUP=0 900 900 901 -0xAD 01 àSame as AT+DATAUP=1996 +**0xAD 01** **~-~->** Same as AT+DATAUP=1 902 902 903 903 904 -==== Manually trigger an Uplink ==== 905 905 1000 +==== **Manually trigger an Uplink** ==== 1001 + 906 906 Ask device to send an uplink immediately. 907 907 908 908 * Downlink Payload:
- 1653274001211-372.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.4 KB - Content
- 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