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, 0 added, 3 removed)
Details
- Page properties
-
- Content
-
... ... @@ -7,15 +7,12 @@ 7 7 **RS485-BL – Waterproof RS485 to LoRaWAN Converter User Manual** 8 8 9 9 10 - 11 11 **Table of Contents:** 12 12 13 -{{toc/}} 14 14 15 15 16 16 17 17 18 - 19 19 = 1.Introduction = 20 20 21 21 == 1.1 What is RS485-BL RS485 to LoRaWAN Converter == ... ... @@ -25,19 +25,19 @@ 25 25 ))) 26 26 27 27 ((( 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.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. 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 (% 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.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. 33 33 ))) 34 34 35 35 ((( 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.33 +RS485-BL is IP67 **waterproof** and powered by **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 (% 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.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. 41 41 ))) 42 42 43 43 ((( ... ... @@ -54,11 +54,8 @@ 54 54 55 55 [[image:1652953304999-717.png||height="424" width="733"]] 56 56 57 - 58 - 59 59 == 1.2 Specifications == 60 60 61 - 62 62 **Hardware System:** 63 63 64 64 * STM32L072CZT6 MCU ... ... @@ -65,6 +65,8 @@ 65 65 * SX1276/78 Wireless Chip 66 66 * Power Consumption (exclude RS485 device): 67 67 ** Idle: 6uA@3.3v 62 + 63 +* 68 68 ** 20dB Transmit: 130mA@3.3v 69 69 70 70 **Interface for Model:** ... ... @@ -118,12 +118,9 @@ 118 118 119 119 [[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);"]] 120 120 121 - 122 122 == 1.6 Hardware Change log == 123 123 124 124 ((( 125 - 126 - 127 127 v1.4 128 128 ))) 129 129 ... ... @@ -147,8 +147,6 @@ 147 147 148 148 ((( 149 149 Release version 150 - 151 - 152 152 ))) 153 153 154 154 = 2. Pin mapping and Power ON Device = ... ... @@ -162,7 +162,6 @@ 162 162 163 163 The Left TXD and RXD are TTL interface for external sensor. TTL level is controlled by 3.3/5v Jumper. 164 164 165 - 166 166 = 3. Operation Mode = 167 167 168 168 == 3.1 How it works? == ... ... @@ -169,8 +169,6 @@ 169 169 170 170 ((( 171 171 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 - 174 174 ))) 175 175 176 176 == 3.2 Example to join LoRaWAN network == ... ... @@ -206,6 +206,8 @@ 206 206 ))) 207 207 208 208 197 + 198 + 209 209 [[image:image-20220519174512-1.png]] 210 210 211 211 [[image:image-20220519174512-2.png||height="328" width="731"]] ... ... @@ -229,13 +229,10 @@ 229 229 230 230 [[image:1652953568895-172.png||height="232" width="724"]] 231 231 232 - 233 233 == 3.3 Configure Commands to read data == 234 234 235 235 ((( 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 - 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. 239 239 ))) 240 240 241 241 === 3.3.1 onfigure UART settings for RS485 or TTL communication === ... ... @@ -316,8 +316,6 @@ 316 316 ))) 317 317 ))) 318 318 319 - 320 - 321 321 === 3.3.2 Configure sensors === 322 322 323 323 ((( ... ... @@ -338,9 +338,8 @@ 338 338 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 339 339 )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 340 340 341 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>> ||anchor="HRS485DebugCommand28AT2BCFGDEV29"]].326 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>path:#AT_CFGDEV]]. 342 342 343 - 344 344 === 3.3.3 Configure read commands for each sampling === 345 345 346 346 ((( ... ... @@ -438,7 +438,7 @@ 438 438 439 439 **Examples:** 440 440 441 -1 )For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49425 +1. For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 442 442 443 443 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 444 444 ... ... @@ -446,7 +446,7 @@ 446 446 447 447 [[image:1653271044481-711.png]] 448 448 449 - 2)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49433 +1. For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 450 450 451 451 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 452 452 ... ... @@ -465,14 +465,12 @@ 465 465 * **c: define the position for valid value. ** 466 466 ))) 467 467 452 +Examples: 468 468 469 -**Examples:** 470 - 471 471 * Grab bytes: 472 472 473 473 [[image:1653271581490-837.png||height="313" width="722"]] 474 474 475 - 476 476 * Grab a section. 477 477 478 478 [[image:1653271648378-342.png||height="326" width="720"]] ... ... @@ -519,82 +519,64 @@ 519 519 520 520 [[image:1653271763403-806.png]] 521 521 522 -=== 3.3.4 Compose the uplink payload === 523 523 524 -((( 505 + 506 + 507 +1. 508 +11. 509 +111. Compose the uplink payload 510 + 525 525 Through AT+COMMANDx and AT+DATACUTx we got valid value from each RS485 commands, Assume these valid value are RETURN1, RETURN2, .., to RETURNx. The next step is how to compose the LoRa Uplink Payload by these RETURNs. The command is **AT+DATAUP.** 526 -))) 527 527 528 -((( 529 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=0** 530 -))) 531 531 532 -((( 533 -Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**A SIGNLE UPLINK**. 534 -))) 514 +**Examples: AT+DATAUP=0** 535 535 536 -((( 516 +Compose the uplink payload with value returns in sequence and send with **A SIGNLE UPLINK**. 517 + 537 537 Final Payload is 538 -))) 539 539 540 -((( 541 -(% style="color:#4f81bd" %)Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx 542 -))) 520 +Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx 543 543 544 -((( 545 545 Where PAYVER is defined by AT+PAYVER, below is an example screen shot. 546 -))) 547 547 548 -[[image: 1653272787040-634.png||height="515" width="719"]]524 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png]] 549 549 550 -((( 551 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1** 552 -))) 553 553 554 -((( 555 -Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**Multiply UPLINKs**. 556 -))) 557 557 558 -((( 528 +**Examples: AT+DATAUP=1** 529 + 530 +Compose the uplink payload with value returns in sequence and send with **Multiply UPLINKs**. 531 + 559 559 Final Payload is 560 -))) 561 561 562 -((( 563 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 564 -))) 534 +Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 565 565 566 -1. ((( 567 -Battery Info (2 bytes): Battery voltage 568 -))) 569 -1. ((( 570 -PAYVER (1 byte): Defined by AT+PAYVER 571 -))) 572 -1. ((( 573 -PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling. 574 -))) 575 -1. ((( 576 -PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT) 577 -))) 578 -1. ((( 579 -DATA: Valid value: max 6 bytes(US915 version here, Notice*!) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes 580 -))) 536 +1. Battery Info (2 bytes): Battery voltage 537 +1. PAYVER (1 byte): Defined by AT+PAYVER 538 +1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling. 539 +1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT) 540 +1. DATA: Valid value: max 6 bytes(US915 version here, [[Notice*!>>path:#max_byte]]) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes 581 581 582 -[[image: 1653272817147-600.png||height="437" width="717"]]542 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png]] 583 583 544 + 584 584 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA 585 585 586 -DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %)20 20 0a 33 90 41547 +DATA1=RETURN1 Valid Value = 20 20 0a 33 90 41 587 587 588 -DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20549 +DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= 02 aa 05 81 0a 20 589 589 590 -DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 = (%style="background-color:#4f81bd; color:white" %)20 20 20 2d 30551 +DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 = 20 20 20 2d 30 591 591 553 + 554 + 592 592 Below are the uplink payloads: 593 593 594 -[[image: 1653272901032-107.png]]557 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png]] 595 595 596 -(% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 597 597 560 +Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 561 + 598 598 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) 599 599 600 600 * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date). ... ... @@ -603,121 +603,90 @@ 603 603 604 604 ~* For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). 605 605 606 -=== 3.3.5 Uplink on demand === 607 607 608 -((( 571 + 572 +1. 573 +11. 574 +111. Uplink on demand 575 + 609 609 Except uplink periodically, RS485-BL is able to uplink on demand. The server sends downlink command to RS485-BL and RS485 will uplink data base on the command. 610 -))) 611 611 612 -((( 613 613 Downlink control command: 614 -))) 615 615 616 -((( 617 -**0x08 command**: Poll an uplink with current command set in RS485-BL. 618 -))) 580 +[[0x08 command>>path:#downlink_08]]: Poll an uplink with current command set in RS485-BL. 619 619 620 -((( 621 -**0xA8 command**: Send a command to RS485-BL and uplink the output from sensors. 622 -))) 582 +[[0xA8 command>>path:#downlink_A8]]: Send a command to RS485-BL and uplink the output from sensors. 623 623 624 -=== 3.3.6 Uplink on Interrupt === 625 625 626 -Put the interrupt sensor between 3.3v_out and GPIO ext. 627 627 628 -[[image:1653273818896-432.png]] 586 +1. 587 +11. 588 +111. Uplink on Interrupt 629 629 630 -((( 590 +Put the interrupt sensor between 3.3v_out and GPIO ext.[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png]] 591 + 631 631 AT+INTMOD=0 Disable Interrupt 632 -))) 633 633 634 -((( 635 635 AT+INTMOD=1 Interrupt trigger by rising or falling edge. 636 -))) 637 637 638 -((( 639 639 AT+INTMOD=2 Interrupt trigger by falling edge. ( Default Value) 640 -))) 641 641 642 -((( 643 643 AT+INTMOD=3 Interrupt trigger by rising edge. 644 -))) 645 645 646 -== 3.4 Uplink Payload == 647 647 648 -(% border="1" style="background-color:#4f81bd; color:white; width:850px" %) 649 -|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands** 650 -|Value|(% style="width:130px" %)((( 651 -((( 601 +1. 602 +11. Uplink Payload 603 + 604 +|**Size(bytes)**|**2**|**1**|**Length depends on the return from the commands** 605 +|Value|((( 652 652 Battery(mV) 653 -))) 654 654 655 -((( 656 656 & 657 -))) 658 658 659 -((( 660 660 Interrupt _Flag 661 -))) 662 -)))|(% style="width:93px" %)((( 611 +)))|((( 663 663 PAYLOAD_VER 664 664 665 665 666 -)))| (% 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.615 +)))|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. 667 667 668 668 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 669 669 670 - (((619 + 671 671 function Decoder(bytes, port) { 672 -))) 673 673 674 -((( 675 675 ~/~/Payload Formats of RS485-BL Deceive 676 -))) 677 677 678 -((( 679 679 return { 680 -))) 681 681 682 -((( 683 683 ~/~/Battery,units:V 684 -))) 685 685 686 -((( 687 687 BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000, 688 -))) 689 689 690 -((( 691 691 ~/~/GPIO_EXTI 692 -))) 693 693 694 -((( 695 695 EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE", 696 -))) 697 697 698 -((( 699 699 ~/~/payload of version 700 -))) 701 701 702 -((( 703 703 Pay_ver:bytes[2], 704 -))) 705 705 706 -((( 707 707 }; 708 -))) 709 709 710 -((( 711 711 } 712 -))) 713 713 714 -((( 642 + 643 + 644 + 645 + 646 + 647 + 715 715 TTN V3 uplink screen shot. 716 -))) 717 717 718 -[[image: 1653274001211-372.png||height="192" width="732"]]650 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]] 719 719 720 -== 3.5 Configure RS485-BL via AT or Downlink == 652 +1. 653 +11. Configure RS485-BL via AT or Downlink 721 721 722 722 User can configure RS485-BL via [[AT Commands >>path:#_Using_the_AT]]or LoRaWAN Downlink Commands 723 723 ... ... @@ -727,15 +727,15 @@ 727 727 728 728 * **Sensor Related Commands**: These commands are special designed for RS485-BL. User can see these commands below: 729 729 730 -1. 731 -11. 663 +1. 664 +11. 732 732 111. Common Commands: 733 733 734 734 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]] 735 735 736 736 737 -1. 738 -11. 670 +1. 671 +11. 739 739 111. Sensor related commands: 740 740 741 741 ==== Choose Device Type (RS485 or TTL) ==== ... ... @@ -1041,13 +1041,13 @@ 1041 1041 1042 1042 1043 1043 1044 -1. 977 +1. 1045 1045 11. Buttons 1046 1046 1047 1047 |**Button**|**Feature** 1048 1048 |**RST**|Reboot RS485-BL 1049 1049 1050 -1. 983 +1. 1051 1051 11. +3V3 Output 1052 1052 1053 1053 RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor. ... ... @@ -1065,7 +1065,7 @@ 1065 1065 By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time 1066 1066 1067 1067 1068 -1. 1001 +1. 1069 1069 11. +5V Output 1070 1070 1071 1071 RS485-BL has a Controllable +5V output, user can use this output to power external sensor. ... ... @@ -1085,13 +1085,13 @@ 1085 1085 1086 1086 1087 1087 1088 -1. 1021 +1. 1089 1089 11. LEDs 1090 1090 1091 1091 |**LEDs**|**Feature** 1092 1092 |**LED1**|Blink when device transmit a packet. 1093 1093 1094 -1. 1027 +1. 1095 1095 11. Switch Jumper 1096 1096 1097 1097 |**Switch Jumper**|**Feature** ... ... @@ -1137,7 +1137,7 @@ 1137 1137 1138 1138 1139 1139 1140 -1. 1073 +1. 1141 1141 11. Common AT Command Sequence 1142 1142 111. Multi-channel ABP mode (Use with SX1301/LG308) 1143 1143 ... ... @@ -1156,8 +1156,8 @@ 1156 1156 1157 1157 ATZ 1158 1158 1159 -1. 1160 -11. 1092 +1. 1093 +11. 1161 1161 111. Single-channel ABP mode (Use with LG01/LG02) 1162 1162 1163 1163 AT+FDR Reset Parameters to Factory Default, Keys Reserve ... ... @@ -1232,7 +1232,7 @@ 1232 1232 [[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]] 1233 1233 1234 1234 1235 -1. 1168 +1. 1236 1236 11. How to change the LoRa Frequency Bands/Region? 1237 1237 1238 1238 User can follow the introduction for [[how to upgrade image>>path:#upgrade_image]]. When download the images, choose the required image file for download. ... ... @@ -1239,7 +1239,7 @@ 1239 1239 1240 1240 1241 1241 1242 -1. 1175 +1. 1243 1243 11. How many RS485-Slave can RS485-BL connects? 1244 1244 1245 1245 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]]. ... ... @@ -1256,7 +1256,7 @@ 1256 1256 1257 1257 1258 1258 1259 -1. 1192 +1. 1260 1260 11. Why I can’t join TTN V3 in US915 /AU915 bands? 1261 1261 1262 1262 It might about the channels mapping. Please see for detail.
- 1653272901032-107.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -197.8 KB - Content
- 1653273818896-432.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -31.6 KB - Content
- 1653274001211-372.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -91.4 KB - Content