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

From version 29.16
edited by Xiaoling
on 2022/06/01 18:05
Change comment: There is no comment for this version
To version 6.1
edited by Xiaoling
on 2022/05/19 17:41
Change comment: Uploaded new attachment "1652953304999-717.png", version {1}

Summary

Details

Page properties
Content
... ... @@ -1,6 +1,7 @@
1 1  (% style="text-align:center" %)
2 2  [[image:1652947681187-144.png||height="385" width="385"]]
3 3  
4 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.jpg]]
4 4  
5 5  
6 6  
... ... @@ -7,15 +7,12 @@
7 7  **RS485-BL – Waterproof RS485 to LoRaWAN Converter User Manual**
8 8  
9 9  
10 -
11 11  **Table of Contents:**
12 12  
13 -{{toc/}}
14 14  
15 15  
16 16  
17 17  
18 -
19 19  = 1.Introduction =
20 20  
21 21  == 1.1 What is RS485-BL RS485 to LoRaWAN Converter ==
... ... @@ -25,19 +25,19 @@
25 25  )))
26 26  
27 27  (((
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 +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.
29 29  )))
30 30  
31 31  (((
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 +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.
33 33  )))
34 34  
35 35  (((
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 +RS485-BL is IP67 **waterproof** and powered by **8500mAh Li-SOCI2 battery**, it is designed for long term use for several years.
37 37  )))
38 38  
39 39  (((
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 +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.
41 41  )))
42 42  
43 43  (((
... ... @@ -52,16 +52,14 @@
52 52  Each RS485-BL 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.
53 53  )))
54 54  
55 -[[image:1652953304999-717.png||height="424" width="733"]]
53 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png]]
56 56  
57 -
58 -
59 59  == 1.2 Specifications ==
60 60  
61 61  **Hardware System:**
62 62  
63 63  * STM32L072CZT6 MCU
64 -* SX1276/78 Wireless Chip 
60 +* SX1276/78 Wireless Chip
65 65  * Power Consumption (exclude RS485 device):
66 66  ** Idle: 6uA@3.3v
67 67  
... ... @@ -95,7 +95,6 @@
95 95  * 127 dB Dynamic Range RSSI.
96 96  * Automatic RF Sense and CAD with ultra-fast AFC. ​​​
97 97  
98 -
99 99  == 1.3 Features ==
100 100  
101 101  * LoRaWAN Class A & Class C protocol (default Class A)
... ... @@ -107,7 +107,6 @@
107 107  * Support Modbus protocol
108 108  * Support Interrupt uplink
109 109  
110 -
111 111  == 1.4 Applications ==
112 112  
113 113  * Smart Buildings & Home Automation
... ... @@ -117,12 +117,10 @@
117 117  * Smart Cities
118 118  * Smart Factory
119 119  
114 +== 1.5 Firmware Change log ==
120 120  
121 -== 1.5 Firmware Change log ==
122 -
123 123  [[RS485-BL Image files – Download link and Change log>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/RS485-BL/Firmware/||style="background-color: rgb(255, 255, 255);"]]
124 124  
125 -
126 126  == 1.6 Hardware Change log ==
127 127  
128 128  (((
... ... @@ -149,272 +149,233 @@
149 149  
150 150  (((
151 151  Release version ​​​​​
152 -
153 -
154 154  )))
155 155  
156 156  = 2. Pin mapping and Power ON Device =
157 157  
158 -(((
159 159  The RS485-BL is powered on by 8500mAh battery. To save battery life, RS485-BL is shipped with power off. User can put the jumper to power on RS485-BL.
160 -)))
161 161  
162 162  [[image:1652953055962-143.png||height="387" width="728"]]
163 163  
152 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png]]
164 164  
165 165  The Left TXD and RXD are TTL interface for external sensor. TTL level is controlled by 3.3/5v Jumper.
166 166  
167 167  
168 -= 3. Operation Mode =
169 169  
170 -== 3.1 How it works? ==
158 +3. Operation Mode
159 +3.1 How it works?
171 171  
172 -(((
173 173  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.
174 174  
175 -
176 -)))
177 177  
178 -== 3.2 Example to join LoRaWAN network ==
164 +1.
165 +11. Example to join LoRaWAN network
179 179  
180 -Here shows an example for how to join the TTN V3 Network. Below is the network structure, we use [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]] as LoRaWAN gateway here. 
167 +Here shows an example for how to join the TTN V3 Network. Below is the network structure, we use [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]] as LoRaWAN gateway here.
181 181  
182 -[[image:1652953414711-647.png||height="337" width="723"]]
169 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png]]
183 183  
184 -(((
171 +
185 185  The RS485-BL in this example connected to two RS485 devices for demonstration, user can connect to other RS485 devices via the same method.
186 -)))
187 187  
188 -(((
174 +
189 189  The LG308 is already set to connect to [[TTN V3 network >>url:https://www.thethingsnetwork.org/]]. So what we need to now is only configure the TTN V3:
190 -)))
191 191  
192 -(((
193 193  **Step 1**: Create a device in TTN V3 with the OTAA keys from RS485-BL.
194 -)))
195 195  
196 -(((
197 197  Each RS485-BL is shipped with a sticker with unique device EUI:
198 -)))
199 199  
200 -[[image:1652953462722-299.png]]
181 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png]]
201 201  
202 -(((
183 +
184 +
185 +
203 203  User can enter this key in their LoRaWAN Server portal. Below is TTN V3 screen shot:
204 -)))
205 205  
206 -(((
207 207  Add APP EUI in the application.
208 -)))
209 209  
190 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png]]
210 210  
192 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png]]
211 211  
194 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png]]
212 212  
213 -[[image:image-20220519174512-1.png]]
196 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png]]
214 214  
215 -[[image:image-20220519174512-2.png||height="328" width="731"]]
216 216  
217 -[[image:image-20220519174512-3.png||height="556" width="724"]]
218 218  
219 -[[image:image-20220519174512-4.png]]
220 220  
201 +
202 +
203 +
204 +
205 +
206 +
207 +
208 +
209 +
210 +
211 +
212 +
213 +
221 221  You can also choose to create the device manually.
222 222  
223 -[[image:1652953542269-423.png||height="710" width="723"]]
216 +|(((
217 +
218 +)))
224 224  
220 +
221 +
222 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png]]
223 +
225 225  Add APP KEY and DEV EUI
226 226  
227 -[[image:1652953553383-907.png||height="514" width="724"]]
226 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image011.png]]
228 228  
229 229  
230 -(((
231 231  **Step 2**: Power on RS485-BL 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.
232 -)))
233 233  
234 -[[image:1652953568895-172.png||height="232" width="724"]]
231 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png]]
235 235  
236 -== 3.3 Configure Commands to read data ==
237 237  
238 -(((
239 -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.
240 240  
241 -
242 -)))
243 243  
244 -=== 3.3.1 onfigure UART settings for RS485 or TTL communication ===
236 +1.
237 +11. Configure Commands to read data
245 245  
239 +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.
240 +
241 +
242 +1.
243 +11.
244 +111. Configure UART settings for RS485 or TTL communication
245 +
246 246  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
247 247  
248 -**~1. RS485-MODBUS mode:**
248 +1. RS485-MODBUS mode:
249 249  
250 250  AT+MOD=1 ~/~/ Support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins.
251 251  
252 -**2. TTL mode:**
253 253  
253 +1. TTL mode:
254 +
254 254  AT+MOD=2 ~/~/ Support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins.
255 255  
257 +
256 256  RS485-BL default UART settings is **9600, no parity, stop bit 1**. If the sensor has a different settings, user can change the RS485-BL setting to match.
257 257  
258 -(% border="1" style="background-color:#ffffcc; color:green; width:795px" %)
259 -|(((
260 -**AT Commands**
261 -)))|(% style="width:285px" %)(((
262 -**Description**
263 -)))|(% style="width:347px" %)(((
264 -**Example**
265 -)))
266 -|(((
267 -AT+BAUDR
268 -)))|(% style="width:285px" %)(((
269 -Set the baud rate (for RS485 connection). Default Value is: 9600.
270 -)))|(% style="width:347px" %)(((
271 -(((
260 +
261 +|**AT Commands**|**Description**|**Example**
262 +|AT+BAUDR|Set the baud rate (for RS485 connection). Default Value is: 9600.|(((
272 272  AT+BAUDR=9600
273 -)))
274 274  
275 -(((
276 276  Options: (1200,2400,4800,14400,19200,115200)
277 277  )))
278 -)))
279 -|(((
280 -AT+PARITY
281 -)))|(% style="width:285px" %)(((
282 -(((
267 +|AT+PARITY|(((
283 283  Set UART parity (for RS485 connection)
284 -)))
285 285  
286 -(((
287 287  Default Value is: no parity.
288 -)))
289 -)))|(% style="width:347px" %)(((
290 -(((
271 +)))|(((
291 291  AT+PARITY=0
292 -)))
293 293  
294 -(((
295 295  Option: 0: no parity, 1: odd parity, 2: even parity
296 296  )))
297 -)))
298 -|(((
299 -AT+STOPBIT
300 -)))|(% style="width:285px" %)(((
301 -(((
276 +|AT+STOPBIT|(((
302 302  Set serial stopbit (for RS485 connection)
303 -)))
304 304  
305 -(((
306 306  Default Value is: 1bit.
307 -)))
308 -)))|(% style="width:347px" %)(((
309 -(((
280 +)))|(((
310 310  AT+STOPBIT=0 for 1bit
311 -)))
312 312  
313 -(((
314 314  AT+STOPBIT=1 for 1.5 bit
315 -)))
316 316  
317 -(((
318 318  AT+STOPBIT=2 for 2 bits
319 319  )))
320 -)))
321 321  
322 -=== 3.3.2 Configure sensors ===
323 323  
324 -(((
325 -Some sensors might need to configure before normal operation. User can configure such sensor via PC or through RS485-BL AT Commands (% style="color:#4f81bd" %)**AT+CFGDEV**.
326 -)))
327 327  
328 -(((
329 -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.
330 -)))
331 331  
332 -(% border="1" style="background-color:#ffffcc; color:green; width:806px" %)
333 -|**AT Commands**|(% style="width:418px" %)**Description**|(% style="width:256px" %)**Example**
334 -|AT+CFGDEV|(% style="width:418px" %)(((
291 +
292 +1.
293 +11.
294 +111. Configure sensors
295 +
296 +Some sensors might need to configure before normal operation. User can configure such sensor via PC or through RS485-BL AT Commands AT+CFGDEV.
297 +
298 +
299 +When user issue an AT+CFGDEV command, Each 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.
300 +
301 +|**AT Commands**|**Description**|**Example**
302 +|AT+CFGDEV|(((
335 335  This command is used to configure the RS485/TTL devices; they won’t be used during sampling.
336 336  
337 -AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,
305 +AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
338 338  
339 -mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
340 -)))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
307 +m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
308 +)))|AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
341 341  
342 342  Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>path:#AT_CFGDEV]].
343 343  
344 -=== 3.3.3 Configure read commands for each sampling ===
345 345  
346 -(((
313 +
314 +
315 +
316 +1.
317 +11.
318 +111. Configure read commands for each sampling
319 +
347 347  RS485-BL 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.
348 -)))
349 349  
350 -(((
322 +
351 351  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.
352 -)))
353 353  
354 -(((
325 +
355 355  To save the LoRaWAN network bandwidth, we might need to read data from different sensors and combine their valid value into a short payload.
356 -)))
357 357  
358 -(((
328 +
359 359  This section describes how to achieve above goals.
360 -)))
361 361  
362 -(((
331 +
363 363  During each sampling, the RS485-BL can support 15 commands to read sensors. And combine the return to one or several uplink payloads.
364 -)))
365 365  
366 -(((
334 +
367 367  **Command from RS485-BL to Sensor:**
368 -)))
369 369  
370 -(((
371 371  RS485-BL can send out pre-set max 15 strings via **AT+COMMAD1**, **ATCOMMAND2**,…, to **AT+COMMANDF** . All commands are of same grammar.
372 -)))
373 373  
374 -(((
339 +
375 375  **Handle return from sensors to RS485-BL**:
376 -)))
377 377  
378 -(((
379 379  After RS485-BL send out a string to sensor, RS485-BL 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**
380 -)))
381 381  
382 -* (((
383 -**AT+DATACUT**
384 -)))
385 385  
386 -(((
345 +* **AT+DATACUT**
346 +
387 387  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.
388 -)))
389 389  
390 -* (((
391 -**AT+SEARCH**
392 -)))
393 393  
394 -(((
350 +* **AT+SEARCH**
351 +
395 395  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.
396 -)))
397 397  
398 -(((
354 +
399 399  **Define wait timeout:**
400 -)))
401 401  
402 -(((
403 403  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
404 -)))
405 405  
406 -(((
359 +
407 407  After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**.
408 -)))
409 409  
362 +
410 410  **Examples:**
411 411  
412 412  Below are examples for the how above AT Commands works.
413 413  
367 +
414 414  **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is:
415 415  
416 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:501px" %)
417 -|(% style="width:498px" %)(((
370 +|(((
418 418  **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m**
419 419  
420 420  **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent**
... ... @@ -426,43 +426,46 @@
426 426  
427 427  In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same.
428 428  
382 +
429 429  **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx.
430 430  
431 -(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:580px" %)
432 -|(% style="width:577px" %)(((
385 +|(((
433 433  **AT+SEARCHx=aa,xx xx xx xx xx**
434 434  
435 435  * **aa: 1: prefix match mode; 2: prefix and suffix match mode**
436 436  * **xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix**
390 +
391 +
437 437  )))
438 438  
439 -**Examples:**
394 +Examples:
440 440  
441 441  1. For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
442 442  
443 443  If we set AT+SEARCH1=1,1E 56 34.      (max 5 bytes for prefix)
444 444  
445 -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**
400 +The valid data will be all bytes after 1E 56 34 , so it is 2e 30 58 5f 36 41 30 31 00 49
446 446  
447 -[[image:1653271044481-711.png]]
402 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png]]
448 448  
404 +
449 449  1. For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
450 450  
451 451  If we set AT+SEARCH1=2, 1E 56 34+31 00 49
452 452  
453 -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**
409 +Device will search the bytes between 1E 56 34 and 31 00 49. So it is 2e 30 58 5f 36 41 30
454 454  
455 -[[image:1653271276735-972.png]]
411 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png]]
456 456  
413 +
457 457  **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes.
458 458  
459 -(% style="background-color:#4f81bd; color:white; width:729px" %)
460 -|(% style="width:726px" %)(((
416 +|(((
461 461  **AT+DATACUTx=a,b,c**
462 462  
463 463  * **a: length for the return of AT+COMMAND**
464 464  * **b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.**
465 -* **c: define the position for valid value.  **
421 +* **c: define the position for valid value. **
466 466  )))
467 467  
468 468  Examples:
... ... @@ -469,130 +469,95 @@
469 469  
470 470  * Grab bytes:
471 471  
472 -[[image:1653271581490-837.png||height="313" width="722"]]
428 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png]]
473 473  
474 474  * Grab a section.
475 475  
476 -[[image:1653271648378-342.png||height="326" width="720"]]
432 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image016.png]]
477 477  
478 478  * Grab different sections.
479 479  
480 -[[image:1653271657255-576.png||height="305" width="730"]]
436 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png]]
481 481  
482 -(((
483 -(% style="color:red" %)**Note:**
484 -)))
485 485  
486 -(((
439 +Note:
440 +
487 487  AT+SEARCHx and AT+DATACUTx can be used together, if both commands are set, RS485-BL will first process AT+SEARCHx on the return string and get a temporary string, and then process AT+DATACUTx on this temporary string to get the final payload. In this case, AT+DATACUTx need to set to format AT+DATACUTx=0,xx,xx where the return bytes set to 0.
488 -)))
489 489  
490 -(((
491 -**Example:**
492 -)))
443 +Example:
493 493  
494 -(((
495 -(% style="color:red" %)AT+COMMAND1=11 01 1E D0,0
496 -)))
445 +AT+COMMAND1=11 01 1E D0,0
497 497  
498 -(((
499 -(% style="color:red" %)AT+SEARCH1=1,1E 56 34
500 -)))
447 +AT+SEARCH1=1,1E 56 34
501 501  
502 -(((
503 -(% style="color:red" %)AT+DATACUT1=0,2,1~~5
504 -)))
449 +AT+DATACUT1=0,2,1~~5
505 505  
506 -(((
507 -(% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
508 -)))
451 +Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
509 509  
510 -(((
511 -(% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49
512 -)))
453 +String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49
513 513  
514 -(((
515 -(% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36
516 -)))
455 +Valid payload after DataCUT command: 2e 30 58 5f 36
517 517  
518 -[[image:1653271763403-806.png]]
457 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png]]
519 519  
520 -=== 3.3.4 Compose the uplink payload ===
521 521  
522 -(((
460 +
461 +
462 +1.
463 +11.
464 +111. Compose the uplink payload
465 +
523 523  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.**
524 -)))
525 525  
526 -(((
527 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=0**
528 -)))
529 529  
530 -(((
531 -Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**A SIGNLE UPLINK**.
532 -)))
469 +**Examples: AT+DATAUP=0**
533 533  
534 -(((
471 +Compose the uplink payload with value returns in sequence and send with **A SIGNLE UPLINK**.
472 +
535 535  Final Payload is
536 -)))
537 537  
538 -(((
539 -(% style="color:#4f81bd" %)Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx
540 -)))
475 +Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx
541 541  
542 -(((
543 543  Where PAYVER is defined by AT+PAYVER, below is an example screen shot.
544 -)))
545 545  
546 -[[image:1653272787040-634.png||height="515" width="719"]]
479 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png]]
547 547  
548 -(((
549 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1**
550 -)))
551 551  
552 -(((
553 -Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**Multiply UPLINKs**.
554 -)))
555 555  
556 -(((
483 +**Examples: AT+DATAUP=1**
484 +
485 +Compose the uplink payload with value returns in sequence and send with **Multiply UPLINKs**.
486 +
557 557  Final Payload is
558 -)))
559 559  
560 -(((
561 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
562 -)))
489 +Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
563 563  
564 -1. (((
565 -Battery Info (2 bytes): Battery voltage
566 -)))
567 -1. (((
568 -PAYVER (1 byte): Defined by AT+PAYVER
569 -)))
570 -1. (((
571 -PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
572 -)))
573 -1. (((
574 -PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
575 -)))
576 -1. (((
577 -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
578 -)))
491 +1. Battery Info (2 bytes): Battery voltage
492 +1. PAYVER (1 byte): Defined by AT+PAYVER
493 +1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
494 +1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
495 +1. DATA: Valid value: max 6 bytes(US915 version here, [[Notice*!>>path:#max_byte]]) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes
579 579  
580 -[[image:1653272817147-600.png||height="437" width="717"]]
497 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png]]
581 581  
499 +
582 582  So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA
583 583  
584 -DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41
502 +DATA1=RETURN1 Valid Value = 20 20 0a 33 90 41
585 585  
586 -DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20
504 +DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= 02 aa 05 81 0a 20
587 587  
588 -DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30
506 +DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 = 20 20 20 2d 30
589 589  
508 +
509 +
590 590  Below are the uplink payloads:
591 591  
592 -[[image:1653272901032-107.png]]
512 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png]]
593 593  
594 -(% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:
595 595  
515 +Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:
516 +
596 596   ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
597 597  
598 598   * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
... ... @@ -601,121 +601,91 @@
601 601  
602 602   ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
603 603  
604 -=== 3.3.5 Uplink on demand ===
605 605  
606 -(((
526 +
527 +1.
528 +11.
529 +111. Uplink on demand
530 +
607 607  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.
608 -)))
609 609  
610 -(((
611 611  Downlink control command:
612 -)))
613 613  
614 -(((
615 -**0x08 command**: Poll an uplink with current command set in RS485-BL.
616 -)))
535 +[[0x08 command>>path:#downlink_08]]: Poll an uplink with current command set in RS485-BL.
617 617  
618 -(((
619 -**0xA8 command**: Send a command to RS485-BL and uplink the output from sensors.
620 -)))
537 +[[0xA8 command>>path:#downlink_A8]]: Send a command to RS485-BL and uplink the output from sensors.
621 621  
622 -=== 3.3.6 Uplink on Interrupt ===
623 623  
624 -Put the interrupt sensor between 3.3v_out and GPIO ext.
625 625  
626 -[[image:1653273818896-432.png]]
541 +1.
542 +11.
543 +111. Uplink on Interrupt
627 627  
628 -(((
545 +Put the interrupt sensor between 3.3v_out and GPIO ext.[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png]]
546 +
629 629  AT+INTMOD=0  Disable Interrupt
630 -)))
631 631  
632 -(((
633 633  AT+INTMOD=1  Interrupt trigger by rising or falling edge.
634 -)))
635 635  
636 -(((
637 637  AT+INTMOD=2  Interrupt trigger by falling edge. ( Default Value)
638 -)))
639 639  
640 -(((
641 641  AT+INTMOD=3  Interrupt trigger by rising edge.
642 -)))
643 643  
644 -== 3.4 Uplink Payload ==
645 645  
646 -(% border="1" style="background-color:#4f81bd; color:white; width:850px" %)
647 -|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands**
648 -|Value|(% style="width:130px" %)(((
649 -(((
556 +1.
557 +11. Uplink Payload
558 +
559 +
560 +|**Size(bytes)**|**2**|**1**|**Length depends on the return from the commands**
561 +|Value|(((
650 650  Battery(mV)
651 -)))
652 652  
653 -(((
654 654  &
655 -)))
656 656  
657 -(((
658 658  Interrupt _Flag
659 -)))
660 -)))|(% style="width:93px" %)(((
567 +)))|(((
661 661  PAYLOAD_VER
662 662  
663 663  
664 -)))|(% 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.
571 +)))|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.
665 665  
666 666  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
667 667  
668 -(((
575 +
669 669  function Decoder(bytes, port) {
670 -)))
671 671  
672 -(((
673 673  ~/~/Payload Formats of RS485-BL Deceive
674 -)))
675 675  
676 -(((
677 677  return {
678 -)))
679 679  
680 -(((
681 681   ~/~/Battery,units:V
682 -)))
683 683  
684 -(((
685 685   BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,
686 -)))
687 687  
688 -(((
689 689   ~/~/GPIO_EXTI 
690 -)))
691 691  
692 -(((
693 693   EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",
694 -)))
695 695  
696 -(((
697 697   ~/~/payload of version
698 -)))
699 699  
700 -(((
701 701   Pay_ver:bytes[2],
702 -)))
703 703  
704 -(((
705 705   };
706 -)))
707 707  
708 -(((
709 709   }
710 -)))
711 711  
712 -(((
598 +
599 +
600 +
601 +
602 +
603 +
713 713  TTN V3 uplink screen shot.
714 -)))
715 715  
716 -[[image:1653274001211-372.png||height="192" width="732"]]
606 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]
717 717  
718 -== 3.5 Configure RS485-BL via AT or Downlink ==
608 +1.
609 +11. Configure RS485-BL via AT or Downlink
719 719  
720 720  User can configure RS485-BL via [[AT Commands >>path:#_​Using_the_AT]]or LoRaWAN Downlink Commands
721 721  
... ... @@ -725,10 +725,12 @@
725 725  
726 726  * **Sensor Related Commands**: These commands are special designed for RS485-BL.  User can see these commands below:
727 727  
619 +
728 728  1.
729 729  11.
730 730  111. Common Commands:
731 731  
624 +
732 732  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]]
733 733  
734 734  
... ... @@ -736,6 +736,7 @@
736 736  11.
737 737  111. Sensor related commands:
738 738  
632 +
739 739  ==== Choose Device Type (RS485 or TTL) ====
740 740  
741 741  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
... ... @@ -776,6 +776,7 @@
776 776  * XX XX XX XX: RS485 command total NN bytes
777 777  * YY: How many bytes will be uplink from the return of this RS485 command, if YY=0, RS485-BL will execute the downlink command without uplink; if YY>0, RS485-BL will uplink total YY bytes from the output of this RS485 command
778 778  
673 +
779 779  **Example 1:**
780 780  
781 781  To connect a Modbus Alarm with below commands.
... ... @@ -884,6 +884,7 @@
884 884  
885 885  * AT+MBFUN=0: Disable Modbus fast reading.
886 886  
782 +
887 887  Example:
888 888  
889 889  * AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0).
... ... @@ -968,7 +968,7 @@
968 968  
969 969  Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10
970 970  
971 -Example screen shot after clear all RS485 commands. 
867 +Example screen shot after clear all RS485 commands.
972 972  
973 973  
974 974  
... ... @@ -1012,6 +1012,7 @@
1012 1012  * A7 01 00 60   same as AT+BAUDR=9600
1013 1013  * A7 01 04 80  same as AT+BAUDR=115200
1014 1014  
911 +
1015 1015  A7 02 aa: Same as  AT+PARITY=aa  (aa value: 00 , 01 or 02)
1016 1016  
1017 1017  A7 03 aa: Same as  AT+STOPBIT=aa  (aa value: 00 , 01 or 02)
... ... @@ -1042,15 +1042,17 @@
1042 1042  1.
1043 1043  11. Buttons
1044 1044  
942 +
1045 1045  |**Button**|**Feature**
1046 1046  |**RST**|Reboot RS485-BL
1047 1047  
946 +
1048 1048  1.
1049 1049  11. +3V3 Output
1050 1050  
1051 1051  RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor.
1052 1052  
1053 -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. 
952 +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.
1054 1054  
1055 1055  
1056 1056  The +3V3 output time can be controlled by AT Command.
... ... @@ -1068,7 +1068,7 @@
1068 1068  
1069 1069  RS485-BL has a Controllable +5V output, user can use this output to power external sensor.
1070 1070  
1071 -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. 
970 +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.
1072 1072  
1073 1073  
1074 1074  The 5V output time can be controlled by AT Command.
... ... @@ -1089,6 +1089,7 @@
1089 1089  |**LEDs**|**Feature**
1090 1090  |**LED1**|Blink when device transmit a packet.
1091 1091  
991 +
1092 1092  1.
1093 1093  11. Switch Jumper
1094 1094  
... ... @@ -1110,6 +1110,7 @@
1110 1110  
1111 1111  1. Case Study
1112 1112  
1013 +
1113 1113  User can check this URL for some case studies.
1114 1114  
1115 1115  [[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]]
... ... @@ -1197,6 +1197,7 @@
1197 1197  * For bug fix
1198 1198  * Change LoRaWAN bands.
1199 1199  
1101 +
1200 1200  Below shows the hardware connection for how to upload an image to RS485-BL:
1201 1201  
1202 1202  [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image030.png]]
... ... @@ -1240,6 +1240,7 @@
1240 1240  1.
1241 1241  11. How many RS485-Slave can RS485-BL connects?
1242 1242  
1145 +
1243 1243  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]].
1244 1244  
1245 1245  
... ... @@ -1250,7 +1250,7 @@
1250 1250  
1251 1251  Please see this link for debug:
1252 1252  
1253 -[[http:~~/~~/wiki.dragino.com/index.php?title=Main_Page#LoRaWAN_Communication_Debug>>url:http://wiki.dragino.com/index.php?title=Main_Page#LoRaWAN_Communication_Debug]] 
1156 +[[http:~~/~~/wiki.dragino.com/index.php?title=Main_Page#LoRaWAN_Communication_Debug>>url:http://wiki.dragino.com/index.php?title=Main_Page#LoRaWAN_Communication_Debug]]
1254 1254  
1255 1255  
1256 1256  
... ... @@ -1265,6 +1265,7 @@
1265 1265  
1266 1266  1. Order Info
1267 1267  
1171 +
1268 1268  **Part Number: RS485-BL-XXX**
1269 1269  
1270 1270  **XXX:**
... ... @@ -1280,6 +1280,7 @@
1280 1280  * **RU864**: frequency bands RU864
1281 1281  * **KZ865: **frequency bands KZ865
1282 1282  
1187 +
1283 1283  1. Packing Info
1284 1284  
1285 1285  **Package Includes**:
... ... @@ -1288,6 +1288,7 @@
1288 1288  * Stick Antenna for LoRa RF part x 1
1289 1289  * Program cable x 1
1290 1290  
1196 +
1291 1291  **Dimension and weight**:
1292 1292  
1293 1293  * Device Size: 13.5 x 7 x 3 cm
... ... @@ -1295,6 +1295,7 @@
1295 1295  * Package Size / pcs : 14.5 x 8 x 5 cm
1296 1296  * Weight / pcs : 170g
1297 1297  
1204 +
1298 1298  1. Support
1299 1299  
1300 1300  * 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.
1652953414711-647.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -119.3 KB
Content
1652953462722-299.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -202.7 KB
Content
1652953542269-423.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -118.5 KB
Content
1652953553383-907.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -94.0 KB
Content
1652953568895-172.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -109.3 KB
Content
1652954654347-831.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -138.7 KB
Content
1653271044481-711.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -27.8 KB
Content
1653271276735-972.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -26.6 KB
Content
1653271581490-837.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -138.7 KB
Content
1653271648378-342.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -131.4 KB
Content
1653271657255-576.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -142.6 KB
Content
1653271763403-806.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -27.7 KB
Content
1653272787040-634.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -294.0 KB
Content
1653272817147-600.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -143.3 KB
Content
1653272901032-107.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -197.8 KB
Content
1653273818896-432.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -31.6 KB
Content
1653274001211-372.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -91.4 KB
Content
image-20220519174512-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -32.2 KB
Content
image-20220519174512-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -42.7 KB
Content
image-20220519174512-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -36.3 KB
Content
image-20220519174512-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -19.1 KB
Content