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

From version 40.12
edited by Xiaoling
on 2022/06/06 09:18
Change comment: There is no comment for this version
To version 41.37
edited by Xiaoling
on 2022/06/06 11:20
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -124,29 +124,47 @@
124 124  (((
125 125  
126 126  
127 +(((
127 127  v1.4
128 128  )))
130 +)))
129 129  
130 130  (((
133 +(((
131 131  ~1. Change Power IC to TPS22916
132 132  )))
136 +)))
133 133  
138 +(((
139 +
140 +)))
134 134  
135 135  (((
143 +(((
136 136  v1.3
137 137  )))
146 +)))
138 138  
139 139  (((
149 +(((
140 140  ~1. Change JP3 from KF350-8P to KF350-11P, Add one extra interface for I2C and one extra interface for one-wire
141 141  )))
152 +)))
142 142  
154 +(((
155 +
156 +)))
143 143  
144 144  (((
159 +(((
145 145  v1.2
146 146  )))
162 +)))
147 147  
148 148  (((
165 +(((
149 149  Release version ​​​​​
167 +)))
150 150  
151 151  
152 152  )))
... ... @@ -240,82 +240,132 @@
240 240  
241 241  === 3.3.1 onfigure UART settings for RS485 or TTL communication ===
242 242  
261 +(((
243 243  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
263 +)))
244 244  
265 +(((
245 245  **~1. RS485-MODBUS mode:**
267 +)))
246 246  
269 +(((
247 247  AT+MOD=1 ~/~/ Support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins.
271 +)))
248 248  
273 +(((
249 249  **2. TTL mode:**
275 +)))
250 250  
277 +(((
251 251  AT+MOD=2 ~/~/ Support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins.
279 +)))
252 252  
281 +(((
253 253  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 +)))
254 254  
255 -(% border="1" style="background-color:#ffffcc; color:green; width:795px" %)
256 -|(((
285 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
286 +|=(% style="width: 120px;" %)(((
287 +(((
257 257  **AT Commands**
258 -)))|(% style="width:285px" %)(((
289 +)))
290 +)))|=(% style="width: 190px;" %)(((
291 +(((
259 259  **Description**
260 -)))|(% style="width:347px" %)(((
293 +)))
294 +)))|=(% style="width: 190px;" %)(((
295 +(((
261 261  **Example**
262 262  )))
263 -|(((
298 +)))
299 +|(% style="width:120px" %)(((
300 +(((
264 264  AT+BAUDR
265 -)))|(% style="width:285px" %)(((
302 +)))
303 +)))|(% style="width:190px" %)(((
304 +(((
266 266  Set the baud rate (for RS485 connection). Default Value is: 9600.
267 -)))|(% style="width:347px" %)(((
306 +)))
307 +)))|(% style="width:190px" %)(((
268 268  (((
309 +(((
269 269  AT+BAUDR=9600
270 270  )))
312 +)))
271 271  
272 272  (((
315 +(((
273 273  Options: (1200,2400,4800,14400,19200,115200)
274 274  )))
275 275  )))
276 -|(((
319 +)))
320 +|(% style="width:120px" %)(((
321 +(((
277 277  AT+PARITY
278 -)))|(% style="width:285px" %)(((
323 +)))
324 +)))|(% style="width:190px" %)(((
279 279  (((
326 +(((
280 280  Set UART parity (for RS485 connection)
281 281  )))
329 +)))
282 282  
283 283  (((
332 +(((
284 284  Default Value is: no parity.
285 285  )))
286 -)))|(% style="width:347px" %)(((
335 +)))
336 +)))|(% style="width:190px" %)(((
287 287  (((
338 +(((
288 288  AT+PARITY=0
289 289  )))
341 +)))
290 290  
291 291  (((
344 +(((
292 292  Option: 0: no parity, 1: odd parity, 2: even parity
293 293  )))
294 294  )))
295 -|(((
348 +)))
349 +|(% style="width:120px" %)(((
350 +(((
296 296  AT+STOPBIT
297 -)))|(% style="width:285px" %)(((
352 +)))
353 +)))|(% style="width:190px" %)(((
298 298  (((
355 +(((
299 299  Set serial stopbit (for RS485 connection)
300 300  )))
358 +)))
301 301  
302 302  (((
361 +(((
303 303  Default Value is: 1bit.
304 304  )))
305 -)))|(% style="width:347px" %)(((
364 +)))
365 +)))|(% style="width:190px" %)(((
306 306  (((
367 +(((
307 307  AT+STOPBIT=0 for 1bit
308 308  )))
370 +)))
309 309  
310 310  (((
373 +(((
311 311  AT+STOPBIT=1 for 1.5 bit
312 312  )))
376 +)))
313 313  
314 314  (((
379 +(((
315 315  AT+STOPBIT=2 for 2 bits
316 316  )))
317 317  )))
383 +)))
318 318  
385 +
386 +
319 319  === 3.3.2 Configure sensors ===
320 320  
321 321  (((
... ... @@ -326,19 +326,20 @@
326 326  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.
327 327  )))
328 328  
329 -(% border="1" style="background-color:#ffffcc; color:green; width:806px" %)
330 -|**AT Commands**|(% style="width:418px" %)**Description**|(% style="width:256px" %)**Example**
331 -|AT+CFGDEV|(% style="width:418px" %)(((
397 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
398 +|=(% style="width: 120px;" %)**AT Commands**|=(% style="width: 190px;" %)**Description**|=(% style="width: 190px;" %)**Example**
399 +|AT+CFGDEV|(% style="width:120px" %)(((
332 332  This command is used to configure the RS485/TTL devices; they won’t be used during sampling.
333 333  
334 334  AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,
335 335  
336 336  mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
337 -)))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
405 +)))|(% style="width:190px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
338 338  
339 339  Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]].
340 340  
341 341  
410 +
342 342  === 3.3.3 Configure read commands for each sampling ===
343 343  
344 344  (((
... ... @@ -405,117 +405,213 @@
405 405  After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**.
406 406  )))
407 407  
477 +(((
408 408  **Examples:**
479 +)))
409 409  
481 +(((
410 410  Below are examples for the how above AT Commands works.
483 +)))
411 411  
485 +(((
412 412  **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is:
487 +)))
413 413  
414 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:501px" %)
489 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %)
415 415  |(% style="width:498px" %)(((
491 +(((
416 416  **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m**
493 +)))
417 417  
495 +(((
418 418  **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent**
497 +)))
419 419  
499 +(((
420 420  **m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command**
421 421  )))
502 +)))
422 422  
504 +(((
423 423  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 +)))
424 424  
508 +(((
425 425  In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same.
510 +)))
426 426  
512 +(((
513 +
514 +)))
515 +
516 +(((
427 427  **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx.
518 +)))
428 428  
429 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:580px" %)
520 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %)
430 430  |(% style="width:577px" %)(((
522 +(((
431 431  **AT+SEARCHx=aa,xx xx xx xx xx**
524 +)))
432 432  
433 -* **aa: 1: prefix match mode; 2: prefix and suffix match mode**
434 -* **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**
435 435  )))
529 +* (((
530 +**xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix**
531 +)))
532 +)))
436 436  
534 +(((
437 437  **Examples:**
536 +)))
438 438  
538 +(((
439 439  1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
540 +)))
440 440  
542 +(((
441 441  If we set AT+SEARCH1=1,1E 56 34.      (max 5 bytes for prefix)
544 +)))
442 442  
546 +(((
443 443  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 +)))
444 444  
550 +(((
445 445  [[image:1653271044481-711.png]]
552 +)))
446 446  
554 +(((
447 447  2)For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
556 +)))
448 448  
558 +(((
449 449  If we set AT+SEARCH1=2, 1E 56 34+31 00 49
560 +)))
450 450  
562 +(((
451 451  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 +)))
452 452  
566 +(((
453 453  [[image:1653271276735-972.png]]
568 +)))
454 454  
570 +(((
455 455  **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes.
572 +)))
456 456  
457 -(% style="background-color:#4f81bd; color:white; width:729px" %)
574 +(% style="background-color:#4f81bd; color:white; width:510px" %)
458 458  |(% style="width:726px" %)(((
576 +(((
459 459  **AT+DATACUTx=a,b,c**
578 +)))
460 460  
461 -* **a: length for the return of AT+COMMAND**
462 -* **b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.**
463 -* **c: define the position for valid value.  **
580 +* (((
581 +**a: length for the return of AT+COMMAND**
464 464  )))
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 +)))
465 465  
591 +(((
466 466  **Examples:**
593 +)))
467 467  
468 -* Grab bytes:
595 +* (((
596 +Grab bytes:
597 +)))
469 469  
599 +(((
470 470  [[image:1653271581490-837.png||height="313" width="722"]]
601 +)))
471 471  
603 +(((
604 +
605 +)))
472 472  
473 -* Grab a section.
607 +* (((
608 +Grab a section.
609 +)))
474 474  
611 +(((
475 475  [[image:1653271648378-342.png||height="326" width="720"]]
613 +)))
476 476  
615 +(((
616 +
617 +)))
477 477  
478 -* Grab different sections.
619 +* (((
620 +Grab different sections.
621 +)))
479 479  
623 +(((
480 480  [[image:1653271657255-576.png||height="305" width="730"]]
625 +)))
481 481  
482 482  (((
628 +(((
483 483  (% style="color:red" %)**Note:**
484 484  )))
631 +)))
485 485  
486 486  (((
634 +(((
487 487  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.
488 488  )))
637 +)))
489 489  
490 490  (((
640 +(((
491 491  **Example:**
492 492  )))
643 +)))
493 493  
494 494  (((
646 +(((
495 495  (% style="color:red" %)AT+COMMAND1=11 01 1E D0,0
496 496  )))
649 +)))
497 497  
498 498  (((
652 +(((
499 499  (% style="color:red" %)AT+SEARCH1=1,1E 56 34
500 500  )))
655 +)))
501 501  
502 502  (((
658 +(((
503 503  (% style="color:red" %)AT+DATACUT1=0,2,1~~5
504 504  )))
661 +)))
505 505  
506 506  (((
664 +(((
507 507  (% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
508 508  )))
667 +)))
509 509  
510 510  (((
670 +(((
511 511  (% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49
512 512  )))
673 +)))
513 513  
514 514  (((
676 +(((
515 515  (% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36
516 516  )))
679 +)))
517 517  
681 +(((
518 518  [[image:1653271763403-806.png]]
683 +)))
519 519  
520 520  
521 521  === 3.3.4 Compose the uplink payload ===
... ... @@ -522,10 +522,14 @@
522 522  
523 523  (((
524 524  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.**
690 +
691 +
525 525  )))
526 526  
527 527  (((
528 528  (% style="color:#037691" %)**Examples: AT+DATAUP=0**
696 +
697 +
529 529  )))
530 530  
531 531  (((
... ... @@ -658,26 +658,8 @@
658 658  
659 659  == 3.4 Uplink Payload ==
660 660  
661 -(% border="1" style="background-color:#4f81bd; color:white; width:850px" %)
662 -|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands**
663 -|Value|(% style="width:130px" %)(((
664 -(((
665 -Battery(mV)
666 -)))
830 +[[image:image-20220606105412-1.png]]
667 667  
668 -(((
669 -&
670 -)))
671 -
672 -(((
673 -Interrupt _Flag
674 -)))
675 -)))|(% style="width:93px" %)(((
676 -PAYLOAD_VER
677 -
678 -
679 -)))|(% 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.
680 -
681 681  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
682 682  
683 683  (((
... ... @@ -721,7 +721,7 @@
721 721  )))
722 722  
723 723  (((
724 -}
875 +{{{}}}}
725 725  
726 726  
727 727  )))
... ... @@ -735,13 +735,21 @@
735 735  
736 736  == 3.5 Configure RS485-BL via AT or Downlink ==
737 737  
889 +(((
738 738  User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands
891 +)))
739 739  
893 +(((
740 740  There are two kinds of Commands:
895 +)))
741 741  
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: [[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 +)))
743 743  
744 -* (% 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 +)))
745 745  
746 746  
747 747  
... ... @@ -753,6 +753,7 @@
753 753  === 3.5.2 Sensor related commands: ===
754 754  
755 755  
915 +
756 756  ==== **Choose Device Type (RS485 or TTL)** ====
757 757  
758 758  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
... ... @@ -776,57 +776,109 @@
776 776  
777 777  
778 778  
939 +
779 779  ==== **RS485 Debug Command (AT+CFGDEV)** ====
780 780  
942 +(((
781 781  This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling.
944 +)))
782 782  
783 -* **AT Command**
946 +* (((
947 +**AT Command**
948 +)))
784 784  
785 785  (% class="box infomessage" %)
786 786  (((
952 +(((
787 787  **AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m**
788 788  )))
955 +)))
789 789  
957 +(((
790 790  m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command.
959 +)))
791 791  
961 +(((
962 +
963 +)))
792 792  
793 -* **Downlink Payload**
965 +* (((
966 +**Downlink Payload**
967 +)))
794 794  
969 +(((
795 795  Format: A8 MM NN XX XX XX XX YY
971 +)))
796 796  
973 +(((
797 797  Where:
975 +)))
798 798  
799 -* MM: 1: add CRC-16/MODBUS ; 0: no CRC
800 -* NN: The length of RS485 command
801 -* XX XX XX XX: RS485 command total NN bytes
802 -* 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
977 +* (((
978 +MM: 1: add CRC-16/MODBUS ; 0: no CRC
979 +)))
980 +* (((
981 +NN: The length of RS485 command
982 +)))
983 +* (((
984 +XX XX XX XX: RS485 command total NN bytes
985 +)))
986 +* (((
987 +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
988 +)))
803 803  
990 +(((
804 804  **Example 1:**
992 +)))
805 805  
994 +(((
806 806  To connect a Modbus Alarm with below commands.
996 +)))
807 807  
808 -* 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 +* (((
999 +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.
1000 +)))
809 809  
810 -* 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 +* (((
1003 +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.
1004 +)))
811 811  
1006 +(((
812 812  So if user want to use downlink command to control to RS485 Alarm, he can use:
1008 +)))
813 813  
1010 +(((
814 814  (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm
1012 +)))
815 815  
1014 +(((
816 816  (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm
1016 +)))
817 817  
1018 +(((
818 818  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.
1020 +)))
819 819  
1022 +(((
1023 +
1024 +)))
820 820  
1026 +(((
821 821  **Example 2:**
1028 +)))
822 822  
1030 +(((
823 823  Check TTL Sensor return:
1032 +)))
824 824  
1034 +(((
825 825  [[image:1654132684752-193.png]]
1036 +)))
826 826  
827 827  
828 828  
829 829  
1041 +
830 830  ==== **Set Payload version** ====
831 831  
832 832  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.
... ... @@ -847,87 +847,171 @@
847 847  
848 848  
849 849  
1062 +
850 850  ==== **Set RS485 Sampling Commands** ====
851 851  
1065 +(((
852 852  AT+COMMANDx, AT+DATACUTx and AT+SEARCHx
1067 +)))
853 853  
1069 +(((
854 854  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"]].
1071 +)))
855 855  
1073 +(((
1074 +
1075 +)))
856 856  
857 -* **AT Command:**
1077 +* (((
1078 +**AT Command:**
1079 +)))
858 858  
859 859  (% class="box infomessage" %)
860 860  (((
1083 +(((
861 861  **AT+COMMANDx: Configure RS485 read command to sensor.**
862 862  )))
1086 +)))
863 863  
864 864  (% class="box infomessage" %)
865 865  (((
1090 +(((
866 866  **AT+DATACUTx: Configure how to handle return from RS485 devices.**
867 867  )))
1093 +)))
868 868  
869 869  (% class="box infomessage" %)
870 870  (((
1097 +(((
871 871  **AT+SEARCHx: Configure search command**
872 872  )))
1100 +)))
873 873  
1102 +(((
1103 +
1104 +)))
874 874  
875 -* **Downlink Payload:**
1106 +* (((
1107 +**Downlink Payload:**
1108 +)))
876 876  
1110 +(((
877 877  **0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
1112 +)))
878 878  
1114 +(((
879 879  (% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.
1116 +)))
880 880  
1118 +(((
881 881  Format: AF MM NN LL XX XX XX XX YY
1120 +)))
882 882  
1122 +(((
883 883  Where:
1124 +)))
884 884  
885 -* MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
886 -* NN:  0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
887 -* LL:  The length of AT+COMMAND or AT+DATACUT command
888 -* XX XX XX XX: AT+COMMAND or AT+DATACUT command
889 -* 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.
1126 +* (((
1127 +MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
1128 +)))
1129 +* (((
1130 +NN:  0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
1131 +)))
1132 +* (((
1133 +LL:  The length of AT+COMMAND or AT+DATACUT command
1134 +)))
1135 +* (((
1136 +XX XX XX XX: AT+COMMAND or AT+DATACUT command
1137 +)))
1138 +* (((
1139 +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.
1140 +)))
890 890  
1142 +(((
891 891  **Example:**
1144 +)))
892 892  
1146 +(((
893 893  (% 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
1148 +)))
894 894  
1150 +(((
895 895  (% 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**
1152 +)))
896 896  
1154 +(((
897 897  (% 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**
1156 +)))
898 898  
1158 +(((
1159 +
1160 +)))
899 899  
1162 +(((
900 900  **0xAB** downlink command can be used for set AT+SEARCHx
1164 +)))
901 901  
1166 +(((
902 902  **Example:** **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So
1168 +)))
903 903  
904 -* AB aa 01 03 xx xx xx  same as AT+SEARCHaa=1,xx xx xx
905 -* 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
1170 +* (((
1171 +AB aa 01 03 xx xx xx  same as AT+SEARCHaa=1,xx xx xx
1172 +)))
1173 +* (((
1174 +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
1175 +)))
906 906  
1177 +(((
907 907  **AB aa 02 03 xx xx xx 02 yy yy**  same as **AT+SEARCHaa=2,xx xx xx+yy yy**
1179 +)))
908 908  
909 909  
910 910  
1183 +
911 911  ==== **Fast command to handle MODBUS device** ====
912 912  
1186 +(((
913 913  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]].
1188 +)))
914 914  
1190 +(((
915 915  This command is valid since v1.3 firmware version
1192 +)))
916 916  
1194 +(((
1195 +
1196 +)))
917 917  
1198 +(((
918 918  **AT+MBFUN has only two value:**
1200 +)))
919 919  
920 -* **AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return
1202 +* (((
1203 +**AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return
1204 +)))
921 921  
1206 +(((
922 922  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.
1208 +)))
923 923  
924 -* **AT+MBFUN=0**: Disable Modbus fast reading.
1210 +* (((
1211 +**AT+MBFUN=0**: Disable Modbus fast reading.
1212 +)))
925 925  
1214 +(((
926 926  **Example:**
1216 +)))
927 927  
928 -* AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0).
929 -* 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.
930 -* 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.
1218 +* (((
1219 +AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0).
1220 +)))
1221 +* (((
1222 +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.
1223 +)))
1224 +* (((
1225 +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.
1226 +)))
931 931  
932 932  [[image:1654133913295-597.png]]
933 933  
... ... @@ -935,43 +935,77 @@
935 935  [[image:1654133954153-643.png]]
936 936  
937 937  
938 -* **Downlink Commands:**
1234 +* (((
1235 +**Downlink Commands:**
1236 +)))
939 939  
1238 +(((
940 940  **A9 aa** ~-~-> Same as AT+MBFUN=aa
1240 +)))
941 941  
942 942  
943 943  
1244 +
944 944  ==== **RS485 command timeout** ====
945 945  
1247 +(((
946 946  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.
1249 +)))
947 947  
1251 +(((
948 948  Default value: 0, range:  0 ~~ 5 seconds
1253 +)))
949 949  
1255 +(((
1256 +
1257 +)))
950 950  
951 -* **AT Command:**
1259 +* (((
1260 +**AT Command:**
1261 +)))
952 952  
953 953  (% class="box infomessage" %)
954 954  (((
1265 +(((
955 955  **AT+CMDDLaa=hex(bb cc)**
956 956  )))
1268 +)))
957 957  
1270 +(((
958 958  **Example:**
1272 +)))
959 959  
1274 +(((
960 960  **AT+CMDDL1=1000** to send the open time to 1000ms
1276 +)))
961 961  
1278 +(((
1279 +
1280 +)))
962 962  
963 -* **Downlink Payload:**
1282 +* (((
1283 +**Downlink Payload:**
1284 +)))
964 964  
1286 +(((
965 965  0x AA aa bb cc
1288 +)))
966 966  
1290 +(((
967 967  Same as: AT+CMDDLaa=hex(bb cc)
1292 +)))
968 968  
1294 +(((
969 969   **Example:**
1296 +)))
970 970  
1298 +(((
971 971   **0xAA 01 03 E8**  ~-~-> Same as **AT+CMDDL1=1000 ms**
1300 +)))
972 972  
973 973  
974 974  
1304 +
975 975  ==== **Uplink payload mode** ====
976 976  
977 977  Define to use one uplink or multiple uplinks for the sampling.
... ... @@ -999,6 +999,7 @@
999 999  
1000 1000  
1001 1001  
1332 +
1002 1002  ==== **Manually trigger an Uplink** ====
1003 1003  
1004 1004  Ask device to send an uplink immediately.
... ... @@ -1009,6 +1009,7 @@
1009 1009  
1010 1010  
1011 1011  
1343 +
1012 1012  ==== **Clear RS485 Command** ====
1013 1013  
1014 1014  The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them.
... ... @@ -1016,7 +1016,9 @@
1016 1016  
1017 1017  * **AT Command:**
1018 1018  
1351 +(((
1019 1019  (% 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
1353 +)))
1020 1020  
1021 1021  Example screen shot after clear all RS485 commands. 
1022 1022  
... ... @@ -1032,6 +1032,7 @@
1032 1032  
1033 1033  
1034 1034  
1369 +
1035 1035  ==== **Set Serial Communication Parameters** ====
1036 1036  
1037 1037  Set the Rs485 serial communication parameters:
... ... @@ -1075,6 +1075,7 @@
1075 1075  
1076 1076  
1077 1077  
1413 +
1078 1078  ==== **Control output power duration** ====
1079 1079  
1080 1080  User can set the output power duration before each sampling.
... ... @@ -1095,9 +1095,10 @@
1095 1095  **07 02 aa bb**  Same as AT+3V3T=(aa bb)
1096 1096  
1097 1097  
1434 +
1098 1098  == 3.6 Buttons ==
1099 1099  
1100 -(% border="1" style="background-color:#ffffcc; color:green; width:233px" %)
1437 +(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:233px" %)
1101 1101  |=(% style="width: 89px;" %)**Button**|=(% style="width: 141px;" %)**Feature**
1102 1102  |(% style="width:89px" %)**RST**|(% style="width:141px" %)Reboot RS485-BL
1103 1103  
... ... @@ -1105,38 +1105,75 @@
1105 1105  
1106 1106  == 3.7 +3V3 Output ==
1107 1107  
1445 +(((
1108 1108  RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor.
1447 +)))
1109 1109  
1449 +(((
1110 1110  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. 
1451 +)))
1111 1111  
1453 +(((
1112 1112  The +3V3 output time can be controlled by AT Command.
1455 +)))
1113 1113  
1457 +(((
1458 +
1459 +)))
1114 1114  
1461 +(((
1115 1115  (% style="color:#037691" %)**AT+3V3T=1000**
1463 +)))
1116 1116  
1465 +(((
1466 +
1467 +)))
1117 1117  
1469 +(((
1118 1118  Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors.
1471 +)))
1119 1119  
1473 +(((
1120 1120  By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time
1475 +)))
1121 1121  
1122 1122  
1123 1123  == 3.8 +5V Output ==
1124 1124  
1480 +(((
1125 1125  RS485-BL has a Controllable +5V output, user can use this output to power external sensor.
1482 +)))
1126 1126  
1484 +(((
1127 1127  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. 
1486 +)))
1128 1128  
1488 +(((
1129 1129  The 5V output time can be controlled by AT Command.
1490 +)))
1130 1130  
1492 +(((
1493 +
1494 +)))
1131 1131  
1496 +(((
1132 1132  (% style="color:#037691" %)**AT+5VT=1000**
1498 +)))
1133 1133  
1500 +(((
1501 +
1502 +)))
1134 1134  
1504 +(((
1135 1135  Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors.
1506 +)))
1136 1136  
1508 +(((
1137 1137  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.
1510 +)))
1138 1138  
1139 1139  
1513 +
1140 1140  == 3.9 LEDs ==
1141 1141  
1142 1142  (% border="1" style="background-color:#ffffcc; color:green; width:332px" %)
... ... @@ -1160,9 +1160,13 @@
1160 1160  3.3v position: set to compatible with 3.3v I/O.,
1161 1161  )))
1162 1162  
1537 +(((
1163 1163  **+3.3V**: is always ON
1539 +)))
1164 1164  
1541 +(((
1165 1165  **+5V**: Only open before every sampling. The time is by default, it is AT+5VT=0.  Max open time. 5000 ms.
1543 +)))
1166 1166  
1167 1167  
1168 1168  = 4. Case Study =
... ... @@ -1174,17 +1174,23 @@
1174 1174  
1175 1175  == 5.1 Access AT Command ==
1176 1176  
1555 +(((
1177 1177  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.
1557 +)))
1178 1178  
1179 1179  [[image:1654135840598-282.png]]
1180 1180  
1181 1181  
1562 +(((
1182 1182  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:
1564 +)))
1183 1183  
1184 1184  [[image:1654136105500-922.png]]
1185 1185  
1186 1186  
1187 -More detail AT Command manual can be found at [[AT Command Manual>>||anchor="3.5ConfigureRS485-BLviaATorDownlink"]]
1569 +(((
1570 +More detail AT Command manual can be found at [[AT Command Manual>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]]
1571 +)))
1188 1188  
1189 1189  
1190 1190  == 5.2 Common AT Command Sequence ==
... ... @@ -1209,7 +1209,9 @@
1209 1209  )))
1210 1210  
1211 1211  
1596 +(((
1212 1212  If device already joined network:
1598 +)))
1213 1213  
1214 1214  (% class="box infomessage" %)
1215 1215  (((
... ... @@ -1248,10 +1248,12 @@
1248 1248  
1249 1249  (% style="color:red" %)**Note:**
1250 1250  
1637 +(((
1251 1251  (% style="color:red" %)1. Make sure the device is set to ABP mode in the IoT Server.
1252 1252  2. Make sure the LG01/02 gateway RX frequency is exactly the same as AT+CHS setting.
1253 1253  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.
1254 1254  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
1642 +)))
1255 1255  
1256 1256  [[image:1654136435598-589.png]]
1257 1257  
... ... @@ -1260,13 +1260,23 @@
1260 1260  
1261 1261  == 6.1 How to upgrade the image? ==
1262 1262  
1651 +(((
1263 1263  The RS485-BL LoRaWAN Controller is shipped with a 3.5mm cable, the cable is used to upload image to RS485-BL to:
1653 +)))
1264 1264  
1265 -* Support new features
1266 -* For bug fix
1267 -* Change LoRaWAN bands.
1655 +* (((
1656 +Support new features
1657 +)))
1658 +* (((
1659 +For bug fix
1660 +)))
1661 +* (((
1662 +Change LoRaWAN bands.
1663 +)))
1268 1268  
1665 +(((
1269 1269  Below shows the hardware connection for how to upload an image to RS485-BL:
1667 +)))
1270 1270  
1271 1271  [[image:1654136646995-976.png]]
1272 1272  
... ... @@ -1288,13 +1288,17 @@
1288 1288  
1289 1289  == 6.2 How to change the LoRa Frequency Bands/Region? ==
1290 1290  
1689 +(((
1291 1291  User can follow the introduction for [[how to upgrade image>>||anchor="H6.1Howtoupgradetheimage3F"]]. When download the images, choose the required image file for download.
1691 +)))
1292 1292  
1293 1293  
1294 1294  
1295 1295  == 6.3 How many RS485-Slave can RS485-BL connects? ==
1296 1296  
1697 +(((
1297 1297  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>>||anchor="H3.3.3Configurereadcommandsforeachsampling"]].
1699 +)))
1298 1298  
1299 1299  
1300 1300  
... ... @@ -1329,6 +1329,7 @@
1329 1329  * (% style="color:blue" %)**KZ865**(%%): frequency bands KZ865
1330 1330  
1331 1331  
1734 +
1332 1332  = 9. Packing Info =
1333 1333  
1334 1334  (((
... ... @@ -1366,5 +1366,9 @@
1366 1366  
1367 1367  = 10. Support =
1368 1368  
1369 -* Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
1370 -* Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:file:///D:/市场资料/说明书/LoRa/LT系列/support@dragino.com]]
1772 +* (((
1773 +Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
1774 +)))
1775 +* (((
1776 +Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:file:///D:/市场资料/说明书/LoRa/LT系列/support@dragino.com]]
1777 +)))
image-20220606105412-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +13.9 KB
Content