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

From version 29.9
edited by Xiaoling
on 2022/06/01 18:01
Change comment: There is no comment for this version
To version 30.7
edited by Xiaoling
on 2022/06/02 09:35
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:**
... ... @@ -117,9 +117,12 @@
117 117  
118 118  [[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);"]]
119 119  
121 +
120 120  == 1.6 Hardware Change log ==
121 121  
122 122  (((
125 +
126 +
123 123  v1.4
124 124  )))
125 125  
... ... @@ -202,8 +202,6 @@
202 202  )))
203 203  
204 204  
205 -
206 -
207 207  [[image:image-20220519174512-1.png]]
208 208  
209 209  [[image:image-20220519174512-2.png||height="328" width="731"]]
... ... @@ -227,6 +227,7 @@
227 227  
228 228  [[image:1652953568895-172.png||height="232" width="724"]]
229 229  
232 +
230 230  == 3.3 Configure Commands to read data ==
231 231  
232 232  (((
... ... @@ -333,8 +333,9 @@
333 333  mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
334 334  )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
335 335  
336 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>path:#AT_CFGDEV]].
339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]].
337 337  
341 +
338 338  === 3.3.3 Configure read commands for each sampling ===
339 339  
340 340  (((
... ... @@ -432,7 +432,7 @@
432 432  
433 433  **Examples:**
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
439 +1For 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=1,1E 56 34.      (max 5 bytes for prefix)
438 438  
... ... @@ -440,7 +440,7 @@
440 440  
441 441  [[image:1653271044481-711.png]]
442 442  
443 -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
444 444  
445 445  If we set AT+SEARCH1=2, 1E 56 34+31 00 49
446 446  
... ... @@ -459,16 +459,18 @@
459 459  * **c: define the position for valid value.  **
460 460  )))
461 461  
462 -Examples:
466 +**Examples:**
463 463  
464 464  * Grab bytes:
465 465  
466 466  [[image:1653271581490-837.png||height="313" width="722"]]
467 467  
472 +
468 468  * Grab a section.
469 469  
470 470  [[image:1653271648378-342.png||height="326" width="720"]]
471 471  
477 +
472 472  * Grab different sections.
473 473  
474 474  [[image:1653271657255-576.png||height="305" width="730"]]
... ... @@ -511,6 +511,7 @@
511 511  
512 512  [[image:1653271763403-806.png]]
513 513  
520 +
514 514  === 3.3.4 Compose the uplink payload ===
515 515  
516 516  (((
... ... @@ -518,7 +518,7 @@
518 518  )))
519 519  
520 520  (((
521 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=0**
528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0**
522 522  )))
523 523  
524 524  (((
... ... @@ -530,7 +530,7 @@
530 530  )))
531 531  
532 532  (((
533 -(% 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**
534 534  )))
535 535  
536 536  (((
... ... @@ -539,8 +539,12 @@
539 539  
540 540  [[image:1653272787040-634.png||height="515" width="719"]]
541 541  
549 +
550 +
542 542  (((
543 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1**
552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1**
553 +
554 +
544 544  )))
545 545  
546 546  (((
... ... @@ -552,7 +552,7 @@
552 552  )))
553 553  
554 554  (((
555 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**
556 556  )))
557 557  
558 558  1. (((
... ... @@ -575,6 +575,7 @@
575 575  
576 576  So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA
577 577  
589 +
578 578  DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41
579 579  
580 580  DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20
... ... @@ -581,10 +581,12 @@
581 581  
582 582  DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30
583 583  
596 +
584 584  Below are the uplink payloads:
585 585  
586 586  [[image:1653272901032-107.png]]
587 587  
601 +
588 588  (% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:
589 589  
590 590   ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
... ... @@ -595,6 +595,8 @@
595 595  
596 596   ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
597 597  
612 +
613 +
598 598  === 3.3.5 Uplink on demand ===
599 599  
600 600  (((
... ... @@ -611,6 +611,8 @@
611 611  
612 612  (((
613 613  **0xA8 command**: Send a command to RS485-BL and uplink the output from sensors.
630 +
631 +
614 614  )))
615 615  
616 616  === 3.3.6 Uplink on Interrupt ===
... ... @@ -619,6 +619,7 @@
619 619  
620 620  [[image:1653273818896-432.png]]
621 621  
640 +
622 622  (((
623 623  AT+INTMOD=0  Disable Interrupt
624 624  )))
... ... @@ -633,6 +633,8 @@
633 633  
634 634  (((
635 635  AT+INTMOD=3  Interrupt trigger by rising edge.
655 +
656 +
636 636  )))
637 637  
638 638  == 3.4 Uplink Payload ==
... ... @@ -660,47 +660,49 @@
660 660  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
661 661  
662 662  (((
663 -function Decoder(bytes, port) {
684 +{{{function Decoder(bytes, port) {}}}
664 664  )))
665 665  
666 666  (((
667 -~/~/Payload Formats of RS485-BL Deceive
688 +{{{//Payload Formats of RS485-BL Deceive}}}
668 668  )))
669 669  
670 670  (((
671 -return {
692 +{{{return {}}}
672 672  )))
673 673  
674 674  (((
675 - ~/~/Battery,units:V
696 +{{{ //Battery,units:V}}}
676 676  )))
677 677  
678 678  (((
679 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,
700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}}
680 680  )))
681 681  
682 682  (((
683 - ~/~/GPIO_EXTI 
704 +{{{ //GPIO_EXTI }}}
684 684  )))
685 685  
686 686  (((
687 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",
708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}}
688 688  )))
689 689  
690 690  (((
691 - ~/~/payload of version
712 +{{{ //payload of version}}}
692 692  )))
693 693  
694 694  (((
695 - Pay_ver:bytes[2],
716 +{{{ Pay_ver:bytes[2],}}}
696 696  )))
697 697  
698 698  (((
699 - };
720 +{{{ }; }}}
700 700  )))
701 701  
702 702  (((
703 - }
724 +}
725 +
726 +
704 704  )))
705 705  
706 706  (((
... ... @@ -709,58 +709,65 @@
709 709  
710 710  [[image:1653274001211-372.png||height="192" width="732"]]
711 711  
735 +
712 712  == 3.5 Configure RS485-BL via AT or Downlink ==
713 713  
714 -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
715 715  
716 716  There are two kinds of Commands:
717 717  
718 -* **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]]
719 719  
720 -* **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:
721 721  
722 -1.
723 -11.
724 -111. Common Commands:
746 +=== 3.5.1 Common Commands: ===
725 725  
726 -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]]
727 727  
728 728  
729 -1.
730 -11.
731 -111. Sensor related commands:
751 +=== 3.5.2 Sensor related commands: ===
732 732  
733 -==== Choose Device Type (RS485 or TTL) ====
753 +==== ====
734 734  
755 +==== **Choose Device Type (RS485 or TTL)** ====
756 +
735 735  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
736 736  
737 -* AT Command
759 +* **AT Command**
738 738  
761 +(% class="box infomessage" %)
762 +(((
739 739  **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins.
764 +)))
740 740  
766 +(% class="box infomessage" %)
767 +(((
741 741  **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins.
769 +)))
742 742  
743 743  
744 -* Downlink Payload
772 +* **Downlink Payload**
745 745  
746 -**0A aa**     à same as AT+MOD=aa
774 +**0A aa**  ~-~->  same as AT+MOD=aa
747 747  
748 748  
749 749  
750 -==== [[RS485 Debug Command>>path:#downlink_A8]] (AT+CFGDEV) ====
778 +==== **RS485 Debug Command (AT+CFGDEV)** ====
751 751  
752 752  This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling.
753 753  
754 -* AT Command
782 +* **AT Command**
755 755  
756 -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 +)))
757 757  
758 758  m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command.
759 759  
760 760  
792 +* **Downlink Payload**
761 761  
762 -* Downlink Payload
763 -
764 764  Format: A8 MM NN XX XX XX XX YY
765 765  
766 766  Where:
... ... @@ -774,15 +774,15 @@
774 774  
775 775  To connect a Modbus Alarm with below commands.
776 776  
777 -* 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.
778 778  
779 -* 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.
780 780  
781 781  So if user want to use downlink command to control to RS485 Alarm, he can use:
782 782  
783 -**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
784 784  
785 -**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
786 786  
787 787  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.
788 788  
... ... @@ -791,48 +791,60 @@
791 791  
792 792  Check TTL Sensor return:
793 793  
794 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]
824 +[[image:1654132684752-193.png]]
795 795  
796 796  
797 797  
828 +==== **Set Payload version** ====
798 798  
799 -==== Set Payload version ====
800 -
801 801  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.
802 802  
803 -* AT Command:
832 +* **AT Command:**
804 804  
805 -AT+PAYVER: Set PAYVER field = 1
834 +(% class="box infomessage" %)
835 +(((
836 +**AT+PAYVER: Set PAYVER field = 1**
837 +)))
806 806  
807 807  
808 -* Downlink Payload:
840 +* **Downlink Payload:**
809 809  
810 -0xAE 01   à Set PAYVER field =  0x01
842 +**0xAE 01**  ~-~-> Set PAYVER field =  0x01
811 811  
812 -0xAE 0F   à Set PAYVER field =  0x0F
844 +**0xAE 0F**   ~-~-> Set PAYVER field =  0x0F
813 813  
814 814  
815 -==== Set RS485 Sampling Commands ====
816 816  
848 +==== **Set RS485 Sampling Commands** ====
849 +
817 817  AT+COMMANDx, AT+DATACUTx and AT+SEARCHx
818 818  
819 -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"]].
820 820  
821 821  
822 -* AT Command:
855 +* **AT Command:**
823 823  
824 -AT+COMMANDx: Configure RS485 read command to sensor.
857 +(% class="box infomessage" %)
858 +(((
859 +**AT+COMMANDx: Configure RS485 read command to sensor.**
860 +)))
825 825  
826 -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 +)))
827 827  
828 -AT+SEARCHx: Configure search command
867 +(% class="box infomessage" %)
868 +(((
869 +**AT+SEARCHx: Configure search command**
870 +)))
829 829  
830 830  
831 -* Downlink Payload:
873 +* **Downlink Payload:**
832 832  
833 -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.
834 834  
835 -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.
836 836  
837 837  Format: AF MM NN LL XX XX XX XX YY
838 838  
... ... @@ -839,18 +839,18 @@
839 839  Where:
840 840  
841 841  * MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
842 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
843 -* 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
844 844  * XX XX XX XX: AT+COMMAND or AT+DATACUT command
845 -* 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.
846 846  
847 -Example:
889 +**Example:**
848 848  
849 -**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
850 850  
851 -**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**
852 852  
853 -**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**
854 854  
855 855  
856 856  0xAB downlink command can be used for set AT+SEARCHx
1654132684752-193.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +22.8 KB
Content