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, 17 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
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 == ... ... @@ -167,204 +167,240 @@ 167 167 168 168 [[image:1652953414711-647.png||height="337" width="723"]] 169 169 170 - 182 +((( 171 171 The RS485-BL in this example connected to two RS485 devices for demonstration, user can connect to other RS485 devices via the same method. 184 +))) 172 172 173 - 186 +((( 174 174 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: 188 +))) 175 175 190 +((( 176 176 **Step 1**: Create a device in TTN V3 with the OTAA keys from RS485-BL. 192 +))) 177 177 194 +((( 178 178 Each RS485-BL is shipped with a sticker with unique device EUI: 196 +))) 179 179 180 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png]]198 +[[image:1652953462722-299.png]] 181 181 182 - 183 - 184 - 200 +((( 185 185 User can enter this key in their LoRaWAN Server portal. Below is TTN V3 screen shot: 202 +))) 186 186 204 +((( 187 187 Add APP EUI in the application. 206 +))) 188 188 189 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png]] 190 190 191 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png]]209 +[[image:image-20220519174512-1.png]] 192 192 193 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png]]211 +[[image:image-20220519174512-2.png||height="328" width="731"]] 194 194 195 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png]]213 +[[image:image-20220519174512-3.png||height="556" width="724"]] 196 196 215 +[[image:image-20220519174512-4.png]] 197 197 198 - 199 - 200 - 201 - 202 - 203 - 204 - 205 - 206 - 207 - 208 - 209 - 210 - 211 - 212 - 213 213 You can also choose to create the device manually. 214 214 215 -|((( 216 - 217 -))) 219 +[[image:1652953542269-423.png||height="710" width="723"]] 218 218 219 - 220 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png]] 221 - 222 222 Add APP KEY and DEV EUI 223 223 224 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image011.png]]223 +[[image:1652953553383-907.png||height="514" width="724"]] 225 225 226 226 226 +((( 227 227 **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. 228 +))) 228 228 229 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png]]230 +[[image:1652953568895-172.png||height="232" width="724"]] 230 230 231 231 233 +== 3.3 Configure Commands to read data == 232 232 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. 233 233 234 - 1.235 - 11. Configure Commands to read data238 + 239 +))) 236 236 237 - 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 === 238 238 239 - 240 -1. 241 -11. 242 -111. Configure UART settings for RS485 or TTL communication 243 - 244 244 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 245 245 246 -1. RS485-MODBUS mode: 245 +**~1. RS485-MODBUS mode:** 247 247 248 248 AT+MOD=1 ~/~/ Support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 249 249 249 +**2. TTL mode:** 250 250 251 -1. TTL mode: 252 - 253 253 AT+MOD=2 ~/~/ Support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 254 254 255 - 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 - 259 -|**AT Commands**|**Description**|**Example** 260 -|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 +((( 261 261 AT+BAUDR=9600 270 +))) 262 262 272 +((( 263 263 Options: (1200,2400,4800,14400,19200,115200) 264 264 ))) 265 -|AT+PARITY|((( 275 +))) 276 +|((( 277 +AT+PARITY 278 +)))|(% style="width:285px" %)((( 279 +((( 266 266 Set UART parity (for RS485 connection) 281 +))) 267 267 283 +((( 268 268 Default Value is: no parity. 269 -)))|((( 285 +))) 286 +)))|(% style="width:347px" %)((( 287 +((( 270 270 AT+PARITY=0 289 +))) 271 271 291 +((( 272 272 Option: 0: no parity, 1: odd parity, 2: even parity 273 273 ))) 274 -|AT+STOPBIT|((( 294 +))) 295 +|((( 296 +AT+STOPBIT 297 +)))|(% style="width:285px" %)((( 298 +((( 275 275 Set serial stopbit (for RS485 connection) 300 +))) 276 276 302 +((( 277 277 Default Value is: 1bit. 278 -)))|((( 304 +))) 305 +)))|(% style="width:347px" %)((( 306 +((( 279 279 AT+STOPBIT=0 for 1bit 308 +))) 280 280 310 +((( 281 281 AT+STOPBIT=1 for 1.5 bit 312 +))) 282 282 314 +((( 283 283 AT+STOPBIT=2 for 2 bits 284 284 ))) 317 +))) 285 285 319 +=== 3.3.2 Configure sensors === 286 286 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 +))) 287 287 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 +))) 288 288 289 -1. 290 -11. 291 -111. Configure sensors 292 - 293 -Some sensors might need to configure before normal operation. User can configure such sensor via PC or through RS485-BL AT Commands AT+CFGDEV. 294 - 295 - 296 -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. 297 - 298 -|**AT Commands**|**Description**|**Example** 299 -|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" %)((( 300 300 This command is used to configure the RS485/TTL devices; they won’t be used during sampling. 301 301 302 -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, 303 303 304 -m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 305 -)))|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 306 306 307 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>> path:#AT_CFGDEV]].339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 308 308 309 309 342 +=== 3.3.3 Configure read commands for each sampling === 310 310 311 - 312 - 313 -1. 314 -11. 315 -111. Configure read commands for each sampling 316 - 344 +((( 317 317 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 +))) 318 318 319 - 348 +((( 320 320 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 +))) 321 321 322 - 352 +((( 323 323 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 +))) 324 324 325 - 356 +((( 326 326 This section describes how to achieve above goals. 358 +))) 327 327 328 - 360 +((( 329 329 During each sampling, the RS485-BL can support 15 commands to read sensors. And combine the return to one or several uplink payloads. 362 +))) 330 330 331 - 364 +((( 332 332 **Command from RS485-BL to Sensor:** 366 +))) 333 333 368 +((( 334 334 RS485-BL can send out pre-set max 15 strings via **AT+COMMAD1**, **ATCOMMAND2**,…, to **AT+COMMANDF** . All commands are of same grammar. 370 +))) 335 335 336 - 372 +((( 337 337 **Handle return from sensors to RS485-BL**: 374 +))) 338 338 376 +((( 339 339 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 +))) 340 340 380 +* ((( 381 +**AT+DATACUT** 382 +))) 341 341 342 -* **AT+DATACUT** 343 - 384 +((( 344 344 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 +))) 345 345 388 +* ((( 389 +**AT+SEARCH** 390 +))) 346 346 347 -* **AT+SEARCH** 348 - 392 +((( 349 349 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 +))) 350 350 351 - 396 +((( 352 352 **Define wait timeout:** 398 +))) 353 353 400 +((( 354 354 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 +))) 355 355 356 - 404 +((( 357 357 After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**. 406 +))) 358 358 359 - 360 360 **Examples:** 361 361 362 362 Below are examples for the how above AT Commands works. 363 363 364 - 365 365 **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is: 366 366 367 -|((( 414 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:501px" %) 415 +|(% style="width:498px" %)((( 368 368 **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m** 369 369 370 370 **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent** ... ... @@ -376,41 +376,38 @@ 376 376 377 377 In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same. 378 378 379 - 380 380 **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx. 381 381 382 -|((( 429 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:580px" %) 430 +|(% style="width:577px" %)((( 383 383 **AT+SEARCHx=aa,xx xx xx xx xx** 384 384 385 385 * **aa: 1: prefix match mode; 2: prefix and suffix match mode** 386 386 * **xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix** 387 - 388 - 389 389 ))) 390 390 391 -Examples: 437 +**Examples:** 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 49439 +1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 394 394 395 395 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 396 396 397 -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** 398 398 399 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png]]445 +[[image:1653271044481-711.png]] 400 400 447 +2)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 401 401 402 -1. For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 403 - 404 404 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 405 405 406 -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** 407 407 408 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png]]453 +[[image:1653271276735-972.png]] 409 409 410 - 411 411 **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes. 412 412 413 -|((( 457 +(% style="background-color:#4f81bd; color:white; width:729px" %) 458 +|(% style="width:726px" %)((( 414 414 **AT+DATACUTx=a,b,c** 415 415 416 416 * **a: length for the return of AT+COMMAND** ... ... @@ -418,98 +418,143 @@ 418 418 * **c: define the position for valid value. ** 419 419 ))) 420 420 421 -Examples: 466 +**Examples:** 422 422 423 423 * Grab bytes: 424 424 425 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png]]470 +[[image:1653271581490-837.png||height="313" width="722"]] 426 426 472 + 427 427 * Grab a section. 428 428 429 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image016.png]]475 +[[image:1653271648378-342.png||height="326" width="720"]] 430 430 477 + 431 431 * Grab different sections. 432 432 433 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png]]480 +[[image:1653271657255-576.png||height="305" width="730"]] 434 434 482 +((( 483 +(% style="color:red" %)**Note:** 484 +))) 435 435 436 -Note: 437 - 486 +((( 438 438 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 +))) 439 439 440 -Example: 490 +((( 491 +**Example:** 492 +))) 441 441 442 -AT+COMMAND1=11 01 1E D0,0 494 +((( 495 +(% style="color:red" %)AT+COMMAND1=11 01 1E D0,0 496 +))) 443 443 444 -AT+SEARCH1=1,1E 56 34 498 +((( 499 +(% style="color:red" %)AT+SEARCH1=1,1E 56 34 500 +))) 445 445 446 -AT+DATACUT1=0,2,1~~5 502 +((( 503 +(% style="color:red" %)AT+DATACUT1=0,2,1~~5 504 +))) 447 447 448 -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 +))) 449 449 450 -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 +))) 451 451 452 -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 +))) 453 453 454 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png]]518 +[[image:1653271763403-806.png]] 455 455 456 456 521 +=== 3.3.4 Compose the uplink payload === 457 457 458 - 459 -1. 460 -11. 461 -111. Compose the uplink payload 462 - 523 +((( 463 463 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 +))) 464 464 527 +((( 528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0** 529 +))) 465 465 466 -**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 +))) 467 467 468 -Compose the uplink payload with value returns in sequence and send with **A SIGNLE UPLINK**. 469 - 535 +((( 470 470 Final Payload is 537 +))) 471 471 472 -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 +))) 473 473 543 +((( 474 474 Where PAYVER is defined by AT+PAYVER, below is an example screen shot. 545 +))) 475 475 476 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png]]547 +[[image:1653272787040-634.png||height="515" width="719"]] 477 477 478 478 479 479 480 -**Examples: AT+DATAUP=1** 551 +((( 552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1** 481 481 482 -Compose the uplink payload with value returns in sequence and send with **Multiply UPLINKs**. 554 + 555 +))) 483 483 557 +((( 558 +Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**Multiply UPLINKs**. 559 +))) 560 + 561 +((( 484 484 Final Payload is 563 +))) 485 485 486 -Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 565 +((( 566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA** 567 +))) 487 487 488 -1. Battery Info (2 bytes): Battery voltage 489 -1. PAYVER (1 byte): Defined by AT+PAYVER 490 -1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling. 491 -1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT) 492 -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 +))) 493 493 494 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png]]585 +[[image:1653272817147-600.png||height="437" width="717"]] 495 495 496 - 497 497 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA 498 498 499 -DATA1=RETURN1 Valid Value = 20 20 0a 33 90 41 500 500 501 -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 502 502 503 -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 504 504 594 +DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30 505 505 506 506 507 507 Below are the uplink payloads: 508 508 509 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png]]599 +[[image:1653272901032-107.png]] 510 510 511 511 512 -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: 513 513 514 514 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) 515 515 ... ... @@ -521,139 +521,186 @@ 521 521 522 522 523 523 524 -1. 525 -11. 526 -111. Uplink on demand 614 +=== 3.3.5 Uplink on demand === 527 527 616 +((( 528 528 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 +))) 529 529 620 +((( 530 530 Downlink control command: 622 +))) 531 531 532 -[[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 +))) 533 533 534 -[[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. 535 535 631 + 632 +))) 536 536 634 +=== 3.3.6 Uplink on Interrupt === 537 537 538 -1. 539 -11. 540 -111. Uplink on Interrupt 636 +Put the interrupt sensor between 3.3v_out and GPIO ext. 541 541 542 - 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]] 543 543 640 + 641 +((( 544 544 AT+INTMOD=0 Disable Interrupt 643 +))) 545 545 645 +((( 546 546 AT+INTMOD=1 Interrupt trigger by rising or falling edge. 647 +))) 547 547 649 +((( 548 548 AT+INTMOD=2 Interrupt trigger by falling edge. ( Default Value) 651 +))) 549 549 653 +((( 550 550 AT+INTMOD=3 Interrupt trigger by rising edge. 551 551 656 + 657 +))) 552 552 553 -1. 554 -11. Uplink Payload 659 +== 3.4 Uplink Payload == 555 555 556 -|**Size(bytes)**|**2**|**1**|**Length depends on the return from the commands** 557 -|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 +((( 558 558 Battery(mV) 666 +))) 559 559 668 +((( 560 560 & 670 +))) 561 561 672 +((( 562 562 Interrupt _Flag 563 -)))|((( 674 +))) 675 +)))|(% style="width:93px" %)((( 564 564 PAYLOAD_VER 565 565 566 566 567 -)))|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. 568 568 569 569 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 570 570 683 +((( 684 +{{{function Decoder(bytes, port) {}}} 685 +))) 571 571 572 -function Decoder(bytes, port) { 687 +((( 688 +{{{//Payload Formats of RS485-BL Deceive}}} 689 +))) 573 573 574 -~/~/Payload Formats of RS485-BL Deceive 691 +((( 692 +{{{return {}}} 693 +))) 575 575 576 -return { 695 +((( 696 +{{{ //Battery,units:V}}} 697 +))) 577 577 578 - ~/~/Battery,units:V 699 +((( 700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}} 701 +))) 579 579 580 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000, 703 +((( 704 +{{{ //GPIO_EXTI }}} 705 +))) 581 581 582 - ~/~/GPIO_EXTI 707 +((( 708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}} 709 +))) 583 583 584 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE", 711 +((( 712 +{{{ //payload of version}}} 713 +))) 585 585 586 - ~/~/payload of version 715 +((( 716 +{{{ Pay_ver:bytes[2],}}} 717 +))) 587 587 588 - Pay_ver:bytes[2], 719 +((( 720 +{{{ }; }}} 721 +))) 589 589 590 - }; 723 +((( 724 +} 591 591 592 - } 726 + 727 +))) 593 593 594 - 595 - 596 - 597 - 598 - 599 - 729 +((( 600 600 TTN V3 uplink screen shot. 731 +))) 601 601 602 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]733 +[[image:1653274001211-372.png||height="192" width="732"]] 603 603 604 -1. 605 -11. Configure RS485-BL via AT or Downlink 606 606 607 - Usercanconfigure RS485-BL via[[ATCommands >>path:#_Using_the_AT]]orLoRaWANDownlinkCommands736 +== 3.5 Configure RS485-BL via AT or Downlink == 608 608 738 +User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands 739 + 609 609 There are two kinds of Commands: 610 610 611 -* **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]] 612 612 613 -* **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: 614 614 615 -1. 616 -11. 617 -111. Common Commands: 746 +=== 3.5.1 Common Commands: === 618 618 619 -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]] 620 620 621 621 622 -1. 623 -11. 624 -111. Sensor related commands: 751 +=== 3.5.2 Sensor related commands: === 625 625 626 -==== ChooseDeviceType (RS485 or TTL)====753 +==== ==== 627 627 755 +==== **Choose Device Type (RS485 or TTL)** ==== 756 + 628 628 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 629 629 630 -* AT Command 759 +* **AT Command** 631 631 761 +(% class="box infomessage" %) 762 +((( 632 632 **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 764 +))) 633 633 766 +(% class="box infomessage" %) 767 +((( 634 634 **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 769 +))) 635 635 636 636 637 -* Downlink Payload 772 +* **Downlink Payload** 638 638 639 -**0A aa** àsame as AT+MOD=aa774 +**0A aa** ~-~-> same as AT+MOD=aa 640 640 641 641 642 642 643 -==== [[RS485 Debug Command>>path:#downlink_A8]](AT+CFGDEV) ====778 +==== **RS485 Debug Command (AT+CFGDEV)** ==== 644 644 645 645 This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling. 646 646 647 -* AT Command 782 +* **AT Command** 648 648 649 -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 +))) 650 650 651 651 m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command. 652 652 653 653 792 +* **Downlink Payload** 654 654 655 -* Downlink Payload 656 - 657 657 Format: A8 MM NN XX XX XX XX YY 658 658 659 659 Where: ... ... @@ -667,15 +667,15 @@ 667 667 668 668 To connect a Modbus Alarm with below commands. 669 669 670 -* 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. 671 671 672 -* 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. 673 673 674 674 So if user want to use downlink command to control to RS485 Alarm, he can use: 675 675 676 -**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 677 677 678 -**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 679 679 680 680 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. 681 681 ... ... @@ -684,48 +684,60 @@ 684 684 685 685 Check TTL Sensor return: 686 686 687 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]824 +[[image:1654132684752-193.png]] 688 688 689 689 690 690 828 +==== **Set Payload version** ==== 691 691 692 -==== Set Payload version ==== 693 - 694 694 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. 695 695 696 -* AT Command: 832 +* **AT Command:** 697 697 698 -AT+PAYVER: Set PAYVER field = 1 834 +(% class="box infomessage" %) 835 +((( 836 +**AT+PAYVER: Set PAYVER field = 1** 837 +))) 699 699 700 700 701 -* Downlink Payload: 840 +* **Downlink Payload:** 702 702 703 -0xAE 01 àSet PAYVER field = 0x01842 +**0xAE 01** ~-~-> Set PAYVER field = 0x01 704 704 705 -0xAE 0F àSet PAYVER field = 0x0F844 +**0xAE 0F** ~-~-> Set PAYVER field = 0x0F 706 706 707 707 708 -==== Set RS485 Sampling Commands ==== 709 709 848 +==== **Set RS485 Sampling Commands** ==== 849 + 710 710 AT+COMMANDx, AT+DATACUTx and AT+SEARCHx 711 711 712 -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"]]. 713 713 714 714 715 -* AT Command: 855 +* **AT Command:** 716 716 717 -AT+COMMANDx: Configure RS485 read command to sensor. 857 +(% class="box infomessage" %) 858 +((( 859 +**AT+COMMANDx: Configure RS485 read command to sensor.** 860 +))) 718 718 719 -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 +))) 720 720 721 -AT+SEARCHx: Configure search command 867 +(% class="box infomessage" %) 868 +((( 869 +**AT+SEARCHx: Configure search command** 870 +))) 722 722 723 723 724 -* Downlink Payload: 873 +* **Downlink Payload:** 725 725 726 -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. 727 727 728 -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. 729 729 730 730 Format: AF MM NN LL XX XX XX XX YY 731 731 ... ... @@ -732,23 +732,23 @@ 732 732 Where: 733 733 734 734 * MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 735 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 736 -* 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 737 737 * XX XX XX XX: AT+COMMAND or AT+DATACUT command 738 -* 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. 739 739 740 -Example: 889 +**Example:** 741 741 742 -**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 743 743 744 -**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** 745 745 746 -**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** 747 747 748 748 749 -0xAB downlink command can be used for set AT+SEARCHx 898 +**0xAB** downlink command can be used for set AT+SEARCHx 750 750 751 -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 752 752 753 753 * AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 754 754 * 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 ... ... @@ -756,145 +756,164 @@ 756 756 **AB aa 02 03 xx xx xx 02 yy yy** same as **AT+SEARCHaa=2,xx xx xx+yy yy** 757 757 758 758 759 -==== Fast command to handle MODBUS device ==== 760 760 909 +==== **Fast command to handle MODBUS device** ==== 910 + 761 761 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]]. 762 762 763 763 This command is valid since v1.3 firmware version 764 764 765 765 766 -AT+MBFUN has only two value: 916 +**AT+MBFUN has only two value:** 767 767 768 -* 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 769 769 770 770 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. 771 771 772 -* AT+MBFUN=0: Disable Modbus fast reading. 922 +* **AT+MBFUN=0**: Disable Modbus fast reading. 773 773 774 -Example: 924 +**Example:** 775 775 776 776 * AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 777 777 * 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. 778 778 * 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. 779 779 780 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png]]930 +[[image:1654133913295-597.png]] 781 781 782 782 783 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png]]933 +[[image:1654133954153-643.png]] 784 784 785 785 786 -* Downlink Commands: 936 +* **Downlink Commands:** 787 787 788 -A9 aa - àSame as AT+MBFUN=aa938 +**A9 aa** ~-~-> Same as AT+MBFUN=aa 789 789 790 790 791 -==== RS485 command timeout ==== 792 792 942 +==== **RS485 command timeout** ==== 943 + 793 793 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. 794 794 795 795 Default value: 0, range: 0 ~~ 5 seconds 796 796 797 797 798 -* AT Command: 949 +* **AT Command:** 799 799 800 -AT+CMDDLaa=hex(bb cc) 951 +(% class="box infomessage" %) 952 +((( 953 +**AT+CMDDLaa=hex(bb cc)** 954 +))) 801 801 802 -Example: 956 +**Example:** 803 803 804 804 **AT+CMDDL1=1000** to send the open time to 1000ms 805 805 806 806 807 -* Downlink Payload: 961 +* **Downlink Payload:** 808 808 809 809 0x AA aa bb cc 810 810 811 811 Same as: AT+CMDDLaa=hex(bb cc) 812 812 813 - Example: 967 + **Example:** 814 814 815 - 0xAA 01 03 E8 àSame as **AT+CMDDL1=1000 ms**969 + **0xAA 01 03 E8** ~-~-> Same as **AT+CMDDL1=1000 ms** 816 816 817 817 818 -==== [[Uplink>>path:#downlink_A8]] payload mode ==== 819 819 973 +==== **Uplink payload mode** ==== 974 + 820 820 Define to use one uplink or multiple uplinks for the sampling. 821 821 822 -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"]] 823 823 824 -* AT Command: 979 +* **AT Command:** 825 825 826 -AT+DATAUP=0 981 +(% class="box infomessage" %) 982 +((( 983 +**AT+DATAUP=0** 984 +))) 827 827 828 -AT+DATAUP=1 986 +(% class="box infomessage" %) 987 +((( 988 +**AT+DATAUP=1** 989 +))) 829 829 830 830 831 -* Downlink Payload: 992 +* **Downlink Payload:** 832 832 833 -0xAD 00 àSame as AT+DATAUP=0994 +**0xAD 00** **~-~->** Same as AT+DATAUP=0 834 834 835 -0xAD 01 àSame as AT+DATAUP=1996 +**0xAD 01** **~-~->** Same as AT+DATAUP=1 836 836 837 837 838 -==== Manually trigger an Uplink ==== 839 839 1000 +==== **Manually trigger an Uplink** ==== 1001 + 840 840 Ask device to send an uplink immediately. 841 841 842 -* Downlink Payload: 1004 +* **Downlink Payload:** 843 843 844 -0x08 FF, RS485-BL will immediately send an uplink. 1006 +**0x08 FF**, RS485-BL will immediately send an uplink. 845 845 846 846 847 -==== Clear RS485 Command ==== 848 848 1010 +==== **Clear RS485 Command** ==== 1011 + 849 849 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 850 850 851 851 852 -* AT Command: 1015 +* **AT Command:** 853 853 854 -**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 855 855 856 -Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 857 - 858 858 Example screen shot after clear all RS485 commands. 859 859 860 860 861 - 862 862 The uplink screen shot is: 863 863 864 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]1024 +[[image:1654134704555-320.png]] 865 865 866 866 867 -* Downlink Payload: 1027 +* **Downlink Payload:** 868 868 869 -0x09 aa bb same as AT+CMDEAR=aa,bb 1029 +**0x09 aa bb** same as AT+CMDEAR=aa,bb 870 870 871 871 872 -==== Set Serial Communication Parameters ==== 873 873 1033 +==== **Set Serial Communication Parameters** ==== 1034 + 874 874 Set the Rs485 serial communication parameters: 875 875 876 -* AT Command: 1037 +* **AT Command:** 877 877 878 878 Set Baud Rate: 879 879 880 -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 +))) 881 881 1046 +Set UART Parity 882 882 883 -Set UART parity 1048 +(% class="box infomessage" %) 1049 +((( 1050 +**AT+PARITY=0** ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 1051 +))) 884 884 885 -AT+PARITY=0 ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 886 - 887 - 888 888 Set STOPBIT 889 889 890 -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 +))) 891 891 892 892 893 -* Downlink Payload: 1061 +* **Downlink Payload:** 894 894 895 -A7 01 aa bb: Same AT+BAUDR=hex(aa bb)*100 1063 +**A7 01 aa bb**: Same AT+BAUDR=hex(aa bb)*100 896 896 897 -Example: 1065 +**Example:** 898 898 899 899 * A7 01 00 60 same as AT+BAUDR=9600 900 900 * A7 01 04 80 same as AT+BAUDR=115200 ... ... @@ -904,112 +904,105 @@ 904 904 A7 03 aa: Same as AT+STOPBIT=aa (aa value: 00 , 01 or 02) 905 905 906 906 907 -==== Control output power duration ==== 908 908 1076 +==== **Control output power duration** ==== 1077 + 909 909 User can set the output power duration before each sampling. 910 910 911 -* AT Command: 1080 +* **AT Command:** 912 912 913 -Example: 1082 +**Example:** 914 914 915 -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. 916 916 917 -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. 918 918 919 919 920 -* LoRaWAN Downlink Command: 1089 +* **LoRaWAN Downlink Command:** 921 921 922 -07 01 aa bb Same as AT+5VT=(aa bb) 1091 +**07 01 aa bb** Same as AT+5VT=(aa bb) 923 923 924 -07 02 aa bb Same as AT+3V3T=(aa bb) 1093 +**07 02 aa bb** Same as AT+3V3T=(aa bb) 925 925 926 926 1096 +== 3.6 Buttons == 927 927 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 928 928 929 -1. 930 -11. Buttons 1102 +== 3.7 +3V3 Output == 931 931 932 -|**Button**|**Feature** 933 -|**RST**|Reboot RS485-BL 934 - 935 -1. 936 -11. +3V3 Output 937 - 938 938 RS485-BL has a Controllable +3V3 output, user can use this output to power external sensor. 939 939 940 940 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. 941 941 942 - 943 943 The +3V3 output time can be controlled by AT Command. 944 944 945 -**AT+3V3T=1000** 946 946 947 - Meansset+3v3 valid timetohave 1000ms. So, thereal+3v3output will actually have1000ms + sampling time for other sensors.1111 +(% style="color:#037691" %)**AT+3V3T=1000** 948 948 949 949 1114 +Means set +3v3 valid time to have 1000ms. So, the real +3v3 output will actually have 1000ms + sampling time for other sensors. 1115 + 950 950 By default, the AT+3V3T=0. This is a special case, means the +3V3 output is always on at any time 951 951 952 952 953 -1. 954 -11. +5V Output 1119 +== 3.8 +5V Output == 955 955 956 956 RS485-BL has a Controllable +5V output, user can use this output to power external sensor. 957 957 958 958 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. 959 959 960 - 961 961 The 5V output time can be controlled by AT Command. 962 962 963 -**AT+5VT=1000** 964 964 965 - Meansset5V valid timetohave 1000ms. So, thereal5Voutput will actually have1000ms + sampling time for other sensors.1128 +(% style="color:#037691" %)**AT+5VT=1000** 966 966 967 967 1131 +Means set 5V valid time to have 1000ms. So, the real 5V output will actually have 1000ms + sampling time for other sensors. 1132 + 968 968 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. 969 969 970 970 1136 +== 3.9 LEDs == 971 971 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. 972 972 973 -1. 974 -11. LEDs 1142 +== 3.10 Switch Jumper == 975 975 976 -|**LEDs**|**Feature** 977 -|**LED1**|Blink when device transmit a packet. 978 - 979 -1. 980 -11. Switch Jumper 981 - 982 -|**Switch Jumper**|**Feature** 983 -|**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" %)((( 984 984 ISP position: Upgrade firmware via UART 985 985 986 986 Flash position: Configure device, check running status. 987 987 ))) 988 -|**SW2**|((( 1151 +|(% style="width:124px" %)**SW2**|(% style="width:388px" %)((( 989 989 5V position: set to compatible with 5v I/O. 990 990 991 991 3.3v position: set to compatible with 3.3v I/O., 992 992 ))) 993 993 994 -+3.3V: is always ON 1157 +**+3.3V**: is always ON 995 995 996 -+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. 997 997 998 -1. Case Study 999 999 1000 - Usercancheck this URL for some casestudies.1162 += 4. Case Study = 1001 1001 1002 - [[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]] 1003 1003 1004 1004 1167 += 5. Use AT Command = 1005 1005 1169 +== 5.1 Access AT Command == 1006 1006 1007 -1. Use AT Command 1008 -11. Access AT Command 1009 - 1010 1010 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. 1011 1011 1012 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png]]1173 +[[image:1654135840598-282.png]] 1013 1013 1014 1014 1015 1015 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: ... ... @@ -1022,7 +1022,7 @@ 1022 1022 1023 1023 1024 1024 1025 -1. 1186 +1. 1026 1026 11. Common AT Command Sequence 1027 1027 111. Multi-channel ABP mode (Use with SX1301/LG308) 1028 1028 ... ... @@ -1041,8 +1041,8 @@ 1041 1041 1042 1042 ATZ 1043 1043 1044 -1. 1045 -11. 1205 +1. 1206 +11. 1046 1046 111. Single-channel ABP mode (Use with LG01/LG02) 1047 1047 1048 1048 AT+FDR Reset Parameters to Factory Default, Keys Reserve ... ... @@ -1117,7 +1117,7 @@ 1117 1117 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png]] [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png]] 1118 1118 1119 1119 1120 -1. 1281 +1. 1121 1121 11. How to change the LoRa Frequency Bands/Region? 1122 1122 1123 1123 User can follow the introduction for [[how to upgrade image>>path:#upgrade_image]]. When download the images, choose the required image file for download. ... ... @@ -1124,7 +1124,7 @@ 1124 1124 1125 1125 1126 1126 1127 -1. 1288 +1. 1128 1128 11. How many RS485-Slave can RS485-BL connects? 1129 1129 1130 1130 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]]. ... ... @@ -1141,7 +1141,7 @@ 1141 1141 1142 1142 1143 1143 1144 -1. 1305 +1. 1145 1145 11. Why I can’t join TTN V3 in US915 /AU915 bands? 1146 1146 1147 1147 It might about the channels mapping. Please see for detail.
- 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