Last modified by Xiaoling on 2025/06/10 10:33

Show last authors
1 [[image:image-20250409163937-1.png||data-xwiki-image-style-alignment="center" height="439" width="473"]]
2
3
4
5
6
7 **Table of Contents:**
8
9 {{toc/}}
10
11
12
13
14
15
16 = 1. Introduction =
17
18 == 1.1 What is BH01-LB/LS BLE to LoRaWAN Hub ==
19
20
21 Dragino BH01-LB/LS (% style="color:blue" %)**BLE to LoRaWAN Hub**(%%) is an edge communication node device designed for loT applications. It uses the BLE Bluetooth module to periodically scan and collect data from surrounding Bluetooth temperature and humidity sensors (such as BCN02, iBeasons or third-party BLE sensors), and then uses the LoRaWAN protocol to transmit the data over long distances to the cloud platform, achieving seamless connection between Bluetooth devices and low-power wide area networks.
22
23 BH01-LB/LS is a BLE to LoRaWAN Hub which can turn BLE devices to LoRaWAN devices. This feature can help system intergrator has widely choice in sensor selection and simplify the network structure.
24
25 It is suitable for cold chain warehouse monitoring, smart agricultural environment monitoring, asset tracking and urban infrastructure health management.It combines the fexibility of Bluetooth and the wide coverage of LoRaWAN. Compared with wifi connection, it can siginifcantly reduce the deployment cost of the Internet of Things.
26
27 BH01-LB/LS has a (% style="color:blue" %)**built-in BLE module**(%%), user can configure the sensor remotely via Mobile Phone. It also support (% style="color:blue" %)**OTA upgrade**(%%) via private LoRa protocol for easy maintaining.
28
29 BH01-LB/LS is powered by (% style="color:blue" %)**8500mA Li/SOCl2 battery or solar panel with Li-ion battery**(%%) for long term use.
30
31
32 == 1.2 ​Features ==
33
34
35 * LoRaWAN 1.0.3 Class A
36 * Ultra-low power consumption
37 * Data collcetion: Bluetooth tags monitor environmental parameters in real time and upload data to the Hub via BLE protocol
38 * Combines BLE’s short-range precision with LoRaWAN’s Long range transmission
39 * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
40 * Support Bluetooth v5.1 and LoRaWAN remote configure
41 * Support wireless OTA update firmware
42 * Uplink on periodically
43 * Downlink to change configure
44 * 8500mAh Li/SOCl2 Battery (BH01-LB)
45 * Solar panel + 3000mAh Li-ion battery (BH01-LS)
46
47 == 1.3 Bluetooth Sensor Tag Specifcation ==
48
49
50 (% style="color:blue" %)**DR-TAH02:**
51
52 [[image:image-20250409091021-2.jpeg||height="90" width="138"]](% style="display:none" %)
53
54 * Bluetooth version: Bluetooth LE 5.1 protocol
55 * Shell material: PET composite plastic bag (heat sealed)
56 * Temperature range: -40°C ~~ +85°C, ±0.3°C
57 * Waterproof level: IP67
58 * Battery capacity: 600mAh
59 * Working temperature: -40°C ~~ +60°C
60 * Battery specifcation: CR2450
61 * Data storage: 512 records
62 * Battery life: 3 years (varies with the transmission powerand broadcast
63 * frequency settings)
64 * Transmit power: -19.5dBm ~~ +2.5dBm (confgurable)
65 * Broadcast frequency: 500ms (confgurable)
66 * Sampling frequency: 5min/time (confgurable)
67 * Broadcast power consumption: 22uA (varies with the transmission
68 * power and broadcast frequency settings)
69 * Broadcast mode: Custom Sensor broadcast
70 * Broadcast distance Distance: 100m (varies with thetransmission
71 * power setting)
72 * Confguration APP: nRF connect (Android / IOS)(% style="display:none" %)
73
74 (% style="color:blue" %)**DR-ES01:**
75
76 [[image:image-20250409091103-3.jpeg||height="109" width="137"]](% style="display:none" %)
77
78 * Bluetooth version: Bluetooth LE 5.3 protocol
79 * Casing material: PC material
80 * Temperature range: 0°C ~~ +85°C, ±0.2°C
81 * Waterproof level: IP65
82 * Battery capacity: 1100mAh
83 * Working temperature: 0°C ~~ +85°C
84 * Battery specifcation: AAA LR03 x2
85 * Battery life: 3 years (varies with the transmission powerand broadcast
86 * frequency settings)
87 * Transmit power: -20dBm ~~ +4dBm (confgurable)
88 * Broadcast frequency: 1000ms (confgurable)
89 * Humidity range: 0~~100%RH, ±2%RH
90 * Broadcast power consumption: 34uA (varies with the transmission
91 * power and broadcast frequency settings)
92 * Supported system: Android 4.3 / IOS7.0 and above
93 * Broadcast mode: Custom Sensor broadcast
94 * Broadcast distance Distance: 100m (varies with thetransmission
95 * power setting)
96 * Confguration APP: nRF connect (Android / IOS)
97 * Supported system: Android 4.3 / IOS7.0 and above
98
99 == 1.4 Specification ==
100
101
102 Common DC Characteristics:
103
104 * Supply Voltage: Built-in Battery , 2.5v ~~ 3.6v
105 * Operating Temperature: -40 ~~ 85°C
106
107 LoRa Spec:
108
109 * Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
110 * Max +22 dBm constant RF output vs.
111 * RX sensitivity: down to -139 dBm.
112 * Excellent blocking immunity
113
114 Battery:
115
116 * Li/SOCI2 un-chargeable battery
117 * Capacity: 8500mAh
118 * Self-Discharge: <1% / Year @ 25°C
119 * Max continuously current: 130mA
120 * Max boost current: 2A, 1 second
121
122 Power Consumption
123
124 * Sleep Mode: 5uA @ 3.3v
125 * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
126
127 == 1.5 Sleep mode and working mode ==
128
129
130 Deep Sleep Mode: Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
131
132 Working Mode: In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
133
134
135 == 1.6 Button & LEDs ==
136
137
138 [[image:image-20250408160317-3.jpeg]]
139
140 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
141 |=(% style="width: 167px;background-color:#4F81BD;color:white" %)Behavior on ACT|=(% style="width: 117px;background-color:#4F81BD;color:white" %)Function|=(% style="width: 226px;background-color:#4F81BD;color:white" %)Action
142 |(% style="width:167px" %)[[image:1749521459241-926.png]] 1~~3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
143 If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, blue led will blink once.
144 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
145 )))
146 |(% style="width:167px" %)[[image:1749521475897-287.png]] >3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
147 Green led will fast blink 5 times, device will enter OTA mode for 3 seconds. And then start to JOIN LoRaWAN network.
148 Green led will solidly turn on for 5 seconds after joined in network.
149 Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device join or not join LoRaWAN network.
150 )))
151 |(% style="width:167px" %)[[image:1749522734953-607.png]] x5|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)Red led will solid on for 5 seconds. Means device is in Deep Sleep Mode.
152
153 == 1.7 BLE connection ==
154
155
156 BH01-LB/LS supports BLE remote configure.
157
158
159 BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case:
160
161 * Press button to send an uplink
162 * Press button to active device.
163 * Device Power on or reset.
164
165 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
166
167
168 == 1.8 Pin Definitions ==
169
170
171 [[image:image-20250408165256-4.jpeg]]
172
173
174 == 1.9 Mechanical ==
175
176 === 1.9.1 for LB version ===
177
178 [[image:image-20250408165358-5.jpeg]]
179
180 === 1.9.2 for LS version ===
181
182 [[image:image-20250408165429-6.jpeg]]
183
184
185 = 2. Configure BH01-LB/LS to connect to LoRaWAN network =
186
187 == 2.1 How it works ==
188
189
190 BH01-LB/LS is configured as LoRaWAN OTAA Class A mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the BH01-LB/LS.It will automatically join the network via OTAA and start scanning nearby Bluetooth devices, sending the scanned device information to the network.The default uplink interval is 20 minutes.
191
192
193 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
194
195
196 Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example.
197
198 The LPS8v2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.
199
200 [[image:image-20250408174236-10.png]]
201
202
203 (% style="color:blue" %)**Step 1: Create a device in TTN with the OTAA keys from BH01-LB/LS.**
204
205 Each BH01-LB/LS is shipped with a sticker with the default device EUI as below:
206
207 [[image:image-20250220090645-2.jpeg]]
208
209
210 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
211
212 **Create the application.**
213
214 [[image:image-20250603093306-1.jpeg]]
215
216 [[image:image-20250603093323-2.jpeg]]
217
218
219 **Add devices to the created Application.**
220
221 [[image:image-20250603093349-3.jpeg]]
222
223 [[image:image-20250603093407-4.jpeg]]
224
225
226 **Enter end device specifics manually.**
227
228 [[image:image-20250603093441-5.jpeg]]
229
230
231 **Add DevEUI and AppKey.**
232
233 **Customize a platform ID for the device.**
234
235 [[image:image-20250603093523-6.jpeg]]
236
237
238 (% style="color:blue" %)**Step 2: Add decoder.**
239
240 In TTN, user can add a custom payload so it shows friendly reading.
241
242 Click this link to get the decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/]]
243
244 Below is TTN screen shot:
245
246 [[image:image-20250603093542-7.jpeg]]
247
248 [[image:image-20250603093647-8.jpeg]]
249
250
251 (% style="color:blue" %)**Step 3: Activate BH01-LB/LS**
252
253 Press the button for 5 seconds to activate the BH01-LB/LS.
254
255 Green led will fast blink 5 times, device will enter OTA mode for 3 seconds. And then start to JOIN LoRaWAN network. Green led will solidly turn on for 5 seconds after joined in network.
256
257 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
258
259
260 == 2.3 ​Uplink Payload ==
261
262 === 2.3.1 Device Status, FPORT~=5 ===
263
264
265 Users can use the downlink command(0x26 01) to ask BH01-LB/LS to send device configure detail, include device configure status. BH01-LB/LS will uplink a payload via FPort=5 to server.
266
267 The Payload format is as below.
268
269 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
270 |(% colspan="6" style="background-color:#4f81bd; color:white" %)Device Status (FPORT=5)
271 |(% style="width:103px" %)Size (bytes)|(% style="width:72px" %)1|2|(% style="width:91px" %)1|(% style="width:86px" %)1|(% style="width:44px" %)2
272 |(% style="width:103px" %)Value|(% style="width:72px" %)Sensor Model|Firmware Version|(% style="width:91px" %)Frequency Band|(% style="width:86px" %)Sub-band|(% style="width:44px" %)BAT
273
274 Example parse in TTNv3
275
276
277 Sensor Model: For BH01-LB/LS, this value is 0x44
278
279 Firmware Version: 0x0100, Means: v1.0.0 version
280
281 Frequency Band:
282
283 0x01: EU868
284
285 0x02: US915
286
287 0x03: IN865
288
289 0x04: AU915
290
291 0x05: KZ865
292
293 0x06: RU864
294
295 0x07: AS923
296
297 0x08: AS923-1
298
299 0x09: AS923-2
300
301 0x0a: AS923-3
302
303 0x0b: CN470
304
305 0x0c: EU433
306
307 0x0d: KR920
308
309 0x0e: MA869
310
311
312 Sub-Band:
313
314 AU915 and US915:value 0x00 ~~ 0x08
315
316 CN470: value 0x0B ~~ 0x0C
317
318 Other Bands: Always 0x00
319
320
321 Battery Info:
322
323 Check the battery voltage.
324
325 Ex1: 0x0B45 = 2885mV
326
327 Ex2: 0x0B49 = 2889mV
328
329
330 === 2.3.2 Working Modes & Sensor Data. Uplink via FPORT~=2 ===
331
332
333 BH01-LB/LS has different working mode for the connections of different type of sensors. This section describes these modes. Use can use the AT Command:
334
335 AT+MODEL=abcdefgh to set BH01-LB/LS to different working modes.
336
337 For example:
338
339 AT+MODEL=030500190b0004ff4c000215011223344556 (turn on scanning Bluetooth ibeacon beacons)
340
341 Parameter a = 0x03: Set the scanning mode to Bluetooth ibeacon beacons.
342
343 Parameter b = 0x05: Set the intercepted data length to 5.
344
345 Parameter c = 0x00: Set the intercepted data position to the broadcast packet.
346
347 Parameter d = 0x19: Set the intercepted data starting position 25.
348
349 Parameter e = 0x0b: Set the filter data length to 11.
350
351 Parameter f = 0x00: Set the filter data position to the scan reply response packet.
352
353 Parameter g = 0x04: Set the filter data starting position 4.
354
355 Parameter h = 0xff4c000215011223344556: Set the filter data to 0xff4c000215011223344556 (0xff is AD Type).
356
357
358 ==== 2.3.2.1 Parameter Description ====
359
360 ===== 2.3.2.1.1 Parameter a: type mode =====
361
362
363 Modes 4 to 16 (a = 0x04 to 0x16) are user-defined scanning device modes based on the sensor used.
364
365 ====== (% style="color:blue" %)**Mode 1 (a ~= 0x01): Bluetooth Temperature Tag (TAH02) mode**(%%) ======
366
367 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
368 |(% style="background-color:#4f81bd; color:white; width:170px" %)Mac address (6 bytes)|(% style="background-color:#4f81bd; color:white; width:170px" %)0xEE 3B 14 28 32 D1|(% style="background-color:#4f81bd; color:white; width:170px" %)/
369 |(% style="width:207px" %)Sensor type (1 byte)|(% style="width:179px" %)0x03|(% style="width:250px" %)Temperature sensor
370 |(% style="width:207px" %)Sensor data length (1 byte)|(% style="width:179px" %)0x04|(% style="width:250px" %)Data length
371 |(% style="width:207px" %)Temperature (2 bytes)|(% style="width:179px" %)0x2701|(% style="width:250px" %)Temperature: 29.5℃
372 |(% style="width:207px" %)Battery (1 byte)|(% style="width:179px" %)0x64|(% style="width:250px" %)Battery: 100%
373 |(% style="width:207px" %)RSSI (1 byte)|(% style="width:179px" %)0xC3|(% style="width:250px" %)1 meter output power: -61db
374
375 AT+MODEL=0104: Start scanning Bluetooth temperature tag (TAH02)mode.
376
377 AT+MODEL=0100: Turn off scanning for Bluetooth temperature tags (TAH02)mode.
378
379
380 ====== (% style="color:blue" %)**Mode 2 (a ~= 0x02): Bluetooth temperature and humidity (ES01) mode**(%%) ======
381
382 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
383 |(% style="background-color:#4f81bd; color:white; width:170px" %)Mac address (6 bytes)|(% style="background-color:#4f81bd; color:white; width:170px" %)0xEE 3B 14 28 32 D1|(% style="background-color:#4f81bd; color:white; width:170px" %)/
384 |(% style="width:207px" %)Sensor type (1 byte)|(% style="width:179px" %)0x03|(% style="width:250px" %)Temperature and humidity sensor
385 |(% style="width:207px" %)Sensor data length (1 byte)|(% style="width:179px" %)0x05|(% style="width:250px" %)Data length
386 |(% style="width:207px" %)Humidity (1 byte)|(% style="width:179px" %)0x4C|(% style="width:250px" %)THumidity: 76%
387 |(% style="width:207px" %)Temperature (2 bytes)|(% style="width:179px" %)0x2701|(% style="width:250px" %)Temperature: 29.5℃
388 |(% style="width:207px" %)Battery (1 byte)|(% style="width:179px" %)0x64|(% style="width:250px" %)Battery: 100%
389 |(% style="width:207px" %)RSSI (1 byte)|(% style="width:179px" %)0xC3|(% style="width:250px" %)1 meter output power: -61db
390
391 AT+MODEL=0205: Enable Bluetooth temperature and humidity scanning (ES01)mode.
392
393 AT+MODEL=0200: Disable Bluetooth temperature and humidity scanning (ES01)mode.
394
395
396 ====== (% style="color:blue" %)**Mode 3 (a ~= 0x03): Bluetooth ibeacon mode**(%%) ======
397
398 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
399 |(% style="background-color:#4f81bd; color:white; width:170px" %)Mac address (6 bytes)|(% style="background-color:#4f81bd; color:white; width:170px" %)0xEE 3B 14 28 32 D1|(% style="background-color:#4f81bd; color:white; width:170px" %)/
400 |(% style="width:207px" %)Sensor type (1 byte)|(% style="width:179px" %)(((
401 0x01
402 )))|(% style="width:330px" %)ibeacon beacon
403 |(% style="width:207px" %)Sensor data length (1 byte)|(% style="width:179px" %)0x06|(% style="width:330px" %)Data length
404 |(% style="width:207px" %)Major (2byte)|(% style="width:179px" %)0x1122|(% style="width:330px" %)/
405 |(% style="width:207px" %)Minor (2byte)|(% style="width:179px" %)0x004c|(% style="width:330px" %)/
406 |(% style="width:207px" %)Measured Power(1byte)|(% style="width:179px" %)0x64|(% style="width:330px" %)Measured Bluetooth transmission power
407 |(% style="width:207px" %)RSSI (1 byte)|(% style="width:179px" %)0xC3|(% style="width:330px" %)1 meter output power: -61db
408
409 AT+MODEL=030500190b0004ff4c000215011223344556: Enable the Bluetooth ibeacon beacon scanning mode.
410
411 AT+MODEL=0300: Disable the Bluetooth ibeacon beacon scanning mode.
412
413
414 ====== (% style="color:blue" %)**Mode 4 to 16(a ~= 0x04 to 0x16): user-defined scanning device mode**(%%) ======
415
416 (% style="color:red" %)**Note: Different scanning modes can work at the same time.**
417
418 If the user needs to scan Bluetooth temperature and humidity (ES01) and Bluetooth Temperature Tag (TAH02) at the same time, then just input the following continuously:
419
420 AT+MODEL=0104
421
422 AT+MODEL=0205
423
424
425 ===== 2.3.2.1.2 Parameter b: The effective data length of the interception =====
426
427
428 b equals 0: indicates that the scanning of the corresponding modes 1 to 16 is canceled.
429
430 b is not equal to 0: set the b parameter according to the valid data intercepted by the sensor time.
431
432 For example,
433
434 in mode 1 (a = 0x01), the default parameter b is 4.
435
436 In mode 2 (a = 0x02), the default parameter b is 5.
437
438 When it is mode 1 and 2, scanning can be performed after setting the b parameter; the subsequent parameter cdefgh does not need to be set.Mode 1 (a = 0x01): Bluetooth Temperature Tag (TAH02)
439
440 In other modes,users need to set the following cdefgh parameters to enable this mode.
441
442
443 ===== 2.3.2.1.3 Parameter c: intercepted valid data position =====
444
445
446 c = 0x00: in the broadcast packet
447
448 c = 0x01: in the scan reply packet.
449
450 Note: Generally:
451
452 scan data includes two types: broadcast packets (31 bytes) and scan response packets (31 bytes). There is at least one type of broadcast packet. You can use a mobile phone to scan and obtain the complete scan data.
453
454 [[image:image-20250314140143-1.png||height="291" width="584"]]
455
456 Both the broadcast packet and the scan reply packet are composed of several unit data; the unit data format is length+AD Type+AD Data.
457
458
459 ===== 2.3.2.1.4 Parameter d: The starting position of the intercepted valid data =====
460
461
462 The starting position starts from 0.
463
464 The broadcast packet and the scan reply packet are two different packets, and the interception should start from 0.
465
466 The maximum is no more than 30.
467
468
469 ===== 2.3.2.1.5 Parameter e: scan and filter data length =====
470
471
472 The maximum value is 31.
473
474
475 ===== 2.3.2.1.6 Parameter f: Scan filtered data location =====
476
477
478 f = 0x00: The data location of the scan filter is in the broadcast packet
479
480 f = 0x01: The data location of the scan filter is in the scan reply packet
481
482
483 ===== 2.3.2.1.7 Parameter g: the starting position of the scanned filtered data =====
484
485
486 The starting position starts from 0.
487
488 The broadcast packet and the scan reply packet are two different packets, and the filtering data should start from 0.
489
490 The maximum is no more than 30.
491
492
493 ===== 2.3.2.1.8 Parameter h: scan filtered data =====
494
495
496 It is recommended to use data with UUID and Bluetooth names to filter out unnecessary scan data.
497
498 Generally, the more scan filter data there is, the less interference can be filtered.
499
500 The data from the starting position 0 to the data including the UUID or Bluetooth name part can be used as filter data.
501
502
503 If the user needs to customize, please refer to the following example:
504
505 Manufacturers are required to provide Raw data, scanned broadcast packet data, scanned response packet data, valid data, and filtered data.
506
507 For example:  AD Type Reference Table
508
509 [[image:image-20250314113453-3.png||height="601" width="484"]]
510
511 [[image:image-20250213114648-5.png||height="441" width="459"]]
512
513 [[image:image-20250314113308-2.png||height="598" width="588"]]
514
515 Assume that the valid data is AD E8 F3 D4 B8 84 94 A0 AA F5 E2 0F 23 15 5A 95
516
517 Assume the filtered data is 1A FF 4C 00 02 15 01 12 23 34 45 56 67 78 89 9A AB BC CD DE EF F0 27 17 70 73 C3
518
519
520 Raw data analysis:
521
522 0×02 01 06
523
524 Length = 0x02  AD Type = 0x01                  
525
526 AD Data = 0x06
527
528
529 1A FF 4C 00 02 15 01 12 23 34 45 56 67 78 89 9A AB BC CD DE EF F0 27 17 70 73 C3
530
531 Length = 0x1A(26)  AD Type = 0xFF(This is a custom data type for Bluetooth manufacturers)
532
533 Data =0x4C0002150112233445566778899AABBCCDDEEFF027177073C3
534
535
536 11 07 AD E8 F3 D4 B8 84 94 A0 AA F5 E2 0F 23 15 5A 95
537
538 Length = 0x11(17)  AD Type = 0x07 (UUID)
539
540 AD Data = 0xADE8F3D4B88494A0AAF5E20F23155A95
541
542
543 0C 08 45 57 38 30 45 43 43 43 43 46 00
544
545 Length = 0x0C(12)  AD Type = 0x08 (Bluetooth Name)
546
547 AD Data = 0x4557383045434343434600
548
549
550 Analyze valid data:
551
552 AD E8 F3 D4 B8 84 94 A0 AA F5 E2 0F 23 15 5A 95
553
554 Valid data length = 0x10 (16)  ➡  b = 0x16
555
556 Valid data location = 0x00 (Broadcast Packet)  ➡  c = 0x00
557
558 Valid data starting position = 0x20 (32)  ➡  d = 0x20
559
560
561 Analyze the filtered data:
562
563 1A FF 4C 00 02 15 01 12 23 34 45 56 67 78 89 9A AB BC CD DE EF F0 27 17 70 73 C3  ➡  h = 1aff4c0002130112233445566778899aabbccddeeff027177073c3
564
565 filtered data length = 0x1B (27)  ➡  e = 0x1b
566
567 filtered data location = 0x00 (Broadcast Packet)  ➡  f  = 0x00
568
569 filtered data starting position = 0x03  ➡  g = 0x03
570
571
572 So the user can set the AT command as:
573
574 AT+MODEL=041600201b00031aff4c0002130112233445566778899aabbccddeeff027177073c3
575
576
577 === 2.3.3  ​Decode payload ===
578
579
580 While using TTN V3 network, you can add the payload format to decode the payload.
581
582 [[image:image-20250409092813-4.jpeg]]
583
584 The payload decoder function for TTN V3 are here:
585
586 BH01-LB/LS TTN V3 Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]]
587
588
589 ==== 2.3.3.1 Battery Info ====
590
591
592 Check the battery voltage for BH01-LB/LS.
593
594 Ex1: 0x0B45 = 2885mV
595
596 Ex2: 0x0B49 = 2889mVxe
597
598
599 == 2.4 Payload Decoder file ==
600
601
602 In TTN, use can add a custom payload so it shows friendly reading
603
604 In the page Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder to add the decoder from:
605
606 [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/blob/main/BH01-LB/BH01-LB_Decode_V1.0.0.txt>>https://github.com/dragino/dragino-end-node-decoder/blob/main/BH01-LB/BH01-LB_Decode_V1.0.0.txt]]
607
608
609 == 2.5 Frequency Plans ==
610
611
612 The BH01-LB/LS uses OTAA mode and below frequency plans by default. Each frequency band use different firmware, user update the firmware to the corresponding band for their country.
613
614 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
615
616
617 = 3. Configure BH01-LB/LS =
618
619 == 3.1 Configure Methods ==
620
621
622 BH01-LB/LS supports below configure method:
623
624 * AT Command via Bluetooth Connection (Recommended): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
625 * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]].
626 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
627
628 == 3.2 General Commands ==
629
630
631 These commands are to configure:
632
633 * General system settings like: uplink interval.
634 * LoRaWAN protocol & radio related command.
635
636 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
637
638 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
639
640
641 == 3.3 Commands special design for BH01-LB/LS ==
642
643
644 These commands only valid for BH01-LB/LS, as below:
645
646
647 === 3.3.1 Set Transmit Interval Time ===
648
649
650 Feature: Change LoRaWAN End Node Transmit Interval.
651
652 AT Command: AT+TDC
653
654 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
655 |=(% style="width: 156px;background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 137px;background-color:#4F81BD;color:white" %)Function|=(% style="background-color:#4F81BD;color:white" %)Response
656 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
657 30000
658 OK
659 the interval is 30000ms = 30s
660 )))
661 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
662 OK
663 Set transmit interval to 60000ms = 60 seconds
664 )))
665
666 Downlink Command: 0x01
667
668 Format: Command Code (0x01) followed by 3 bytes of time value.
669
670 If the downlink payload = 0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while the type code is 01.
671
672 * Example 1: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
673 * Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
674
675 === 3.3.2 Set the Bluetooth scan Time ===
676
677
678 AT Command: AT+BLESCANTIME
679
680 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
681 |=(% style="width: 156px;background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 137px;background-color:#4F81BD;color:white" %)Function|=(% style="background-color:#4F81BD;color:white" %)Response
682 |(% style="width:156px" %)AT+BLESCANTIME=?|(% style="width:137px" %)Show current Bluetooth scan time|(((
683 7
684 OK
685 Bluetooth scan time is 7s
686 )))
687 |(% style="width:156px" %)AT+BLESCANTIME=5|(% style="width:137px" %)Set Bluetooth scan time|(((
688 OK
689 Set Bluetooth scan time to 5 seconds
690 )))
691
692 Downlink Command: 0x06
693
694 Format: Command Code (0x06) followed by 1 byte of time value.
695
696 If the downlink payload = 0605, it means setting the Bluetooth scan time to 0x05 = 5 (S) and the type code is 06.
697
698 * Example: Downlink Payload: 0607  ~/~/  Set Transmit Interval (BLESCANTIME) = 7 seconds
699
700 === 3.3.3 Set the time to start scheduled sending (mainly used to send data on the hour) ===
701
702
703 AT Command: AT+TIMEDSEND
704
705 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
706 |=(% style="width: 156px;background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 137px;background-color:#4F81BD;color:white" %)Function|=(% style="background-color:#4F81BD;color:white" %)Response
707 |(% style="width:156px" %)AT+TIMEDSEND=?|(% style="width:137px" %)Show start timing parameters|(((
708 1,0,60
709 OK
710 )))
711 |(% style="width:156px" %)AT+TIMEDSEND=a,b,c|(% style="width:137px" %)Set the timing parameters|(((
712 OK
713 )))
714
715 a:0 disable timed transmission, setting 1 enable timed transmission setting.
716
717 b: first transmission start second (in seconds, range 0-3599).
718
719 c: actual device uplink data interval (TDC) (in minutes, range 1-255).
720
721 Downlink Command: 0x07
722
723 Format: Command Code (0x01) followed by 4 bytes of time value.
724
725 If the downlink payload = 0701000030, it means that the function of sending data at regular intervals is enabled.
726
727 * Example 1: Downlink Payload:  0701000030  ~/~/  AT+TIMEDSEND=1,0,60
728
729 === 3.3.4 Get Device Status ===
730
731
732 Send a LoRaWAN downlink to ask the device to send its status.
733
734 Downlink Payload: 0x26 01
735
736 Sensor will upload Device Status via FPORT=5. See the payload section for details.
737
738
739 === 3.3.5 Set Workmode ===
740
741
742 Feature: Switch working mode.
743
744 AT Command: AT+MODEL=abcdefgh
745
746 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
747 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 197px;background-color:#4F81BD;color:white" %)Function|=(% style="width: 158px;background-color:#4F81BD;color:white" %)Response
748 |(% style="width:154px" %)AT+MODEL=?|(% style="width:196px" %)Get the scan filter model.|(% style="width:157px" %)(((
749 OK
750 )))
751 |(% style="width:154px" %)AT+MODEL=0104|(% style="width:196px" %)Set the working mode to TAH02.|(% style="width:157px" %)(((
752 OK
753 END_TRANSFER_CONDITION
754 )))
755
756 Downlink Command: 0x08
757
758 Format: Command Code
759
760 * Example 1: Downlink Payload:
761
762 08 01 05  ~-~-->  AT+MODEL=0105
763
764 * Example 2: Downlink Payload:
765
766 08 03 05 00 19 0b 00 04 ff 4c 00 02 15 01 12 23 34 45 56  ~-~-->  AT+MODEL=030500190b0004ff4c000215011223344556 0x08 03 05 00 19 0b 00 04 ff 4c 00 02 15 01 12 23 34 45 56
767
768 See payload section for detail.
769
770
771 === 3.3.6 Set up filtering of devices by signal strength ===
772
773
774 Feature: Filter Scan Devices
775
776 AT Command:AT+FILTERRSSI=XX
777
778 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
779 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 197px;background-color:#4F81BD;color:white" %)Function|=(% style="width: 158px;background-color:#4F81BD;color:white" %)Response
780 |(% style="width:154px" %)(((
781 AT+FILTERRSSI=?
782 )))|(% style="width:196px" %)Get the RSSI range of the scanned device|(% style="width:157px" %)(((
783 0
784 OK
785 )))
786 |(% style="width:154px" %)(((
787 AT+FILTERRSSI=-70
788 )))|(% style="width:196px" %)Set the RSSI range of the scanning device to -70~0|(% style="width:157px" %)(((
789 OK
790 )))
791
792 Downlink Command: 0x09
793
794 Format: Command Code
795
796 * Example: Downlink Payload:
797
798 09 BA ~-~-->  AT+FILTERRSSI=-70
799
800 -70 is converted from signed to unsigned to decimal 186, and 186 is converted from decimal to hexadecimal to BA.
801
802
803 = 4. Case Study =
804
805 == 4.1 Dashboard Interface ExampleDashboard Interface Example ==
806
807
808 The dashboard provides an intuitive interface for real-time monitoring, data analysis, and control.
809
810
811 [[image:image-20250419142007-1.png]]
812
813
814 == 4.2 Detailed Features ==
815
816
817 * **Real-Time Location Tracking**
818 As you hover over the entries in the right-hand list, the BH01 icon nearest to the corresponding beacon will highlight in green and display the beacon's name for easy identification.
819
820 [[image:image-20250419142122-2.png]]
821
822 * **Beacon Information Access**
823 Simply click on any listed beacon name to instantly access detailed information about that specific beacon.
824
825 [[image:image-20250419142122-3.png]]
826
827 * **Temperature & Humidity Monitoring**
828 The BH01 devices are equipped with advanced temperature and humidity sensors. You can monitor real-time environmental conditions, with current temperature and humidity readings readily available for your review.
829
830 [[image:image-20250419142122-4.png]]
831
832
833 = 5. Battery & Power Consumption =
834
835
836 BH01-LB use ER26500 + SPC1520 battery pack and BH01-LS use 3000mAh Recharable Battery with Solar Panel. See below link for detail information about the battery info and how to replace.
837
838 [[Battery Info & Power Consumption Analyze>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
839
840
841 = 6. OTA Firmware update =
842
843
844 User can change firmware BH01-LB/LS to:
845
846 * Change Frequency band/ region.
847 * Update with new features.
848 * Fix bugs.
849
850 Firmware and changelog can be downloaded from : [[Firmware download link>>https://www.dropbox.com/scl/fo/159vcesgbwe6cv0frovaf/AGpaICU74040qlFxAmUhs84?rlkey=svqdx3qxl334jrcx4ql5pk9kg&st=txsfwg0y&dl=0]]
851
852 Methods to Update Firmware:
853
854 * (Recommanded way) OTA firmware update via wireless: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]]
855 * Update through UART TTL interface: [[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]].
856
857 = 7. Order Info =
858
859
860 **Part Number: (% style="color:blue" %)BH01-LB-XX(%%)   or (% style="color:blue" %)BH01-LS-XX(%%)**
861
862 XX: The default frequency band
863
864 * AS923: LoRaWAN AS923 band
865 * AU915: LoRaWAN AU915 band
866 * EU433: LoRaWAN EU433 band
867 * EU868: LoRaWAN EU868 band
868 * KR920: LoRaWAN KR920 band
869 * US915: LoRaWAN US915 band
870 * IN865: LoRaWAN IN865 band
871 * CN470: LoRaWAN CN470 band
872
873 (% style="color:red" %)**Note: Model BH01-LB/LS doesn't include Bluetooth Tags. Bluetooth Tags are purchased seperately. **
874
875 **Bluetooth Tags Option: (% style="color:blue" %)DR-TAH02 , DR-ES01(%%)**
876
877
878 = 8. ​Packing Info =
879
880
881 Package Includes:
882
883 * BH01-LB/LS  Bluetooth to LoRaWAN Hub
884
885 Dimension and weight:
886
887 * Device Size: cm
888 * Device Weight: g
889 * Package Size / pcs : cm
890 * Weight / pcs : g
891
892 = 9. Support =
893
894
895 * Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
896
897 * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.cc>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.cc]]