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

From version 40.51
edited by Xiaoling
on 2022/06/06 10:50
Change comment: There is no comment for this version
To version 41.28
edited by Xiaoling
on 2022/06/06 11:12
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -382,6 +382,8 @@
382 382  )))
383 383  )))
384 384  
385 +
386 +
385 385  === 3.3.2 Configure sensors ===
386 386  
387 387  (((
... ... @@ -405,6 +405,7 @@
405 405  Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]].
406 406  
407 407  
410 +
408 408  === 3.3.3 Configure read commands for each sampling ===
409 409  
410 410  (((
... ... @@ -471,117 +471,213 @@
471 471  After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**.
472 472  )))
473 473  
477 +(((
474 474  **Examples:**
479 +)))
475 475  
481 +(((
476 476  Below are examples for the how above AT Commands works.
483 +)))
477 477  
485 +(((
478 478  **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is:
487 +)))
479 479  
480 480  (% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %)
481 481  |(% style="width:498px" %)(((
491 +(((
482 482  **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m**
493 +)))
483 483  
495 +(((
484 484  **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent**
497 +)))
485 485  
499 +(((
486 486  **m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command**
487 487  )))
502 +)))
488 488  
504 +(((
489 489  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.
506 +)))
490 490  
508 +(((
491 491  In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same.
510 +)))
492 492  
512 +(((
513 +
514 +)))
515 +
516 +(((
493 493  **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx.
518 +)))
494 494  
495 495  (% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %)
496 496  |(% style="width:577px" %)(((
522 +(((
497 497  **AT+SEARCHx=aa,xx xx xx xx xx**
524 +)))
498 498  
499 -* **aa: 1: prefix match mode; 2: prefix and suffix match mode**
500 -* **xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix**
526 +* (((
527 +**aa: 1: prefix match mode; 2: prefix and suffix match mode**
501 501  )))
529 +* (((
530 +**xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix**
531 +)))
532 +)))
502 502  
534 +(((
503 503  **Examples:**
536 +)))
504 504  
538 +(((
505 505  1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
540 +)))
506 506  
542 +(((
507 507  If we set AT+SEARCH1=1,1E 56 34.      (max 5 bytes for prefix)
544 +)))
508 508  
546 +(((
509 509  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**
548 +)))
510 510  
550 +(((
511 511  [[image:1653271044481-711.png]]
552 +)))
512 512  
554 +(((
513 513  2)For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
556 +)))
514 514  
558 +(((
515 515  If we set AT+SEARCH1=2, 1E 56 34+31 00 49
560 +)))
516 516  
562 +(((
517 517  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**
564 +)))
518 518  
566 +(((
519 519  [[image:1653271276735-972.png]]
568 +)))
520 520  
570 +(((
521 521  **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes.
572 +)))
522 522  
523 523  (% style="background-color:#4f81bd; color:white; width:510px" %)
524 524  |(% style="width:726px" %)(((
576 +(((
525 525  **AT+DATACUTx=a,b,c**
578 +)))
526 526  
527 -* **a: length for the return of AT+COMMAND**
528 -* **b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.**
529 -* **c: define the position for valid value.  **
580 +* (((
581 +**a: length for the return of AT+COMMAND**
530 530  )))
583 +* (((
584 +**b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.**
585 +)))
586 +* (((
587 +**c: define the position for valid value.  **
588 +)))
589 +)))
531 531  
591 +(((
532 532  **Examples:**
593 +)))
533 533  
534 -* Grab bytes:
595 +* (((
596 +Grab bytes:
597 +)))
535 535  
599 +(((
536 536  [[image:1653271581490-837.png||height="313" width="722"]]
601 +)))
537 537  
603 +(((
604 +
605 +)))
538 538  
539 -* Grab a section.
607 +* (((
608 +Grab a section.
609 +)))
540 540  
611 +(((
541 541  [[image:1653271648378-342.png||height="326" width="720"]]
613 +)))
542 542  
615 +(((
616 +
617 +)))
543 543  
544 -* Grab different sections.
619 +* (((
620 +Grab different sections.
621 +)))
545 545  
623 +(((
546 546  [[image:1653271657255-576.png||height="305" width="730"]]
625 +)))
547 547  
548 548  (((
628 +(((
549 549  (% style="color:red" %)**Note:**
550 550  )))
631 +)))
551 551  
552 552  (((
634 +(((
553 553  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.
554 554  )))
637 +)))
555 555  
556 556  (((
640 +(((
557 557  **Example:**
558 558  )))
643 +)))
559 559  
560 560  (((
646 +(((
561 561  (% style="color:red" %)AT+COMMAND1=11 01 1E D0,0
562 562  )))
649 +)))
563 563  
564 564  (((
652 +(((
565 565  (% style="color:red" %)AT+SEARCH1=1,1E 56 34
566 566  )))
655 +)))
567 567  
568 568  (((
658 +(((
569 569  (% style="color:red" %)AT+DATACUT1=0,2,1~~5
570 570  )))
661 +)))
571 571  
572 572  (((
664 +(((
573 573  (% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
574 574  )))
667 +)))
575 575  
576 576  (((
670 +(((
577 577  (% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49
578 578  )))
673 +)))
579 579  
580 580  (((
676 +(((
581 581  (% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36
582 582  )))
679 +)))
583 583  
681 +(((
584 584  [[image:1653271763403-806.png]]
683 +)))
585 585  
586 586  
587 587  === 3.3.4 Compose the uplink payload ===
... ... @@ -728,26 +728,8 @@
728 728  
729 729  == 3.4 Uplink Payload ==
730 730  
731 -(% border="1" style="background-color:#4f81bd; color:white; width:850px" %)
732 -|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands**
733 -|Value|(% style="width:130px" %)(((
734 -(((
735 -Battery(mV)
736 -)))
830 +[[image:image-20220606105412-1.png]]
737 737  
738 -(((
739 -&
740 -)))
741 -
742 -(((
743 -Interrupt _Flag
744 -)))
745 -)))|(% style="width:93px" %)(((
746 -PAYLOAD_VER
747 -
748 -
749 -)))|(% 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.
750 -
751 751  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
752 752  
753 753  (((
... ... @@ -805,14 +805,24 @@
805 805  
806 806  == 3.5 Configure RS485-BL via AT or Downlink ==
807 807  
889 +(((
808 808  User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands
891 +)))
809 809  
893 +(((
810 810  There are two kinds of Commands:
895 +)))
811 811  
812 -* (% 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]]
897 +* (((
898 +(% 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]]
899 +)))
813 813  
814 -* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL.  User can see these commands below:
901 +* (((
902 +(% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL.  User can see these commands below:
903 +)))
815 815  
905 +
906 +
816 816  === 3.5.1 Common Commands: ===
817 817  
818 818  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]]
... ... @@ -821,6 +821,7 @@
821 821  === 3.5.2 Sensor related commands: ===
822 822  
823 823  
915 +
824 824  ==== **Choose Device Type (RS485 or TTL)** ====
825 825  
826 826  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
... ... @@ -844,6 +844,7 @@
844 844  
845 845  
846 846  
939 +
847 847  ==== **RS485 Debug Command (AT+CFGDEV)** ====
848 848  
849 849  This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling.
... ... @@ -883,7 +883,9 @@
883 883  
884 884  (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm
885 885  
979 +(((
886 886  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.
981 +)))
887 887  
888 888  
889 889  **Example 2:**
... ... @@ -895,6 +895,7 @@
895 895  
896 896  
897 897  
993 +
898 898  ==== **Set Payload version** ====
899 899  
900 900  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.
... ... @@ -915,6 +915,7 @@
915 915  
916 916  
917 917  
1014 +
918 918  ==== **Set RS485 Sampling Commands** ====
919 919  
920 920  AT+COMMANDx, AT+DATACUTx and AT+SEARCHx
... ... @@ -976,6 +976,7 @@
976 976  
977 977  
978 978  
1076 +
979 979  ==== **Fast command to handle MODBUS device** ====
980 980  
981 981  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]].
... ... @@ -1009,6 +1009,7 @@
1009 1009  
1010 1010  
1011 1011  
1110 +
1012 1012  ==== **RS485 command timeout** ====
1013 1013  
1014 1014  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.
... ... @@ -1040,6 +1040,7 @@
1040 1040  
1041 1041  
1042 1042  
1142 +
1043 1043  ==== **Uplink payload mode** ====
1044 1044  
1045 1045  Define to use one uplink or multiple uplinks for the sampling.
... ... @@ -1086,7 +1086,9 @@
1086 1086  
1087 1087  * **AT Command:**
1088 1088  
1189 +(((
1089 1089  (% 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
1191 +)))
1090 1090  
1091 1091  Example screen shot after clear all RS485 commands. 
1092 1092  
... ... @@ -1102,6 +1102,7 @@
1102 1102  
1103 1103  
1104 1104  
1207 +
1105 1105  ==== **Set Serial Communication Parameters** ====
1106 1106  
1107 1107  Set the Rs485 serial communication parameters:
... ... @@ -1145,6 +1145,7 @@
1145 1145  
1146 1146  
1147 1147  
1251 +
1148 1148  ==== **Control output power duration** ====
1149 1149  
1150 1150  User can set the output power duration before each sampling.
... ... @@ -1168,44 +1168,83 @@
1168 1168  
1169 1169  == 3.6 Buttons ==
1170 1170  
1171 -(% border="1" style="background-color:#ffffcc; color:green; width:233px" %)
1275 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:233px" %)
1172 1172  |=(% style="width: 89px;" %)**Button**|=(% style="width: 141px;" %)**Feature**
1173 1173  |(% style="width:89px" %)**RST**|(% style="width:141px" %)Reboot RS485-BL
1174 1174  
1279 +
1280 +
1175 1175  == 3.7 +3V3 Output ==
1176 1176  
1283 +(((
1177 1177  RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor.
1285 +)))
1178 1178  
1287 +(((
1179 1179  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. 
1289 +)))
1180 1180  
1291 +(((
1181 1181  The +3V3 output time can be controlled by AT Command.
1293 +)))
1182 1182  
1295 +(((
1296 +
1297 +)))
1183 1183  
1299 +(((
1184 1184  (% style="color:#037691" %)**AT+3V3T=1000**
1301 +)))
1185 1185  
1303 +(((
1304 +
1305 +)))
1186 1186  
1307 +(((
1187 1187  Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors.
1309 +)))
1188 1188  
1311 +(((
1189 1189  By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time
1313 +)))
1190 1190  
1191 1191  
1192 1192  == 3.8 +5V Output ==
1193 1193  
1318 +(((
1194 1194  RS485-BL has a Controllable +5V output, user can use this output to power external sensor.
1320 +)))
1195 1195  
1322 +(((
1196 1196  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. 
1324 +)))
1197 1197  
1326 +(((
1198 1198  The 5V output time can be controlled by AT Command.
1328 +)))
1199 1199  
1330 +(((
1331 +
1332 +)))
1200 1200  
1334 +(((
1201 1201  (% style="color:#037691" %)**AT+5VT=1000**
1336 +)))
1202 1202  
1338 +(((
1339 +
1340 +)))
1203 1203  
1342 +(((
1204 1204  Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors.
1344 +)))
1205 1205  
1346 +(((
1206 1206  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.
1348 +)))
1207 1207  
1208 1208  
1351 +
1209 1209  == 3.9 LEDs ==
1210 1210  
1211 1211  (% border="1" style="background-color:#ffffcc; color:green; width:332px" %)
... ... @@ -1212,6 +1212,8 @@
1212 1212  |=**LEDs**|=(% style="width: 274px;" %)**Feature**
1213 1213  |**LED1**|(% style="width:274px" %)Blink when device transmit a packet.
1214 1214  
1358 +
1359 +
1215 1215  == 3.10 Switch Jumper ==
1216 1216  
1217 1217  (% border="1" style="background-color:#ffffcc; color:green; width:515px" %)
... ... @@ -1227,9 +1227,13 @@
1227 1227  3.3v position: set to compatible with 3.3v I/O.,
1228 1228  )))
1229 1229  
1375 +(((
1230 1230  **+3.3V**: is always ON
1377 +)))
1231 1231  
1379 +(((
1232 1232  **+5V**: Only open before every sampling. The time is by default, it is AT+5VT=0.  Max open time. 5000 ms.
1381 +)))
1233 1233  
1234 1234  
1235 1235  = 4. Case Study =
... ... @@ -1241,17 +1241,23 @@
1241 1241  
1242 1242  == 5.1 Access AT Command ==
1243 1243  
1393 +(((
1244 1244  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.
1395 +)))
1245 1245  
1246 1246  [[image:1654135840598-282.png]]
1247 1247  
1248 1248  
1400 +(((
1249 1249  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:
1402 +)))
1250 1250  
1251 1251  [[image:1654136105500-922.png]]
1252 1252  
1253 1253  
1407 +(((
1254 1254  More detail AT Command manual can be found at [[AT Command Manual>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]]
1409 +)))
1255 1255  
1256 1256  
1257 1257  == 5.2 Common AT Command Sequence ==
... ... @@ -1276,7 +1276,9 @@
1276 1276  )))
1277 1277  
1278 1278  
1434 +(((
1279 1279  If device already joined network:
1436 +)))
1280 1280  
1281 1281  (% class="box infomessage" %)
1282 1282  (((
... ... @@ -1315,10 +1315,12 @@
1315 1315  
1316 1316  (% style="color:red" %)**Note:**
1317 1317  
1475 +(((
1318 1318  (% style="color:red" %)1. Make sure the device is set to ABP mode in the IoT Server.
1319 1319  2. Make sure the LG01/02 gateway RX frequency is exactly the same as AT+CHS setting.
1320 1320  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.
1321 1321  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
1480 +)))
1322 1322  
1323 1323  [[image:1654136435598-589.png]]
1324 1324  
image-20220606105412-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +13.9 KB
Content