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

From version 27.1
edited by Xiaoling
on 2022/05/23 10:28
Change comment: Uploaded new attachment "1653272901032-107.png", version {1}
To version 35.3
edited by Xiaoling
on 2022/06/02 10:15
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -7,12 +7,15 @@
7 7  **RS485-BL – Waterproof RS485 to LoRaWAN Converter User Manual**
8 8  
9 9  
10 +
10 10  **Table of Contents:**
11 11  
13 +{{toc/}}
12 12  
13 13  
14 14  
15 15  
18 +
16 16  = 1.Introduction =
17 17  
18 18  == 1.1 What is RS485-BL RS485 to LoRaWAN Converter ==
... ... @@ -22,19 +22,19 @@
22 22  )))
23 23  
24 24  (((
25 -The Dragino RS485-BL is a **RS485 / UART to LoRaWAN Converter** for Internet of Things solutions. User can connect RS485 or UART sensor to RS485-BL converter, and configure RS485-BL to periodically read sensor data and upload via LoRaWAN network to IoT server.
28 +The Dragino RS485-BL is a (% style="color:blue" %)**RS485 / UART to LoRaWAN Converter**(%%) for Internet of Things solutions. User can connect RS485 or UART sensor to RS485-BL converter, and configure RS485-BL to periodically read sensor data and upload via LoRaWAN network to IoT server.
26 26  )))
27 27  
28 28  (((
29 -RS485-BL can interface to RS485 sensor, 3.3v/5v UART sensor or interrupt sensor. RS485-BL provides **a 3.3v output** and** a 5v output** to power external sensors. Both output voltages are controllable to minimize the total system power consumption.
32 +RS485-BL can interface to RS485 sensor, 3.3v/5v UART sensor or interrupt sensor. RS485-BL provides (% style="color:blue" %)**a 3.3v output**(%%) and** (% style="color:blue" %)a 5v output(%%)** to power external sensors. Both output voltages are controllable to minimize the total system power consumption.
30 30  )))
31 31  
32 32  (((
33 -RS485-BL is IP67 **waterproof** and powered by **8500mAh Li-SOCI2 battery**, it is designed for long term use for several years.
36 +RS485-BL is IP67 (% style="color:blue" %)**waterproof**(%%) and powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use for several years.
34 34  )))
35 35  
36 36  (((
37 -RS485-BL runs standard **LoRaWAN 1.0.3 in Class A**. It can reach long transfer range and easy to integrate with LoRaWAN compatible gateway and IoT server.
40 +RS485-BL runs standard (% style="color:blue" %)**LoRaWAN 1.0.3 in Class A**(%%). It can reach long transfer range and easy to integrate with LoRaWAN compatible gateway and IoT server.
38 38  )))
39 39  
40 40  (((
... ... @@ -51,8 +51,11 @@
51 51  
52 52  [[image:1652953304999-717.png||height="424" width="733"]]
53 53  
57 +
58 +
54 54  == 1.2 Specifications ==
55 55  
61 +
56 56  **Hardware System:**
57 57  
58 58  * STM32L072CZT6 MCU
... ... @@ -59,8 +59,6 @@
59 59  * SX1276/78 Wireless Chip 
60 60  * Power Consumption (exclude RS485 device):
61 61  ** Idle: 6uA@3.3v
62 -
63 -*
64 64  ** 20dB Transmit: 130mA@3.3v
65 65  
66 66  **Interface for Model:**
... ... @@ -114,9 +114,12 @@
114 114  
115 115  [[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);"]]
116 116  
121 +
117 117  == 1.6 Hardware Change log ==
118 118  
119 119  (((
125 +
126 +
120 120  v1.4
121 121  )))
122 122  
... ... @@ -140,6 +140,8 @@
140 140  
141 141  (((
142 142  Release version ​​​​​
150 +
151 +
143 143  )))
144 144  
145 145  = 2. Pin mapping and Power ON Device =
... ... @@ -153,6 +153,7 @@
153 153  
154 154  The Left TXD and RXD are TTL interface for external sensor. TTL level is controlled by 3.3/5v Jumper.
155 155  
165 +
156 156  = 3. Operation Mode =
157 157  
158 158  == 3.1 How it works? ==
... ... @@ -159,6 +159,8 @@
159 159  
160 160  (((
161 161  The RS485-BL is configured as LoRaWAN OTAA Class A mode by default. It has OTAA keys to join network. To connect a local LoRaWAN network, user just need to input the OTAA keys in the network server and power on the RS485-BL. It will auto join the network via OTAA.
172 +
173 +
162 162  )))
163 163  
164 164  == 3.2 Example to join LoRaWAN network ==
... ... @@ -194,8 +194,6 @@
194 194  )))
195 195  
196 196  
197 -
198 -
199 199  [[image:image-20220519174512-1.png]]
200 200  
201 201  [[image:image-20220519174512-2.png||height="328" width="731"]]
... ... @@ -219,10 +219,13 @@
219 219  
220 220  [[image:1652953568895-172.png||height="232" width="724"]]
221 221  
232 +
222 222  == 3.3 Configure Commands to read data ==
223 223  
224 224  (((
225 -There are plenty of RS485 and TTL level devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-BL supports flexible command set. User can use [[AT Commands or LoRaWAN Downlink>>path:#AT_COMMAND]] Command to configure how RS485-BL should read the sensor and how to handle the return from RS485 or TTL sensors.
236 +There are plenty of RS485 and TTL level devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-BL supports flexible command set. User can use [[AT Commands or LoRaWAN Downlink>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]] Command to configure how RS485-BL should read the sensor and how to handle the return from RS485 or TTL sensors.
237 +
238 +
226 226  )))
227 227  
228 228  === 3.3.1 onfigure UART settings for RS485 or TTL communication ===
... ... @@ -323,8 +323,9 @@
323 323  mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
324 324  )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
325 325  
326 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>path:#AT_CFGDEV]].
339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]].
327 327  
341 +
328 328  === 3.3.3 Configure read commands for each sampling ===
329 329  
330 330  (((
... ... @@ -422,7 +422,7 @@
422 422  
423 423  **Examples:**
424 424  
425 -1. For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
439 +1For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
426 426  
427 427  If we set AT+SEARCH1=1,1E 56 34.      (max 5 bytes for prefix)
428 428  
... ... @@ -430,7 +430,7 @@
430 430  
431 431  [[image:1653271044481-711.png]]
432 432  
433 -1. For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
447 +2)For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
434 434  
435 435  If we set AT+SEARCH1=2, 1E 56 34+31 00 49
436 436  
... ... @@ -449,16 +449,18 @@
449 449  * **c: define the position for valid value.  **
450 450  )))
451 451  
452 -Examples:
466 +**Examples:**
453 453  
454 454  * Grab bytes:
455 455  
456 456  [[image:1653271581490-837.png||height="313" width="722"]]
457 457  
472 +
458 458  * Grab a section.
459 459  
460 460  [[image:1653271648378-342.png||height="326" width="720"]]
461 461  
477 +
462 462  * Grab different sections.
463 463  
464 464  [[image:1653271657255-576.png||height="305" width="730"]]
... ... @@ -501,6 +501,7 @@
501 501  
502 502  [[image:1653271763403-806.png]]
503 503  
520 +
504 504  === 3.3.4 Compose the uplink payload ===
505 505  
506 506  (((
... ... @@ -508,7 +508,7 @@
508 508  )))
509 509  
510 510  (((
511 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=0**
528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0**
512 512  )))
513 513  
514 514  (((
... ... @@ -520,7 +520,7 @@
520 520  )))
521 521  
522 522  (((
523 -(% style="color:#4f81bd" %)Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx
540 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx**
524 524  )))
525 525  
526 526  (((
... ... @@ -529,8 +529,12 @@
529 529  
530 530  [[image:1653272787040-634.png||height="515" width="719"]]
531 531  
549 +
550 +
532 532  (((
533 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1**
552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1**
553 +
554 +
534 534  )))
535 535  
536 536  (((
... ... @@ -542,7 +542,7 @@
542 542  )))
543 543  
544 544  (((
545 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**
546 546  )))
547 547  
548 548  1. (((
... ... @@ -565,20 +565,20 @@
565 565  
566 566  So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA
567 567  
568 -DATA1=RETURN1 Valid Value = ~(% style="background-color:#4f81bd;color:white" %)(% style="display:none" %) (%%)20 20 0a 33 90 41
569 569  
570 -DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= ~(% style="background-color:#4f81bd;color:white" %)(% style="display:none" %) (%%)02 aa 05 81 0a 20
590 +DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41
571 571  
572 -DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =~(% style="background-color:#4f81bd;color:white" %)(% style="display:none" %) (%%) 20 20 20 2d 30
592 +DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20
573 573  
594 +DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30
574 574  
575 575  
576 576  Below are the uplink payloads:
577 577  
578 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png]]
599 +[[image:1653272901032-107.png]]
579 579  
580 580  
581 -Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:
602 +(% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:
582 582  
583 583   ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
584 584  
... ... @@ -590,139 +590,186 @@
590 590  
591 591  
592 592  
593 -1.
594 -11.
595 -111. Uplink on demand
614 +=== 3.3.5 Uplink on demand ===
596 596  
616 +(((
597 597  Except uplink periodically, RS485-BL is able to uplink on demand. The server sends downlink command to RS485-BL and RS485 will uplink data base on the command.
618 +)))
598 598  
620 +(((
599 599  Downlink control command:
622 +)))
600 600  
601 -[[0x08 command>>path:#downlink_08]]: Poll an uplink with current command set in RS485-BL.
624 +(((
625 +**0x08 command**: Poll an uplink with current command set in RS485-BL.
626 +)))
602 602  
603 -[[0xA8 command>>path:#downlink_A8]]: Send a command to RS485-BL and uplink the output from sensors.
628 +(((
629 +**0xA8 command**: Send a command to RS485-BL and uplink the output from sensors.
604 604  
631 +
632 +)))
605 605  
634 +=== 3.3.6 Uplink on Interrupt ===
606 606  
607 -1.
608 -11.
609 -111. Uplink on Interrupt
636 +Put the interrupt sensor between 3.3v_out and GPIO ext.
610 610  
611 -Put the interrupt sensor between 3.3v_out and GPIO ext.[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png]]
638 +[[image:1653273818896-432.png]]
612 612  
640 +
641 +(((
613 613  AT+INTMOD=0  Disable Interrupt
643 +)))
614 614  
645 +(((
615 615  AT+INTMOD=1  Interrupt trigger by rising or falling edge.
647 +)))
616 616  
649 +(((
617 617  AT+INTMOD=2  Interrupt trigger by falling edge. ( Default Value)
651 +)))
618 618  
653 +(((
619 619  AT+INTMOD=3  Interrupt trigger by rising edge.
620 620  
656 +
657 +)))
621 621  
622 -1.
623 -11. Uplink Payload
659 +== 3.4 Uplink Payload ==
624 624  
625 -|**Size(bytes)**|**2**|**1**|**Length depends on the return from the commands**
626 -|Value|(((
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 +(((
627 627  Battery(mV)
666 +)))
628 628  
668 +(((
629 629  &
670 +)))
630 630  
672 +(((
631 631  Interrupt _Flag
632 -)))|(((
674 +)))
675 +)))|(% style="width:93px" %)(((
633 633  PAYLOAD_VER
634 634  
635 635  
636 -)))|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.
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.
637 637  
638 638  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
639 639  
683 +(((
684 +{{{function Decoder(bytes, port) {}}}
685 +)))
640 640  
641 -function Decoder(bytes, port) {
687 +(((
688 +{{{//Payload Formats of RS485-BL Deceive}}}
689 +)))
642 642  
643 -~/~/Payload Formats of RS485-BL Deceive
691 +(((
692 +{{{return {}}}
693 +)))
644 644  
645 -return {
695 +(((
696 +{{{ //Battery,units:V}}}
697 +)))
646 646  
647 - ~/~/Battery,units:V
699 +(((
700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}}
701 +)))
648 648  
649 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,
703 +(((
704 +{{{ //GPIO_EXTI }}}
705 +)))
650 650  
651 - ~/~/GPIO_EXTI 
707 +(((
708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}}
709 +)))
652 652  
653 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",
711 +(((
712 +{{{ //payload of version}}}
713 +)))
654 654  
655 - ~/~/payload of version
715 +(((
716 +{{{ Pay_ver:bytes[2],}}}
717 +)))
656 656  
657 - Pay_ver:bytes[2],
719 +(((
720 +{{{ }; }}}
721 +)))
658 658  
659 - };
723 +(((
724 +}
660 660  
661 - }
726 +
727 +)))
662 662  
663 -
664 -
665 -
666 -
667 -
668 -
729 +(((
669 669  TTN V3 uplink screen shot.
731 +)))
670 670  
671 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]
733 +[[image:1653274001211-372.png||height="192" width="732"]]
672 672  
673 -1.
674 -11. Configure RS485-BL via AT or Downlink
675 675  
676 -User can configure RS485-BL via [[AT Commands >>path:#_​Using_the_AT]]or LoRaWAN Downlink Commands
736 +== 3.5 Configure RS485-BL via AT or Downlink ==
677 677  
738 +User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands
739 +
678 678  There are two kinds of Commands:
679 679  
680 -* **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: http:~/~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands
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: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
681 681  
682 -* **Sensor Related Commands**: These commands are special designed for RS485-BL.  User can see these commands below:
744 +* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL.  User can see these commands below:
683 683  
684 -1.
685 -11.
686 -111. Common Commands:
746 +=== 3.5.1 Common Commands: ===
687 687  
688 -They should be available for each of Dragino Sensors, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[http:~~/~~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands>>url:http://wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands]]
748 +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]]
689 689  
690 690  
691 -1.
692 -11.
693 -111. Sensor related commands:
751 +=== 3.5.2 Sensor related commands: ===
694 694  
695 -==== Choose Device Type (RS485 or TTL) ====
753 +==== ====
696 696  
755 +==== **Choose Device Type (RS485 or TTL)** ====
756 +
697 697  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
698 698  
699 -* AT Command
759 +* **AT Command**
700 700  
761 +(% class="box infomessage" %)
762 +(((
701 701  **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins.
764 +)))
702 702  
766 +(% class="box infomessage" %)
767 +(((
703 703  **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins.
769 +)))
704 704  
705 705  
706 -* Downlink Payload
772 +* **Downlink Payload**
707 707  
708 -**0A aa**     à same as AT+MOD=aa
774 +**0A aa**  ~-~->  same as AT+MOD=aa
709 709  
710 710  
711 711  
712 -==== [[RS485 Debug Command>>path:#downlink_A8]] (AT+CFGDEV) ====
778 +==== **RS485 Debug Command (AT+CFGDEV)** ====
713 713  
714 714  This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling.
715 715  
716 -* AT Command
782 +* **AT Command**
717 717  
718 -AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
784 +(% class="box infomessage" %)
785 +(((
786 +**AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m**
787 +)))
719 719  
720 720  m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command.
721 721  
722 722  
792 +* **Downlink Payload**
723 723  
724 -* Downlink Payload
725 -
726 726  Format: A8 MM NN XX XX XX XX YY
727 727  
728 728  Where:
... ... @@ -736,15 +736,15 @@
736 736  
737 737  To connect a Modbus Alarm with below commands.
738 738  
739 -* 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.
807 +* 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.
740 740  
741 -* 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.
809 +* 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.
742 742  
743 743  So if user want to use downlink command to control to RS485 Alarm, he can use:
744 744  
745 -**A8 01 06 0A 05 00 04 00 01 00**: to activate the RS485 Alarm
813 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm
746 746  
747 -**A8 01 06 0A 05 00 04 00 00 00**: to deactivate the RS485 Alarm
815 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm
748 748  
749 749  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.
750 750  
... ... @@ -753,48 +753,60 @@
753 753  
754 754  Check TTL Sensor return:
755 755  
756 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]
824 +[[image:1654132684752-193.png]]
757 757  
758 758  
759 759  
828 +==== **Set Payload version** ====
760 760  
761 -==== Set Payload version ====
762 -
763 763  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.
764 764  
765 -* AT Command:
832 +* **AT Command:**
766 766  
767 -AT+PAYVER: Set PAYVER field = 1
834 +(% class="box infomessage" %)
835 +(((
836 +**AT+PAYVER: Set PAYVER field = 1**
837 +)))
768 768  
769 769  
770 -* Downlink Payload:
840 +* **Downlink Payload:**
771 771  
772 -0xAE 01   à Set PAYVER field =  0x01
842 +**0xAE 01**  ~-~-> Set PAYVER field =  0x01
773 773  
774 -0xAE 0F   à Set PAYVER field =  0x0F
844 +**0xAE 0F**   ~-~-> Set PAYVER field =  0x0F
775 775  
776 776  
777 -==== Set RS485 Sampling Commands ====
778 778  
848 +==== **Set RS485 Sampling Commands** ====
849 +
779 779  AT+COMMANDx, AT+DATACUTx and AT+SEARCHx
780 780  
781 -These three commands are used to configure how the RS485-BL polling data from Modbus device. Detail of usage please see : [[polling RS485 device>>path:#polling_485]].
852 +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"]].
782 782  
783 783  
784 -* AT Command:
855 +* **AT Command:**
785 785  
786 -AT+COMMANDx: Configure RS485 read command to sensor.
857 +(% class="box infomessage" %)
858 +(((
859 +**AT+COMMANDx: Configure RS485 read command to sensor.**
860 +)))
787 787  
788 -AT+DATACUTx: Configure how to handle return from RS485 devices.
862 +(% class="box infomessage" %)
863 +(((
864 +**AT+DATACUTx: Configure how to handle return from RS485 devices.**
865 +)))
789 789  
790 -AT+SEARCHx: Configure search command
867 +(% class="box infomessage" %)
868 +(((
869 +**AT+SEARCHx: Configure search command**
870 +)))
791 791  
792 792  
793 -* Downlink Payload:
873 +* **Downlink Payload:**
794 794  
795 -0xAF downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
875 +**0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
796 796  
797 -Note: if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.
877 +(% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.
798 798  
799 799  Format: AF MM NN LL XX XX XX XX YY
800 800  
... ... @@ -801,23 +801,23 @@
801 801  Where:
802 802  
803 803  * MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
804 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
805 -* LL: The length of AT+COMMAND or AT+DATACUT command
884 +* NN:  0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
885 +* LL:  The length of AT+COMMAND or AT+DATACUT command
806 806  * XX XX XX XX: AT+COMMAND or AT+DATACUT command
807 -* 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.
887 +* 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.
808 808  
809 -Example:
889 +**Example:**
810 810  
811 -**AF 03 01 06 0A 05 00 04 00 01 00**: Same as AT+COMMAND3=0A 05 00 04 00 01,1
891 +(% 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
812 812  
813 -**AF 03 02 06 10 01 05 06 09 0A 00**: Same as AT+DATACUT3=**16**,**1**,**5+6+9+10**
893 +(% 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**
814 814  
815 -**AF 03 02 06 0B 02 05 07 08 0A 00**: Same as AT+DATACUT3=**11**,**2**,**5~~7+8~~10**
895 +(% 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**
816 816  
817 817  
818 -0xAB downlink command can be used for set AT+SEARCHx
898 +**0xAB** downlink command can be used for set AT+SEARCHx
819 819  
820 -Example: **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So
900 +**Example:** **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So
821 821  
822 822  * AB aa 01 03 xx xx xx  same as AT+SEARCHaa=1,xx xx xx
823 823  * 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
... ... @@ -825,145 +825,164 @@
825 825  **AB aa 02 03 xx xx xx 02 yy yy**  same as **AT+SEARCHaa=2,xx xx xx+yy yy**
826 826  
827 827  
828 -==== Fast command to handle MODBUS device ====
829 829  
909 +==== **Fast command to handle MODBUS device** ====
910 +
830 830  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]].
831 831  
832 832  This command is valid since v1.3 firmware version
833 833  
834 834  
835 -AT+MBFUN has only two value:
916 +**AT+MBFUN has only two value:**
836 836  
837 -* AT+MBFUN=1: Enable Modbus reading. And get response base on the MODBUS return
918 +* **AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return
838 838  
839 839  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.
840 840  
841 -* AT+MBFUN=0: Disable Modbus fast reading.
922 +* **AT+MBFUN=0**: Disable Modbus fast reading.
842 842  
843 -Example:
924 +**Example:**
844 844  
845 845  * AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0).
846 846  * 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.
847 847  * 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.
848 848  
849 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png]]
930 +[[image:1654133913295-597.png]]
850 850  
851 851  
852 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png]]
933 +[[image:1654133954153-643.png]]
853 853  
854 854  
855 -* Downlink Commands:
936 +* **Downlink Commands:**
856 856  
857 -A9 aa -à Same as AT+MBFUN=aa
938 +**A9 aa** ~-~-> Same as AT+MBFUN=aa
858 858  
859 859  
860 -==== RS485 command timeout ====
861 861  
942 +==== **RS485 command timeout** ====
943 +
862 862  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.
863 863  
864 864  Default value: 0, range:  0 ~~ 5 seconds
865 865  
866 866  
867 -* AT Command:
949 +* **AT Command:**
868 868  
869 -AT+CMDDLaa=hex(bb cc)
951 +(% class="box infomessage" %)
952 +(((
953 +**AT+CMDDLaa=hex(bb cc)**
954 +)))
870 870  
871 -Example:
956 +**Example:**
872 872  
873 873  **AT+CMDDL1=1000** to send the open time to 1000ms
874 874  
875 875  
876 -* Downlink Payload:
961 +* **Downlink Payload:**
877 877  
878 878  0x AA aa bb cc
879 879  
880 880  Same as: AT+CMDDLaa=hex(bb cc)
881 881  
882 - Example:
967 + **Example:**
883 883  
884 - 0xAA 01 03 E8  à Same as **AT+CMDDL1=1000 ms**
969 + **0xAA 01 03 E8**  ~-~-> Same as **AT+CMDDL1=1000 ms**
885 885  
886 886  
887 -==== [[Uplink>>path:#downlink_A8]] payload mode ====
888 888  
973 +==== **Uplink payload mode** ====
974 +
889 889  Define to use one uplink or multiple uplinks for the sampling.
890 890  
891 -The use of this command please see: [[Compose Uplink payload>>path:#DataUP]]
977 +The use of this command please see: [[Compose Uplink payload>>||anchor="H3.3.4Composetheuplinkpayload"]]
892 892  
893 -* AT Command:
979 +* **AT Command:**
894 894  
895 -AT+DATAUP=0
981 +(% class="box infomessage" %)
982 +(((
983 +**AT+DATAUP=0**
984 +)))
896 896  
897 -AT+DATAUP=1
986 +(% class="box infomessage" %)
987 +(((
988 +**AT+DATAUP=1**
989 +)))
898 898  
899 899  
900 -* Downlink Payload:
992 +* **Downlink Payload:**
901 901  
902 -0xAD 00   à Same as AT+DATAUP=0
994 +**0xAD 00**  **~-~->** Same as AT+DATAUP=0
903 903  
904 -0xAD 01   à Same as AT+DATAUP=1
996 +**0xAD 01**  **~-~->** Same as AT+DATAUP=1
905 905  
906 906  
907 -==== Manually trigger an Uplink ====
908 908  
1000 +==== **Manually trigger an Uplink** ====
1001 +
909 909  Ask device to send an uplink immediately.
910 910  
911 -* Downlink Payload:
1004 +* **Downlink Payload:**
912 912  
913 -0x08 FF, RS485-BL will immediately send an uplink.
1006 +**0x08 FF**, RS485-BL will immediately send an uplink.
914 914  
915 915  
916 -==== Clear RS485 Command ====
917 917  
1010 +==== **Clear RS485 Command** ====
1011 +
918 918  The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them.
919 919  
920 920  
921 -* AT Command:
1015 +* **AT Command:**
922 922  
923 -**AT+CMDEAR=mm,nn**   mm: start position of erase ,nn: stop position of erase
1017 +(% 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
924 924  
925 -Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10
926 -
927 927  Example screen shot after clear all RS485 commands. 
928 928  
929 929  
930 -
931 931  The uplink screen shot is:
932 932  
933 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]
1024 +[[image:1654134704555-320.png]]
934 934  
935 935  
936 -* Downlink Payload:
1027 +* **Downlink Payload:**
937 937  
938 -0x09 aa bb same as AT+CMDEAR=aa,bb
1029 +**0x09 aa bb** same as AT+CMDEAR=aa,bb
939 939  
940 940  
941 -==== Set Serial Communication Parameters ====
942 942  
1033 +==== **Set Serial Communication Parameters** ====
1034 +
943 943  Set the Rs485 serial communication parameters:
944 944  
945 -* AT Command:
1037 +* **AT Command:**
946 946  
947 947  Set Baud Rate:
948 948  
949 -AT+BAUDR=9600    ~/~/ Options: (1200,2400,4800,14400,19200,115200)
1041 +(% class="box infomessage" %)
1042 +(((
1043 +**AT+BAUDR=9600**    ~/~/ Options: (1200,2400,4800,14400,19200,115200)
1044 +)))
950 950  
1046 +Set UART Parity
951 951  
952 -Set UART parity
1048 +(% class="box infomessage" %)
1049 +(((
1050 +**AT+PARITY=0**    ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity
1051 +)))
953 953  
954 -AT+PARITY=0    ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity
955 -
956 -
957 957  Set STOPBIT
958 958  
959 -AT+STOPBIT=0    ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits
1055 +(% class="box infomessage" %)
1056 +(((
1057 +**AT+STOPBIT=0**    ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits
1058 +)))
960 960  
961 961  
962 -* Downlink Payload:
1061 +* **Downlink Payload:**
963 963  
964 -A7 01 aa bb: Same  AT+BAUDR=hex(aa bb)*100
1063 +**A7 01 aa bb**: Same  AT+BAUDR=hex(aa bb)*100
965 965  
966 -Example:
1065 +**Example:**
967 967  
968 968  * A7 01 00 60   same as AT+BAUDR=9600
969 969  * A7 01 04 80  same as AT+BAUDR=115200
... ... @@ -973,128 +973,119 @@
973 973  A7 03 aa: Same as  AT+STOPBIT=aa  (aa value: 00 , 01 or 02)
974 974  
975 975  
976 -==== Control output power duration ====
977 977  
1076 +==== **Control output power duration** ====
1077 +
978 978  User can set the output power duration before each sampling.
979 979  
980 -* AT Command:
1080 +* **AT Command:**
981 981  
982 -Example:
1082 +**Example:**
983 983  
984 -AT+3V3T=1000 ~/~/ 3V3 output power will open 1s before each sampling.
1084 +**AT+3V3T=1000**  ~/~/ 3V3 output power will open 1s before each sampling.
985 985  
986 -AT+5VT=1000 ~/~/ +5V output power will open 1s before each sampling.
1086 +**AT+5VT=1000**  ~/~/ +5V output power will open 1s before each sampling.
987 987  
988 988  
989 -* LoRaWAN Downlink Command:
1089 +* **LoRaWAN Downlink Command:**
990 990  
991 -07 01 aa bb  Same as AT+5VT=(aa bb)
1091 +**07 01 aa bb**  Same as AT+5VT=(aa bb)
992 992  
993 -07 02 aa bb  Same as AT+3V3T=(aa bb)
1093 +**07 02 aa bb**  Same as AT+3V3T=(aa bb)
994 994  
995 995  
1096 +== 3.6 Buttons ==
996 996  
1098 +(% border="1" style="background-color:#ffffcc; color:green; width:233px" %)
1099 +|=(% style="width: 89px;" %)**Button**|=(% style="width: 141px;" %)**Feature**
1100 +|(% style="width:89px" %)**RST**|(% style="width:141px" %)Reboot RS485-BL
997 997  
998 -1.
999 -11. Buttons
1102 +== 3.7 +3V3 Output ==
1000 1000  
1001 -|**Button**|**Feature**
1002 -|**RST**|Reboot RS485-BL
1003 -
1004 -1.
1005 -11. +3V3 Output
1006 -
1007 1007  RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor.
1008 1008  
1009 1009  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. 
1010 1010  
1011 -
1012 1012  The +3V3 output time can be controlled by AT Command.
1013 1013  
1014 -**AT+3V3T=1000**
1015 1015  
1016 -Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors.
1111 +(% style="color:#037691" %)**AT+3V3T=1000**
1017 1017  
1018 1018  
1114 +Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors.
1115 +
1019 1019  By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time
1020 1020  
1021 1021  
1022 -1.
1023 -11. +5V Output
1119 +== 3.8 +5V Output ==
1024 1024  
1025 1025  RS485-BL has a Controllable +5V output, user can use this output to power external sensor.
1026 1026  
1027 1027  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. 
1028 1028  
1029 -
1030 1030  The 5V output time can be controlled by AT Command.
1031 1031  
1032 -**AT+5VT=1000**
1033 1033  
1034 -Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors.
1128 +(% style="color:#037691" %)**AT+5VT=1000**
1035 1035  
1036 1036  
1131 +Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors.
1132 +
1037 1037  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.
1038 1038  
1039 1039  
1136 +== 3.9 LEDs ==
1040 1040  
1138 +(% border="1" style="background-color:#ffffcc; color:green; width:332px" %)
1139 +|=**LEDs**|=(% style="width: 274px;" %)**Feature**
1140 +|**LED1**|(% style="width:274px" %)Blink when device transmit a packet.
1041 1041  
1042 -1.
1043 -11. LEDs
1142 +== 3.10 Switch Jumper ==
1044 1044  
1045 -|**LEDs**|**Feature**
1046 -|**LED1**|Blink when device transmit a packet.
1047 -
1048 -1.
1049 -11. Switch Jumper
1050 -
1051 -|**Switch Jumper**|**Feature**
1052 -|**SW1**|(((
1144 +(% border="1" style="background-color:#ffffcc; color:green; width:515px" %)
1145 +|=(% style="width: 124px;" %)**Switch Jumper**|=(% style="width: 388px;" %)**Feature**
1146 +|(% style="width:124px" %)**SW1**|(% style="width:388px" %)(((
1053 1053  ISP position: Upgrade firmware via UART
1054 1054  
1055 1055  Flash position: Configure device, check running status.
1056 1056  )))
1057 -|**SW2**|(((
1151 +|(% style="width:124px" %)**SW2**|(% style="width:388px" %)(((
1058 1058  5V position: set to compatible with 5v I/O.
1059 1059  
1060 1060  3.3v position: set to compatible with 3.3v I/O.,
1061 1061  )))
1062 1062  
1063 -+3.3V: is always ON
1157 +**+3.3V**: is always ON
1064 1064  
1065 -+5V: Only open before every sampling. The time is by default, it is AT+5VT=0.  Max open time. 5000 ms.
1159 +**+5V**: Only open before every sampling. The time is by default, it is AT+5VT=0.  Max open time. 5000 ms.
1066 1066  
1067 -1. Case Study
1068 1068  
1069 -User can check this URL for some case studies.
1162 += 4. Case Study =
1070 1070  
1071 -[[http:~~/~~/wiki.dragino.com/index.php?title=APP_RS485_COMMUNICATE_WITH_SENSORS>>url:http://wiki.dragino.com/index.php?title=APP_RS485_COMMUNICATE_WITH_SENSORS]]
1164 +User can check this URL for some case studies: [[APP RS485 COMMUNICATE WITH SENSORS>>doc:Main.Application Note \: Communicate with Different Sensors ----- RS485-LN RS485-BL.WebHome]]
1072 1072  
1073 1073  
1167 += 5. Use AT Command =
1074 1074  
1169 +== 5.1 Access AT Command ==
1075 1075  
1076 -1. Use AT Command
1077 -11. Access AT Command
1078 -
1079 1079  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.
1080 1080  
1081 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png]]
1173 +[[image:1654135840598-282.png]]
1082 1082  
1083 1083  
1084 -In PC, User needs to set **serial tool**(such as [[putty>>url:https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]], SecureCRT) baud rate to **9600** to access to access serial console of RS485-BL. The default password is 123456. Below is the output for reference:
1176 +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:
1085 1085  
1086 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image028.png]]
1178 +[[image:1654136105500-922.png]]
1087 1087  
1088 1088  
1181 +More detail AT Command manual can be found at [[AT Command Manual>>||anchor="3.5ConfigureRS485-BLviaATorDownlink"]]
1089 1089  
1090 -More detail AT Command manual can be found at [[AT Command Manual>>path:#AT_COMMAND]]
1091 1091  
1184 +== 5.2 Common AT Command Sequence ==
1092 1092  
1186 +=== 5.2.1 Multi-channel ABP mode (Use with SX1301/LG308) ===
1093 1093  
1094 -1.
1095 -11. Common AT Command Sequence
1096 -111. Multi-channel ABP mode (Use with SX1301/LG308)
1097 -
1098 1098  If device has not joined network yet:
1099 1099  
1100 1100  AT+FDR
... ... @@ -1110,8 +1110,8 @@
1110 1110  
1111 1111  ATZ
1112 1112  
1113 -1.
1114 -11.
1203 +1.
1204 +11.
1115 1115  111. Single-channel ABP mode (Use with LG01/LG02)
1116 1116  
1117 1117  AT+FDR   Reset Parameters to Factory Default, Keys Reserve
... ... @@ -1186,7 +1186,7 @@
1186 1186  [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png]] [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png]]
1187 1187  
1188 1188  
1189 -1.
1279 +1.
1190 1190  11. How to change the LoRa Frequency Bands/Region?
1191 1191  
1192 1192  User can follow the introduction for [[how to upgrade image>>path:#upgrade_image]]. When download the images, choose the required image file for download.
... ... @@ -1193,7 +1193,7 @@
1193 1193  
1194 1194  
1195 1195  
1196 -1.
1286 +1.
1197 1197  11. How many RS485-Slave can RS485-BL connects?
1198 1198  
1199 1199  The RS485-BL can support max 32 RS485 devices. Each uplink command of RS485-BL can support max 16 different RS485 command. So RS485-BL can support max 16 RS485 devices pre-program in the device for uplink. For other devices no pre-program, user can use the [[downlink message (type code 0xA8) to poll their info>>path:#downlink_A8]].
... ... @@ -1210,7 +1210,7 @@
1210 1210  
1211 1211  
1212 1212  
1213 -1.
1303 +1.
1214 1214  11. Why I can’t join TTN V3 in US915 /AU915 bands?
1215 1215  
1216 1216  It might about the channels mapping. Please see for detail.
1653273818896-432.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +31.6 KB
Content
1653274001211-372.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +91.4 KB
Content
1654132684752-193.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +22.8 KB
Content
1654133913295-597.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +116.2 KB
Content
1654133954153-643.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +91.2 KB
Content
1654134704555-320.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +91.4 KB
Content
1654135840598-282.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +1.3 MB
Content
1654136105500-922.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +203.7 KB
Content