Changes for page RS485-BL – Waterproof RS485 to LoRaWAN Converter
Last modified by Xiaoling on 2025/04/23 15:57
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 18 added, 0 removed)
- 1652954654347-831.png
- 1653271044481-711.png
- 1653271276735-972.png
- 1653271581490-837.png
- 1653271648378-342.png
- 1653271657255-576.png
- 1653271763403-806.png
- 1653272787040-634.png
- 1653272817147-600.png
- 1653272901032-107.png
- 1653273818896-432.png
- 1653274001211-372.png
- 1654132684752-193.png
- 1654133913295-597.png
- 1654133954153-643.png
- 1654134704555-320.png
- 1654135840598-282.png
- 1654136105500-922.png
Details
- Page properties
-
- Content
-
... ... @@ -7,12 +7,15 @@ 7 7 **RS485-BL – Waterproof RS485 to LoRaWAN Converter User Manual** 8 8 9 9 10 + 10 10 **Table of Contents:** 11 11 13 +{{toc/}} 12 12 13 13 14 14 15 15 18 + 16 16 = 1.Introduction = 17 17 18 18 == 1.1 What is RS485-BL RS485 to LoRaWAN Converter == ... ... @@ -22,19 +22,19 @@ 22 22 ))) 23 23 24 24 ((( 25 -The Dragino RS485-BL is a **RS485 / UART to LoRaWAN Converter** for Internet of Things solutions. User can connect RS485 or UART sensor to RS485-BL converter, and configure RS485-BL to periodically read sensor data and upload via LoRaWAN network to IoT server. 28 +The Dragino RS485-BL is a (% style="color:blue" %)**RS485 / UART to LoRaWAN Converter**(%%) for Internet of Things solutions. User can connect RS485 or UART sensor to RS485-BL converter, and configure RS485-BL to periodically read sensor data and upload via LoRaWAN network to IoT server. 26 26 ))) 27 27 28 28 ((( 29 -RS485-BL can interface to RS485 sensor, 3.3v/5v UART sensor or interrupt sensor. RS485-BL provides **a 3.3v output** and** a 5v output** to power external sensors. Both output voltages are controllable to minimize the total system power consumption. 32 +RS485-BL can interface to RS485 sensor, 3.3v/5v UART sensor or interrupt sensor. RS485-BL provides (% style="color:blue" %)**a 3.3v output**(%%) and** (% style="color:blue" %)a 5v output(%%)** to power external sensors. Both output voltages are controllable to minimize the total system power consumption. 30 30 ))) 31 31 32 32 ((( 33 -RS485-BL is IP67 **waterproof** and powered by **8500mAh Li-SOCI2 battery**, it is designed for long term use for several years. 36 +RS485-BL is IP67 (% style="color:blue" %)**waterproof**(%%) and powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use for several years. 34 34 ))) 35 35 36 36 ((( 37 -RS485-BL runs standard **LoRaWAN 1.0.3 in Class A**. It can reach long transfer range and easy to integrate with LoRaWAN compatible gateway and IoT server. 40 +RS485-BL runs standard (% style="color:blue" %)**LoRaWAN 1.0.3 in Class A**(%%). It can reach long transfer range and easy to integrate with LoRaWAN compatible gateway and IoT server. 38 38 ))) 39 39 40 40 ((( ... ... @@ -51,8 +51,11 @@ 51 51 52 52 [[image:1652953304999-717.png||height="424" width="733"]] 53 53 57 + 58 + 54 54 == 1.2 Specifications == 55 55 61 + 56 56 **Hardware System:** 57 57 58 58 * STM32L072CZT6 MCU ... ... @@ -59,8 +59,6 @@ 59 59 * SX1276/78 Wireless Chip 60 60 * Power Consumption (exclude RS485 device): 61 61 ** Idle: 6uA@3.3v 62 - 63 -* 64 64 ** 20dB Transmit: 130mA@3.3v 65 65 66 66 **Interface for Model:** ... ... @@ -114,9 +114,12 @@ 114 114 115 115 [[RS485-BL Image files – Download link and Change log>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/RS485-BL/Firmware/||style="background-color: rgb(255, 255, 255);"]] 116 116 121 + 117 117 == 1.6 Hardware Change log == 118 118 119 119 ((( 125 + 126 + 120 120 v1.4 121 121 ))) 122 122 ... ... @@ -140,6 +140,8 @@ 140 140 141 141 ((( 142 142 Release version 150 + 151 + 143 143 ))) 144 144 145 145 = 2. Pin mapping and Power ON Device = ... ... @@ -153,6 +153,7 @@ 153 153 154 154 The Left TXD and RXD are TTL interface for external sensor. TTL level is controlled by 3.3/5v Jumper. 155 155 165 + 156 156 = 3. Operation Mode = 157 157 158 158 == 3.1 How it works? == ... ... @@ -159,6 +159,8 @@ 159 159 160 160 ((( 161 161 The RS485-BL is configured as LoRaWAN OTAA Class A mode by default. It has OTAA keys to join network. To connect a local LoRaWAN network, user just need to input the OTAA keys in the network server and power on the RS485-BL. It will auto join the network via OTAA. 172 + 173 + 162 162 ))) 163 163 164 164 == 3.2 Example to join LoRaWAN network == ... ... @@ -194,8 +194,6 @@ 194 194 ))) 195 195 196 196 197 - 198 - 199 199 [[image:image-20220519174512-1.png]] 200 200 201 201 [[image:image-20220519174512-2.png||height="328" width="731"]] ... ... @@ -220,142 +220,189 @@ 220 220 [[image:1652953568895-172.png||height="232" width="724"]] 221 221 222 222 233 +== 3.3 Configure Commands to read data == 223 223 235 +((( 236 +There are plenty of RS485 and TTL level devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-BL supports flexible command set. User can use [[AT Commands or LoRaWAN Downlink>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]] Command to configure how RS485-BL should read the sensor and how to handle the return from RS485 or TTL sensors. 224 224 225 - 1.226 - 11. Configure Commands to read data238 + 239 +))) 227 227 228 - Thereareplentyof RS485 andTTLlevel devicesin themarketand each device hasdifferent command toreadthe valid data. To support these devices in flexible,RS485-BLsupportsflexiblecommand set. User canuse [[AT Commands or LoRaWAN Downlink>>path:#AT_COMMAND]] Command to configure how RS485-BL should read the sensorand how to handle the return from RS485 or TTL sensors.241 +=== 3.3.1 onfigure UART settings for RS485 or TTL communication === 229 229 230 - 231 -1. 232 -11. 233 -111. Configure UART settings for RS485 or TTL communication 234 - 235 235 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 236 236 237 -1. RS485-MODBUS mode: 245 +**~1. RS485-MODBUS mode:** 238 238 239 239 AT+MOD=1 ~/~/ Support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 240 240 249 +**2. TTL mode:** 241 241 242 -1. TTL mode: 243 - 244 244 AT+MOD=2 ~/~/ Support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 245 245 246 - 247 247 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. 248 248 249 - 250 -|**AT Commands**|**Description**|**Example** 251 -|AT+BAUDR|Set the baud rate (for RS485 connection). Default Value is: 9600.|((( 255 +(% border="1" style="background-color:#ffffcc; color:green; width:795px" %) 256 +|((( 257 +**AT Commands** 258 +)))|(% style="width:285px" %)((( 259 +**Description** 260 +)))|(% style="width:347px" %)((( 261 +**Example** 262 +))) 263 +|((( 264 +AT+BAUDR 265 +)))|(% style="width:285px" %)((( 266 +Set the baud rate (for RS485 connection). Default Value is: 9600. 267 +)))|(% style="width:347px" %)((( 268 +((( 252 252 AT+BAUDR=9600 270 +))) 253 253 272 +((( 254 254 Options: (1200,2400,4800,14400,19200,115200) 255 255 ))) 256 -|AT+PARITY|((( 275 +))) 276 +|((( 277 +AT+PARITY 278 +)))|(% style="width:285px" %)((( 279 +((( 257 257 Set UART parity (for RS485 connection) 281 +))) 258 258 283 +((( 259 259 Default Value is: no parity. 260 -)))|((( 285 +))) 286 +)))|(% style="width:347px" %)((( 287 +((( 261 261 AT+PARITY=0 289 +))) 262 262 291 +((( 263 263 Option: 0: no parity, 1: odd parity, 2: even parity 264 264 ))) 265 -|AT+STOPBIT|((( 294 +))) 295 +|((( 296 +AT+STOPBIT 297 +)))|(% style="width:285px" %)((( 298 +((( 266 266 Set serial stopbit (for RS485 connection) 300 +))) 267 267 302 +((( 268 268 Default Value is: 1bit. 269 -)))|((( 304 +))) 305 +)))|(% style="width:347px" %)((( 306 +((( 270 270 AT+STOPBIT=0 for 1bit 308 +))) 271 271 310 +((( 272 272 AT+STOPBIT=1 for 1.5 bit 312 +))) 273 273 314 +((( 274 274 AT+STOPBIT=2 for 2 bits 275 275 ))) 317 +))) 276 276 319 +=== 3.3.2 Configure sensors === 277 277 321 +((( 322 +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**. 323 +))) 278 278 325 +((( 326 +When user issue an (% style="color:#4f81bd" %)**AT+CFGDEV**(%%) command, Each (% style="color:#4f81bd" %)**AT+CFGDEV**(%%) equals to send a command to the RS485 or TTL sensors. This command will only run when user input it and won’t run during each sampling. 327 +))) 279 279 280 -1. 281 -11. 282 -111. Configure sensors 283 - 284 -Some sensors might need to configure before normal operation. User can configure such sensor via PC or through RS485-BL AT Commands AT+CFGDEV. 285 - 286 - 287 -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. 288 - 289 -|**AT Commands**|**Description**|**Example** 290 -|AT+CFGDEV|((( 329 +(% border="1" style="background-color:#ffffcc; color:green; width:806px" %) 330 +|**AT Commands**|(% style="width:418px" %)**Description**|(% style="width:256px" %)**Example** 331 +|AT+CFGDEV|(% style="width:418px" %)((( 291 291 This command is used to configure the RS485/TTL devices; they won’t be used during sampling. 292 292 293 -AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx, m334 +AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx, 294 294 295 -m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 296 -)))|AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 336 +mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 337 +)))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 297 297 298 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>> path:#AT_CFGDEV]].339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 299 299 300 300 342 +=== 3.3.3 Configure read commands for each sampling === 301 301 302 - 303 - 304 -1. 305 -11. 306 -111. Configure read commands for each sampling 307 - 344 +((( 308 308 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. 346 +))) 309 309 310 - 348 +((( 311 311 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. 350 +))) 312 312 313 - 352 +((( 314 314 To save the LoRaWAN network bandwidth, we might need to read data from different sensors and combine their valid value into a short payload. 354 +))) 315 315 316 - 356 +((( 317 317 This section describes how to achieve above goals. 358 +))) 318 318 319 - 360 +((( 320 320 During each sampling, the RS485-BL can support 15 commands to read sensors. And combine the return to one or several uplink payloads. 362 +))) 321 321 322 - 364 +((( 323 323 **Command from RS485-BL to Sensor:** 366 +))) 324 324 368 +((( 325 325 RS485-BL can send out pre-set max 15 strings via **AT+COMMAD1**, **ATCOMMAND2**,…, to **AT+COMMANDF** . All commands are of same grammar. 370 +))) 326 326 327 - 372 +((( 328 328 **Handle return from sensors to RS485-BL**: 374 +))) 329 329 376 +((( 330 330 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** 378 +))) 331 331 380 +* ((( 381 +**AT+DATACUT** 382 +))) 332 332 333 -* **AT+DATACUT** 334 - 384 +((( 335 335 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. 386 +))) 336 336 388 +* ((( 389 +**AT+SEARCH** 390 +))) 337 337 338 -* **AT+SEARCH** 339 - 392 +((( 340 340 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. 394 +))) 341 341 342 - 396 +((( 343 343 **Define wait timeout:** 398 +))) 344 344 400 +((( 345 345 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 402 +))) 346 346 347 - 404 +((( 348 348 After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**. 406 +))) 349 349 350 - 351 351 **Examples:** 352 352 353 353 Below are examples for the how above AT Commands works. 354 354 355 - 356 356 **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is: 357 357 358 -|((( 414 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:501px" %) 415 +|(% style="width:498px" %)((( 359 359 **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m** 360 360 361 361 **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent** ... ... @@ -367,41 +367,38 @@ 367 367 368 368 In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same. 369 369 370 - 371 371 **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx. 372 372 373 -|((( 429 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:580px" %) 430 +|(% style="width:577px" %)((( 374 374 **AT+SEARCHx=aa,xx xx xx xx xx** 375 375 376 376 * **aa: 1: prefix match mode; 2: prefix and suffix match mode** 377 377 * **xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix** 378 - 379 - 380 380 ))) 381 381 382 -Examples: 437 +**Examples:** 383 383 384 -1 .For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49439 +1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 385 385 386 386 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 387 387 388 -The valid data will be all bytes after 1E 56 34 , so it is 2e 30 58 5f 36 41 30 31 00 49 443 +The valid data will be all bytes after 1E 56 34 , so it is (% style="background-color:yellow" %)**2e 30 58 5f 36 41 30 31 00 49** 389 389 390 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png]]445 +[[image:1653271044481-711.png]] 391 391 447 +2)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 392 392 393 -1. For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 394 - 395 395 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 396 396 397 -Device will search the bytes between 1E 56 34 and 31 00 49. So it is 2e 30 58 5f 36 41 30 451 +Device will search the bytes between 1E 56 34 and 31 00 49. So it is(% style="background-color:yellow" %) **2e 30 58 5f 36 41 30** 398 398 399 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png]]453 +[[image:1653271276735-972.png]] 400 400 401 - 402 402 **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes. 403 403 404 -|((( 457 +(% style="background-color:#4f81bd; color:white; width:729px" %) 458 +|(% style="width:726px" %)((( 405 405 **AT+DATACUTx=a,b,c** 406 406 407 407 * **a: length for the return of AT+COMMAND** ... ... @@ -409,98 +409,143 @@ 409 409 * **c: define the position for valid value. ** 410 410 ))) 411 411 412 -Examples: 466 +**Examples:** 413 413 414 414 * Grab bytes: 415 415 416 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png]]470 +[[image:1653271581490-837.png||height="313" width="722"]] 417 417 472 + 418 418 * Grab a section. 419 419 420 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image016.png]]475 +[[image:1653271648378-342.png||height="326" width="720"]] 421 421 477 + 422 422 * Grab different sections. 423 423 424 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png]]480 +[[image:1653271657255-576.png||height="305" width="730"]] 425 425 482 +((( 483 +(% style="color:red" %)**Note:** 484 +))) 426 426 427 -Note: 428 - 486 +((( 429 429 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 +))) 430 430 431 -Example: 490 +((( 491 +**Example:** 492 +))) 432 432 433 -AT+COMMAND1=11 01 1E D0,0 494 +((( 495 +(% style="color:red" %)AT+COMMAND1=11 01 1E D0,0 496 +))) 434 434 435 -AT+SEARCH1=1,1E 56 34 498 +((( 499 +(% style="color:red" %)AT+SEARCH1=1,1E 56 34 500 +))) 436 436 437 -AT+DATACUT1=0,2,1~~5 502 +((( 503 +(% style="color:red" %)AT+DATACUT1=0,2,1~~5 504 +))) 438 438 439 -Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 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 +))) 440 440 441 -String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49 510 +((( 511 +(% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49 512 +))) 442 442 443 -Valid payload after DataCUT command: 2e 30 58 5f 36 514 +((( 515 +(% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36 516 +))) 444 444 445 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png]]518 +[[image:1653271763403-806.png]] 446 446 447 447 521 +=== 3.3.4 Compose the uplink payload === 448 448 449 - 450 -1. 451 -11. 452 -111. Compose the uplink payload 453 - 523 +((( 454 454 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.** 525 +))) 455 455 527 +((( 528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0** 529 +))) 456 456 457 -**Examples: AT+DATAUP=0** 531 +((( 532 +Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**A SIGNLE UPLINK**. 533 +))) 458 458 459 -Compose the uplink payload with value returns in sequence and send with **A SIGNLE UPLINK**. 460 - 535 +((( 461 461 Final Payload is 537 +))) 462 462 463 -Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx 539 +((( 540 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx** 541 +))) 464 464 543 +((( 465 465 Where PAYVER is defined by AT+PAYVER, below is an example screen shot. 545 +))) 466 466 467 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png]]547 +[[image:1653272787040-634.png||height="515" width="719"]] 468 468 469 469 470 470 471 -**Examples: AT+DATAUP=1** 551 +((( 552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1** 472 472 473 -Compose the uplink payload with value returns in sequence and send with **Multiply UPLINKs**. 554 + 555 +))) 474 474 557 +((( 558 +Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**Multiply UPLINKs**. 559 +))) 560 + 561 +((( 475 475 Final Payload is 563 +))) 476 476 477 -Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 565 +((( 566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA** 567 +))) 478 478 479 -1. Battery Info (2 bytes): Battery voltage 480 -1. PAYVER (1 byte): Defined by AT+PAYVER 481 -1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling. 482 -1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT) 483 -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 569 +1. ((( 570 +Battery Info (2 bytes): Battery voltage 571 +))) 572 +1. ((( 573 +PAYVER (1 byte): Defined by AT+PAYVER 574 +))) 575 +1. ((( 576 +PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling. 577 +))) 578 +1. ((( 579 +PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT) 580 +))) 581 +1. ((( 582 +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 583 +))) 484 484 485 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png]]585 +[[image:1653272817147-600.png||height="437" width="717"]] 486 486 487 - 488 488 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA 489 489 490 -DATA1=RETURN1 Valid Value = 20 20 0a 33 90 41 491 491 492 -DATA 2=1^^st^^~~ 6^^th^^ byte ofValidvalue ofRETURN10=02aa05810a20590 +DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41 493 493 494 -DATA 3=7^^th^^ ~~11^^th^^ bytesof Valid value of RETURN10 =202020 2d 30592 +DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20 495 495 594 +DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30 496 496 497 497 498 498 Below are the uplink payloads: 499 499 500 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png]]599 +[[image:1653272901032-107.png]] 501 501 502 502 503 -Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 602 +(% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 504 504 505 505 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) 506 506 ... ... @@ -512,139 +512,186 @@ 512 512 513 513 514 514 515 -1. 516 -11. 517 -111. Uplink on demand 614 +=== 3.3.5 Uplink on demand === 518 518 616 +((( 519 519 Except uplink periodically, RS485-BL is able to uplink on demand. The server sends downlink command to RS485-BL and RS485 will uplink data base on the command. 618 +))) 520 520 620 +((( 521 521 Downlink control command: 622 +))) 522 522 523 -[[0x08 command>>path:#downlink_08]]: Poll an uplink with current command set in RS485-BL. 624 +((( 625 +**0x08 command**: Poll an uplink with current command set in RS485-BL. 626 +))) 524 524 525 -[[0xA8 command>>path:#downlink_A8]]: Send a command to RS485-BL and uplink the output from sensors. 628 +((( 629 +**0xA8 command**: Send a command to RS485-BL and uplink the output from sensors. 526 526 631 + 632 +))) 527 527 634 +=== 3.3.6 Uplink on Interrupt === 528 528 529 -1. 530 -11. 531 -111. Uplink on Interrupt 636 +Put the interrupt sensor between 3.3v_out and GPIO ext. 532 532 533 - Put the interrupt sensor between 3.3v_out and GPIO ext.[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png]]638 +[[image:1653273818896-432.png]] 534 534 640 + 641 +((( 535 535 AT+INTMOD=0 Disable Interrupt 643 +))) 536 536 645 +((( 537 537 AT+INTMOD=1 Interrupt trigger by rising or falling edge. 647 +))) 538 538 649 +((( 539 539 AT+INTMOD=2 Interrupt trigger by falling edge. ( Default Value) 651 +))) 540 540 653 +((( 541 541 AT+INTMOD=3 Interrupt trigger by rising edge. 542 542 656 + 657 +))) 543 543 544 -1. 545 -11. Uplink Payload 659 +== 3.4 Uplink Payload == 546 546 547 -|**Size(bytes)**|**2**|**1**|**Length depends on the return from the commands** 548 -|Value|((( 661 +(% border="1" style="background-color:#4f81bd; color:white; width:850px" %) 662 +|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands** 663 +|Value|(% style="width:130px" %)((( 664 +((( 549 549 Battery(mV) 666 +))) 550 550 668 +((( 551 551 & 670 +))) 552 552 672 +((( 553 553 Interrupt _Flag 554 -)))|((( 674 +))) 675 +)))|(% style="width:93px" %)((( 555 555 PAYLOAD_VER 556 556 557 557 558 -)))|If the valid payload is too long and exceed the maximum support payload length in server, server will show payload not provided in the LoRaWAN server. 679 +)))|(% style="width:509px" %)If the valid payload is too long and exceed the maximum support payload length in server, server will show payload not provided in the LoRaWAN server. 559 559 560 560 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 561 561 683 +((( 684 +{{{function Decoder(bytes, port) {}}} 685 +))) 562 562 563 -function Decoder(bytes, port) { 687 +((( 688 +{{{//Payload Formats of RS485-BL Deceive}}} 689 +))) 564 564 565 -~/~/Payload Formats of RS485-BL Deceive 691 +((( 692 +{{{return {}}} 693 +))) 566 566 567 -return { 695 +((( 696 +{{{ //Battery,units:V}}} 697 +))) 568 568 569 - ~/~/Battery,units:V 699 +((( 700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}} 701 +))) 570 570 571 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000, 703 +((( 704 +{{{ //GPIO_EXTI }}} 705 +))) 572 572 573 - ~/~/GPIO_EXTI 707 +((( 708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}} 709 +))) 574 574 575 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE", 711 +((( 712 +{{{ //payload of version}}} 713 +))) 576 576 577 - ~/~/payload of version 715 +((( 716 +{{{ Pay_ver:bytes[2],}}} 717 +))) 578 578 579 - Pay_ver:bytes[2], 719 +((( 720 +{{{ }; }}} 721 +))) 580 580 581 - }; 723 +((( 724 +} 582 582 583 - } 726 + 727 +))) 584 584 585 - 586 - 587 - 588 - 589 - 590 - 729 +((( 591 591 TTN V3 uplink screen shot. 731 +))) 592 592 593 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]733 +[[image:1653274001211-372.png||height="192" width="732"]] 594 594 595 -1. 596 -11. Configure RS485-BL via AT or Downlink 597 597 598 - Usercanconfigure RS485-BL via[[ATCommands >>path:#_Using_the_AT]]orLoRaWANDownlinkCommands736 +== 3.5 Configure RS485-BL via AT or Downlink == 599 599 738 +User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands 739 + 600 600 There are two kinds of Commands: 601 601 602 -* **Common Commands**: They should be available for each sensor, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: http:~/~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands742 +* (% style="color:#4f81bd" %)**Common Commands**(%%): They should be available for each sensor, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]] 603 603 604 -* **Sensor Related Commands**: These commands are special designed for RS485-BL. User can see these commands below: 744 +* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 605 605 606 -1. 607 -11. 608 -111. Common Commands: 746 +=== 3.5.1 Common Commands: === 609 609 610 -They should be available for each of Dragino Sensors, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[ http:~~/~~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands>>url:http://wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands]]748 +They should be available for each of Dragino Sensors, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]] 611 611 612 612 613 -1. 614 -11. 615 -111. Sensor related commands: 751 +=== 3.5.2 Sensor related commands: === 616 616 617 -==== ChooseDeviceType (RS485 or TTL)====753 +==== ==== 618 618 755 +==== **Choose Device Type (RS485 or TTL)** ==== 756 + 619 619 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 620 620 621 -* AT Command 759 +* **AT Command** 622 622 761 +(% class="box infomessage" %) 762 +((( 623 623 **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 764 +))) 624 624 766 +(% class="box infomessage" %) 767 +((( 625 625 **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 769 +))) 626 626 627 627 628 -* Downlink Payload 772 +* **Downlink Payload** 629 629 630 -**0A aa** àsame as AT+MOD=aa774 +**0A aa** ~-~-> same as AT+MOD=aa 631 631 632 632 633 633 634 -==== [[RS485 Debug Command>>path:#downlink_A8]](AT+CFGDEV) ====778 +==== **RS485 Debug Command (AT+CFGDEV)** ==== 635 635 636 636 This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling. 637 637 638 -* AT Command 782 +* **AT Command** 639 639 640 -AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 784 +(% class="box infomessage" %) 785 +((( 786 +**AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m** 787 +))) 641 641 642 642 m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command. 643 643 644 644 792 +* **Downlink Payload** 645 645 646 -* Downlink Payload 647 - 648 648 Format: A8 MM NN XX XX XX XX YY 649 649 650 650 Where: ... ... @@ -658,15 +658,15 @@ 658 658 659 659 To connect a Modbus Alarm with below commands. 660 660 661 -* The command to active alarm is: 0A 05 00 04 00 01 4C B0. Where 0A 05 00 04 00 01 is the Modbus command to read the register 00 40 where stored the DI status. The 4C B0 is the CRC-16/MODBUS which calculate manually. 807 +* The command to active alarm is: 0A 05 00 04 00 01 **4C B0**. Where 0A 05 00 04 00 01 is the Modbus command to read the register 00 40 where stored the DI status. The 4C B0 is the CRC-16/MODBUS which calculate manually. 662 662 663 -* The command to deactivate alarm is: 0A 05 00 04 00 00 8D 70. Where 0A 05 00 04 00 00 is the Modbus command to read the register 00 40 where stored the DI status. The 8D 70 is the CRC-16/MODBUS which calculate manually. 809 +* The command to deactivate alarm is: 0A 05 00 04 00 00 **8D 70**. Where 0A 05 00 04 00 00 is the Modbus command to read the register 00 40 where stored the DI status. The 8D 70 is the CRC-16/MODBUS which calculate manually. 664 664 665 665 So if user want to use downlink command to control to RS485 Alarm, he can use: 666 666 667 -**A8 01 06 0A 05 00 04 00 01 00**: to activate the RS485 Alarm 813 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm 668 668 669 -**A8 01 06 0A 05 00 04 00 00 00**: to deactivate the RS485 Alarm 815 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm 670 670 671 671 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. 672 672 ... ... @@ -675,48 +675,60 @@ 675 675 676 676 Check TTL Sensor return: 677 677 678 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]824 +[[image:1654132684752-193.png]] 679 679 680 680 681 681 828 +==== **Set Payload version** ==== 682 682 683 -==== Set Payload version ==== 684 - 685 685 This is the first byte of the uplink payload. RS485-BL can connect to different sensors. User can set the PAYVER field to tell server how to decode the current payload. 686 686 687 -* AT Command: 832 +* **AT Command:** 688 688 689 -AT+PAYVER: Set PAYVER field = 1 834 +(% class="box infomessage" %) 835 +((( 836 +**AT+PAYVER: Set PAYVER field = 1** 837 +))) 690 690 691 691 692 -* Downlink Payload: 840 +* **Downlink Payload:** 693 693 694 -0xAE 01 àSet PAYVER field = 0x01842 +**0xAE 01** ~-~-> Set PAYVER field = 0x01 695 695 696 -0xAE 0F àSet PAYVER field = 0x0F844 +**0xAE 0F** ~-~-> Set PAYVER field = 0x0F 697 697 698 698 699 -==== Set RS485 Sampling Commands ==== 700 700 848 +==== **Set RS485 Sampling Commands** ==== 849 + 701 701 AT+COMMANDx, AT+DATACUTx and AT+SEARCHx 702 702 703 -These three commands are used to configure how the RS485-BL polling data from Modbus device. Detail of usage please see : [[polling RS485 device>> path:#polling_485]].852 +These three commands are used to configure how the RS485-BL polling data from Modbus device. Detail of usage please see : [[polling RS485 device>>||anchor="H3.3.3Configurereadcommandsforeachsampling"]]. 704 704 705 705 706 -* AT Command: 855 +* **AT Command:** 707 707 708 -AT+COMMANDx: Configure RS485 read command to sensor. 857 +(% class="box infomessage" %) 858 +((( 859 +**AT+COMMANDx: Configure RS485 read command to sensor.** 860 +))) 709 709 710 -AT+DATACUTx: Configure how to handle return from RS485 devices. 862 +(% class="box infomessage" %) 863 +((( 864 +**AT+DATACUTx: Configure how to handle return from RS485 devices.** 865 +))) 711 711 712 -AT+SEARCHx: Configure search command 867 +(% class="box infomessage" %) 868 +((( 869 +**AT+SEARCHx: Configure search command** 870 +))) 713 713 714 714 715 -* Downlink Payload: 873 +* **Downlink Payload:** 716 716 717 -0xAF downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 875 +**0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 718 718 719 -Note: if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 877 +(% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 720 720 721 721 Format: AF MM NN LL XX XX XX XX YY 722 722 ... ... @@ -723,23 +723,23 @@ 723 723 Where: 724 724 725 725 * MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 726 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 727 -* LL: The length of AT+COMMAND or AT+DATACUT command 884 +* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 885 +* LL: The length of AT+COMMAND or AT+DATACUT command 728 728 * XX XX XX XX: AT+COMMAND or AT+DATACUT command 729 -* YY: If YY=0, RS485-BL will execute the downlink command without uplink; if YY=1, RS485-BL will execute an uplink after got this command. 887 +* YY: If YY=0, RS485-BL will execute the downlink command without uplink; if YY=1, RS485-BL will execute an uplink after got this command. 730 730 731 -Example: 889 +**Example:** 732 732 733 -**AF 03 01 06 0A 05 00 04 00 01 00**: Same as AT+COMMAND3=0A 05 00 04 00 01,1 891 +(% style="color:#037691" %)**AF 03 01 06 0A 05 00 04 00 01 00**(%%): Same as AT+COMMAND3=0A 05 00 04 00 01,1 734 734 735 -**AF 03 02 06 10 01 05 06 09 0A 00**: Same as AT+DATACUT3=**16**,**1**,**5+6+9+10** 893 +(% style="color:#037691" %)**AF 03 02 06**(% style="color:orange" %)** 10 **(% style="color:red" %)**01 **(% style="color:green" %)**05 06 09 0A**(% style="color:#037691" %)** 00**(%%): Same as AT+DATACUT3=(% style="color:orange" %)**16**(%%),(% style="color:red" %)**1**(%%),(% style="color:green" %)**5+6+9+10** 736 736 737 -**AF 03 02 06 0B 02 05 07 08 0A 00**: Same as AT+DATACUT3=**11**,**2**,**5~~7+8~~10** 895 +(% style="color:#037691" %)**AF 03 02 06 **(% style="color:orange" %)**0B**(% style="color:red" %)** 02 **(% style="color:green" %)**05 07 08 0A **(% style="color:#037691" %)**00**(%%): Same as AT+DATACUT3=(% style="color:orange" %)**11**(%%),(% style="color:red" %)**2**(%%),(% style="color:green" %)**5~~7+8~~10** 738 738 739 739 740 -0xAB downlink command can be used for set AT+SEARCHx 898 +**0xAB** downlink command can be used for set AT+SEARCHx 741 741 742 -Example: **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So 900 +**Example:** **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So 743 743 744 744 * AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 745 745 * 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 ... ... @@ -747,145 +747,164 @@ 747 747 **AB aa 02 03 xx xx xx 02 yy yy** same as **AT+SEARCHaa=2,xx xx xx+yy yy** 748 748 749 749 750 -==== Fast command to handle MODBUS device ==== 751 751 909 +==== **Fast command to handle MODBUS device** ==== 910 + 752 752 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]]. 753 753 754 754 This command is valid since v1.3 firmware version 755 755 756 756 757 -AT+MBFUN has only two value: 916 +**AT+MBFUN has only two value:** 758 758 759 -* AT+MBFUN=1: Enable Modbus reading. And get response base on the MODBUS return 918 +* **AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return 760 760 761 761 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. 762 762 763 -* AT+MBFUN=0: Disable Modbus fast reading. 922 +* **AT+MBFUN=0**: Disable Modbus fast reading. 764 764 765 -Example: 924 +**Example:** 766 766 767 767 * AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 768 768 * 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. 769 769 * 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. 770 770 771 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png]]930 +[[image:1654133913295-597.png]] 772 772 773 773 774 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png]]933 +[[image:1654133954153-643.png]] 775 775 776 776 777 -* Downlink Commands: 936 +* **Downlink Commands:** 778 778 779 -A9 aa - àSame as AT+MBFUN=aa938 +**A9 aa** ~-~-> Same as AT+MBFUN=aa 780 780 781 781 782 -==== RS485 command timeout ==== 783 783 942 +==== **RS485 command timeout** ==== 943 + 784 784 Some Modbus device has slow action to send replies. This command is used to configure the RS485-BL to use longer time to wait for their action. 785 785 786 786 Default value: 0, range: 0 ~~ 5 seconds 787 787 788 788 789 -* AT Command: 949 +* **AT Command:** 790 790 791 -AT+CMDDLaa=hex(bb cc) 951 +(% class="box infomessage" %) 952 +((( 953 +**AT+CMDDLaa=hex(bb cc)** 954 +))) 792 792 793 -Example: 956 +**Example:** 794 794 795 795 **AT+CMDDL1=1000** to send the open time to 1000ms 796 796 797 797 798 -* Downlink Payload: 961 +* **Downlink Payload:** 799 799 800 800 0x AA aa bb cc 801 801 802 802 Same as: AT+CMDDLaa=hex(bb cc) 803 803 804 - Example: 967 + **Example:** 805 805 806 - 0xAA 01 03 E8 àSame as **AT+CMDDL1=1000 ms**969 + **0xAA 01 03 E8** ~-~-> Same as **AT+CMDDL1=1000 ms** 807 807 808 808 809 -==== [[Uplink>>path:#downlink_A8]] payload mode ==== 810 810 973 +==== **Uplink payload mode** ==== 974 + 811 811 Define to use one uplink or multiple uplinks for the sampling. 812 812 813 -The use of this command please see: [[Compose Uplink payload>> path:#DataUP]]977 +The use of this command please see: [[Compose Uplink payload>>||anchor="H3.3.4Composetheuplinkpayload"]] 814 814 815 -* AT Command: 979 +* **AT Command:** 816 816 817 -AT+DATAUP=0 981 +(% class="box infomessage" %) 982 +((( 983 +**AT+DATAUP=0** 984 +))) 818 818 819 -AT+DATAUP=1 986 +(% class="box infomessage" %) 987 +((( 988 +**AT+DATAUP=1** 989 +))) 820 820 821 821 822 -* Downlink Payload: 992 +* **Downlink Payload:** 823 823 824 -0xAD 00 àSame as AT+DATAUP=0994 +**0xAD 00** **~-~->** Same as AT+DATAUP=0 825 825 826 -0xAD 01 àSame as AT+DATAUP=1996 +**0xAD 01** **~-~->** Same as AT+DATAUP=1 827 827 828 828 829 -==== Manually trigger an Uplink ==== 830 830 1000 +==== **Manually trigger an Uplink** ==== 1001 + 831 831 Ask device to send an uplink immediately. 832 832 833 -* Downlink Payload: 1004 +* **Downlink Payload:** 834 834 835 -0x08 FF, RS485-BL will immediately send an uplink. 1006 +**0x08 FF**, RS485-BL will immediately send an uplink. 836 836 837 837 838 -==== Clear RS485 Command ==== 839 839 1010 +==== **Clear RS485 Command** ==== 1011 + 840 840 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 841 841 842 842 843 -* AT Command: 1015 +* **AT Command:** 844 844 845 -**AT+CMDEAR=mm,nn** 1017 +(% style="color:#037691" %)**AT+CMDEAR=mm,nn** (%%) mm: start position of erase ,nn: stop position of erase Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 846 846 847 -Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 848 - 849 849 Example screen shot after clear all RS485 commands. 850 850 851 851 852 - 853 853 The uplink screen shot is: 854 854 855 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]1024 +[[image:1654134704555-320.png]] 856 856 857 857 858 -* Downlink Payload: 1027 +* **Downlink Payload:** 859 859 860 -0x09 aa bb same as AT+CMDEAR=aa,bb 1029 +**0x09 aa bb** same as AT+CMDEAR=aa,bb 861 861 862 862 863 -==== Set Serial Communication Parameters ==== 864 864 1033 +==== **Set Serial Communication Parameters** ==== 1034 + 865 865 Set the Rs485 serial communication parameters: 866 866 867 -* AT Command: 1037 +* **AT Command:** 868 868 869 869 Set Baud Rate: 870 870 871 -AT+BAUDR=9600 ~/~/ Options: (1200,2400,4800,14400,19200,115200) 1041 +(% class="box infomessage" %) 1042 +((( 1043 +**AT+BAUDR=9600** ~/~/ Options: (1200,2400,4800,14400,19200,115200) 1044 +))) 872 872 1046 +Set UART Parity 873 873 874 -Set UART parity 1048 +(% class="box infomessage" %) 1049 +((( 1050 +**AT+PARITY=0** ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 1051 +))) 875 875 876 -AT+PARITY=0 ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 877 - 878 - 879 879 Set STOPBIT 880 880 881 -AT+STOPBIT=0 ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits 1055 +(% class="box infomessage" %) 1056 +((( 1057 +**AT+STOPBIT=0** ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits 1058 +))) 882 882 883 883 884 -* Downlink Payload: 1061 +* **Downlink Payload:** 885 885 886 -A7 01 aa bb: Same AT+BAUDR=hex(aa bb)*100 1063 +**A7 01 aa bb**: Same AT+BAUDR=hex(aa bb)*100 887 887 888 -Example: 1065 +**Example:** 889 889 890 890 * A7 01 00 60 same as AT+BAUDR=9600 891 891 * A7 01 04 80 same as AT+BAUDR=115200 ... ... @@ -895,127 +895,119 @@ 895 895 A7 03 aa: Same as AT+STOPBIT=aa (aa value: 00 , 01 or 02) 896 896 897 897 898 -==== Control output power duration ==== 899 899 1076 +==== **Control output power duration** ==== 1077 + 900 900 User can set the output power duration before each sampling. 901 901 902 -* AT Command: 1080 +* **AT Command:** 903 903 904 -Example: 1082 +**Example:** 905 905 906 -AT+3V3T=1000 ~/~/ 3V3 output power will open 1s before each sampling. 1084 +**AT+3V3T=1000** ~/~/ 3V3 output power will open 1s before each sampling. 907 907 908 -AT+5VT=1000 ~/~/ +5V output power will open 1s before each sampling. 1086 +**AT+5VT=1000** ~/~/ +5V output power will open 1s before each sampling. 909 909 910 910 911 -* LoRaWAN Downlink Command: 1089 +* **LoRaWAN Downlink Command:** 912 912 913 -07 01 aa bb Same as AT+5VT=(aa bb) 1091 +**07 01 aa bb** Same as AT+5VT=(aa bb) 914 914 915 -07 02 aa bb Same as AT+3V3T=(aa bb) 1093 +**07 02 aa bb** Same as AT+3V3T=(aa bb) 916 916 917 917 1096 +== 3.6 Buttons == 918 918 1098 +(% border="1" style="background-color:#ffffcc; color:green; width:233px" %) 1099 +|=(% style="width: 89px;" %)**Button**|=(% style="width: 141px;" %)**Feature** 1100 +|(% style="width:89px" %)**RST**|(% style="width:141px" %)Reboot RS485-BL 919 919 920 -1. 921 -11. Buttons 1102 +== 3.7 +3V3 Output == 922 922 923 -|**Button**|**Feature** 924 -|**RST**|Reboot RS485-BL 925 - 926 -1. 927 -11. +3V3 Output 928 - 929 929 RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor. 930 930 931 931 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. 932 932 933 - 934 934 The +3V3 output time can be controlled by AT Command. 935 935 936 -**AT+3V3T=1000** 937 937 938 - Meansset+3v3 valid timetohave 1000ms. So, thereal+3v3output will actually have1000ms + sampling time for other sensors.1111 +(% style="color:#037691" %)**AT+3V3T=1000** 939 939 940 940 1114 +Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors. 1115 + 941 941 By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time 942 942 943 943 944 -1. 945 -11. +5V Output 1119 +== 3.8 +5V Output == 946 946 947 947 RS485-BL has a Controllable +5V output, user can use this output to power external sensor. 948 948 949 949 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. 950 950 951 - 952 952 The 5V output time can be controlled by AT Command. 953 953 954 -**AT+5VT=1000** 955 955 956 - Meansset5V valid timetohave 1000ms. So, thereal5Voutput will actually have1000ms + sampling time for other sensors.1128 +(% style="color:#037691" %)**AT+5VT=1000** 957 957 958 958 1131 +Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors. 1132 + 959 959 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. 960 960 961 961 1136 +== 3.9 LEDs == 962 962 1138 +(% border="1" style="background-color:#ffffcc; color:green; width:332px" %) 1139 +|=**LEDs**|=(% style="width: 274px;" %)**Feature** 1140 +|**LED1**|(% style="width:274px" %)Blink when device transmit a packet. 963 963 964 -1. 965 -11. LEDs 1142 +== 3.10 Switch Jumper == 966 966 967 -|**LEDs**|**Feature** 968 -|**LED1**|Blink when device transmit a packet. 969 - 970 -1. 971 -11. Switch Jumper 972 - 973 -|**Switch Jumper**|**Feature** 974 -|**SW1**|((( 1144 +(% border="1" style="background-color:#ffffcc; color:green; width:515px" %) 1145 +|=(% style="width: 124px;" %)**Switch Jumper**|=(% style="width: 388px;" %)**Feature** 1146 +|(% style="width:124px" %)**SW1**|(% style="width:388px" %)((( 975 975 ISP position: Upgrade firmware via UART 976 976 977 977 Flash position: Configure device, check running status. 978 978 ))) 979 -|**SW2**|((( 1151 +|(% style="width:124px" %)**SW2**|(% style="width:388px" %)((( 980 980 5V position: set to compatible with 5v I/O. 981 981 982 982 3.3v position: set to compatible with 3.3v I/O., 983 983 ))) 984 984 985 -+3.3V: is always ON 1157 +**+3.3V**: is always ON 986 986 987 -+5V: Only open before every sampling. The time is by default, it is AT+5VT=0. Max open time. 5000 ms. 1159 +**+5V**: Only open before every sampling. The time is by default, it is AT+5VT=0. Max open time. 5000 ms. 988 988 989 -1. Case Study 990 990 991 - Usercancheck this URL for some casestudies.1162 += 4. Case Study = 992 992 993 - [[http:~~/~~/wiki.dragino.com/index.php?title=APP_RS485_COMMUNICATE_WITH_SENSORS>>url:http://wiki.dragino.com/index.php?title=APP_RS485_COMMUNICATE_WITH_SENSORS]]1164 +User can check this URL for some case studies: [[APP RS485 COMMUNICATE WITH SENSORS>>doc:Main.Application Note \: Communicate with Different Sensors ----- RS485-LN RS485-BL.WebHome]] 994 994 995 995 1167 += 5. Use AT Command = 996 996 1169 +== 5.1 Access AT Command == 997 997 998 -1. Use AT Command 999 -11. Access AT Command 1000 - 1001 1001 RS485-BL supports AT Command set. User can use a USB to TTL adapter plus the 3.5mm Program Cable to connect to RS485-BL to use AT command, as below. 1002 1002 1003 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png]]1173 +[[image:1654135840598-282.png]] 1004 1004 1005 1005 1006 -In PC, User needs to set **serial tool**(such as [[putty>>url:https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]], SecureCRT) baud rate to **9600** to access to access serial console of RS485-BL. The default password is 123456. Below is the output for reference: 1176 +In PC, User needs to set (% style="color:blue" %)**serial tool**(%%)(such as [[putty>>url:https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]], SecureCRT) baud rate to (% style="color:green" %)**9600**(%%) to access to access serial console of RS485-BL. The default password is 123456. Below is the output for reference: 1007 1007 1008 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image028.png]]1178 +[[image:1654136105500-922.png]] 1009 1009 1010 1010 1181 +More detail AT Command manual can be found at [[AT Command Manual>>||anchor="3.5ConfigureRS485-BLviaATorDownlink"]] 1011 1011 1012 -More detail AT Command manual can be found at [[AT Command Manual>>path:#AT_COMMAND]] 1013 1013 1014 1014 1185 +== 5.2 Common AT Command Sequence == 1015 1015 1016 -1. 1017 -11. Common AT Command Sequence 1018 -111. Multi-channel ABP mode (Use with SX1301/LG308) 1187 +=== 5.2.1 Multi-channel ABP mode (Use with SX1301/LG308) === 1019 1019 1020 1020 If device has not joined network yet: 1021 1021
- 1652954654347-831.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +138.7 KB - Content
- 1653271044481-711.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +27.8 KB - Content
- 1653271276735-972.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +26.6 KB - Content
- 1653271581490-837.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +138.7 KB - Content
- 1653271648378-342.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +131.4 KB - Content
- 1653271657255-576.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +142.6 KB - Content
- 1653271763403-806.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +27.7 KB - Content
- 1653272787040-634.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +294.0 KB - Content
- 1653272817147-600.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +143.3 KB - Content
- 1653272901032-107.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +197.8 KB - Content
- 1653273818896-432.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +31.6 KB - Content
- 1653274001211-372.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.4 KB - Content
- 1654132684752-193.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +22.8 KB - Content
- 1654133913295-597.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +116.2 KB - Content
- 1654133954153-643.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.2 KB - Content
- 1654134704555-320.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.4 KB - Content
- 1654135840598-282.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.3 MB - Content
- 1654136105500-922.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +203.7 KB - Content