Last modified by Xiaoling on 2025/04/23 15:57

From version 29.11
edited by Xiaoling
on 2022/06/01 18:01
Change comment: There is no comment for this version
To version 35.4
edited by Xiaoling
on 2022/06/02 10:17
Change comment: There is no comment for this version

Summary

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 49
439 +1For 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 49
447 +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 Deceive
688 +{{{//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:V
696 +{{{ //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_EXTI 
704 +{{{ //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 version
712 +{{{ //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 Commands
738 +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_Commands
742 +* (% 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 -==== Choose Device Type (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=aa
774 +**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 =  0x01
842 +**0xAE 01**  ~-~-> Set PAYVER field =  0x01
814 814  
815 -0xAE 0F   à Set PAYVER field =  0x0F
844 +**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=aa
938 +**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=0
994 +**0xAD 00**  **~-~->** Same as AT+DATAUP=0
944 944  
945 -0xAD 01   à Same as AT+DATAUP=1
996 +**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**   mm: start position of erase ,nn: stop position of erase
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,147 +1014,153 @@
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 -Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + 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 -Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + 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 -User can check this URL for some case studies.
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  
1219 +=== 5.5.2 Single-channel ABP mode (Use with LG01/LG02) ===
1220 +
1221 +
1158 1158  AT+FDR   Reset Parameters to Factory Default, Keys Reserve
1159 1159  
1160 1160  AT+NJM=0 Set to ABP mode
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