Version 80.2 by Xiaoling on 2023/08/19 11:33

Show last authors
1 (% style="text-align:center" %)
2 [[image:image-20230819102136-3.png]]
3
4
5
6 **Table of Contents:**
7
8 {{toc/}}
9
10
11
12
13
14
15 = 1. Introduction =
16
17 == 1.1 What is S31x-NB NB-IoT Temperature & Humidity Sensor ==
18
19
20 The Dragino S31-NB and S31B-NB are (% style="color:blue" %)**NB-IoT Temperature and Humidity Sensor**(%%) for Internet of Things solution. It is used to measure the surrounding (% style="color:blue" %)**environment temperature and relative air humidity precisely**(%%), and then upload to IoT server via NB-IoT network*.
21
22 The temperature & humidity sensor used in S31-NB is SHT31, which is fully calibrated, linearized, and temperature compensated digital output from Sensirion, it provides a strong reliability and long-term stability. The SHT31 is fixed in a (% style="color:blue" %)**waterproof anti-condensation casing**(%%) for long term use.
23
24 S31-NB supports different uplink methods include (% style="color:blue" %)**TCP, MQTT, UDP** for different application requirement. and Support Uplinks to various IoT Servers.
25
26 S31-NB is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long term use up to several years. (Real-world battery life depends on the use environment, update period and uplink method. Please check related Power Analyze report).
27
28 *make sure you have NB-IoT coverage locally.
29
30
31 [[image:1692411831805-116.png]]
32
33
34 == 1.2 ​Features ==
35
36
37 * NB-IoT Bands: B1/B2/B3/B4/B5/B8/B12/B13/B17/B18/B19/B20/B25/B28/B66/B70/B85 @H-FDD
38 * Ultra-low power consumption
39 * External 3 meters SHT31 probe (For S31-NB)
40 * Measure range -40°C ~~ 85°C
41 * Temperature & Humidity alarm
42 * Multiply Sampling and one uplink
43 * Support Bluetooth v5.1 remote configure and update firmware
44 * Uplink on periodically
45 * Downlink to change configure
46 * 8500mAh Battery for long term use
47 * Nano SIM card slot for NB-IoT SIM
48
49 == 1.3 Specification ==
50
51
52 (% style="color:#037691" %)**Common DC Characteristics:**
53
54 * Supply Voltage: 2.1v ~~ 3.6v
55 * Operating Temperature: -40 ~~ 85°C
56
57 (% style="color:#037691" %)**Temperature Sensor:**
58
59 * Range: -40 to + 80°C
60 * Accuracy: ±0.2 @ 0-90 °C
61 * Resolution: 0.1°C
62 * Long Term Shift: <0.03 °C/yr
63
64 (% style="color:#037691" %)**Humidity Sensor: **
65
66 * Range: 0 ~~ 99.9% RH
67 * Accuracy: ± 2%RH ( 0 ~~ 100%RH)
68 * Resolution: 0.01% RH
69 * Long Term Shift: <0.25 %RH/yr
70
71 (% style="color:#037691" %)**NB-IoT Spec:**
72
73 **NB-IoT Module: BC660K-GL**
74
75 Support Bands:
76
77 * B1 @H-FDD: 2100MHz
78 * B2 @H-FDD: 1900MHz
79 * B3 @H-FDD: 1800MHz
80 * B4 @H-FDD: 2100MHz
81 * B5 @H-FDD: 860MHz
82 * B8 @H-FDD: 900MHz
83 * B12 @H-FDD: 720MHz
84 * B13 @H-FDD: 740MHz
85 * B17 @H-FDD: 730MHz
86 * B18 @H-FDD: 870MHz
87 * B19 @H-FDD: 870MHz
88 * B20 @H-FDD: 790MHz
89 * B25 @H-FDD: 1900MHz
90 * B28 @H-FDD: 750MHz
91 * B66 @H-FDD: 2000MHz
92 * B70 @H-FDD: 2000MHz
93 * B85 @H-FDD: 700MHz
94
95 (% style="color:#037691" %)**Battery:**
96
97 * Li/SOCI2 un-chargeable battery
98 * Capacity: 8500mAh
99 * Self Discharge: <1% / Year @ 25°C
100 * Max continuously current: 130mA
101 * Max boost current: 2A, 1 second
102
103 (% style="color:#037691" %)**Power Consumption**
104
105 * STOP Mode: 10uA @ 3.3v
106 * Max transmit power: 350mA@3.3v
107
108 == 1.4 Applications ==
109
110
111 * Smart Buildings & Home Automation
112 * Logistics and Supply Chain Management
113 * Smart Metering
114 * Smart Agriculture
115 * Smart Cities
116 * Smart Factory
117
118
119
120 == 1.5 Sleep mode and working mode ==
121
122
123 (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
124
125 (% style="color:blue" %)**Working Mode:** (%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
126
127
128
129 == 1.6 Button & LEDs ==
130
131
132 [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675071855856-879.png]]
133
134
135 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
136 |=(% style="width: 167px;background-color:#D9E2F3;color:#0070C0" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 225px;background-color:#D9E2F3;color:#0070C0" %)**Action**
137 |(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
138 If sensor has already attached to NB-IoT network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
139 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
140 )))
141 |(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
142 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:#037691" %)**OTA mode**(%%) for 3 seconds. And then start to attach NB-IoT network.
143 (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
144 Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device attach NB-IoT network or not.
145 )))
146 |(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means device is in Deep Sleep Mode.
147
148 == 1.7 BLE connection ==
149
150
151 S31x-NB support BLE remote configure and firmware update.
152
153
154 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:
155
156 * Press button to send an uplink
157 * Press button to active device.
158 * Device Power on or reset.
159
160 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
161
162
163 == 1.8 Pin Definitions & Switch ==
164
165
166 S31x-NB use the mother board from S31-NB which as below.
167
168 [[image:image-20230819104805-5.png]]
169
170
171
172 === 1.8.1 Jumper JP2 ===
173
174
175 Power on Device when put this jumper.
176
177
178 === 1.8.2 BOOT MODE / SW1 ===
179
180
181 1) (% style="color:blue" %)**ISP**(%%): upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run.
182
183 2) (% style="color:blue" %)**Flash**(%%): work mode, device starts to work and send out console output for further debug
184
185
186 === 1.8.3 Reset Button ===
187
188
189 Press to reboot the device.
190
191
192
193 == 1.9 Hardware Variant ==
194
195
196 (% border="1" cellspacing="5" style="width:410px" %)
197 |=(% style="width: 102px;background-color:#D9E2F3;color:#0070C0" %)Model|=(% style="width: 126px; background-color: rgb(217, 226, 243); color: rgb(0, 112, 192);" %)Photo|=(% style="width: 179px; background-color: rgb(217, 226, 243); color: rgb(0, 112, 192);" %)Probe Info
198 |(% style="width:102px" %)(((
199 S31-LB
200 )))|(% style="width:126px" %)(((
201 (% style="text-align:center" %)
202 [[image:image-20230819110632-6.png||height="130" width="104"]]
203 )))|(% style="width:179px" %)(((
204 1 x SHT31 Probe
205
206 Cable Length : 3 meters
207
208
209 )))
210 |(% style="width:102px" %)(((
211 S31B-LB
212 )))|(% style="width:126px" %)(((
213 (% style="text-align:center" %)
214 [[image:image-20230819110702-7.png||height="164" width="90"]]
215 )))|(% style="width:179px" %)(((
216 1 x SHT31 Probe
217
218 Installed in device.
219 )))
220
221 (% style="display:none" %)
222
223
224
225
226 = 2. Use S31-NB to communicate with IoT Server =
227
228 == 2.1 Send data to IoT server via NB-IoT network ==
229
230
231 The S31-NB is equipped with a NB-IoT module, the pre-loaded firmware in S31-NB will get environment data from sensors and send the value to local NB-IoT network via the NB-IoT module.  The NB-IoT network will forward this value to IoT server via the protocol defined by S31-NB.
232
233
234 Below shows the network structure:
235
236 [[image:1692415924540-357.png]]
237
238
239 There are two version: **-GE** and **-1D** version of S31-NB.
240
241
242 **GE Version**: This version doesn’t include SIM card or point to any IoT server. User needs to use AT Commands to configure below two steps to set S31-NB send data to IoT server.
243
244 1. Install NB-IoT SIM card and configure APN. See instruction of [[Attach Network>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H2.AttachNetwork]].
245 1. Set up sensor to point to IoT Server. See instruction of [[Configure to Connect Different Servers>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.Configuretoconnecttodifferentservers]].
246
247 Below shows result of different server as a glance.
248
249
250 |**Servers**|**Dash Board**|**Comments**
251 |[[Node-Red>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.5A0Node-RedA028viaA0MQTT29]]|[[image:image-20230819113244-8.png]]|
252 |[[DataCake>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.4Datacake]]|[[image:image-20230819113244-9.png]]|
253 |[[Tago.IO>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.7A0Tago.ioA028viaA0MQTT29]]| |
254 |[[General UDP>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.1GeneralA0UDPA0Connection]]|Raw Payload. Need Developer to design Dash Board|
255 |[[General MQTT>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.2GeneralA0MQTTA0Connection]]|Raw Payload. Need Developer to design Dash Board|
256 |[[ThingSpeak>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.3A0ThingSpeakA028viaA0MQTT29]]|[[image:image-20230819113244-10.png]]|
257 |[[ThingsBoard>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.6A0ThingsBoard.CloudA028viaA0MQTT29]]|[[image:image-20230819113244-11.png]]|
258 | | |
259
260
261
262 **1D Version**: This version has 1NCE SIM card pre-installed and configure to send value to DataCake. User Just need to select the sensor type in DataCake and Activate S31-NB and user will be able to see data in DataCake. See here for [[DataCake Config Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.4Datacake]].
263
264
265 == 2.2 ​Payload Types ==
266
267
268 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.
269
270 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.
271
272
273 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from S31x-LB.
274
275 Each S31x-LB is shipped with a sticker with the default device EUI as below:
276
277 [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
278
279
280 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
281
282
283 (% style="color:blue" %)**Register the device**
284
285 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/1654935135620-998.png?rev=1.1||alt="1654935135620-998.png"]]
286
287
288 (% style="color:blue" %)**Add APP EUI and DEV EUI**
289
290 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-4.png?width=753&height=551&rev=1.1||alt="图片-20220611161308-4.png"]]
291
292
293 (% style="color:blue" %)**Add APP EUI in the application**
294
295
296 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-5.png?width=742&height=601&rev=1.1||alt="图片-20220611161308-5.png"]]
297
298
299 (% style="color:blue" %)**Add APP KEY**
300
301 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-6.png?width=744&height=485&rev=1.1||alt="图片-20220611161308-6.png"]]
302
303
304 (% style="color:blue" %)**Step 2:**(%%) Activate on S31x-LB
305
306
307 Press the button for 5 seconds to activate the S31x-LB.
308
309 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
310
311 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
312
313
314 == 2.3 ​Uplink Payload ==
315
316 === 2.3.1 Device Status, FPORT~=5 ===
317
318
319 Users can use the downlink command(**0x26 01**) to ask S31x-LB to send device configure detail, include device configure status. S31x-LB will uplink a payload via FPort=5 to server.
320
321 The Payload format is as below.
322
323
324 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
325 |(% colspan="6" style="background-color:#d9e2f3; color:#0070c0" %)**Device Status (FPORT=5)**
326 |(% style="width:103px" %)**Size (bytes)**|(% style="width:72px" %)**1**|**2**|(% style="width:91px" %)**1**|(% style="width:86px" %)**1**|(% style="width:44px" %)**2**
327 |(% 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
328
329 Example parse in TTNv3
330
331 [[image:image-20230524144422-1.png||height="174" width="1080"]]
332
333
334 (% style="color:#037691" %)**Sensor Model**(%%): For S31x-LB, this value is 0x0A
335
336 (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
337
338 (% style="color:#037691" %)**Frequency Band**:
339
340 0x01: EU868
341
342 0x02: US915
343
344 0x03: IN865
345
346 0x04: AU915
347
348 0x05: KZ865
349
350 0x06: RU864
351
352 0x07: AS923
353
354 0x08: AS923-1
355
356 0x09: AS923-2
357
358 0x0a: AS923-3
359
360 0x0b: CN470
361
362 0x0c: EU433
363
364 0x0d: KR920
365
366 0x0e: MA869
367
368
369 (% style="color:#037691" %)**Sub-Band**:
370
371 AU915 and US915:value 0x00 ~~ 0x08
372
373 CN470: value 0x0B ~~ 0x0C
374
375 Other Bands: Always 0x00
376
377
378 (% style="color:#037691" %)**Battery Info**:
379
380 Check the battery voltage.
381
382 Ex1: 0x0B45 = 2885mV
383
384 Ex2: 0x0B49 = 2889mV
385
386
387 === 2.3.2  Sensor Data. FPORT~=2 ===
388
389
390 Sensor Data is uplink via FPORT=2
391
392 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
393 |=(% style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)(((
394 **Size(bytes)**
395 )))|=(% style="width: 40px;background-color:#D9E2F3;color:#0070C0" %)2|=(% style="width: 90px;background-color:#D9E2F3;color:#0070C0" %)4|=(% style="width: 150px; background-color: #D9E2F3;color:#0070C0" %)1|=(% style="width: 80px; background-color: #D9E2F3;color:#0070C0" %)**2**|=(% style="width: 80px; background-color: #D9E2F3;color:#0070C0" %)2
396 |(% style="width:99px" %)Value|(% style="width:69px" %)(((
397 Battery
398 )))|(% style="width:130px" %)(((
399 Unix TimeStamp
400 )))|(% style="width:194px" %)(((
401 Alarm Flag & MOD& Level of PA8
402 )))|(% style="width:106px" %)(((
403 Temperature
404 )))|(% style="width:97px" %)(((
405 Humidity
406 )))
407
408 [[image:image-20230524144456-2.png||height="180" width="1142"]]
409
410
411 ==== (% style="color:#4472c4" %)**Battery**(%%) ====
412
413 Sensor Battery Level.
414
415 Ex1: 0x0B45 = 2885mV
416
417 Ex2: 0x0B49 = 2889mV
418
419
420 ==== (% style="color:#4472c4" %)**Temperature**(%%) ====
421
422 **Example**:
423
424 If payload is: 0105H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
425
426 If payload is: FF3FH :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
427
428 (FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
429
430
431 ==== (% style="color:#4472c4" %)**Humidity**(%%) ====
432
433
434 Read:0x(0197)=412    Value:  412 / 10=41.2, So 41.2%
435
436
437 ==== (% style="color:#4472c4" %)**Alarm Flag & MOD & Level of PA8**(%%) ====
438
439
440 **Example:**
441
442 If payload & 0x01 = 0x01  **~-~->** This is an Alarm Message.It means that the temperature and humidity exceed the alarm value or trigger an interrupt.
443
444 If payload & 0x01 = 0x00  **~-~->** This is a normal uplink message, no alarm.
445
446 If payload & 0x80>>7 = 0x01  **~-~->** The PA8 is low level.
447
448 If payload & 0x80>>7 =0x00  **~-~->** The PA8 is high level.
449
450 If payload >> 2 = 0x00  **~-~->**  means MOD=1, This is a sampling uplink message.
451
452 If payload >> 2 = 0x31  **~-~->**  means MOD=31, this message is a reply message for polling, this message contains the alarm settings. see [[this link>>path:#HPolltheAlarmsettings:]] for detail. 
453
454
455 == 2.4 Payload Decoder file ==
456
457
458 In TTN, use can add a custom payload so it shows friendly reading
459
460 In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from:
461
462 [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/S31-LB%26S31B-LB>>https://github.com/dragino/dragino-end-node-decoder/tree/main/S31-LB%26S31B-LB]]
463
464
465 == 2.5 Datalog Feature ==
466
467
468 Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, S31x-LB will store the reading for future retrieving purposes.
469
470
471 === 2.5.1 Ways to get datalog via LoRaWAN ===
472
473
474 Set [[PNACKMD=1>>||anchor="H2.5.4DatalogUplinkpayload28FPORT3D329"]], S31x-LB will wait for ACK for every uplink, when there is no LoRaWAN network,S31x-LB will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
475
476 * (((
477 a) S31x-LB will do an ACK check for data records sending to make sure every data arrive server.
478 )))
479 * (((
480 b) S31x-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but S31x-LB won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if S31x-LB gets a ACK, S31x-LB will consider there is a network connection and resend all NONE-ACK messages.
481 )))
482
483 Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
484
485 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220703111700-2.png?width=1119&height=381&rev=1.1||alt="图片-20220703111700-2.png" height="381" width="1119"]]
486
487
488 === 2.5.2 Unix TimeStamp ===
489
490
491 S31x-LB uses Unix TimeStamp format based on
492
493 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]]
494
495 User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
496
497 Below is the converter example
498
499 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]]
500
501
502 So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
503
504
505 === 2.5.3 Set Device Time ===
506
507
508 User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
509
510 Once S31x-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to S31x-LB. If S31x-LB fails to get the time from the server, S31x-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
511
512 (% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.**
513
514
515 === 2.5.4 Datalog Uplink payload (FPORT~=3) ===
516
517
518 The Datalog uplinks will use below payload format.
519
520 **Retrieval data payload:**
521
522 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
523 |=(% style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)(((
524 **Size(bytes)**
525 )))|=(% style="width: 40px; background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 55px; background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 65px; background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 180px; background-color:#D9E2F3;color:#0070C0" %)**1**|=(% style="width: 100px; background-color:#D9E2F3;color:#0070C0" %)**4**
526 |(% style="width:103px" %)Value|(% style="width:68px" %)(((
527 ignore
528 )))|(% style="width:104px" %)(((
529 (((
530 Humidity
531 )))
532
533 (((
534
535 )))
536 )))|(% style="width:87px" %)(((
537 Temperature
538 )))|(% style="width:178px" %)(((
539 Poll message flag & Alarm Flag& Level of PA8
540 )))|(% style="width:137px" %)Unix Time Stamp
541
542 **Poll message flag & Alarm Flag & Level of PA8:**
543
544 [[image:image-20230524114302-1.png||height="115" width="736"]]
545
546
547 **No ACK Message**:  1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for **PNACKMD=1** feature)
548
549 **Poll Message Flag**: 1: This message is a poll message reply.
550
551 * Poll Message Flag is set to 1.
552
553 * Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
554
555 For example, in US915 band, the max payload for different DR is:
556
557 **a) DR0:** max is 11 bytes so one entry of data
558
559 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
560
561 **c) DR2:** total payload includes 11 entries of data
562
563 **d) DR3: **total payload includes 22 entries of data.
564
565 If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
566
567 **Example:**
568
569 If S31x-LB has below data inside Flash:
570
571 [[image:image-20230524114654-2.png]]
572
573
574 If user sends below downlink command: 31646D84E1646D856C05
575
576 Where : Start time: 646D84E1 = time 23/5/24 03:30:41
577
578 Stop time: 646D856C= time 23/5/24 03:33:00
579
580
581 **S31x-LB will uplink this payload.**
582
583 [[image:image-20230524114826-3.png||height="448" width="1244"]]
584
585 (((
586 00 00 02 36 01 10 40 64 6D 84 E1 00 00 02 37 01 10 40 64 6D 84 F8 00 00 02 37 01 0F 40 64 6D 85 04 00 00 02 3A 01 0F 40 64 6D 85 18 00 00 02 3C 01 0F 40 64 6D 85 36 00 00 02 3D 01 0E 40 64 6D 85 3F 00 00 02 3F 01 0E 40 64 6D 85 60 00 00 02 40 01 0E 40 64 6D 85 6A
587 )))
588
589 (((
590 Where the first 11 bytes is for the first entry:
591 )))
592
593 (((
594 00 00 02 36 01 10 40 64 6D 84 E1
595 )))
596
597 (((
598 **Hum**=0x0236/10=56.6
599 )))
600
601 (((
602 **Temp**=0x0110/10=27.2
603 )))
604
605 (((
606 **poll message flag & Alarm Flag & Level of PA8**=0x40,means reply data,sampling uplink message,the PA8 is low level.
607 )))
608
609 (((
610 **Unix time** is 0x646D84E1=1684899041s=23/5/24 03:30:41
611 )))
612
613
614 (% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的(% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的
615
616 == 2.6 Temperature Alarm Feature ==
617
618
619 S31x-LB work flow with Alarm feature.
620
621
622 [[image:image-20230524110125-3.png||height="768" width="1115"]]
623
624
625
626 == 2.7 Frequency Plans ==
627
628
629 The S31x-LB uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets.
630
631 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
632
633
634 == 2.8 ​Firmware Change Log ==
635
636
637 **Firmware download link: **[[https:~~/~~/www.dropbox.com/sh/fis3g6nmhv0eokg/AAC6BcCZaX4BdqZkduUvZ3jIa?dl=0>>https://www.dropbox.com/sh/fis3g6nmhv0eokg/AAC6BcCZaX4BdqZkduUvZ3jIa?dl=0]]
638
639
640 = 3. Configure S31x-LB =
641
642 == 3.1 Configure Methods ==
643
644
645 S31x-LB supports below configure method:
646
647 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
648 * 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]].
649 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
650
651 == 3.2 General Commands ==
652
653
654 These commands are to configure:
655
656 * General system settings like: uplink interval.
657 * LoRaWAN protocol & radio related command.
658
659 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
660
661 [[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/]]
662
663
664 == 3.3 Commands special design for S31x-LB ==
665
666
667 These commands only valid for S31x-LB, as below:
668
669
670 === 3.3.1 Set Transmit Interval Time ===
671
672
673 Feature: Change LoRaWAN End Node Transmit Interval.
674
675 (% style="color:blue" %)**AT Command: AT+TDC**
676
677 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
678 |=(% style="width: 156px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 137px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Response**
679 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
680 30000
681 OK
682 the interval is 30000ms = 30s
683 )))
684 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
685 OK
686 Set transmit interval to 60000ms = 60 seconds
687 )))
688
689 (% style="color:blue" %)**Downlink Command: 0x01**
690
691 Format: Command Code (0x01) followed by 3 bytes time value.
692
693 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
694
695 * Example 1: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
696 * Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
697
698 === 3.3.2 Get Device Status ===
699
700
701 Send a LoRaWAN downlink to ask device send Alarm settings.
702
703 (% style="color:blue" %)**Downlink Payload:  **(%%)0x26 01
704
705 Sensor will upload Device Status via FPORT=5. See payload section for detail.
706
707
708 === 3.3.3 Set Temperature Alarm Threshold ===
709
710
711 * (% style="color:blue" %)**AT Command:**
712
713 (% style="color:#037691" %)**AT+SHTEMP=min,max**
714
715 * When min=0, and max≠0, Alarm higher than max
716 * When min≠0, and max=0, Alarm lower than min
717 * When min≠0 and max≠0, Alarm higher than max or lower than min
718
719 Example:
720
721 AT+SHTEMP=0,30   ~/~/ Alarm when temperature higher than 30.
722
723 * (% style="color:blue" %)**Downlink Payload:**
724
725 (% style="color:#037691" %)**0x(0C 01 00 1E)**  (%%) ~/~/ Set AT+SHTEMP=0,30
726
727 (% style="color:red" %)**(note: 3^^rd^^ byte= 0x00 for low limit(not set), 4^^th^^ byte = 0x1E for high limit: 30)**
728
729
730 === 3.3.4 Set Humidity Alarm Threshold ===
731
732
733 * (% style="color:blue" %)**AT Command:**
734
735 (% style="color:#037691" %)**AT+SHHUM=min,max**
736
737 * When min=0, and max≠0, Alarm higher than max
738 * When min≠0, and max=0, Alarm lower than min
739 * When min≠0 and max≠0, Alarm higher than max or lower than min
740
741 Example:
742
743 AT+SHHUM=70,0  ~/~/ Alarm when humidity lower than 70%.
744
745 * (% style="color:blue" %)**Downlink Payload:**
746
747 (% style="color:#037691" %)**0x(0C 02 46 00)**(%%)  ~/~/ Set AT+SHTHUM=70,0
748
749 (% style="color:red" %)**(note: 3^^rd^^ byte= 0x46 for low limit (70%), 4^^th^^ byte = 0x00 for high limit (not set))**
750
751
752 === 3.3.5 Set Alarm Interval ===
753
754
755 The shortest time of two Alarm packet. (unit: min)
756
757 * (% style="color:blue" %)**AT Command:**
758
759 (% style="color:#037691" %)**AT+ATDC=30** (%%) ~/~/ The shortest interval of two Alarm packets is 30 minutes, Means is there is an alarm packet uplink, there won't be another one in the next 30 minutes.
760
761 * (% style="color:blue" %)**Downlink Payload:**
762
763 (% style="color:#037691" %)**0x(0D 00 1E)**(%%)     **~-~--> ** Set AT+ATDC=0x 00 1E = 30 minutes
764
765
766 === 3.3.6 Get Alarm settings ===
767
768
769 Send a LoRaWAN downlink to ask device send Alarm settings.
770
771 * (% style="color:#037691" %)**Downlink Payload:  **(%%)0x0E 01
772
773 **Example:**
774
775 [[image:image-20230524110211-4.png]]
776
777 **Explain:**
778
779 * Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message.
780
781 === 3.3.7 Set Interrupt Mode ===
782
783
784 Feature, Set Interrupt mode for PA8 of pin.
785
786 When AT+INTMOD=0 is set, PA8 is used as a digital input port.
787
788 (% style="color:blue" %)**AT Command: AT+INTMOD**
789
790 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
791 |=(% style="width: 155px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 197px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 158px;background-color:#D9E2F3;color:#0070C0" %)**Response**
792 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
793 0
794 OK
795 the mode is 0 =Disable Interrupt
796 )))
797 |(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)(((
798 Set Transmit Interval
799 0. (Disable Interrupt),
800 ~1. (Trigger by rising and falling edge)
801 2. (Trigger by falling edge)
802 3. (Trigger by rising edge)
803 )))|(% style="width:157px" %)OK
804
805 (% style="color:blue" %)**Downlink Command: 0x06**
806
807 Format: Command Code (0x06) followed by 3 bytes.
808
809 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
810
811 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
812 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
813
814 === 3.3.8 Set Power Output Duration ===
815
816
817 Control the output duration 5V . Before each sampling, device will
818
819 ~1. first enable the power output to external sensor,
820
821 2. keep it on as per duration, read sensor value and construct uplink payload
822
823 3. final, close the power output.
824
825 (% style="color:blue" %)**AT Command: AT+5VT**
826
827 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
828 |=(% style="width: 155px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 197px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 158px;background-color:#D9E2F3;color:#0070C0" %)**Response**
829 |(% style="width:154px" %)AT+5VT=?|(% style="width:196px" %)Show 5V open time.|(% style="width:157px" %)0 (default)
830 OK
831 |(% style="width:154px" %)AT+5VT=1000|(% style="width:196px" %)Close after a delay of 1000 milliseconds.|(% style="width:157px" %)OK
832
833 (% style="color:blue" %)**Downlink Command: 0x07**
834
835 Format: Command Code (0x07) followed by 2 bytes.
836
837 The first and second bytes are the time to turn on.
838
839 * Example 1: Downlink Payload: 070000  **~-~-->**  AT+5VT=0
840 * Example 2: Downlink Payload: 0701F4  **~-~-->**  AT+5VT=500
841
842 = 4. Battery & Power Consumption =
843
844
845 S31x-LB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
846
847 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
848
849
850 = 5. OTA Firmware update =
851
852
853 (% class="wikigeneratedid" %)
854 User can change firmware S31x-LB to:
855
856 * Change Frequency band/ region.
857 * Update with new features.
858 * Fix bugs.
859
860 Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/fis3g6nmhv0eokg/AAC6BcCZaX4BdqZkduUvZ3jIa?dl=0]]**
861
862
863 Methods to Update Firmware:
864
865 * (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/]]**
866 * 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]]**.
867
868 = 6. FAQ =
869
870
871
872 = 7. Order Info =
873
874
875 Part Number: (% style="color:blue" %)**S31-LB-XX  / S31B-LB-XX**
876
877 (% style="color:red" %)**XX**(%%): The default frequency band
878
879 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
880
881 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
882
883 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
884
885 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
886
887 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
888
889 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
890
891 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
892
893 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
894
895 = 8. ​Packing Info =
896
897
898 (% style="color:#037691" %)**Package Includes**:
899
900 * S31x-LB LoRaWAN Temperature & Humidity Sensor
901
902 (% style="color:#037691" %)**Dimension and weight**:
903
904 * Device Size: cm
905
906 * Device Weight: g
907
908 * Package Size / pcs : cm
909
910 * Weight / pcs : g
911
912 = 9. Support =
913
914
915 * 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.
916
917 * 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>>mailto:Support@dragino.cc]].
918
919 (% style="display:none" %) (%%)