Show last authors
1 (% style="text-align:center" %)
2 [[image:image-20240103144153-3.png]]
3
4
5
6
7
8 **Table of Contents:**
9
10 {{toc/}}
11
12
13
14
15 = 1. Introduction =
16
17 == 1.1 What is RS485-LB/LS RS485/UART to LoRaWAN Converter ==
18
19
20 (((
21 The Dragino RS485-LB/LS is a (% style="color:blue" %)**RS485 / UART to LoRaWAN Converter**(%%) for Internet of Things solutions. User can connect RS485 or UART sensor to RS485-LB/LS converter, and configure RS485-LB/LS to periodically read sensor data and upload via LoRaWAN network to IoT server.
22 )))
23
24 (((
25 RS485-LB/LS can interface to RS485 sensor, 3.3v/5v UART sensor or interrupt sensor. RS485-LB/LS 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.
26 )))
27
28 (((
29 RS485-LB/LS is IP67 (% style="color:blue" %)**waterproof**(%%) and powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%) or (% style="color:blue" %)**solar powered + li-on battery,**(%%) it is designed for long term use for several years.
30 )))
31
32 (((
33 RS485-LB/LS 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.
34 )))
35
36 (((
37 For data uplink, RS485-LB/LS sends user-defined commands to RS485 devices and gets the return from the RS485 devices. RS485-LB/LS will process these returns data according to user-define rules to get the final payload and upload to LoRaWAN server.
38 )))
39
40 (((
41 For data downlink, RS485-LB/LS runs in LoRaWAN Class A. When there is downlink commands from LoRaWAN server, RS485-LB/LS will forward the commands from LoRaWAN server to RS485 devices.
42
43 (((
44 RS485-LB/LS (% style="color:blue" %)**Supports BLE configure and wireless OTA update**(%%) which make user easy to use.
45 )))
46 )))
47
48 (((
49 Each RS485-LB/LS pre-load with a set of unique keys for LoRaWAN registration, register these keys to LoRaWAN server and it will auto connect after power on.
50
51
52 )))
53
54 [[image:image-20230718114211-2.png||height="419" width="727"]]
55
56
57 == 1.2 Specifications ==
58
59
60 (% style="color:#037691" %)**Common DC Characteristics:**
61
62 * Supply Voltage: Built-in Battery , 2.5v ~~ 3.6v
63 * Operating Temperature: -40 ~~ 85°C
64
65 (% style="color:#037691" %)**I/O Interface:**
66
67 * Battery controllable output (2.6v ~~ 3.6v depends on battery)
68 * +5v controllable output
69 * 1 x RS485 Interface
70 * 1 x UART Interface , 3.3v or 5v
71 * 1 x Interrupt or Digital IN pins
72 * 1 x I2C Interface
73 * 1 x one wire interface
74
75 (% style="color:#037691" %)**LoRa Spec:**
76
77 * Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
78 * Max +22 dBm constant RF output vs.
79 * RX sensitivity: down to -139 dBm.
80 * Excellent blocking immunity
81
82 (% style="color:#037691" %)**Battery:**
83
84 * Li/SOCI2 un-chargeable battery
85 * Capacity: 8500mAh
86 * Self-Discharge: <1% / Year @ 25°C
87 * Max continuously current: 130mA
88 * Max boost current: 2A, 1 second
89
90 (% style="color:#037691" %)**Power Consumption**
91
92 * Sleep Mode: 5uA @ 3.3v
93 * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
94
95 == 1.3 Features ==
96
97
98 * LoRaWAN 1.0.3 Class A
99 * Frequency Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865/RU864/MA869
100 * Ultra-low power consumption
101 * Support multiply RS485 devices by flexible rules
102 * Support Modbus protocol
103 * Support Interrupt uplink
104 * Supports connecting a UART sensors with 3.3V or 5V
105 * Support Bluetooth v5.1 and LoRaWAN remote configure
106 * Support wireless OTA update firmware
107 * AT Commands to change parameters
108 * Uplink on periodically
109 * Downlink to change configure
110 * 8500mAh Li/SOCl2 Battery (RS485-LB)
111 * Solar panel + 3000mAh Li-on battery (RS485-LS)
112
113 == 1.4 Applications ==
114
115
116 * Smart Buildings & Home Automation
117 * Logistics and Supply Chain Management
118 * Smart Metering
119 * Smart Agriculture
120 * Smart Cities
121 * Smart Factory
122
123 == 1.5 Sleep mode and working mode ==
124
125
126 (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
127
128 (% style="color:blue" %)**Working Mode:** (%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
129
130
131 == 1.6 Button & LEDs ==
132
133
134 [[image:image-20240103160425-4.png]]
135
136 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
137 |=(% style="width: 167px;background-color:#4F81BD;color:white" %)**Behavior on **ACT|=(% style="width: 117px;background-color:#4F81BD;color:white" %)Function|=(% style="width: 225px;background-color:#4F81BD;color:white" %)Action
138 |(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
139
140
141 If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, blue led will blink once.
142 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
143 )))
144 |(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
145
146
147 Green led will fast blink 5 times, device will enter OTA mode for 3 seconds. And then start to JOIN LoRaWAN network.
148 Green led will solidly turn on for 5 seconds after joined in network.
149 Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device join or not join LoRaWAN network.
150 )))
151 |(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)Red led will solid on for 5 seconds. Means device is in Deep Sleep Mode.
152
153 == 1.7 BLE connection ==
154
155
156 RS485-LB/LS supports BLE remote configure.
157
158
159 BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case:
160
161 * Press button to send an uplink
162 * Press button to active device.
163 * Device Power on or reset.
164
165 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
166
167
168 == 1.8 Pin Definitions ==
169
170
171 [[image:image-20230804102346-1.png||height="447" width="782"]]
172
173
174 === 1.8.1 SW2 Jumper (Define UART level to external Sensor) ===
175
176 SW2 defines the voltage level of BOARD_RX and BOARD_TX pins. It should match the external sensor voltage level
177
178
179
180 == 1.9 Mechanical ==
181
182 === 1.9.1 for LB version ===
183
184
185 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/PS-LB%20--%20LoRaWAN%20Pressure%20Sensor/WebHome/image-20240109160800-6.png?rev=1.1||alt="image-20240109160800-6.png"]]
186
187
188
189
190 === 1.9.2 for LS version ===
191
192
193 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-LB/WebHome/image-20231231203439-3.png?width=886&height=385&rev=1.1||alt="image-20231231203439-3.png"]]
194
195
196 = 2. Operation Mode =
197
198 == 2.1 How it works? ==
199
200
201 (((
202 The RS485-LB/LS 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-LB/LS. It will auto join the network via OTAA.
203 )))
204
205
206 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
207
208
209 Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example.
210
211
212
213 [[image:image-20230718114628-3.png||height="360" width="757"]]
214
215
216 (((
217 The RS485-LB/LS in this example connected to two RS485 devices for demonstration, user can connect to other RS485 devices via the same method.
218 )))
219
220 (((
221 The LPS8v2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.
222 )))
223
224 (((
225 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN V3 with the OTAA keys from RS485-LB/LS.
226 )))
227
228 (((
229 Each RS485-LB/LS is shipped with a sticker with unique device EUI:
230 )))
231
232 [[image:image-20230425173638-1.png]]
233
234
235 (((
236 User can enter this key in their LoRaWAN Server portal. Below is TTN V3 screen shot:
237 )))
238
239 (((
240 **Add APP EUI in the application.**
241 )))
242
243
244 [[image:image-20220519174512-1.png]]
245
246 [[image:image-20220519174512-2.png||height="328" width="731"]]
247
248 [[image:image-20220519174512-3.png||height="556" width="724"]]
249
250 [[image:image-20220519174512-4.png]]
251
252
253 You can also choose to create the device manually.
254
255 [[image:1652953542269-423.png||height="710" width="723"]]
256
257
258 Add APP KEY and DEV EUI
259
260 [[image:1652953553383-907.png||height="514" width="724"]]
261
262
263
264 (((
265 (% style="color:blue" %)**Step 2**(%%): Power on RS485-LB/LS and it will auto join to the TTN V3 network. After join success, it will start to upload message to TTN V3 and user can see in the panel.
266 )))
267
268 [[image:1652953568895-172.png||height="232" width="724"]]
269
270
271 == 2.3 Uplink Payload ==
272
273 === 2.3.1 Device Status, FPORT~=5 ===
274
275
276 Users can use the downlink command(**0x26 01**) to ask LDS12-LB to send device configure detail, include device configure status. RS485-LB/LS will uplink a payload via FPort=5 to server.
277
278 The Payload format is as below.
279
280 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
281 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
282 **Size(bytes)**
283 )))|=(% style="width: 100px; background-color:#4F81BD;color:white" %)**1**|=(% style="width: 100px; background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD;color:white; width: 100px;" %)**1**|=(% style="background-color:#4F81BD;color:white; width: 100px;" %)**1**|=(% style="background-color:#4F81BD;color:white; width: 50px;" %)**2**
284 |(% style="width:62.5px" %)Value|(% style="width:110px" %)Sensor Model|(% style="width:48px" %)Firmware Version|(% style="width:94px" %)Frequency Band|(% style="width:91px" %)Sub-band|(% style="width:60px" %)BAT
285
286 (% style="color:blue" %)**Sensor Model**(%%): For RS485-LB/LS, this value is 0x30
287
288 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
289
290 (% style="color:blue" %)**Frequency Band**:
291
292 0x01: EU868
293
294 0x02: US915
295
296 0x03: IN865
297
298 0x04: AU915
299
300 0x05: KZ865
301
302 0x06: RU864
303
304 0x07: AS923
305
306 0x08: AS923-1
307
308 0x09: AS923-2
309
310 0x0a: AS923-3
311
312 0x0b: CN470
313
314 0x0c: EU433
315
316 0x0d: KR920
317
318 0x0e: MA869
319
320 (% style="color:blue" %)**Sub-Band**:
321
322 AU915 and US915:value 0x00 ~~ 0x08
323
324 CN470: value 0x0B ~~ 0x0C
325
326 Other Bands: Always 0x00
327
328 (% style="color:blue" %)**Battery Info**:
329
330 Check the battery voltage.
331
332 Ex1: 0x0B45 = 2885mV
333
334 Ex2: 0x0B49 = 2889mV
335
336
337 === 2.3.2 Uplink Payload, FPORT~=2 ===
338
339
340 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
341 |(% style="background-color:#4f81bd; color:white; width:60px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:100px" %)**2**|(% style="background-color:#4f81bd; color:white; width:80px" %)**1**|(% style="background-color:#4f81bd; color:white; width:270px" %)**Length depends on the return from the commands**
342 |Value|(((
343 Battery(mV) & Interrupt _Flag
344 )))|(((
345 PAYLOAD_VER
346
347
348 )))|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.
349
350 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
351
352
353 (% style="color:blue" %)**Battery(mV)**
354
355 Check the battery voltage for RS485-LB/LS.
356
357 Ex1: 0x0B45 = 2885mV
358
359 Ex2: 0x0B49 = 2889mV
360
361
362 (% style="color:blue" %)**Interrupt_Flag**
363
364 Ex1: 0x0B45>>15&0x01=0x00 : Normal uplink packet.
365
366 Ex2: 0x8B49>>15&0x01=0x01 : Interrupt Uplink Packet.
367
368
369 (% style="color:blue" %)**PAYLOAD_VER**
370
371 RS485-LB/LS can connect to different sensors. User can set the PAYVER_VER field to tell server how to decode the current payload.
372
373
374 == 2.4 Payload Decoder file ==
375
376
377 In TTN, use can add a custom payload so it shows friendly reading
378
379 In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
380
381
382 == 2.5 Frequency Plans ==
383
384
385 The RS485-LB/LS uses OTAA mode and below frequency plans by default. Each frequency band use different firmware, user update the firmware to the corresponding band for their country.
386
387 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
388
389
390 == 2.6 Configure Device to Read RS485 Sensors ==
391
392
393 (((
394 There are plenty of RS485 and TTL level devices in the market and each device has different commands to read the valid data. To support these devices in most flexible, RS485-LB/LS supports flexible command set. User can use [[Dragino RS485 Tool>>https://www.dropbox.com/sh/us9qecn39fwt8n1/AABREdqUCzEmJMRrfuWuXasoa?dl=0]],  [[AT Commands or LoRaWAN Downlink>>||anchor="H3.5ConfigureRS485-LB/LSviaATorDownlink"]] Command to configure how RS485-LB/LS should read the sensor and how to handle the return from RS485 or TTL sensors.
395 )))
396
397
398 === 2.6.1 Method 1 ~-~- via RS485 Configure Tool ===
399
400
401 Use the RS485 Configure tool is the recommand method. Please see the instruction of how to use the tool:
402
403 * **[[RS485 Configure Tool Instruction>>doc:Main.RS485_Configure_Tool.WebHome]]**
404
405 [[image:image-20231127144411-1.png||height="368" width="494"]]
406
407
408
409 === 2.6.2 Method 2 ~-~- via AT Commands ===
410
411
412 ==== 2.6.2.1 Configure UART settings for RS485 or TTL communication ====
413
414
415 (((
416 RS485-LB/LS can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
417 )))
418
419
420 (((
421 (% style="color:blue" %)**1.  RS485-MODBUS mode:**
422 )))
423
424 (((
425 (% style="color:#037691" %)**AT+MOD=1**  (%%) ~/~/ Support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins.
426 )))
427
428
429 (((
430 (% style="color:blue" %)**2.  TTL mode:**
431 )))
432
433 (((
434 (% style="color:#037691" %)**AT+MOD=2**  (%%) ~/~/ Support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins.
435
436
437 )))
438
439 (((
440 RS485-LB/LS default  UART settings is (% style="color:green" %)**9600, no parity, stop bit 1,data bit 8**(%%). If the sensor has a different settings, user can change the RS485-LB/LS setting to match.
441 )))
442
443 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:515px" %)
444 |=(% style="width: 122px; background-color:#4F81BD;color:white" %)(((
445 (((
446 **AT Commands**
447 )))
448 )))|=(% style="width: 190px; background-color:#4F81BD;color:white" %)(((
449 (((
450 **Description**
451 )))
452 )))|=(% style="width: 203px; background-color:#4F81BD;color:white" %)(((
453 (((
454 **Example**
455 )))
456 )))
457 |(% style="width:122px" %)(((
458 (((
459 AT+BAUDR
460 )))
461 )))|(% style="width:192px" %)(((
462 (((
463 Set the baud rate.
464 Default Value is: 9600.
465 )))
466 )))|(% style="width:338px" %)(((
467 (((
468 (((
469 AT+BAUDR=9600
470 )))
471 )))
472
473 (((
474 (((
475 Options: (1200,2400,4800,14400,19200,115200)
476 )))
477 )))
478 )))
479 |(% style="width:122px" %)(((
480 (((
481 AT+PARITY
482 )))
483 )))|(% style="width:192px" %)(((
484 (((
485 (((
486 Set UART parity.
487 )))
488 )))
489
490 (((
491 (((
492 Default Value is: no parity.
493 )))
494 )))
495 )))|(% style="width:338px" %)(((
496 (((
497 (((
498 AT+PARITY=0
499 )))
500 )))
501
502 (((
503 (((
504 Option: 0: no parity, 1: odd parity, 2: even parity
505 )))
506 )))
507 )))
508 |(% style="width:122px" %)(((
509 (((
510 AT+STOPBIT
511 )))
512 )))|(% style="width:192px" %)(((
513 (((
514 (((
515 Set serial stopbit
516 )))
517 )))
518
519 (((
520 (((
521 Default Value is: 1bit.
522 )))
523 )))
524 )))|(% style="width:338px" %)(((
525 (((
526 AT+STOPBIT=1 for 1 bit
527 )))
528
529 (((
530 (((
531 AT+STOPBIT=2 for 2 bits
532 )))
533 )))
534 )))
535 |(% style="width:122px" %)AT+DATABIT|(% style="width:192px" %)(((
536 (((
537 (((
538 Set serial databit.
539 )))
540 )))
541
542 (((
543 (((
544 Default Value is: 8bits.
545 )))
546 )))
547 )))|(% style="width:338px" %)(((
548 (((
549 AT+DATABIT=7 for 7 bits
550 )))
551
552 (((
553 (((
554 AT+DATABIT=8 for 8 bits
555 )))
556 )))
557 )))
558
559 Example(Soil three-parameter detector):
560
561 (% style="color:blue" %)**Wiring the UART sensor**
562
563 (((
564 **GND <~-~-~-~-~-~-~-~-> GND
565 TX  <~-~-~-~-~-~-~-~->  RX
566 RX  <~-~-~-~-~-~-~-~->  TX
567 VCC  <~-~-~-~-~-~-~-~->  3.3/5V**
568 )))
569
570 [[image:image-20231019111951-1.png||height="235" width="410"]]
571
572
573 (% style="color:blue" %)**Set the correct configuration:**
574
575 (% style="color:#037691" %)**AT+BAUDR=9600**
576
577 (% style="color:#037691" %)**AT+PARITY=0**
578
579 (% style="color:#037691" %)**AT+STOPBIT=1**
580
581 (% style="color:#037691" %)**AT+DATABIT=8**
582
583 If the sensor needs 5v. Need to move the switch position to 5v and then use the command (% style="color:blue" %)**AT+5VT=30000**
584
585
586 (% style="color:blue" %)**Configuration read command:**
587
588 (% style="color:#037691" %)**AT+CFGDEV=FE 03 00 00 00 03 11 C4,0**
589
590 **FE:** Station address
591
592 **03:** Function code
593
594 **00 00:**Register start address
595
596 **00 03:**Number of registers
597
598 **11 04:**  Check code
599
600 [[image:image-20230220111709-2.png]]
601
602
603 Use AT+COMMAND1 to set it as a command, and use AT+DATACUT1 to intercept the bytes I need
604
605 [[image:image-20230220112421-3.png]]
606
607
608 (% style="color:blue" %)**upload payload:**
609
610 [[image:image-20230220112517-4.png]]
611
612
613 ==== 2.6.2.2 Configure sensors ====
614
615
616 (((
617 Some sensors might need to configure before normal operation. User can configure such sensor via PC or through RS485-LB/LS AT Commands (% style="color:#4f81bd" %)**AT+CFGDEV**.
618 )))
619
620 (((
621 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.
622 )))
623
624 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
625 |=(% style="width: 130px;background-color:#4F81BD;color:white" %)**AT Commands**|=(% style="width: 190px;background-color:#4F81BD;color:white" %)**Description**|=(% style="width: 190px;background-color:#4F81BD;color:white" %)**Example**
626 |(% style="width:121px" %)AT+CFGDEV|(% style="width:179px" %)(((
627 (((
628 This command is used to configure the RS485/TTL devices; they won’t be used during sampling.
629 )))
630
631 (((
632 AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,
633 )))
634
635 (((
636 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
637 )))
638 )))|(% style="width:210px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
639
640 Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="H3.3.2RS485DebugCommand28AT2BCFGDEV29"]].
641
642
643 ==== 2.6.2.3 Configure read commands for each sampling ====
644
645
646 (((
647 RS485-LB/LS is a battery powered device; it will sleep most of time. And wake up on each period and read RS485 / TTL sensor data and uplink.
648 )))
649
650 (((
651 During each sampling, we need to confirm what commands we need to send to the sensors to read data. After the RS485/TTL sensors send back the value, it normally includes some bytes and we only need a few from them for a shorten payload.
652 )))
653
654 (((
655 To save the LoRaWAN network bandwidth, we might need to read data from different sensors and combine their valid value into a short payload.
656 )))
657
658 (((
659 This section describes how to achieve above goals.
660 )))
661
662 (((
663 During each sampling, the RS485-LB/LS can support 15 commands to read sensors. And combine the return to one or several uplink payloads.
664
665
666 )))
667
668 (((
669 (% style="color:blue" %)**Command from RS485-LB/LS to Sensor:**
670 )))
671
672 (((
673 RS485-LB/LS can send out pre-set max 15 strings via **AT+COMMAD1**, **ATCOMMAND2**,…, to **AT+COMMANDF** . All commands are of same grammar.
674 )))
675
676 (((
677 (% style="color:blue" %)**Handle return from sensors to RS485-LB/LS**:
678 )))
679
680 (((
681 After RS485-LB/LS send out a string to sensor, RS485-LB/LS will wait for the return from RS485 or TTL sensor. And user can specify how to handle the return, by **AT+DATACUT or AT+SEARCH commands**
682 )))
683
684 * (((
685 (% style="color:blue" %)**AT+DATACUT**
686 )))
687
688 (((
689 When the return value from sensor have fix length and we know which position the valid value we should get, we can use AT+DATACUT command.
690
691
692 )))
693
694 * (((
695 (% style="color:blue" %)**AT+SEARCH**
696 )))
697
698 (((
699 When the return value from sensor is dynamic length and we are not sure which bytes the valid data is, instead, we know what value the valid value following. We can use AT+SEARCH to search the valid value in the return string.
700 )))
701
702
703 (((
704 (% style="color:blue" %)**Define wait timeout:**
705 )))
706
707 (((
708 Some RS485 device might has longer delay on reply, so user can use AT+CMDDL to set the timeout for getting reply after the RS485 command is sent. For example, AT+CMDDL1=1000 to send the open time to 1000ms
709 )))
710
711 (((
712 After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**.
713 )))
714
715 (((
716 **Examples:**
717 )))
718
719 (((
720 Below are examples for the how above AT Commands works.
721 )))
722
723 (((
724 (% style="color:blue" %)**AT+COMMANDx **(%%)**: **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is:
725 )))
726
727 (% border="1" class="table-bordered" style="background-color:#f2f2f2; width:497px" %)
728 |(% style="width:494px" %)(((
729 (((
730 **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m**
731 )))
732
733 (((
734 **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent**
735 )))
736
737 (((
738 **m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command**
739 )))
740 )))
741
742 (((
743 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.
744 )))
745
746 (((
747 In the RS485-LB/LS, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same.
748 )))
749
750
751 If a single command exceeds 14 bytes, you can use the command splicing function.
752
753 When AT+CMDDLx=1, the commands of AT+COMMANDx and AT+COMMAND(x+1) will be merged.
754
755 **Examples:** To send 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F data it should be configured:
756
757 AT+COMMAND1=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D,0
758
759 AT+COMMAND1=1
760
761 AT+COMMAND2=0E 0F,0
762
763
764 (((
765 (% style="color:blue" %)**AT+SEARCHx**(%%): This command defines how to handle the return from AT+COMMANDx.
766 )))
767
768 (% border="1" class="table-bordered" style="background-color:#f2f2f2; width:473px" %)
769 |(% style="width:470px" %)(((
770 (((
771 **AT+SEARCHx=aa,xx xx xx xx xx**
772 )))
773
774 * (((
775 **aa: 1: prefix match mode; 2: prefix and suffix match mode**
776 )))
777 * (((
778 **xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix**
779 )))
780 )))
781
782 (((
783 **Examples:**
784 )))
785
786 (((
787 1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
788 )))
789
790 (((
791 If we set AT+SEARCH1=1,1E 56 34.      (max 5 bytes for prefix)
792 )))
793
794 (((
795 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**
796 )))
797
798 (((
799 [[image:1653271044481-711.png]]
800
801
802 )))
803
804 (((
805 2)For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
806 )))
807
808 (((
809 If we set AT+SEARCH1=2, 1E 56 34+31 00 49
810 )))
811
812 (((
813 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**
814 )))
815
816 (((
817 [[image:1653271276735-972.png]]
818 )))
819
820 (((
821 **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes.
822 )))
823
824 (% style="background-color:#f2f2f2; width:496px" %)
825 |(% style="width:493px" %)(((
826 (((
827 **AT+DATACUTx=a,b,c**
828 )))
829
830 * (((
831 **a: length for the return of AT+COMMAND**
832 )))
833 * (((
834 **b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.**
835 )))
836 * (((
837 **c: define the position for valid value.  **
838 )))
839 )))
840
841 (((
842 **Examples:**
843 )))
844
845 * (((
846 (% style="color:blue" %)**Grab bytes:**
847 )))
848
849 (((
850 [[image:1653271581490-837.png||height="313" width="722"]]
851 )))
852
853
854 * (((
855 (% style="color:blue" %)**Grab a section.**
856 )))
857
858 (((
859 [[image:1653271648378-342.png||height="326" width="720"]]
860 )))
861
862
863 * (((
864 (% style="color:blue" %)**Grab different sections.**
865 )))
866
867 (((
868 [[image:1653271657255-576.png||height="305" width="730"]]
869
870
871 )))
872
873
874 (((
875 (% style="color:red" %)**Note:**
876 )))
877
878 (((
879 (% style="color:#037691" %)**AT+SEARCHx** (%%)and (% style="color:#037691" %)**AT+DATACUTx**(%%) can be used together, if both commands are set, RS485-LB/LS 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**.
880 )))
881
882 (((
883 **Example:**
884 )))
885
886 (((
887 (% style="color:red" %)AT+COMMAND1=11 01 1E D0,0
888 )))
889
890 (((
891 (% style="color:red" %)AT+SEARCH1=1,1E 56 34
892 )))
893
894 (((
895 (% style="color:red" %)AT+DATACUT1=0,2,1~~5
896 )))
897
898 (((
899 (% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
900 )))
901
902 (((
903 (% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49
904 )))
905
906 (((
907 (% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36
908 )))
909
910
911 (((
912 [[image:1653271763403-806.png]]
913 )))
914
915
916 ==== 2.6.2.4 Compose the uplink payload ====
917
918
919 (((
920 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.**
921 )))
922
923 (((
924 (% style="color:#037691" %)**Examples: AT+DATAUP=0**
925 )))
926
927 (((
928 Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**A SIGNLE UPLINK**.
929 )))
930
931 (((
932 Final Payload is
933 )))
934
935 (((
936 (% style="color:#4f81bd" %)**Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx**
937 )))
938
939 (((
940 Where PAYVER is defined by AT+PAYVER, below is an example screen shot.
941 )))
942
943 [[image:1653272787040-634.png||height="515" width="719"]]
944
945
946
947 (((
948 (% style="color:#037691" %)**Examples: AT+DATAUP=1**
949 )))
950
951
952 (((
953 Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**Multiply UPLINKs**.
954 )))
955
956 (((
957 Final Payload is
958 )))
959
960 (((
961 (% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**
962 )))
963
964 1. (((
965 Battery Info (2 bytes): Battery voltage
966 )))
967 1. (((
968 PAYVER (1 byte): Defined by AT+PAYVER
969 )))
970 1. (((
971 PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
972 )))
973 1. (((
974 PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
975 )))
976 1. (((
977 DATA: Valid value: max 6 bytes(US915 version here, Notice*!) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes
978 )))
979
980 [[image:1653272817147-600.png||height="437" width="717"]]
981
982 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA
983
984
985 DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41
986
987 DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% _mstmutation="1" style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20
988
989 DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% _mstmutation="1" style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30
990
991
992 Below are the uplink payloads:
993
994 [[image:1653272901032-107.png]]
995
996
997 (% style="color:red" %)**Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:**
998
999 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
1000
1001 * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
1002
1003 * For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
1004
1005 ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
1006
1007 *(% style="color:red" %)** When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;**
1008
1009 (% style="color:red" %)** When AT+DATAUP=1 and AT+ADR=0, the maximum number of bytes of each payload is determined by the DR value. (Since v1.4.0)**
1010
1011
1012 * (((
1013 (% style="color:blue" %)**If the data is empty, return to the display(Since v1.4.0)**(%%)
1014 (% style="color:blue" %)
1015 )))
1016
1017 (% class="wikigeneratedid" %)
1018 **1) ** When (% style="color:blue" %)**AT+MOD=1**(%%), if the data intercepted by (% style="color:#037691" %)** AT+DATACUT**(%%) or (% style="color:#037691" %)** AT+MBFUN **(%%)is empty, it will display **NULL**, and the payload will be filled with **n FFs**.
1019
1020
1021 (% class="wikigeneratedid" %)
1022 [[image:image-20220824114359-3.png||height="297" width="1106"]]
1023
1024
1025
1026 **2)**  When** (% style="color:blue" %)AT+MOD=2(%%)**, if the data intercepted by (% style="color:#037691" %)** AT+DATACUT** (%%)or (% style="color:#037691" %)** AT+MBFUN**(%%) is empty, it will display **NULL**, and the payload will be filled with **n 00s**.
1027
1028
1029 [[image:image-20220824114330-2.png]]
1030
1031
1032 === 2.6.3 Uplink on demand ===
1033
1034
1035 (((
1036 Except uplink periodically, RS485-LB/LS is able to uplink on demand. The server sends downlink command to RS485-LB/LS and RS485 will uplink data base on the command.
1037
1038
1039 )))
1040
1041 (((
1042 (% style="color:blue" %)** Downlink control command:**
1043 )))
1044
1045 (((
1046 (% style="color:#4472c4" %)** 0xA8 command**(%%): Send a command to RS485-LB/LS and uplink the output from sensors.
1047 )))
1048
1049
1050 === 2.6.4 Uplink on Interrupt ===
1051
1052
1053 Put the interrupt sensor between 3.3v_out and GPIO ext.
1054
1055 [[image:image-20231019112133-3.png]]
1056
1057
1058 (((
1059 (% style="color:#4472c4" %)**AT+INTMOD=0**(%%)  Disable Interrupt
1060 )))
1061
1062 (((
1063 (% style="color:#4472c4" %)**AT+INTMOD=1**(%%)  Interrupt trigger by rising or falling edge.
1064 )))
1065
1066 (((
1067 (% style="color:#4472c4" %)**AT+INTMOD=2** (%%) Interrupt trigger by falling edge. ( Default Value)
1068 )))
1069
1070 (((
1071 (% style="color:#4472c4" %)**AT+INTMOD=3**(%%)  Interrupt trigger by rising edge.
1072 )))
1073
1074
1075 = 3. Configure RS485-LB/LS =
1076
1077 == 3.1 Configure Methods ==
1078
1079
1080 RS485-LB/LS supports below configure method:
1081
1082 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
1083 * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]].
1084 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
1085
1086 == 3.2 General Commands ==
1087
1088
1089 These commands are to configure:
1090
1091 * General system settings like: uplink interval.
1092 * LoRaWAN protocol & radio related command.
1093
1094 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
1095
1096 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
1097
1098
1099 == 3.3 Commands special design for RS485-LB/LS ==
1100
1101
1102 These commands only valid for RS485-LB/LS, as below:
1103
1104
1105 === 3.3.1 Choose Device Type (RS485 or TTL) ===
1106
1107
1108 RS485-LB/LS can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
1109
1110 * (% style="color:#037691" %)**AT Command**
1111
1112 (% style="color:#4472c4" %)** AT+MOD=1** (%%) ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins.
1113
1114 (% style="color:#4472c4" %)** AT+MOD=2** (%%) ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins.
1115
1116
1117 * (% style="color:#037691" %)**Downlink Payload**
1118
1119 (% style="color:#4472c4" %)** 0A aa** (%%) ~-~->  same as AT+MOD=aa
1120
1121
1122 === 3.3.2 RS485 Debug Command (AT+CFGDEV) ===
1123
1124
1125 (((
1126 This command is used to configure the RS485 or TTL sensors; they won't be used during sampling. Max Length of AT+CFGDEV is **40 bytes**.
1127 )))
1128
1129 (((
1130 * (% style="color:#037691" %)**AT Command**
1131
1132 (((
1133 (% style="color:#4472c4" %)** AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m**  (%%) m: 0: no CRC;  1: add CRC-16/MODBUS in the end of this command.
1134 )))
1135 )))
1136
1137
1138 * (((
1139 (% style="color:#037691" %)**Downlink Payload**
1140 )))
1141
1142 (((
1143 Format:  (% style="color:#4472c4" %)** A8 MM NN XX XX XX XX YY**
1144 )))
1145
1146 (((
1147 Where:
1148 )))
1149
1150 * (((
1151 MM: 1: add CRC-16/MODBUS ; 0: no CRC
1152 )))
1153 * (((
1154 NN: The length of RS485 command
1155 )))
1156 * (((
1157 XX XX XX XX: RS485 command total NN bytes
1158 )))
1159 * (((
1160 YY: How many bytes will be uplink from the return of this RS485 command, if YY=0, RS485-LB/LS will execute the downlink command without uplink; if YY>0, RS485-LB/LS will uplink total YY bytes from the output of this RS485 command
1161 )))
1162
1163 (((
1164 (% style="color:blue" %)**Example 1:**
1165 )))
1166
1167 (((
1168 To connect a Modbus Alarm with below commands.
1169 )))
1170
1171 * (((
1172 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.
1173 )))
1174
1175 * (((
1176 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.
1177 )))
1178
1179 (((
1180 So if user want to use downlink command to control to RS485 Alarm, he can use:
1181 )))
1182
1183 (((
1184 (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm
1185 )))
1186
1187 (((
1188 (% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm
1189 )))
1190
1191 (((
1192 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.
1193 )))
1194
1195
1196 (((
1197 (% style="color:blue" %)**Example 2:**
1198 )))
1199
1200 (((
1201 Check TTL Sensor return:
1202 )))
1203
1204 (((
1205 [[image:1654132684752-193.png]]
1206 )))
1207
1208
1209 === 3.3.3 Set Payload version ===
1210
1211
1212 This is the first byte of the uplink payload. RS485-LB/LS can connect to different sensors. User can set the PAYVER field to tell server how to decode the current payload.
1213
1214 * (% style="color:#037691" %)**AT Command:**
1215
1216 (% style="color:#4472c4" %)** AT+PAYVER:   **(%%)Set PAYVER field = 1
1217
1218
1219 * (% style="color:#037691" %)**Downlink Payload:**
1220
1221 (% style="color:#4472c4" %)** 0xAE 01** (%%) ~-~-> Set PAYVER field =  0x01
1222
1223 (% style="color:#4472c4" %)** 0xAE 0F** (%%) ~-~-> Set PAYVER field =  0x0F
1224
1225
1226 === 3.3.4 Set RS485 Sampling Commands ===
1227
1228
1229 (((
1230 AT+COMMANDx, AT+DATACUTx and AT+SEARCHx
1231 )))
1232
1233 (((
1234 These three commands are used to configure how the RS485-LB polling data from Modbus device. Detail of usage please see : [[polling RS485 device>>||anchor="H2.5.3Configurereadcommandsforeachsampling"]].
1235 )))
1236
1237
1238 * (((
1239 (% style="color:#037691" %)**AT Command:**
1240 )))
1241
1242 (% style="color:#4472c4" %)** AT+COMMANDx: **(%%)** Configure RS485 read command to sensor.**
1243
1244 (% style="color:#4472c4" %)** AT+DATACUTx: **(%%)** Configure how to handle return from RS485 devices.**
1245
1246 (% style="color:#4472c4" %)** AT+SEARCHx:  **(%%)** Configure search command**
1247
1248
1249 * (((
1250 (% style="color:#037691" %)**Downlink Payload:**
1251 )))
1252
1253 (((
1254 (% style="color:#4472c4" %)** 0xAF**(%%) downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
1255 )))
1256
1257 (((
1258 (% style="color:red" %)**Note : if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.**
1259 )))
1260
1261 (((
1262 Format: AF MM NN LL XX XX XX XX YY
1263 )))
1264
1265 (((
1266 Where:
1267 )))
1268
1269 * (((
1270 MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
1271 )))
1272 * (((
1273 NN:  0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
1274 )))
1275 * (((
1276 LL:  The length of AT+COMMAND or AT+DATACUT command
1277 )))
1278 * (((
1279 XX XX XX XX: AT+COMMAND or AT+DATACUT command
1280 )))
1281 * (((
1282 YY:  If YY=0, RS485-LB/LS will execute the downlink command without uplink; if YY=1, RS485-LB/LS will execute an uplink after got this command.
1283 )))
1284
1285 (((
1286 **Example:**
1287 )))
1288
1289 (((
1290 (% 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
1291 )))
1292
1293 (((
1294 (% 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**
1295 )))
1296
1297 (((
1298 (% 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**
1299 )))
1300
1301
1302 (((
1303 (% style="color:#4472c4" %)** 0xAB**(%%) downlink command can be used for set AT+SEARCHx
1304 )))
1305
1306 (((
1307 **Example:** **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So
1308 )))
1309
1310 * (((
1311 AB aa 01 03 xx xx xx  same as AT+SEARCHaa=1,xx xx xx
1312 )))
1313 * (((
1314 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
1315 )))
1316
1317 (((
1318 **AB aa 02 03 xx xx xx 02 yy yy**  same as **AT+SEARCHaa=2,xx xx xx+yy yy**
1319 )))
1320
1321
1322 === 3.3.5 Fast command to handle MODBUS device ===
1323
1324
1325 (((
1326 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]].
1327 )))
1328
1329 (((
1330 This command is valid since v1.3 firmware version
1331 )))
1332
1333
1334 (((
1335 (% style="color:#037691" %)**AT+MBFUN has only two value:**
1336 )))
1337
1338 * (((
1339 (% style="color:#4472c4" %)** AT+MBFUN=1**(%%): Enable Modbus reading. And get response base on the MODBUS return
1340 )))
1341
1342 (((
1343 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.
1344 )))
1345
1346 * (((
1347 (% style="color:#4472c4" %)**AT+MBFUN=0**(%%): Disable Modbus fast reading.
1348 )))
1349
1350 (((
1351
1352
1353 **Example:**
1354 )))
1355
1356 * (((
1357 AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0).
1358 )))
1359 * (((
1360 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.
1361 )))
1362 * (((
1363 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.
1364 )))
1365
1366 [[image:1654133913295-597.png]]
1367
1368
1369 [[image:1654133954153-643.png]]
1370
1371
1372 * (((
1373 (% style="color:#037691" %)**Downlink Commands:**
1374 )))
1375
1376 (((
1377 (% style="color:#4472c4" %)** A9 aa** (%%)~-~-> Same as AT+MBFUN=aa
1378 )))
1379
1380
1381 === 3.3.6 RS485 command timeout ===
1382
1383
1384 (((
1385 Some Modbus device has slow action to send replies. This command is used to configure the RS485-LB to use longer time to wait for their action.
1386 )))
1387
1388 (((
1389 Default value: 0, range:  0 ~~ 10 seconds
1390 )))
1391
1392 (((
1393 * (% style="color:#037691" %)**AT Command:**
1394
1395 (% style="color:#4472c4" %)**AT+CMDDLaa=hex(bb cc)**
1396 )))
1397
1398 (((
1399 **Example:**
1400 )))
1401
1402 (((
1403 **AT+CMDDL1=1000** to send the open time to 1000ms
1404 )))
1405
1406
1407 * (((
1408 (% style="color:#037691" %)**Downlink Payload:**
1409 )))
1410
1411 (((
1412 (% style="color:#4472c4" %) **0x AA aa bb cc**(%%)  Same as:** AT+CMDDLaa=hex(bb cc)**
1413 )))
1414
1415 (((
1416 **Example:**
1417 )))
1418
1419 (((
1420 (% style="color:#4472c4" %)** 0xAA 01 03 E8**(%%)  ~-~-> Same as (% _mstmutation="1" %)**AT+CMDDL1=1000 ms**
1421 )))
1422
1423
1424 === 3.3.7 Uplink payload mode ===
1425
1426
1427 (((
1428 Define to use one uplink or multiple uplinks for the sampling.
1429 )))
1430
1431 (((
1432 The use of this command please see: [[Compose Uplink payload>>||anchor="H2.5.4Composetheuplinkpayload"]]
1433 )))
1434
1435 (((
1436 * (% style="color:#037691" %)**AT Command:**
1437
1438 (% style="color:#4472c4" %)** AT+DATAUP=0**
1439
1440 (% style="color:#4472c4" %)** AT+DATAUP=1**
1441 )))
1442
1443
1444 * (((
1445 (% style="color:#037691" %)**Downlink Payload:**
1446 )))
1447
1448 (((
1449 (% style="color:#4472c4" %)** 0xAD 00**  (%%) **~-~->** Same as AT+DATAUP=0
1450 )))
1451
1452 (((
1453 (% style="color:#4472c4" %)** 0xAD 01**   (%%)**~-~->** Same as AT+DATAUP=1  ~/~/Each uplink is sent to the server one after the other as it is segmented.
1454
1455
1456 )))
1457
1458 (((
1459 * (% style="color:#037691" %)**AT Command:**
1460
1461 (% style="color:#4472c4" %)**AT+DATAUP=1,Timeout**
1462 )))
1463
1464
1465 * (((
1466 (% style="color:#037691" %)**Downlink Payload:**
1467 )))
1468
1469 (((
1470 (% style="color:#4472c4" %)** 0xAD 01 00 00 14** (%%) **~-~->** Same as AT+DATAUP=1,20000 ~/~/(00 00 14 is 20 seconds)
1471 )))
1472
1473 (((
1474 Each uplink is sent to the server at 20-second intervals when segmented.
1475 )))
1476
1477
1478 === 3.3.8 Clear RS485 Command ===
1479
1480
1481 (((
1482 The AT+COMMANDx and AT+DATACUTx  AT+SEARCHx and AT+CMDDLx settings are stored in special location, user can use below command to clear them.
1483 )))
1484
1485
1486 * (((
1487 (% style="color:#037691" %)**AT Command:**
1488 )))
1489
1490 (((
1491 (% style="color:#4472c4" %) **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/AT+SEARCH1/AT+CMDDL1 to AT+COMMANDA/AT+DATACUTA/AT+SEARCHA/AT+CMDDLA.
1492
1493
1494 )))
1495
1496 (((
1497 Example screen shot after clear all RS485 commands. 
1498 )))
1499
1500
1501 (((
1502 The uplink screen shot is:
1503 )))
1504
1505 (((
1506 [[image:1654134704555-320.png]]
1507 )))
1508
1509
1510 * (((
1511 (% style="color:#037691" %)**Downlink Payload:**
1512 )))
1513
1514 (((
1515 (% style="color:#4472c4" %)** 0x09 aa bb**(%%) same as AT+CMDEAR=aa,bb
1516 )))
1517
1518
1519 === 3.3.9 Set Serial Communication Parameters ===
1520
1521
1522 (((
1523 Set the Rs485 serial communication parameters:
1524 )))
1525
1526 * (((
1527 (% style="color:#037691" %)**AT Command:**
1528 )))
1529
1530 (((
1531
1532
1533 * **Set Baud Rate:**
1534 )))
1535
1536 (% style="color:#4472c4" %)** AT+BAUDR=9600** (%%) ~/~/ Options: (200~~115200),When using low baud rate or receiving multiple bytes, you need to use AT+CMDDL to increase the receive timeout (the default receive timeout is 300ms), otherwise data will be lost.
1537
1538
1539 * **Set UART Parity**
1540
1541 (% style="color:#4472c4" %)** AT+PARITY=0**  (%%) ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity
1542
1543
1544 * **Set STOPBIT**
1545
1546 (% style="color:#4472c4" %)** AT+STOPBIT=1** (%%) ~/~/ Option:1 for 1 bit ; 2 for 2 bits
1547
1548
1549 * **Set DATABIT**
1550
1551 (% style="color:#4472c4" %)** AT+DATABIT=8** (%%) ~/~/ Option:7 for 7 bits ; 8 for 8 bits
1552
1553
1554 * (((
1555 (% style="color:#037691" %)**Downlink Payload:**
1556 )))
1557
1558 (((
1559 **Example:**
1560 )))
1561
1562 (((
1563 A7 01 00 60   same as AT+BAUDR=9600
1564 )))
1565
1566 (((
1567 A7 01 04 80  same as AT+BAUDR=115200
1568 )))
1569
1570 (((
1571 A7 02 aa: Same as  AT+PARITY=aa  (aa value: 00 , 01 or 02)
1572 )))
1573
1574 (((
1575 A7 03 aa: Same as  AT+STOPBIT=aa  (aa value: 01 or 02)
1576 )))
1577
1578 A7 04 07: Same as  AT+DATABIT=7
1579
1580 A7 04 08: Same as  AT+DATABIT=8
1581
1582
1583 === 3.3.10 Cut data separation processing ===
1584
1585
1586 AT+NEWLINE command, which only takes effect when AT+DATAUP=1 or AT+DATAUP=1, timeout.
1587
1588 When not set, each part of AT+DATAUP is sent according to the maximum number of bytes of DR.
1589
1590 When setting, each part of AT+DATAUP is sent according to the value set by AT+NEWLINE.
1591
1592
1593 * (((
1594 (% style="color:#037691" %)** AT Command:**
1595 )))
1596
1597 (% style="color:#4472c4" %)//**AT+NEWLINE=ALL**//(%%)//   //The data cut out by each AT+COMMANDx command is sent separately as an uplink.
1598
1599 (% style="color:#4472c4" %)//**AT+NEWLINE=ALL**//(%%)//   equal:  (% style="color:#4472c4" %)**AT+NEWLINE=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15**//
1600
1601
1602 (% style="color:#4472c4" %)//**AT+NEWLINE=a+b+c**//(%%)//  //The data returned by all commands is divided into three parts, COMMAND(1~~a) is the first part, COMMAND(a+1~~b) is the second part,COMMAND(b+1~~c) is the third part.
1603
1604
1605 (% style="color:#4472c4" %)//**AT+NEWLINE=NULL**//(%%)//  //Turn off the functionality of this AT command.
1606
1607
1608 * (((
1609 (% style="color:#037691" %)** Downlink Payload:**
1610 )))
1611
1612 //AT+NEWLINE=ALL  ~-~-->  (% style="color:#4472c4" %)**0xA5 01**//
1613
1614 // AT+NEWLINE= NULL  ~-~-->  (% style="color:#4472c4" %)**0xA5 00**//
1615
1616 //AT+NEWLINE= a+b+c   ~-~-->  (% style="color:#4472c4" %)**0xA5 number of bytes a b c**//
1617
1618 //AT+NEWLINE= 1+5+15 ~-~-->  (% style="color:#4472c4" %)**0xA5 03 01 05 0F**//
1619
1620
1621 === 3.3.11 Control output power duration ===
1622
1623
1624 (((
1625 User can set the output power duration before each sampling.
1626 )))
1627
1628 * (((
1629 (% style="color:#037691" %)**AT Command:**
1630 )))
1631
1632 (((
1633 **Example:**
1634 )))
1635
1636 (((
1637 (% style="color:#4472c4" %)** AT+3V3T=1000**(%%)  ~/~/ 3V3 output power will open 1s before each sampling.
1638
1639 (% style="color:#4472c4" %)** AT+3V3T=0**(%%)  ~/~/ Normally open 3V3 power supply.
1640
1641 (% style="color:#4472c4" %)** AT+3V3T=65535**(%%)  ~/~/ Normally closed 3V3 power supply.
1642 )))
1643
1644 (((
1645 (% style="color:#4472c4" %)** AT+5VT=1000**  (%%) ~/~/ +5V output power will open 1s before each sampling.
1646 )))
1647
1648 (% style="color:#4472c4" %)** AT+5VT=0**(%%)  ~/~/ Normally closed +5V power supply.
1649
1650 (% style="color:#4472c4" %)** AT+5VT=65535**(%%)  ~/~/ Normally open +5V power supply.
1651
1652
1653 * (((
1654 (% style="color:#037691" %)**LoRaWAN Downlink Command:**
1655 )))
1656
1657 (((
1658 (% style="color:#4472c4" %)** 07 01 aa bb** (%%): Same as AT+5VT=(aa bb)
1659 )))
1660
1661 (((
1662 (% style="color:#4472c4" %)** 07 02 aa bb** (%%): Same as AT+3V3T=(aa bb)
1663 )))
1664
1665 (% style="color:#4472c4" %)** 07 03 01** (%%): Same as AT+3V3T=0
1666
1667 (% style="color:#4472c4" %)** 07 03 00** (%%): Same as AT+3V3T=65535
1668
1669 (% style="color:#4472c4" %)** 07 04 01** (%%): Same as AT+5VT=65535
1670
1671 (% style="color:#4472c4" %)** 07 03 00** (%%): Same as AT+5VT=0
1672
1673
1674 === 3.3.12 Encrypted payload ===
1675
1676
1677 * (((
1678 (% style="color:#037691" %)**AT Command:**
1679 )))
1680
1681 (% style="color:#4472c4" %)** AT+DECRYPT=1 **(%%)** **~/~/ The payload is uploaded without encryption
1682
1683 (% style="color:#4472c4" %)** AT+DECRYPT=0   **(%%)~/~/  Encrypt when uploading payload (default)
1684
1685
1686 === 3.3.13 Get sensor value ===
1687
1688
1689 * (((
1690 (% style="color:#037691" %)**AT Command:**
1691 )))
1692
1693 (% style="color:#4472c4" %)** AT+GETSENSORVALUE=0 **(%%)** **~/~/ The serial port gets the reading of the current sensor
1694
1695 (% style="color:#4472c4" %)** AT+GETSENSORVALUE=1    **(%%)~/~/ The serial port gets the current sensor reading and uploads it.
1696
1697
1698 === 3.3.14 Resets the downlink packet count ===
1699
1700
1701 * (((
1702 (% style="color:#037691" %)**AT Command:**
1703 )))
1704
1705 (% style="color:#4472c4" %)** AT+DISFCNTCHECK=0    **(%%) ~/~/  When the downlink packet count sent by the server is less than the node downlink packet count or exceeds 16384, the node will no longer receive downlink packets (default)
1706
1707 (% style="color:#4472c4" %)** AT+DISFCNTCHECK=1    **(%%) ~/~/  When the downlink packet count sent by the server is less than the node downlink packet count or exceeds 16384, the node resets the downlink packet count and keeps it consistent with the server downlink packet count.
1708
1709
1710 === 3.3.15 When the limit bytes are exceeded, upload in batches ===
1711
1712
1713 * (((
1714 (% style="color:#037691" %)**AT Command:**
1715 )))
1716
1717 (% style="color:#4472c4" %)** AT+DISMACANS=0**  (%%) ~/~/  When the MACANS of the reply server plus the payload exceeds the maximum number of bytes of 11 bytes (DR0 of US915, DR2 of AS923, DR2 of AU195), the node will send a packet with a payload of 00 and a port of 4. (default)
1718
1719 (% style="color:#4472c4" %)** AT+DISMACANS=1**  (%%) ~/~/  When the MACANS of the reply server plus the payload exceeds the maximum number of bytes of the DR, the node will ignore the MACANS and not reply, and only upload the payload part.
1720
1721
1722 * (((
1723 (% style="color:#037691" %)**Downlink Payload**
1724 )))
1725
1726 (% style="color:#4472c4" %)** 0x21 00 01 ** (%%) ~/~/ Set  the DISMACANS=1
1727
1728
1729 === 3.3.16 Copy downlink to uplink ===
1730
1731
1732 * (((
1733 (% style="color:#037691" %)**AT Command:**
1734 )))
1735
1736 (% style="color:#4472c4" %)** AT+RPL=5** (%%) ~/~/ After receiving the package from the server, it will immediately upload the content of the package to the server, the port number is 100.
1737
1738
1739 Example:**aa xx xx xx xx**         ~/~/ aa indicates whether the configuration has changed, 00 is yes, 01 is no; xx xx xx xx are the bytes sent.
1740
1741
1742 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220823173747-6.png?width=1124&height=165&rev=1.1||alt="image-20220823173747-6.png"]]
1743
1744
1745
1746 For example, sending 11 22 33 44 55 66 77 will return invalid configuration 00 11 22 33 44 55 66 77.
1747
1748
1749 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220823173833-7.png?width=1124&height=149&rev=1.1||alt="image-20220823173833-7.png"]]
1750
1751
1752 For example, if 01 00 02 58 is issued, a valid configuration of 01 01 00 02 58 will be returned.
1753
1754
1755 === 3.3.17 Query version number and frequency band ===
1756
1757
1758 * (((
1759 (% style="color:#037691" %)**Downlink Payload: 26 01  **(%%) ~/~/ Downlink 26 01 can query device upload frequency, frequency band, software version number, battery.
1760 )))
1761
1762 **Example:**
1763
1764 [[image:image-20231019173852-1.png||height="64" width="1161"]]
1765
1766
1767 == 3.4 +3V3 Output ==
1768
1769
1770 (((
1771 RS485-LB/LS has a Controllable +3V3 output, user can use this output to power external sensor.
1772 )))
1773
1774 (((
1775 The +3V3 output will be valid for every sampling. RS485-LB/LS will enable +3V3 output before all sampling and disable the +3V3 after all sampling. 
1776 )))
1777
1778 (((
1779 The +3V3 output time can be controlled by AT Command.
1780 )))
1781
1782
1783 (((
1784 (% style="color:#037691" %)**AT+3V3T=1000**
1785 )))
1786
1787
1788 (((
1789 Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors.
1790 )))
1791
1792 (((
1793 By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time
1794 )))
1795
1796
1797 == 3.5 +5V Output ==
1798
1799
1800 (((
1801 RS485-LB/LS has a Controllable +5V output, user can use this output to power external sensor.
1802 )))
1803
1804 (((
1805 The +5V output will be valid for every sampling. RS485-LB/LS will enable +5V output before all sampling and disable the +5v after all sampling. 
1806 )))
1807
1808 (((
1809 The 5V output time can be controlled by AT Command.
1810 )))
1811
1812 (((
1813
1814 )))
1815
1816 (((
1817 (% style="color:#037691" %)**AT+5VT=1000**
1818 )))
1819
1820
1821 (((
1822 Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors.
1823 )))
1824
1825 (((
1826 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.
1827 )))
1828
1829
1830 == 3.6 Switch Jumper ==
1831
1832
1833 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:463px" %)
1834 |=(% style="width: 123px;background-color:#4F81BD;color:white" %)**Switch Jumper**|=(% style="width: 340px;background-color:#4F81BD;color:white" %)**Feature**
1835 |(% style="width:123px" %)SW1|(% style="width:336px" %)ISP position: Upgrade firmware via UART
1836 Flash position: Configure device, check running status.
1837 |(% style="width:123px" %)SW2|(% style="width:336px" %)5V position: set to compatible with 5v I/O.
1838 3.3v position: set to compatible with 3.3v I/O.,
1839
1840 (((
1841 (% style="color:blue" %)** +3.3V**(%%): is always ON
1842 )))
1843
1844 (((
1845 (% style="color:blue" %)** +5V**(%%): Only open before every sampling. The time is by default, it is (% style="color:#4472c4" %)** AT+5VT=0**(%%).
1846
1847 (% style="color:red" %)**Note: If SW2 is at +5V and AT+5VT=0, work mode 2 will not be able to send data.**
1848 )))
1849
1850
1851 == 3.7 Battery & Power Consumption ==
1852
1853
1854 RS485-LB use ER26500 + SPC1520 battery pack and RS485-LS use 3000mAh Recharable Battery with Solar Panel. See below link for detail information about the battery info and how to replace.
1855
1856 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1857
1858
1859 = 4. Case Study =
1860
1861
1862 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]]
1863
1864
1865 = 5. OTA Firmware update =
1866
1867
1868 (% class="wikigeneratedid" %)
1869 **User can change firmware RS485-LB/LS to:**
1870
1871 * Change Frequency band/ region.
1872 * Update with new features.
1873 * Fix bugs.
1874
1875 **Firmware and changelog can be downloaded from :** **[[Firmware download link>>https://www.dropbox.com/sh/nqaaag2ipm07txf/AAC_angqlhA0yQmiWVNbEEdya?dl=0]]**
1876
1877 **Methods to Update Firmware:**
1878
1879 * (Recommanded way) OTA firmware update via wireless: **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]]**
1880
1881 * Update through UART TTL interface: **[[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]**.
1882
1883 = 6. FAQ =
1884
1885 == 6.1 How to upgrade the image? ==
1886
1887
1888 (((
1889 The RS485-LB/LS LoRaWAN Controller is shipped with a 3.5mm cable, the cable is used to upload image to RS485-LB/LS to:
1890 )))
1891
1892 * (((
1893 Support new features
1894 )))
1895 * (((
1896 For bug fix
1897 )))
1898 * (((
1899 Change LoRaWAN bands.
1900 )))
1901
1902 (((
1903 Below shows the hardware connection for how to upload an image to RS485-LB/LS:
1904 )))
1905
1906 [[image:http://8.211.40.43/xwiki/bin/download/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/WebHome/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230809144604.jpg?width=791&height=673&rev=1.1||alt="微信图片_20230809144604.jpg"]]
1907
1908
1909 Update through UART TTL interface: **[[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]**.
1910
1911
1912 == 6.2 How to change the LoRa Frequency Bands/Region? ==
1913
1914
1915 (((
1916 User can follow the introduction for [[how to upgrade image>>||anchor="H6.1Howtoupgradetheimage3F"]]. When download the images, choose the required image file for download.
1917 )))
1918
1919
1920 == 6.3 How many RS485-Slave can RS485-LB/LS connects? ==
1921
1922
1923 (((
1924 The RS485-LB/LS can support max 32 RS485 devices. Each uplink command of RS485-LB/LS can support max 16 different RS485 command. So RS485-LB/LS 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.
1925 )))
1926
1927
1928 == 6.4 How to Use RS485-LB/LS  to connect to RS232 devices? ==
1929
1930
1931 [[Use RS485-LB/LS or RS485-LN to connect to RS232 devices. - DRAGINO>>http://wiki.dragino.com/xwiki/bin/view/Main/RS485%20to%20RS232/]]
1932
1933
1934 == 6.5 How to judge whether there is a problem with the set COMMAND ==
1935
1936 === 6.5.1 Introduce: ===
1937
1938
1939 Users can use below the structure to fast debug the communication between RS485-LB/LS and RS485-LN. The principle is to put the PC in the RS485 network and sniff the packet between Modbus MTU and RS485-LB/LS/LN. We can (% style="color:blue" %)**use this way to:**
1940
1941 1. Test if Modbus-MTU works with PC commands.
1942 1. Check if RS485-LN sent the expected command to Mobus-MTU
1943 1. Check if Modbus-MTU return back the expected result to RS485-LN.
1944 1. If both b) and c) has issue, we can compare PC's output and RS485-LN output.
1945
1946 [[image:image-20230718135819-4.png||height="342" width="638"]]
1947
1948
1949 (% style="color:blue" %)**Example Connection: **
1950
1951 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-2.png?rev=1.1||alt="image-20221130104310-2.png"]]
1952
1953
1954 === 6.5.2 Set up PC to monitor RS485 network With Serial tool ===
1955
1956
1957 (% style="color:red" %)**Note: Receive and send set to hex mode**
1958
1959 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-3.png?width=714&height=616&rev=1.1||alt="image-20221130104310-3.png" height="616" width="714"]]
1960
1961
1962 === 6.5.3 With ModRSsim2: ===
1963
1964
1965 (% style="color:blue" %)**(1) Select serial port MODBUS RS-232**
1966
1967 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-4.png?width=865&height=390&rev=1.1||alt="image-20221130104310-4.png" height="390" width="865"]]
1968
1969
1970 (% style="color:blue" %)**(2) Click the serial port icon**
1971
1972 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-5.png?width=870&height=392&rev=1.1||alt="image-20221130104310-5.png" height="392" width="870"]]
1973
1974
1975 (% style="color:blue" %)**(3) After selecting the correct serial port and baud rate, click ok**
1976
1977 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-6.png?rev=1.1||alt="image-20221130104310-6.png"]]
1978
1979
1980 (% style="color:blue" %)**(4) Click the comms.**
1981
1982 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-7.png?width=835&height=376&rev=1.1||alt="image-20221130104310-7.png" height="376" width="835"]]
1983
1984 Run RS485-LN/BL command and monitor if it is correct.
1985
1986
1987 === 6.5.4 Example – Test the CFGDEV command ===
1988
1989
1990 RS485-LN sent below command:
1991
1992 (% style="color:blue" %)**AT+CFGDEV=01 03 20 00 01 85 c0,1**(%%) to RS485 network, and PC is able to get this command and return commands from MTU to show in the serial tool.
1993
1994 We can see the output from the Serial port tool to analyze. And check if they are expected result.
1995
1996 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-8.png?width=797&height=214&rev=1.1||alt="image-20221130104310-8.png" height="214" width="797"]]
1997
1998
1999 We can also use ModRSsim2 to see the output.
2000
2001 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-9.png?width=729&height=531&rev=1.1||alt="image-20221130104310-9.png" height="531" width="729"]]
2002
2003
2004 === 6.5.5 Example – Test CMD command sets. ===
2005
2006
2007 Run (% style="color:blue" %)**AT+SENSORVALUE=1**(%%) to test the CMD commands set in RS485-LN.
2008
2009 (% style="color:blue" %)**Serial port tool:**
2010
2011 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-10.png?width=844&height=339&rev=1.1||alt="image-20221130104310-10.png" height="339" width="844"]]
2012
2013
2014 (% style="color:blue" %)**ModRSsim2:**
2015
2016 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-11.png?width=962&height=281&rev=1.1||alt="image-20221130104310-11.png" height="281" width="962"]]
2017
2018
2019 === 6.5.6 Test with PC ===
2020
2021
2022 If there is still have problem to set up correctly the commands between RS485-LN and MTU. User can test the correct RS485 command set in PC and compare with the RS485 command sent out via RS485-LN. as long as both commands are the same, the MTU should return correct result.
2023
2024 Or User can send the working commands set in PC serial tool to Dragino Support to check what should be configured in RS485-LN.
2025
2026 (% style="color:blue" %)**Connection method:**
2027
2028 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-12.png?rev=1.1||alt="image-20221130104310-12.png"]]
2029
2030
2031 (% style="color:blue" %)**Link situation:**
2032
2033 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-13.png?width=486&height=458&rev=1.1||alt="image-20221130104310-13.png" height="458" width="486"]]
2034
2035
2036 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20221130104310-14.png?width=823&height=371&rev=1.1||alt="image-20221130104310-14.png" height="371" width="823"]]
2037
2038
2039 == 6.6 Where to get the decoder for RS485-LB/LS? ==
2040
2041
2042 The decoder for RS485-LB/LS needs to be written by yourself. Because the sensor to which the user is connected is custom, the read device data bytes also need custom parsing, so there is no universal decoder. We can only provide [[templates>>https://github.com/dragino/dragino-end-node-decoder]] for decoders (no intermediate data parsing part involved)
2043
2044
2045
2046 = 7. Trouble Shooting =
2047
2048 == 7.1 Downlink doesn't work, how to solve it? ==
2049
2050
2051 Please see this link for debug: [[LoRaWAN Communication Debug>>doc:Main.LoRaWAN Communication Debug.WebHome]]
2052
2053
2054 == 7.2 Why I can't join TTN V3 in US915 /AU915 bands? ==
2055
2056
2057 It might about the channels mapping. Please see for detail: [[Notice of Frequency band>>doc:Main.LoRaWAN Communication Debug.WebHome||anchor="H2.NoticeofUS9152FCN4702FAU915Frequencyband"]]
2058
2059
2060 == 7.3 Possible reasons why the device is unresponsive: ==
2061
2062 ~1. Check whether the battery voltage is lower than 2.8V
2063 2. Check whether the jumper of the device is correctly connected
2064
2065 [[image:image-20240330172639-1.png||height="308" width="526"]]
2066 3. Check whether the switch here of the device is at the ISP(The switch can operate normally only when it is in RUN)
2067
2068 [[image:image-20240330172716-2.png||height="294" width="523"]]
2069
2070
2071 = 8. Order Info =
2072
2073
2074 **Part Number: (% style="color:blue" %)RS485-LB-XX-YY(%%) or (% style="color:blue" %)RS485-LS-XX-YY(%%)**
2075
2076 (% style="color:blue" %)**XX:**
2077
2078 * (% style="color:red" %)**EU433**(%%):  frequency bands EU433
2079 * (% style="color:red" %)**EU868**(%%):  frequency bands EU868
2080 * (% style="color:red" %)**KR920**(%%):  frequency bands KR920
2081 * (% style="color:red" %)**CN470**(%%):  frequency bands CN470
2082 * (% style="color:red" %)**AS923**(%%):  frequency bands AS923
2083 * (% style="color:red" %)**AU915**(%%):  frequency bands AU915
2084 * (% style="color:red" %)**US915**(%%):  frequency bands US915
2085 * (% style="color:red" %)**IN865**(%%):  frequency bands IN865
2086 * (% style="color:red" %)**RU864**(%%):  frequency bands RU864
2087 * (% style="color:red" %)**KZ865**(%%):  frequency bands KZ865
2088
2089 (% style="color:blue" %)**YY:**(%%)**  Hole Option**
2090
2091 (% style="color:red" %)**12**(%%): With M12 waterproof cable hole
2092 (% style="color:red" %)**16**(%%): With M16 waterproof cable hole
2093
2094 = 9. Packing Info =
2095
2096
2097 (((
2098 **Package Includes**:
2099 )))
2100
2101 * (((
2102 RS485-LB or RS485-LS x 1
2103 )))
2104 * (((
2105 Stick Antenna for LoRa RF part x 1
2106 )))
2107 * (((
2108 Program cable x 1
2109 )))
2110
2111 (((
2112 **Dimension and weight**:
2113 )))
2114
2115 * (((
2116 Device Size: cm
2117 )))
2118 * (((
2119 Device Weight: g
2120 )))
2121 * (((
2122 Package Size / pcs : cm
2123 )))
2124 * (((
2125 Weight / pcs : g
2126
2127
2128
2129 )))
2130
2131 = 10. Support =
2132
2133
2134 * (((
2135 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.
2136 )))
2137 * (((
2138 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]]
2139
2140
2141
2142 )))
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0