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, 1 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -94,7 +94,6 @@ 94 94 * 127 dB Dynamic Range RSSI. 95 95 * Automatic RF Sense and CAD with ultra-fast AFC. 96 96 97 - 98 98 == 1.3 Features == 99 99 100 100 * LoRaWAN Class A & Class C protocol (default Class A) ... ... @@ -106,7 +106,6 @@ 106 106 * Support Modbus protocol 107 107 * Support Interrupt uplink 108 108 109 - 110 110 == 1.4 Applications == 111 111 112 112 * Smart Buildings & Home Automation ... ... @@ -116,7 +116,6 @@ 116 116 * Smart Cities 117 117 * Smart Factory 118 118 119 - 120 120 == 1.5 Firmware Change log == 121 121 122 122 [[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);"]] ... ... @@ -261,81 +261,129 @@ 261 261 262 262 === 3.3.1 onfigure UART settings for RS485 or TTL communication === 263 263 261 +((( 264 264 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 263 +))) 265 265 265 +((( 266 266 **~1. RS485-MODBUS mode:** 267 +))) 267 267 269 +((( 268 268 AT+MOD=1 ~/~/ Support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 271 +))) 269 269 273 +((( 270 270 **2. TTL mode:** 275 +))) 271 271 277 +((( 272 272 AT+MOD=2 ~/~/ Support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 279 +))) 273 273 281 +((( 274 274 RS485-BL default UART settings is **9600, no parity, stop bit 1**. If the sensor has a different settings, user can change the RS485-BL setting to match. 283 +))) 275 275 276 -(% border="1" style="background-color:#ffffcc; color:green; width:795px" %) 277 -|((( 285 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %) 286 +|=(% style="width: 80px;" %)((( 287 +((( 278 278 **AT Commands** 279 -)))|(% style="width:285px" %)((( 289 +))) 290 +)))|=(% style="width: 210px;" %)((( 291 +((( 280 280 **Description** 281 -)))|(% style="width:347px" %)((( 293 +))) 294 +)))|=(% style="width: 2100px;" %)((( 295 +((( 282 282 **Example** 283 283 ))) 284 -|((( 298 +))) 299 +|(% style="width:80px" %)((( 300 +((( 285 285 AT+BAUDR 286 -)))|(% style="width:285px" %)((( 302 +))) 303 +)))|(% style="width:210px" %)((( 304 +((( 287 287 Set the baud rate (for RS485 connection). Default Value is: 9600. 288 -)))|(% style="width:347px" %)((( 306 +))) 307 +)))|(% style="width:210px" %)((( 289 289 ((( 309 +((( 290 290 AT+BAUDR=9600 291 291 ))) 312 +))) 292 292 293 293 ((( 315 +((( 294 294 Options: (1200,2400,4800,14400,19200,115200) 295 295 ))) 296 296 ))) 297 -|((( 319 +))) 320 +|(% style="width:80px" %)((( 321 +((( 298 298 AT+PARITY 299 -)))|(% style="width:285px" %)((( 323 +))) 324 +)))|(% style="width:210px" %)((( 300 300 ((( 326 +((( 301 301 Set UART parity (for RS485 connection) 302 302 ))) 329 +))) 303 303 304 304 ((( 332 +((( 305 305 Default Value is: no parity. 306 306 ))) 307 -)))|(% style="width:347px" %)((( 335 +))) 336 +)))|(% style="width:210px" %)((( 308 308 ((( 338 +((( 309 309 AT+PARITY=0 310 310 ))) 341 +))) 311 311 312 312 ((( 344 +((( 313 313 Option: 0: no parity, 1: odd parity, 2: even parity 314 314 ))) 315 315 ))) 316 -|((( 348 +))) 349 +|(% style="width:80px" %)((( 350 +((( 317 317 AT+STOPBIT 318 -)))|(% style="width:285px" %)((( 352 +))) 353 +)))|(% style="width:210px" %)((( 319 319 ((( 355 +((( 320 320 Set serial stopbit (for RS485 connection) 321 321 ))) 358 +))) 322 322 323 323 ((( 361 +((( 324 324 Default Value is: 1bit. 325 325 ))) 326 -)))|(% style="width:347px" %)((( 364 +))) 365 +)))|(% style="width:210px" %)((( 327 327 ((( 367 +((( 328 328 AT+STOPBIT=0 for 1bit 329 329 ))) 370 +))) 330 330 331 331 ((( 373 +((( 332 332 AT+STOPBIT=1 for 1.5 bit 333 333 ))) 376 +))) 334 334 335 335 ((( 379 +((( 336 336 AT+STOPBIT=2 for 2 bits 337 337 ))) 338 338 ))) 383 +))) 339 339 340 340 341 341 === 3.3.2 Configure sensors === ... ... @@ -348,19 +348,20 @@ 348 348 When user issue an (% style="color:#4f81bd" %)**AT+CFGDEV**(%%) command, Each (% style="color:#4f81bd" %)**AT+CFGDEV**(%%) equals to send a command to the RS485 or TTL sensors. This command will only run when user input it and won’t run during each sampling. 349 349 ))) 350 350 351 -(% border="1" style="background-color:#ffffcc; color:green; width: 806px" %)352 -|**AT Commands**|(% style="width: 418px" %)**Description**|(% style="width:256px" %)**Example**353 -|AT+CFGDEV|(% style="width: 418px" %)(((396 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %) 397 +|=(% style="width: 80px;" %)**AT Commands**|=(% style="width: 210px;" %)**Description**|=(% style="width: 210px;" %)**Example** 398 +|AT+CFGDEV|(% style="width:80px" %)((( 354 354 This command is used to configure the RS485/TTL devices; they won’t be used during sampling. 355 355 356 356 AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx, 357 357 358 358 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 359 -)))|(% style="width:2 56px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m404 +)))|(% style="width:210px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 360 360 361 361 Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 362 362 363 363 409 + 364 364 === 3.3.3 Configure read commands for each sampling === 365 365 366 366 ((( ... ... @@ -427,117 +427,213 @@ 427 427 After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**. 428 428 ))) 429 429 476 +((( 430 430 **Examples:** 478 +))) 431 431 480 +((( 432 432 Below are examples for the how above AT Commands works. 482 +))) 433 433 484 +((( 434 434 **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is: 486 +))) 435 435 436 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:50 1px" %)488 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %) 437 437 |(% style="width:498px" %)((( 490 +((( 438 438 **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m** 492 +))) 439 439 494 +((( 440 440 **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent** 496 +))) 441 441 498 +((( 442 442 **m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command** 443 443 ))) 501 +))) 444 444 503 +((( 445 445 For example, if we have a RS485 sensor. The command to get sensor value is: 01 03 0B B8 00 02 46 0A. Where 01 03 0B B8 00 02 is the Modbus command to read the register 0B B8 where stored the sensor value. The 46 0A is the CRC-16/MODBUS which calculate manually. 505 +))) 446 446 507 +((( 447 447 In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same. 509 +))) 448 448 511 +((( 512 + 513 +))) 514 + 515 +((( 449 449 **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx. 517 +))) 450 450 451 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:5 80px" %)519 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %) 452 452 |(% style="width:577px" %)((( 521 +((( 453 453 **AT+SEARCHx=aa,xx xx xx xx xx** 523 +))) 454 454 455 -* **aa: 1: prefix match mode; 2: prefix and suffix match mode**456 -* *xxxxxxxx xx:matchstring. Max 5 bytesforprefix and5 bytesfor suffix**525 +* ((( 526 +**aa: 1: prefix match mode; 2: prefix and suffix match mode** 457 457 ))) 528 +* ((( 529 +**xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix** 530 +))) 531 +))) 458 458 533 +((( 459 459 **Examples:** 535 +))) 460 460 537 +((( 461 461 1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 539 +))) 462 462 541 +((( 463 463 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 543 +))) 464 464 545 +((( 465 465 The valid data will be all bytes after 1E 56 34 , so it is (% style="background-color:yellow" %)**2e 30 58 5f 36 41 30 31 00 49** 547 +))) 466 466 549 +((( 467 467 [[image:1653271044481-711.png]] 551 +))) 468 468 553 +((( 469 469 2)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 555 +))) 470 470 557 +((( 471 471 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 559 +))) 472 472 561 +((( 473 473 Device will search the bytes between 1E 56 34 and 31 00 49. So it is(% style="background-color:yellow" %) **2e 30 58 5f 36 41 30** 563 +))) 474 474 565 +((( 475 475 [[image:1653271276735-972.png]] 567 +))) 476 476 569 +((( 477 477 **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes. 571 +))) 478 478 479 -(% style="background-color:#4f81bd; color:white; width: 729px" %)573 +(% style="background-color:#4f81bd; color:white; width:510px" %) 480 480 |(% style="width:726px" %)((( 575 +((( 481 481 **AT+DATACUTx=a,b,c** 577 +))) 482 482 483 -* **a: length for the return of AT+COMMAND** 484 -* **b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.** 485 -* **c: define the position for valid value. ** 579 +* ((( 580 +**a: length for the return of AT+COMMAND** 486 486 ))) 582 +* ((( 583 +**b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.** 584 +))) 585 +* ((( 586 +**c: define the position for valid value. ** 587 +))) 588 +))) 487 487 590 +((( 488 488 **Examples:** 592 +))) 489 489 490 -* Grab bytes: 594 +* ((( 595 +Grab bytes: 596 +))) 491 491 598 +((( 492 492 [[image:1653271581490-837.png||height="313" width="722"]] 600 +))) 493 493 602 +((( 603 + 604 +))) 494 494 495 -* Grab a section. 606 +* ((( 607 +Grab a section. 608 +))) 496 496 610 +((( 497 497 [[image:1653271648378-342.png||height="326" width="720"]] 612 +))) 498 498 614 +((( 615 + 616 +))) 499 499 500 -* Grab different sections. 618 +* ((( 619 +Grab different sections. 620 +))) 501 501 622 +((( 502 502 [[image:1653271657255-576.png||height="305" width="730"]] 624 +))) 503 503 504 504 ((( 627 +((( 505 505 (% style="color:red" %)**Note:** 506 506 ))) 630 +))) 507 507 508 508 ((( 633 +((( 509 509 AT+SEARCHx and AT+DATACUTx can be used together, if both commands are set, RS485-BL will first process AT+SEARCHx on the return string and get a temporary string, and then process AT+DATACUTx on this temporary string to get the final payload. In this case, AT+DATACUTx need to set to format AT+DATACUTx=0,xx,xx where the return bytes set to 0. 510 510 ))) 636 +))) 511 511 512 512 ((( 639 +((( 513 513 **Example:** 514 514 ))) 642 +))) 515 515 516 516 ((( 645 +((( 517 517 (% style="color:red" %)AT+COMMAND1=11 01 1E D0,0 518 518 ))) 648 +))) 519 519 520 520 ((( 651 +((( 521 521 (% style="color:red" %)AT+SEARCH1=1,1E 56 34 522 522 ))) 654 +))) 523 523 524 524 ((( 657 +((( 525 525 (% style="color:red" %)AT+DATACUT1=0,2,1~~5 526 526 ))) 660 +))) 527 527 528 528 ((( 663 +((( 529 529 (% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 530 530 ))) 666 +))) 531 531 532 532 ((( 669 +((( 533 533 (% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49 534 534 ))) 672 +))) 535 535 536 536 ((( 675 +((( 537 537 (% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36 538 538 ))) 678 +))) 539 539 680 +((( 540 540 [[image:1653271763403-806.png]] 682 +))) 541 541 542 542 543 543 === 3.3.4 Compose the uplink payload === ... ... @@ -544,10 +544,14 @@ 544 544 545 545 ((( 546 546 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.** 689 + 690 + 547 547 ))) 548 548 549 549 ((( 550 550 (% style="color:#037691" %)**Examples: AT+DATAUP=0** 695 + 696 + 551 551 ))) 552 552 553 553 ((( ... ... @@ -680,26 +680,8 @@ 680 680 681 681 == 3.4 Uplink Payload == 682 682 683 -(% border="1" style="background-color:#4f81bd; color:white; width:850px" %) 684 -|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands** 685 -|Value|(% style="width:130px" %)((( 686 -((( 687 -Battery(mV) 688 -))) 829 +[[image:image-20220606105412-1.png]] 689 689 690 -((( 691 -& 692 -))) 693 - 694 -((( 695 -Interrupt _Flag 696 -))) 697 -)))|(% style="width:93px" %)((( 698 -PAYLOAD_VER 699 - 700 - 701 -)))|(% 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. 702 - 703 703 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 704 704 705 705 ((( ... ... @@ -743,7 +743,7 @@ 743 743 ))) 744 744 745 745 ((( 746 - **}**874 +} 747 747 748 748 749 749 ))) ... ... @@ -757,13 +757,21 @@ 757 757 758 758 == 3.5 Configure RS485-BL via AT or Downlink == 759 759 888 +((( 760 760 User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands 890 +))) 761 761 892 +((( 762 762 There are two kinds of Commands: 894 +))) 763 763 764 -* (% 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: [[AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]] 896 +* ((( 897 +(% 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: [[AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]] 898 +))) 765 765 766 -* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 900 +* ((( 901 +(% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 902 +))) 767 767 768 768 769 769 === 3.5.1 Common Commands: === ... ... @@ -774,6 +774,7 @@ 774 774 === 3.5.2 Sensor related commands: === 775 775 776 776 913 + 777 777 ==== **Choose Device Type (RS485 or TTL)** ==== 778 778 779 779 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. ... ... @@ -797,57 +797,109 @@ 797 797 798 798 799 799 937 + 800 800 ==== **RS485 Debug Command (AT+CFGDEV)** ==== 801 801 940 +((( 802 802 This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling. 942 +))) 803 803 804 -* **AT Command** 944 +* ((( 945 +**AT Command** 946 +))) 805 805 806 806 (% class="box infomessage" %) 807 807 ((( 950 +((( 808 808 **AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m** 809 809 ))) 953 +))) 810 810 955 +((( 811 811 m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command. 957 +))) 812 812 959 +((( 960 + 961 +))) 813 813 814 -* **Downlink Payload** 963 +* ((( 964 +**Downlink Payload** 965 +))) 815 815 967 +((( 816 816 Format: A8 MM NN XX XX XX XX YY 969 +))) 817 817 971 +((( 818 818 Where: 973 +))) 819 819 820 -* MM: 1: add CRC-16/MODBUS ; 0: no CRC 821 -* NN: The length of RS485 command 822 -* XX XX XX XX: RS485 command total NN bytes 823 -* YY: How many bytes will be uplink from the return of this RS485 command, if YY=0, RS485-BL will execute the downlink command without uplink; if YY>0, RS485-BL will uplink total YY bytes from the output of this RS485 command 975 +* ((( 976 +MM: 1: add CRC-16/MODBUS ; 0: no CRC 977 +))) 978 +* ((( 979 +NN: The length of RS485 command 980 +))) 981 +* ((( 982 +XX XX XX XX: RS485 command total NN bytes 983 +))) 984 +* ((( 985 +YY: How many bytes will be uplink from the return of this RS485 command, if YY=0, RS485-BL will execute the downlink command without uplink; if YY>0, RS485-BL will uplink total YY bytes from the output of this RS485 command 986 +))) 824 824 988 +((( 825 825 **Example 1:** 990 +))) 826 826 992 +((( 827 827 To connect a Modbus Alarm with below commands. 994 +))) 828 828 829 -* 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. 996 +* ((( 997 +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. 998 +))) 830 830 831 -* 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. 1000 +* ((( 1001 +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. 1002 +))) 832 832 1004 +((( 833 833 So if user want to use downlink command to control to RS485 Alarm, he can use: 1006 +))) 834 834 1008 +((( 835 835 (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm 1010 +))) 836 836 1012 +((( 837 837 (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm 1014 +))) 838 838 1016 +((( 839 839 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. 1018 +))) 840 840 1020 +((( 1021 + 1022 +))) 841 841 1024 +((( 842 842 **Example 2:** 1026 +))) 843 843 1028 +((( 844 844 Check TTL Sensor return: 1030 +))) 845 845 1032 +((( 846 846 [[image:1654132684752-193.png]] 1034 +))) 847 847 848 848 849 849 850 850 1039 + 851 851 ==== **Set Payload version** ==== 852 852 853 853 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. ... ... @@ -868,87 +868,171 @@ 868 868 869 869 870 870 1060 + 871 871 ==== **Set RS485 Sampling Commands** ==== 872 872 1063 +((( 873 873 AT+COMMANDx, AT+DATACUTx and AT+SEARCHx 1065 +))) 874 874 1067 +((( 875 875 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"]]. 1069 +))) 876 876 1071 +((( 1072 + 1073 +))) 877 877 878 -* **AT Command:** 1075 +* ((( 1076 +**AT Command:** 1077 +))) 879 879 880 880 (% class="box infomessage" %) 881 881 ((( 1081 +((( 882 882 **AT+COMMANDx: Configure RS485 read command to sensor.** 883 883 ))) 1084 +))) 884 884 885 885 (% class="box infomessage" %) 886 886 ((( 1088 +((( 887 887 **AT+DATACUTx: Configure how to handle return from RS485 devices.** 888 888 ))) 1091 +))) 889 889 890 890 (% class="box infomessage" %) 891 891 ((( 1095 +((( 892 892 **AT+SEARCHx: Configure search command** 893 893 ))) 1098 +))) 894 894 1100 +((( 1101 + 1102 +))) 895 895 896 -* **Downlink Payload:** 1104 +* ((( 1105 +**Downlink Payload:** 1106 +))) 897 897 1108 +((( 898 898 **0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 1110 +))) 899 899 1112 +((( 900 900 (% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 1114 +))) 901 901 1116 +((( 902 902 Format: AF MM NN LL XX XX XX XX YY 1118 +))) 903 903 1120 +((( 904 904 Where: 1122 +))) 905 905 906 -* MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 907 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 908 -* LL: The length of AT+COMMAND or AT+DATACUT command 909 -* XX XX XX XX: AT+COMMAND or AT+DATACUT command 910 -* 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. 1124 +* ((( 1125 +MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 1126 +))) 1127 +* ((( 1128 +NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 1129 +))) 1130 +* ((( 1131 +LL: The length of AT+COMMAND or AT+DATACUT command 1132 +))) 1133 +* ((( 1134 +XX XX XX XX: AT+COMMAND or AT+DATACUT command 1135 +))) 1136 +* ((( 1137 +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. 1138 +))) 911 911 1140 +((( 912 912 **Example:** 1142 +))) 913 913 1144 +((( 914 914 (% 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 1146 +))) 915 915 1148 +((( 916 916 (% 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** 1150 +))) 917 917 1152 +((( 918 918 (% 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** 1154 +))) 919 919 1156 +((( 1157 + 1158 +))) 920 920 1160 +((( 921 921 **0xAB** downlink command can be used for set AT+SEARCHx 1162 +))) 922 922 1164 +((( 923 923 **Example:** **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So 1166 +))) 924 924 925 -* AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 926 -* 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 1168 +* ((( 1169 +AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 1170 +))) 1171 +* ((( 1172 +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 1173 +))) 927 927 1175 +((( 928 928 **AB aa 02 03 xx xx xx 02 yy yy** same as **AT+SEARCHaa=2,xx xx xx+yy yy** 1177 +))) 929 929 930 930 931 931 1181 + 932 932 ==== **Fast command to handle MODBUS device** ==== 933 933 1184 +((( 934 934 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]]. 1186 +))) 935 935 1188 +((( 936 936 This command is valid since v1.3 firmware version 1190 +))) 937 937 1192 +((( 1193 + 1194 +))) 938 938 1196 +((( 939 939 **AT+MBFUN has only two value:** 1198 +))) 940 940 941 -* **AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return 1200 +* ((( 1201 +**AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return 1202 +))) 942 942 1204 +((( 943 943 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. 1206 +))) 944 944 945 -* **AT+MBFUN=0**: Disable Modbus fast reading. 1208 +* ((( 1209 +**AT+MBFUN=0**: Disable Modbus fast reading. 1210 +))) 946 946 1212 +((( 947 947 **Example:** 1214 +))) 948 948 949 -* AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 950 -* 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. 951 -* 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. 1216 +* ((( 1217 +AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 1218 +))) 1219 +* ((( 1220 +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. 1221 +))) 1222 +* ((( 1223 +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. 1224 +))) 952 952 953 953 [[image:1654133913295-597.png]] 954 954 ... ... @@ -956,67 +956,120 @@ 956 956 [[image:1654133954153-643.png]] 957 957 958 958 959 -* **Downlink Commands:** 1232 +* ((( 1233 +**Downlink Commands:** 1234 +))) 960 960 1236 +((( 961 961 **A9 aa** ~-~-> Same as AT+MBFUN=aa 1238 +))) 962 962 963 963 964 964 1242 + 965 965 ==== **RS485 command timeout** ==== 966 966 1245 +((( 967 967 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. 1247 +))) 968 968 1249 +((( 969 969 Default value: 0, range: 0 ~~ 5 seconds 1251 +))) 970 970 1253 +((( 1254 + 1255 +))) 971 971 972 -* **AT Command:** 1257 +* ((( 1258 +**AT Command:** 1259 +))) 973 973 974 974 (% class="box infomessage" %) 975 975 ((( 1263 +((( 976 976 **AT+CMDDLaa=hex(bb cc)** 977 977 ))) 1266 +))) 978 978 1268 +((( 979 979 **Example:** 1270 +))) 980 980 1272 +((( 981 981 **AT+CMDDL1=1000** to send the open time to 1000ms 1274 +))) 982 982 1276 +((( 1277 + 1278 +))) 983 983 984 -* **Downlink Payload:** 1280 +* ((( 1281 +**Downlink Payload:** 1282 +))) 985 985 1284 +((( 986 986 0x AA aa bb cc 1286 +))) 987 987 1288 +((( 988 988 Same as: AT+CMDDLaa=hex(bb cc) 1290 +))) 989 989 1292 +((( 990 990 **Example:** 1294 +))) 991 991 1296 +((( 992 992 **0xAA 01 03 E8** ~-~-> Same as **AT+CMDDL1=1000 ms** 1298 +))) 993 993 994 994 995 995 1302 + 996 996 ==== **Uplink payload mode** ==== 997 997 1305 +((( 998 998 Define to use one uplink or multiple uplinks for the sampling. 1307 +))) 999 999 1309 +((( 1000 1000 The use of this command please see: [[Compose Uplink payload>>||anchor="H3.3.4Composetheuplinkpayload"]] 1311 +))) 1001 1001 1002 -* **AT Command:** 1313 +* ((( 1314 +**AT Command:** 1315 +))) 1003 1003 1004 1004 (% class="box infomessage" %) 1005 1005 ((( 1319 +((( 1006 1006 **AT+DATAUP=0** 1007 1007 ))) 1322 +))) 1008 1008 1009 1009 (% class="box infomessage" %) 1010 1010 ((( 1326 +((( 1011 1011 **AT+DATAUP=1** 1012 1012 ))) 1329 +))) 1013 1013 1331 +((( 1332 + 1333 +))) 1014 1014 1015 -* **Downlink Payload:** 1335 +* ((( 1336 +**Downlink Payload:** 1337 +))) 1016 1016 1339 +((( 1017 1017 **0xAD 00** **~-~->** Same as AT+DATAUP=0 1341 +))) 1018 1018 1343 +((( 1019 1019 **0xAD 01** **~-~->** Same as AT+DATAUP=1 1345 +))) 1020 1020 1021 1021 1022 1022 ... ... @@ -1034,94 +1034,173 @@ 1034 1034 1035 1035 ==== **Clear RS485 Command** ==== 1036 1036 1363 +((( 1037 1037 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 1365 +))) 1038 1038 1367 +((( 1368 + 1369 +))) 1039 1039 1040 -* **AT Command:** 1371 +* ((( 1372 +**AT Command:** 1373 +))) 1041 1041 1375 +((( 1042 1042 (% 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 1377 +))) 1043 1043 1379 +((( 1044 1044 Example screen shot after clear all RS485 commands. 1381 +))) 1045 1045 1383 +((( 1384 + 1385 +))) 1046 1046 1387 +((( 1047 1047 The uplink screen shot is: 1389 +))) 1048 1048 1391 +((( 1049 1049 [[image:1654134704555-320.png]] 1393 +))) 1050 1050 1395 +((( 1396 + 1397 +))) 1051 1051 1052 -* **Downlink Payload:** 1399 +* ((( 1400 +**Downlink Payload:** 1401 +))) 1053 1053 1403 +((( 1054 1054 **0x09 aa bb** same as AT+CMDEAR=aa,bb 1405 +))) 1055 1055 1056 1056 1057 1057 1409 + 1058 1058 ==== **Set Serial Communication Parameters** ==== 1059 1059 1412 +((( 1060 1060 Set the Rs485 serial communication parameters: 1414 +))) 1061 1061 1062 -* **AT Command:** 1416 +* ((( 1417 +**AT Command:** 1418 +))) 1063 1063 1420 +((( 1064 1064 Set Baud Rate: 1422 +))) 1065 1065 1066 1066 (% class="box infomessage" %) 1067 1067 ((( 1426 +((( 1068 1068 **AT+BAUDR=9600** ~/~/ Options: (1200,2400,4800,14400,19200,115200) 1069 1069 ))) 1429 +))) 1070 1070 1431 +((( 1071 1071 Set UART Parity 1433 +))) 1072 1072 1073 1073 (% class="box infomessage" %) 1074 1074 ((( 1437 +((( 1075 1075 **AT+PARITY=0** ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 1076 1076 ))) 1440 +))) 1077 1077 1442 +((( 1078 1078 Set STOPBIT 1444 +))) 1079 1079 1080 1080 (% class="box infomessage" %) 1081 1081 ((( 1448 +((( 1082 1082 **AT+STOPBIT=0** ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits 1083 1083 ))) 1451 +))) 1084 1084 1453 +((( 1454 + 1455 +))) 1085 1085 1086 -* **Downlink Payload:** 1457 +* ((( 1458 +**Downlink Payload:** 1459 +))) 1087 1087 1461 +((( 1088 1088 **A7 01 aa bb**: Same AT+BAUDR=hex(aa bb)*100 1463 +))) 1089 1089 1465 +((( 1090 1090 **Example:** 1467 +))) 1091 1091 1092 -* A7 01 00 60 same as AT+BAUDR=9600 1093 -* A7 01 04 80 same as AT+BAUDR=115200 1469 +* ((( 1470 +A7 01 00 60 same as AT+BAUDR=9600 1471 +))) 1472 +* ((( 1473 +A7 01 04 80 same as AT+BAUDR=115200 1474 +))) 1094 1094 1476 +((( 1095 1095 A7 02 aa: Same as AT+PARITY=aa (aa value: 00 , 01 or 02) 1478 +))) 1096 1096 1480 +((( 1097 1097 A7 03 aa: Same as AT+STOPBIT=aa (aa value: 00 , 01 or 02) 1482 +))) 1098 1098 1099 1099 1100 1100 1486 + 1101 1101 ==== **Control output power duration** ==== 1102 1102 1489 +((( 1103 1103 User can set the output power duration before each sampling. 1491 +))) 1104 1104 1105 -* **AT Command:** 1493 +* ((( 1494 +**AT Command:** 1495 +))) 1106 1106 1497 +((( 1107 1107 **Example:** 1499 +))) 1108 1108 1501 +((( 1109 1109 **AT+3V3T=1000** ~/~/ 3V3 output power will open 1s before each sampling. 1503 +))) 1110 1110 1505 +((( 1111 1111 **AT+5VT=1000** ~/~/ +5V output power will open 1s before each sampling. 1507 +))) 1112 1112 1509 +((( 1510 + 1511 +))) 1113 1113 1114 -* **LoRaWAN Downlink Command:** 1513 +* ((( 1514 +**LoRaWAN Downlink Command:** 1515 +))) 1115 1115 1517 +((( 1116 1116 **07 01 aa bb** Same as AT+5VT=(aa bb) 1519 +))) 1117 1117 1521 +((( 1118 1118 **07 02 aa bb** Same as AT+3V3T=(aa bb) 1523 +))) 1119 1119 1120 1120 1121 1121 1122 1122 == 3.6 Buttons == 1123 1123 1124 -(% border="1" style="background-color:#ffffcc; color:green; width:233px" %) 1529 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:233px" %) 1125 1125 |=(% style="width: 89px;" %)**Button**|=(% style="width: 141px;" %)**Feature** 1126 1126 |(% style="width:89px" %)**RST**|(% style="width:141px" %)Reboot RS485-BL 1127 1127 ... ... @@ -1128,38 +1128,75 @@ 1128 1128 1129 1129 == 3.7 +3V3 Output == 1130 1130 1536 +((( 1131 1131 RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor. 1538 +))) 1132 1132 1540 +((( 1133 1133 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. 1542 +))) 1134 1134 1544 +((( 1135 1135 The +3V3 output time can be controlled by AT Command. 1546 +))) 1136 1136 1548 +((( 1549 + 1550 +))) 1137 1137 1552 +((( 1138 1138 (% style="color:#037691" %)**AT+3V3T=1000** 1554 +))) 1139 1139 1556 +((( 1557 + 1558 +))) 1140 1140 1560 +((( 1141 1141 Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors. 1562 +))) 1142 1142 1564 +((( 1143 1143 By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time 1566 +))) 1144 1144 1145 1145 1146 1146 == 3.8 +5V Output == 1147 1147 1571 +((( 1148 1148 RS485-BL has a Controllable +5V output, user can use this output to power external sensor. 1573 +))) 1149 1149 1575 +((( 1150 1150 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. 1577 +))) 1151 1151 1579 +((( 1152 1152 The 5V output time can be controlled by AT Command. 1581 +))) 1153 1153 1583 +((( 1584 + 1585 +))) 1154 1154 1587 +((( 1155 1155 (% style="color:#037691" %)**AT+5VT=1000** 1589 +))) 1156 1156 1591 +((( 1592 + 1593 +))) 1157 1157 1595 +((( 1158 1158 Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors. 1597 +))) 1159 1159 1599 +((( 1160 1160 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. 1601 +))) 1161 1161 1162 1162 1604 + 1163 1163 == 3.9 LEDs == 1164 1164 1165 1165 (% border="1" style="background-color:#ffffcc; color:green; width:332px" %) ... ... @@ -1182,9 +1182,13 @@ 1182 1182 3.3v position: set to compatible with 3.3v I/O., 1183 1183 ))) 1184 1184 1627 +((( 1185 1185 **+3.3V**: is always ON 1629 +))) 1186 1186 1631 +((( 1187 1187 **+5V**: Only open before every sampling. The time is by default, it is AT+5VT=0. Max open time. 5000 ms. 1633 +))) 1188 1188 1189 1189 1190 1190 = 4. Case Study = ... ... @@ -1196,17 +1196,23 @@ 1196 1196 1197 1197 == 5.1 Access AT Command == 1198 1198 1645 +((( 1199 1199 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. 1647 +))) 1200 1200 1201 1201 [[image:1654135840598-282.png]] 1202 1202 1203 1203 1652 +((( 1204 1204 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: 1654 +))) 1205 1205 1206 1206 [[image:1654136105500-922.png]] 1207 1207 1208 1208 1659 +((( 1209 1209 More detail AT Command manual can be found at [[AT Command Manual>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]] 1661 +))) 1210 1210 1211 1211 1212 1212 == 5.2 Common AT Command Sequence == ... ... @@ -1231,7 +1231,9 @@ 1231 1231 ))) 1232 1232 1233 1233 1686 +((( 1234 1234 If device already joined network: 1688 +))) 1235 1235 1236 1236 (% class="box infomessage" %) 1237 1237 ((( ... ... @@ -1270,10 +1270,12 @@ 1270 1270 1271 1271 (% style="color:red" %)**Note:** 1272 1272 1727 +((( 1273 1273 (% style="color:red" %)1. Make sure the device is set to ABP mode in the IoT Server. 1274 1274 2. Make sure the LG01/02 gateway RX frequency is exactly the same as AT+CHS setting. 1275 1275 3. Make sure SF / bandwidth setting in LG01/LG02 match the settings of AT+DR. refer [[this link>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/&file=LoRaWAN%201.0.3%20Regional%20Parameters.xlsx]] to see what DR means. 1276 1276 4. The command AT+RX2FQ and AT+RX2DR is to let downlink work. to set the correct parameters, user can check the actually downlink parameters to be used. As below. Which shows the RX2FQ should use 868400000 and RX2DR should be 5 1732 +))) 1277 1277 1278 1278 [[image:1654136435598-589.png]] 1279 1279 ... ... @@ -1282,13 +1282,23 @@ 1282 1282 1283 1283 == 6.1 How to upgrade the image? == 1284 1284 1741 +((( 1285 1285 The RS485-BL LoRaWAN Controller is shipped with a 3.5mm cable, the cable is used to upload image to RS485-BL to: 1743 +))) 1286 1286 1287 -* Support new features 1288 -* For bug fix 1289 -* Change LoRaWAN bands. 1745 +* ((( 1746 +Support new features 1747 +))) 1748 +* ((( 1749 +For bug fix 1750 +))) 1751 +* ((( 1752 +Change LoRaWAN bands. 1753 +))) 1290 1290 1755 +((( 1291 1291 Below shows the hardware connection for how to upload an image to RS485-BL: 1757 +))) 1292 1292 1293 1293 [[image:1654136646995-976.png]] 1294 1294 ... ... @@ -1355,7 +1355,6 @@ 1355 1355 * (% style="color:blue" %)**KZ865**(%%): frequency bands KZ865 1356 1356 1357 1357 1358 - 1359 1359 = 9. Packing Info = 1360 1360 1361 1361 (((
- image-20220606105412-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +13.9 KB - Content