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

From version 29.4
edited by Xiaoling
on 2022/06/01 17:59
Change comment: There is no comment for this version
To version 33.5
edited by Xiaoling
on 2022/06/02 10:01
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -10,6 +10,7 @@
10 10  
11 11  **Table of Contents:**
12 12  
13 +{{toc/}}
13 13  
14 14  
15 15  
... ... @@ -24,19 +24,19 @@
24 24  )))
25 25  
26 26  (((
27 -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.
28 28  )))
29 29  
30 30  (((
31 -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.
32 32  )))
33 33  
34 34  (((
35 -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.
36 36  )))
37 37  
38 38  (((
39 -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.
40 40  )))
41 41  
42 42  (((
... ... @@ -53,8 +53,11 @@
53 53  
54 54  [[image:1652953304999-717.png||height="424" width="733"]]
55 55  
57 +
58 +
56 56  == 1.2 Specifications ==
57 57  
61 +
58 58  **Hardware System:**
59 59  
60 60  * STM32L072CZT6 MCU
... ... @@ -61,8 +61,6 @@
61 61  * SX1276/78 Wireless Chip 
62 62  * Power Consumption (exclude RS485 device):
63 63  ** Idle: 6uA@3.3v
64 -
65 -*
66 66  ** 20dB Transmit: 130mA@3.3v
67 67  
68 68  **Interface for Model:**
... ... @@ -116,9 +116,12 @@
116 116  
117 117  [[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);"]]
118 118  
121 +
119 119  == 1.6 Hardware Change log ==
120 120  
121 121  (((
125 +
126 +
122 122  v1.4
123 123  )))
124 124  
... ... @@ -142,6 +142,8 @@
142 142  
143 143  (((
144 144  Release version ​​​​​
150 +
151 +
145 145  )))
146 146  
147 147  = 2. Pin mapping and Power ON Device =
... ... @@ -155,6 +155,7 @@
155 155  
156 156  The Left TXD and RXD are TTL interface for external sensor. TTL level is controlled by 3.3/5v Jumper.
157 157  
165 +
158 158  = 3. Operation Mode =
159 159  
160 160  == 3.1 How it works? ==
... ... @@ -161,6 +161,8 @@
161 161  
162 162  (((
163 163  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 +
164 164  )))
165 165  
166 166  == 3.2 Example to join LoRaWAN network ==
... ... @@ -196,8 +196,6 @@
196 196  )))
197 197  
198 198  
199 -
200 -
201 201  [[image:image-20220519174512-1.png]]
202 202  
203 203  [[image:image-20220519174512-2.png||height="328" width="731"]]
... ... @@ -221,10 +221,13 @@
221 221  
222 222  [[image:1652953568895-172.png||height="232" width="724"]]
223 223  
232 +
224 224  == 3.3 Configure Commands to read data ==
225 225  
226 226  (((
227 -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 +
228 228  )))
229 229  
230 230  === 3.3.1 onfigure UART settings for RS485 or TTL communication ===
... ... @@ -325,8 +325,9 @@
325 325  mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
326 326  )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
327 327  
328 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>path:#AT_CFGDEV]].
339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]].
329 329  
341 +
330 330  === 3.3.3 Configure read commands for each sampling ===
331 331  
332 332  (((
... ... @@ -424,7 +424,7 @@
424 424  
425 425  **Examples:**
426 426  
427 -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
428 428  
429 429  If we set AT+SEARCH1=1,1E 56 34.      (max 5 bytes for prefix)
430 430  
... ... @@ -432,7 +432,7 @@
432 432  
433 433  [[image:1653271044481-711.png]]
434 434  
435 -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
436 436  
437 437  If we set AT+SEARCH1=2, 1E 56 34+31 00 49
438 438  
... ... @@ -451,16 +451,18 @@
451 451  * **c: define the position for valid value.  **
452 452  )))
453 453  
454 -Examples:
466 +**Examples:**
455 455  
456 456  * Grab bytes:
457 457  
458 458  [[image:1653271581490-837.png||height="313" width="722"]]
459 459  
472 +
460 460  * Grab a section.
461 461  
462 462  [[image:1653271648378-342.png||height="326" width="720"]]
463 463  
477 +
464 464  * Grab different sections.
465 465  
466 466  [[image:1653271657255-576.png||height="305" width="730"]]
... ... @@ -503,6 +503,7 @@
503 503  
504 504  [[image:1653271763403-806.png]]
505 505  
520 +
506 506  === 3.3.4 Compose the uplink payload ===
507 507  
508 508  (((
... ... @@ -510,7 +510,7 @@
510 510  )))
511 511  
512 512  (((
513 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=0**
528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0**
514 514  )))
515 515  
516 516  (((
... ... @@ -522,7 +522,7 @@
522 522  )))
523 523  
524 524  (((
525 -(% 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**
526 526  )))
527 527  
528 528  (((
... ... @@ -531,8 +531,12 @@
531 531  
532 532  [[image:1653272787040-634.png||height="515" width="719"]]
533 533  
549 +
550 +
534 534  (((
535 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1**
552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1**
553 +
554 +
536 536  )))
537 537  
538 538  (((
... ... @@ -544,7 +544,7 @@
544 544  )))
545 545  
546 546  (((
547 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**
548 548  )))
549 549  
550 550  1. (((
... ... @@ -567,6 +567,7 @@
567 567  
568 568  So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA
569 569  
589 +
570 570  DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41
571 571  
572 572  DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20
... ... @@ -573,10 +573,12 @@
573 573  
574 574  DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30
575 575  
596 +
576 576  Below are the uplink payloads:
577 577  
578 578  [[image:1653272901032-107.png]]
579 579  
601 +
580 580  (% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:
581 581  
582 582   ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
... ... @@ -587,6 +587,8 @@
587 587  
588 588   ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
589 589  
612 +
613 +
590 590  === 3.3.5 Uplink on demand ===
591 591  
592 592  (((
... ... @@ -603,6 +603,8 @@
603 603  
604 604  (((
605 605  **0xA8 command**: Send a command to RS485-BL and uplink the output from sensors.
630 +
631 +
606 606  )))
607 607  
608 608  === 3.3.6 Uplink on Interrupt ===
... ... @@ -611,6 +611,7 @@
611 611  
612 612  [[image:1653273818896-432.png]]
613 613  
640 +
614 614  (((
615 615  AT+INTMOD=0  Disable Interrupt
616 616  )))
... ... @@ -625,6 +625,8 @@
625 625  
626 626  (((
627 627  AT+INTMOD=3  Interrupt trigger by rising edge.
655 +
656 +
628 628  )))
629 629  
630 630  == 3.4 Uplink Payload ==
... ... @@ -652,47 +652,49 @@
652 652  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
653 653  
654 654  (((
655 -function Decoder(bytes, port) {
684 +{{{function Decoder(bytes, port) {}}}
656 656  )))
657 657  
658 658  (((
659 -~/~/Payload Formats of RS485-BL Deceive
688 +{{{//Payload Formats of RS485-BL Deceive}}}
660 660  )))
661 661  
662 662  (((
663 -return {
692 +{{{return {}}}
664 664  )))
665 665  
666 666  (((
667 - ~/~/Battery,units:V
696 +{{{ //Battery,units:V}}}
668 668  )))
669 669  
670 670  (((
671 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,
700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}}
672 672  )))
673 673  
674 674  (((
675 - ~/~/GPIO_EXTI 
704 +{{{ //GPIO_EXTI }}}
676 676  )))
677 677  
678 678  (((
679 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",
708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}}
680 680  )))
681 681  
682 682  (((
683 - ~/~/payload of version
712 +{{{ //payload of version}}}
684 684  )))
685 685  
686 686  (((
687 - Pay_ver:bytes[2],
716 +{{{ Pay_ver:bytes[2],}}}
688 688  )))
689 689  
690 690  (((
691 - };
720 +{{{ }; }}}
692 692  )))
693 693  
694 694  (((
695 - }
724 +}
725 +
726 +
696 696  )))
697 697  
698 698  (((
... ... @@ -701,58 +701,65 @@
701 701  
702 702  [[image:1653274001211-372.png||height="192" width="732"]]
703 703  
735 +
704 704  == 3.5 Configure RS485-BL via AT or Downlink ==
705 705  
706 -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
707 707  
708 708  There are two kinds of Commands:
709 709  
710 -* **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]]
711 711  
712 -* **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:
713 713  
714 -1.
715 -11.
716 -111. Common Commands:
746 +=== 3.5.1 Common Commands: ===
717 717  
718 -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]]
719 719  
720 720  
721 -1.
722 -11.
723 -111. Sensor related commands:
751 +=== 3.5.2 Sensor related commands: ===
724 724  
725 -==== Choose Device Type (RS485 or TTL) ====
753 +==== ====
726 726  
755 +==== **Choose Device Type (RS485 or TTL)** ====
756 +
727 727  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
728 728  
729 -* AT Command
759 +* **AT Command**
730 730  
761 +(% class="box infomessage" %)
762 +(((
731 731  **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins.
764 +)))
732 732  
766 +(% class="box infomessage" %)
767 +(((
733 733  **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins.
769 +)))
734 734  
735 735  
736 -* Downlink Payload
772 +* **Downlink Payload**
737 737  
738 -**0A aa**     à same as AT+MOD=aa
774 +**0A aa**  ~-~->  same as AT+MOD=aa
739 739  
740 740  
741 741  
742 -==== [[RS485 Debug Command>>path:#downlink_A8]] (AT+CFGDEV) ====
778 +==== **RS485 Debug Command (AT+CFGDEV)** ====
743 743  
744 744  This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling.
745 745  
746 -* AT Command
782 +* **AT Command**
747 747  
748 -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 +)))
749 749  
750 750  m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command.
751 751  
752 752  
792 +* **Downlink Payload**
753 753  
754 -* Downlink Payload
755 -
756 756  Format: A8 MM NN XX XX XX XX YY
757 757  
758 758  Where:
... ... @@ -766,15 +766,15 @@
766 766  
767 767  To connect a Modbus Alarm with below commands.
768 768  
769 -* 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.
770 770  
771 -* 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.
772 772  
773 773  So if user want to use downlink command to control to RS485 Alarm, he can use:
774 774  
775 -**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
776 776  
777 -**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
778 778  
779 779  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.
780 780  
... ... @@ -783,48 +783,60 @@
783 783  
784 784  Check TTL Sensor return:
785 785  
786 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]
824 +[[image:1654132684752-193.png]]
787 787  
788 788  
789 789  
828 +==== **Set Payload version** ====
790 790  
791 -==== Set Payload version ====
792 -
793 793  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.
794 794  
795 -* AT Command:
832 +* **AT Command:**
796 796  
797 -AT+PAYVER: Set PAYVER field = 1
834 +(% class="box infomessage" %)
835 +(((
836 +**AT+PAYVER: Set PAYVER field = 1**
837 +)))
798 798  
799 799  
800 -* Downlink Payload:
840 +* **Downlink Payload:**
801 801  
802 -0xAE 01   à Set PAYVER field =  0x01
842 +**0xAE 01**  ~-~-> Set PAYVER field =  0x01
803 803  
804 -0xAE 0F   à Set PAYVER field =  0x0F
844 +**0xAE 0F**   ~-~-> Set PAYVER field =  0x0F
805 805  
806 806  
807 -==== Set RS485 Sampling Commands ====
808 808  
848 +==== **Set RS485 Sampling Commands** ====
849 +
809 809  AT+COMMANDx, AT+DATACUTx and AT+SEARCHx
810 810  
811 -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"]].
812 812  
813 813  
814 -* AT Command:
855 +* **AT Command:**
815 815  
816 -AT+COMMANDx: Configure RS485 read command to sensor.
857 +(% class="box infomessage" %)
858 +(((
859 +**AT+COMMANDx: Configure RS485 read command to sensor.**
860 +)))
817 817  
818 -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 +)))
819 819  
820 -AT+SEARCHx: Configure search command
867 +(% class="box infomessage" %)
868 +(((
869 +**AT+SEARCHx: Configure search command**
870 +)))
821 821  
822 822  
823 -* Downlink Payload:
873 +* **Downlink Payload:**
824 824  
825 -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.
826 826  
827 -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.
828 828  
829 829  Format: AF MM NN LL XX XX XX XX YY
830 830  
... ... @@ -831,23 +831,23 @@
831 831  Where:
832 832  
833 833  * MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
834 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
835 -* 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
836 836  * XX XX XX XX: AT+COMMAND or AT+DATACUT command
837 -* 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.
838 838  
839 -Example:
889 +**Example:**
840 840  
841 -**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
842 842  
843 -**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**
844 844  
845 -**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**
846 846  
847 847  
848 -0xAB downlink command can be used for set AT+SEARCHx
898 +**0xAB** downlink command can be used for set AT+SEARCHx
849 849  
850 -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
851 851  
852 852  * AB aa 01 03 xx xx xx  same as AT+SEARCHaa=1,xx xx xx
853 853  * 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
... ... @@ -855,145 +855,164 @@
855 855  **AB aa 02 03 xx xx xx 02 yy yy**  same as **AT+SEARCHaa=2,xx xx xx+yy yy**
856 856  
857 857  
858 -==== Fast command to handle MODBUS device ====
859 859  
909 +==== **Fast command to handle MODBUS device** ====
910 +
860 860  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]].
861 861  
862 862  This command is valid since v1.3 firmware version
863 863  
864 864  
865 -AT+MBFUN has only two value:
916 +**AT+MBFUN has only two value:**
866 866  
867 -* 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
868 868  
869 869  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.
870 870  
871 -* AT+MBFUN=0: Disable Modbus fast reading.
922 +* **AT+MBFUN=0**: Disable Modbus fast reading.
872 872  
873 -Example:
924 +**Example:**
874 874  
875 875  * AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0).
876 876  * 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.
877 877  * 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.
878 878  
879 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png]]
930 +[[image:1654133913295-597.png]]
880 880  
881 881  
882 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png]]
933 +[[image:1654133954153-643.png]]
883 883  
884 884  
885 -* Downlink Commands:
936 +* **Downlink Commands:**
886 886  
887 -A9 aa -à Same as AT+MBFUN=aa
938 +**A9 aa** ~-~-> Same as AT+MBFUN=aa
888 888  
889 889  
890 -==== RS485 command timeout ====
891 891  
942 +==== **RS485 command timeout** ====
943 +
892 892  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.
893 893  
894 894  Default value: 0, range:  0 ~~ 5 seconds
895 895  
896 896  
897 -* AT Command:
949 +* **AT Command:**
898 898  
899 -AT+CMDDLaa=hex(bb cc)
951 +(% class="box infomessage" %)
952 +(((
953 +**AT+CMDDLaa=hex(bb cc)**
954 +)))
900 900  
901 -Example:
956 +**Example:**
902 902  
903 903  **AT+CMDDL1=1000** to send the open time to 1000ms
904 904  
905 905  
906 -* Downlink Payload:
961 +* **Downlink Payload:**
907 907  
908 908  0x AA aa bb cc
909 909  
910 910  Same as: AT+CMDDLaa=hex(bb cc)
911 911  
912 - Example:
967 + **Example:**
913 913  
914 - 0xAA 01 03 E8  à Same as **AT+CMDDL1=1000 ms**
969 + **0xAA 01 03 E8**  ~-~-> Same as **AT+CMDDL1=1000 ms**
915 915  
916 916  
917 -==== [[Uplink>>path:#downlink_A8]] payload mode ====
918 918  
973 +==== **Uplink payload mode** ====
974 +
919 919  Define to use one uplink or multiple uplinks for the sampling.
920 920  
921 -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"]]
922 922  
923 -* AT Command:
979 +* **AT Command:**
924 924  
925 -AT+DATAUP=0
981 +(% class="box infomessage" %)
982 +(((
983 +**AT+DATAUP=0**
984 +)))
926 926  
927 -AT+DATAUP=1
986 +(% class="box infomessage" %)
987 +(((
988 +**AT+DATAUP=1**
989 +)))
928 928  
929 929  
930 -* Downlink Payload:
992 +* **Downlink Payload:**
931 931  
932 -0xAD 00   à Same as AT+DATAUP=0
994 +**0xAD 00**  **~-~->** Same as AT+DATAUP=0
933 933  
934 -0xAD 01   à Same as AT+DATAUP=1
996 +**0xAD 01**  **~-~->** Same as AT+DATAUP=1
935 935  
936 936  
937 -==== Manually trigger an Uplink ====
938 938  
1000 +==== **Manually trigger an Uplink** ====
1001 +
939 939  Ask device to send an uplink immediately.
940 940  
941 -* Downlink Payload:
1004 +* **Downlink Payload:**
942 942  
943 -0x08 FF, RS485-BL will immediately send an uplink.
1006 +**0x08 FF**, RS485-BL will immediately send an uplink.
944 944  
945 945  
946 -==== Clear RS485 Command ====
947 947  
1010 +==== **Clear RS485 Command** ====
1011 +
948 948  The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them.
949 949  
950 950  
951 -* AT Command:
1015 +* **AT Command:**
952 952  
953 -**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
954 954  
955 -Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10
956 -
957 957  Example screen shot after clear all RS485 commands. 
958 958  
959 959  
960 -
961 961  The uplink screen shot is:
962 962  
963 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]
1024 +[[image:1654134704555-320.png]]
964 964  
965 965  
966 -* Downlink Payload:
1027 +* **Downlink Payload:**
967 967  
968 -0x09 aa bb same as AT+CMDEAR=aa,bb
1029 +**0x09 aa bb** same as AT+CMDEAR=aa,bb
969 969  
970 970  
971 -==== Set Serial Communication Parameters ====
972 972  
1033 +==== **Set Serial Communication Parameters** ====
1034 +
973 973  Set the Rs485 serial communication parameters:
974 974  
975 -* AT Command:
1037 +* **AT Command:**
976 976  
977 977  Set Baud Rate:
978 978  
979 -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 +)))
980 980  
1046 +Set UART Parity
981 981  
982 -Set UART parity
1048 +(% class="box infomessage" %)
1049 +(((
1050 +**AT+PARITY=0**    ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity
1051 +)))
983 983  
984 -AT+PARITY=0    ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity
985 -
986 -
987 987  Set STOPBIT
988 988  
989 -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 +)))
990 990  
991 991  
992 -* Downlink Payload:
1061 +* **Downlink Payload:**
993 993  
994 -A7 01 aa bb: Same  AT+BAUDR=hex(aa bb)*100
1063 +**A7 01 aa bb**: Same  AT+BAUDR=hex(aa bb)*100
995 995  
996 -Example:
1065 +**Example:**
997 997  
998 998  * A7 01 00 60   same as AT+BAUDR=9600
999 999  * A7 01 04 80  same as AT+BAUDR=115200
... ... @@ -1003,54 +1003,52 @@
1003 1003  A7 03 aa: Same as  AT+STOPBIT=aa  (aa value: 00 , 01 or 02)
1004 1004  
1005 1005  
1006 -==== Control output power duration ====
1007 1007  
1076 +==== **Control output power duration** ====
1077 +
1008 1008  User can set the output power duration before each sampling.
1009 1009  
1010 -* AT Command:
1080 +* **AT Command:**
1011 1011  
1012 -Example:
1082 +**Example:**
1013 1013  
1014 -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.
1015 1015  
1016 -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.
1017 1017  
1018 1018  
1019 -* LoRaWAN Downlink Command:
1089 +* **LoRaWAN Downlink Command:**
1020 1020  
1021 -07 01 aa bb  Same as AT+5VT=(aa bb)
1091 +**07 01 aa bb**  Same as AT+5VT=(aa bb)
1022 1022  
1023 -07 02 aa bb  Same as AT+3V3T=(aa bb)
1093 +**07 02 aa bb**  Same as AT+3V3T=(aa bb)
1024 1024  
1025 1025  
1096 +== 3.6 Buttons ==
1026 1026  
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
1027 1027  
1028 -1.
1029 -11. Buttons
1030 1030  
1031 -|**Button**|**Feature**
1032 -|**RST**|Reboot RS485-BL
1103 +== 3.7 +3V3 Output ==
1033 1033  
1034 -1.
1035 -11. +3V3 Output
1036 -
1037 1037  RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor.
1038 1038  
1039 1039  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. 
1040 1040  
1041 -
1042 1042  The +3V3 output time can be controlled by AT Command.
1043 1043  
1044 -**AT+3V3T=1000**
1045 1045  
1046 -Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors.
1112 +(% style="color:#037691" %)**AT+3V3T=1000**
1047 1047  
1048 1048  
1115 +Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors.
1116 +
1049 1049  By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time
1050 1050  
1051 1051  
1052 -1.
1053 -11. +5V Output
1120 +== 3.8 +5V Output ==
1054 1054  
1055 1055  RS485-BL has a Controllable +5V output, user can use this output to power external sensor.
1056 1056  
... ... @@ -1059,7 +1059,7 @@
1059 1059  
1060 1060  The 5V output time can be controlled by AT Command.
1061 1061  
1062 -**AT+5VT=1000**
1129 +(% style="color:#037691" %)**AT+5VT=1000**
1063 1063  
1064 1064  Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors.
1065 1065  
... ... @@ -1068,15 +1068,12 @@
1068 1068  
1069 1069  
1070 1070  
1138 +== 3.9 LEDs ==
1071 1071  
1072 -1.
1073 -11. LEDs
1074 -
1075 1075  |**LEDs**|**Feature**
1076 1076  |**LED1**|Blink when device transmit a packet.
1077 1077  
1078 -1.
1079 -11. Switch Jumper
1143 +== 3.10 Switch Jumper ==
1080 1080  
1081 1081  |**Switch Jumper**|**Feature**
1082 1082  |**SW1**|(((
... ... @@ -1121,7 +1121,7 @@
1121 1121  
1122 1122  
1123 1123  
1124 -1.
1188 +1.
1125 1125  11. Common AT Command Sequence
1126 1126  111. Multi-channel ABP mode (Use with SX1301/LG308)
1127 1127  
... ... @@ -1140,8 +1140,8 @@
1140 1140  
1141 1141  ATZ
1142 1142  
1143 -1.
1144 -11.
1207 +1.
1208 +11.
1145 1145  111. Single-channel ABP mode (Use with LG01/LG02)
1146 1146  
1147 1147  AT+FDR   Reset Parameters to Factory Default, Keys Reserve
... ... @@ -1216,7 +1216,7 @@
1216 1216  [[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]]
1217 1217  
1218 1218  
1219 -1.
1283 +1.
1220 1220  11. How to change the LoRa Frequency Bands/Region?
1221 1221  
1222 1222  User can follow the introduction for [[how to upgrade image>>path:#upgrade_image]]. When download the images, choose the required image file for download.
... ... @@ -1223,7 +1223,7 @@
1223 1223  
1224 1224  
1225 1225  
1226 -1.
1290 +1.
1227 1227  11. How many RS485-Slave can RS485-BL connects?
1228 1228  
1229 1229  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]].
... ... @@ -1240,7 +1240,7 @@
1240 1240  
1241 1241  
1242 1242  
1243 -1.
1307 +1.
1244 1244  11. Why I can’t join TTN V3 in US915 /AU915 bands?
1245 1245  
1246 1246  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