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

From version 41.2
edited by Xiaoling
on 2022/06/06 10:54
Change comment: There is no comment for this version
To version 40.33
edited by Xiaoling
on 2022/06/06 09:51
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -94,6 +94,7 @@
94 94  * 127 dB Dynamic Range RSSI.
95 95  * Automatic RF Sense and CAD with ultra-fast AFC. ​​​
96 96  
97 +
97 97  == 1.3 Features ==
98 98  
99 99  * LoRaWAN Class A & Class C protocol (default Class A)
... ... @@ -105,6 +105,7 @@
105 105  * Support Modbus protocol
106 106  * Support Interrupt uplink
107 107  
109 +
108 108  == 1.4 Applications ==
109 109  
110 110  * Smart Buildings & Home Automation
... ... @@ -114,6 +114,7 @@
114 114  * Smart Cities
115 115  * Smart Factory
116 116  
119 +
117 117  == 1.5 Firmware Change log ==
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);"]]
... ... @@ -124,47 +124,29 @@
124 124  (((
125 125  
126 126  
127 -(((
128 128  v1.4
129 129  )))
130 -)))
131 131  
132 132  (((
133 -(((
134 134  ~1. Change Power IC to TPS22916
135 135  )))
136 -)))
137 137  
138 -(((
139 -
140 -)))
141 141  
142 142  (((
143 -(((
144 144  v1.3
145 145  )))
146 -)))
147 147  
148 148  (((
149 -(((
150 150  ~1. Change JP3 from KF350-8P to KF350-11P, Add one extra interface for I2C and one extra interface for one-wire
151 151  )))
152 -)))
153 153  
154 -(((
155 -
156 -)))
157 157  
158 158  (((
159 -(((
160 160  v1.2
161 161  )))
162 -)))
163 163  
164 164  (((
165 -(((
166 166  Release version ​​​​​
167 -)))
168 168  
169 169  
170 170  )))
... ... @@ -258,132 +258,83 @@
258 258  
259 259  === 3.3.1 onfigure UART settings for RS485 or TTL communication ===
260 260  
261 -(((
262 262  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
263 -)))
264 264  
265 -(((
266 266  **~1. RS485-MODBUS mode:**
267 -)))
268 268  
269 -(((
270 270  AT+MOD=1 ~/~/ Support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins.
271 -)))
272 272  
273 -(((
274 274  **2. TTL mode:**
275 -)))
276 276  
277 -(((
278 278  AT+MOD=2 ~/~/ Support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins.
279 -)))
280 280  
281 -(((
282 282  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 -)))
284 284  
285 -(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
286 -|=(% style="width: 120px;" %)(((
287 -(((
258 +(% border="1" style="background-color:#ffffcc; color:green; width:795px" %)
259 +|(((
288 288  **AT Commands**
289 -)))
290 -)))|=(% style="width: 190px;" %)(((
291 -(((
261 +)))|(% style="width:285px" %)(((
292 292  **Description**
293 -)))
294 -)))|=(% style="width: 190px;" %)(((
295 -(((
263 +)))|(% style="width:347px" %)(((
296 296  **Example**
297 297  )))
298 -)))
299 -|(% style="width:120px" %)(((
300 -(((
266 +|(((
301 301  AT+BAUDR
302 -)))
303 -)))|(% style="width:190px" %)(((
304 -(((
268 +)))|(% style="width:285px" %)(((
305 305  Set the baud rate (for RS485 connection). Default Value is: 9600.
306 -)))
307 -)))|(% style="width:190px" %)(((
270 +)))|(% style="width:347px" %)(((
308 308  (((
309 -(((
310 310  AT+BAUDR=9600
311 311  )))
312 -)))
313 313  
314 314  (((
315 -(((
316 316  Options: (1200,2400,4800,14400,19200,115200)
317 317  )))
318 318  )))
319 -)))
320 -|(% style="width:120px" %)(((
321 -(((
279 +|(((
322 322  AT+PARITY
323 -)))
324 -)))|(% style="width:190px" %)(((
281 +)))|(% style="width:285px" %)(((
325 325  (((
326 -(((
327 327  Set UART parity (for RS485 connection)
328 328  )))
329 -)))
330 330  
331 331  (((
332 -(((
333 333  Default Value is: no parity.
334 334  )))
335 -)))
336 -)))|(% style="width:190px" %)(((
289 +)))|(% style="width:347px" %)(((
337 337  (((
338 -(((
339 339  AT+PARITY=0
340 340  )))
341 -)))
342 342  
343 343  (((
344 -(((
345 345  Option: 0: no parity, 1: odd parity, 2: even parity
346 346  )))
347 347  )))
348 -)))
349 -|(% style="width:120px" %)(((
350 -(((
298 +|(((
351 351  AT+STOPBIT
352 -)))
353 -)))|(% style="width:190px" %)(((
300 +)))|(% style="width:285px" %)(((
354 354  (((
355 -(((
356 356  Set serial stopbit (for RS485 connection)
357 357  )))
358 -)))
359 359  
360 360  (((
361 -(((
362 362  Default Value is: 1bit.
363 363  )))
364 -)))
365 -)))|(% style="width:190px" %)(((
308 +)))|(% style="width:347px" %)(((
366 366  (((
367 -(((
368 368  AT+STOPBIT=0 for 1bit
369 369  )))
370 -)))
371 371  
372 372  (((
373 -(((
374 374  AT+STOPBIT=1 for 1.5 bit
375 375  )))
376 -)))
377 377  
378 378  (((
379 -(((
380 380  AT+STOPBIT=2 for 2 bits
381 381  )))
382 382  )))
383 -)))
384 384  
385 385  
386 -
387 387  === 3.3.2 Configure sensors ===
388 388  
389 389  (((
... ... @@ -394,20 +394,19 @@
394 394  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.
395 395  )))
396 396  
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" %)(((
333 +(% border="1" style="background-color:#ffffcc; color:green; width:806px" %)
334 +|**AT Commands**|(% style="width:418px" %)**Description**|(% style="width:256px" %)**Example**
335 +|AT+CFGDEV|(% style="width:418px" %)(((
400 400  This command is used to configure the RS485/TTL devices; they won’t be used during sampling.
401 401  
402 402  AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,
403 403  
404 404  mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
405 -)))|(% style="width:190px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
341 +)))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
406 406  
407 407  Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]].
408 408  
409 409  
410 -
411 411  === 3.3.3 Configure read commands for each sampling ===
412 412  
413 413  (((
... ... @@ -474,209 +474,117 @@
474 474  After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**.
475 475  )))
476 476  
477 -(((
478 478  **Examples:**
479 -)))
480 480  
481 -(((
482 482  Below are examples for the how above AT Commands works.
483 -)))
484 484  
485 -(((
486 486  **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is:
487 -)))
488 488  
489 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %)
418 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:501px" %)
490 490  |(% style="width:498px" %)(((
491 -(((
492 492  **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m**
493 -)))
494 494  
495 -(((
496 496  **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent**
497 -)))
498 498  
499 -(((
500 500  **m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command**
501 501  )))
502 -)))
503 503  
504 -(((
505 505  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 -)))
507 507  
508 -(((
509 509  In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same.
510 -)))
511 511  
512 -(((
513 513  **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx.
514 -)))
515 515  
516 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %)
433 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:580px" %)
517 517  |(% style="width:577px" %)(((
518 -(((
519 519  **AT+SEARCHx=aa,xx xx xx xx xx**
520 -)))
521 521  
522 -* (((
523 -**aa: 1: prefix match mode; 2: prefix and suffix match mode**
437 +* **aa: 1: prefix match mode; 2: prefix and suffix match mode**
438 +* **xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix**
524 524  )))
525 -* (((
526 -**xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix**
527 -)))
528 -)))
529 529  
530 -(((
531 531  **Examples:**
532 -)))
533 533  
534 -(((
535 535  1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
536 -)))
537 537  
538 -(((
539 539  If we set AT+SEARCH1=1,1E 56 34.      (max 5 bytes for prefix)
540 -)))
541 541  
542 -(((
543 543  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**
544 -)))
545 545  
546 -(((
547 547  [[image:1653271044481-711.png]]
548 -)))
549 549  
550 -(((
551 551  2)For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
552 -)))
553 553  
554 -(((
555 555  If we set AT+SEARCH1=2, 1E 56 34+31 00 49
556 -)))
557 557  
558 -(((
559 559  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**
560 -)))
561 561  
562 -(((
563 563  [[image:1653271276735-972.png]]
564 -)))
565 565  
566 -(((
567 567  **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes.
568 -)))
569 569  
570 -(% style="background-color:#4f81bd; color:white; width:510px" %)
461 +(% style="background-color:#4f81bd; color:white; width:729px" %)
571 571  |(% style="width:726px" %)(((
572 -(((
573 573  **AT+DATACUTx=a,b,c**
574 -)))
575 575  
576 -* (((
577 -**a: length for the return of AT+COMMAND**
465 +* **a: length for the return of AT+COMMAND**
466 +* **b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.**
467 +* **c: define the position for valid value.  **
578 578  )))
579 -* (((
580 -**b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.**
581 -)))
582 -* (((
583 -**c: define the position for valid value.  **
584 -)))
585 -)))
586 586  
587 -(((
588 588  **Examples:**
589 -)))
590 590  
591 -* (((
592 -Grab bytes:
593 -)))
472 +* Grab bytes:
594 594  
595 -(((
596 596  [[image:1653271581490-837.png||height="313" width="722"]]
597 -)))
598 598  
599 -(((
600 -
601 -)))
602 602  
603 -* (((
604 -Grab a section.
605 -)))
477 +* Grab a section.
606 606  
607 -(((
608 608  [[image:1653271648378-342.png||height="326" width="720"]]
609 -)))
610 610  
611 -(((
612 -
613 -)))
614 614  
615 -* (((
616 -Grab different sections.
617 -)))
482 +* Grab different sections.
618 618  
619 -(((
620 620  [[image:1653271657255-576.png||height="305" width="730"]]
621 -)))
622 622  
623 623  (((
624 -(((
625 625  (% style="color:red" %)**Note:**
626 626  )))
627 -)))
628 628  
629 629  (((
630 -(((
631 631  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.
632 632  )))
633 -)))
634 634  
635 635  (((
636 -(((
637 637  **Example:**
638 638  )))
639 -)))
640 640  
641 641  (((
642 -(((
643 643  (% style="color:red" %)AT+COMMAND1=11 01 1E D0,0
644 644  )))
645 -)))
646 646  
647 647  (((
648 -(((
649 649  (% style="color:red" %)AT+SEARCH1=1,1E 56 34
650 650  )))
651 -)))
652 652  
653 653  (((
654 -(((
655 655  (% style="color:red" %)AT+DATACUT1=0,2,1~~5
656 656  )))
657 -)))
658 658  
659 659  (((
660 -(((
661 661  (% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
662 662  )))
663 -)))
664 664  
665 665  (((
666 -(((
667 667  (% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49
668 668  )))
669 -)))
670 670  
671 671  (((
672 -(((
673 673  (% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36
674 674  )))
675 -)))
676 676  
677 -(((
678 678  [[image:1653271763403-806.png]]
679 -)))
680 680  
681 681  
682 682  === 3.3.4 Compose the uplink payload ===
... ... @@ -683,14 +683,10 @@
683 683  
684 684  (((
685 685  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.**
686 -
687 -
688 688  )))
689 689  
690 690  (((
691 691  (% style="color:#037691" %)**Examples: AT+DATAUP=0**
692 -
693 -
694 694  )))
695 695  
696 696  (((
... ... @@ -823,8 +823,26 @@
823 823  
824 824  == 3.4 Uplink Payload ==
825 825  
826 -[[image:image-20220606105412-1.png]]
665 +(% border="1" style="background-color:#4f81bd; color:white; width:850px" %)
666 +|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands**
667 +|Value|(% style="width:130px" %)(((
668 +(((
669 +Battery(mV)
670 +)))
827 827  
672 +(((
673 +&
674 +)))
675 +
676 +(((
677 +Interrupt _Flag
678 +)))
679 +)))|(% style="width:93px" %)(((
680 +PAYLOAD_VER
681 +
682 +
683 +)))|(% 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.
684 +
828 828  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
829 829  
830 830  (((
... ... @@ -890,6 +890,7 @@
890 890  
891 891  * (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL.  User can see these commands below:
892 892  
750 +
893 893  === 3.5.1 Common Commands: ===
894 894  
895 895  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]]
... ... @@ -1249,6 +1249,7 @@
1249 1249  |=(% style="width: 89px;" %)**Button**|=(% style="width: 141px;" %)**Feature**
1250 1250  |(% style="width:89px" %)**RST**|(% style="width:141px" %)Reboot RS485-BL
1251 1251  
1110 +
1252 1252  == 3.7 +3V3 Output ==
1253 1253  
1254 1254  RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor.
... ... @@ -1289,6 +1289,7 @@
1289 1289  |=**LEDs**|=(% style="width: 274px;" %)**Feature**
1290 1290  |**LED1**|(% style="width:274px" %)Blink when device transmit a packet.
1291 1291  
1151 +
1292 1292  == 3.10 Switch Jumper ==
1293 1293  
1294 1294  (% border="1" style="background-color:#ffffcc; color:green; width:515px" %)
... ... @@ -1476,6 +1476,8 @@
1476 1476  * (% style="color:blue" %)**RU864**(%%): frequency bands RU864
1477 1477  * (% style="color:blue" %)**KZ865**(%%): frequency bands KZ865
1478 1478  
1339 +
1340 +
1479 1479  = 9. Packing Info =
1480 1480  
1481 1481  (((
image-20220606105412-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -13.9 KB
Content