Version 88.1 by Xiaoling on 2022/07/11 16:17

Show last authors
1 (% style="text-align:center" %)
2 [[image:1657509006180-251.png]]
3
4
5
6
7
8
9
10
11
12
13 **Table of Contents:**
14
15
16
17
18
19
20
21 = 1.  Introduction =
22
23 == 1.1 ​ What is LoRaWAN Soil Moisture & EC Sensor ==
24
25
26 (((
27 NBSN95 is a Long Range NB-IoT Sensor Node. It is designed for (% style="color:blue" %)**outdoor data logging **(%%)and powered by (% style="color:blue" %)**Li/SOCl2 battery**(%%) for long term use and secure data transmission. It is designed to facilitate developers to quickly deploy industrial level NB-IoT solutions. It helps users to turn the idea into a practical application and make the Internet of Things a reality. It is easy to program, create and connect your things everywhere.
28
29
30 (% style="color:blue" %)**NarrowBand-Internet of Things (NB-IoT)**(%%) is a standards-based low power wide area (LPWA) technology developed to enable a wide range of new IoT devices and services. NB-IoT significantly improves the power consumption of user devices, system capacity and spectrum efficiency, especially in deep coverage.
31
32
33 NBSN95 uses STM32l0x chip from ST, STML0x is the (% style="color:blue" %)**ultra-low-power**(%%) STM32L072xx microcontrollers incorporate the connectivity power of the universal serial bus (USB 2.0 crystal-less) with the high-performance ARM® Cortex®-M0+ 32-bit RISC core operating at a 32 MHz frequency, a memory protection unit (MPU), high-speed embedded memories (192 Kbytes of Flash program memory, 6 Kbytes of data EEPROM and 20 Kbytes of RAM) plus an extensive range of enhanced I/Os and peripherals.
34
35
36 NBSN95 is an (% style="color:blue" %)**open source product**(%%), it is based on the STM32Cube HAL drivers and lots of libraries can be found in ST site for rapid development.
37 )))
38
39
40 [[image:1657509740279-435.png]]
41
42
43
44
45 == 1.2 ​ Features ==
46
47 * STM32L072CZT6 MCU
48 * NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
49 * Pre-load bootloader on USART1/USART2
50 * MDK-ARM Version 5.24a IDE
51 * I2C, LPUSART1, USB, SPI2
52 * 3x12bit ADC, 1x12bit DAC
53 * 20xDigital I/O
54 * Open-source hardware / software
55 * IP66 Waterproof Enclosure
56 * Ultra-Low Power consumption
57 * AT Commands to change parameters
58 * Micro SIM card slot for NB-IoT SIM
59 * 8500mAh Battery for long term use
60
61 == 1.3  Specification ==
62
63
64 (% style="color:#037691" %)**Micro Controller:**
65
66 * STM32L072CZT6 MCU
67 * MCU: STM32L072CZT6
68 * Flash: 192KB
69 * RAM: 20KB
70 * EEPROM: 6KB
71 * Clock Speed: 32Mhz
72
73 (% style="color:#037691" %)**Common DC Characteristics:**
74
75 * Supply Voltage: 2.1v ~~ 3.6v
76 * Operating Temperature: -40 ~~ 85°C
77 * I/O pins: Refer to STM32L072 datasheet
78
79 (% style="color:#037691" %)**NB-IoT Spec:**
80
81 * - B1 @H-FDD: 2100MHz
82 * - B3 @H-FDD: 1800MHz
83 * - B8 @H-FDD: 900MHz
84 * - B5 @H-FDD: 850MHz
85 * - B20 @H-FDD: 800MHz
86 * - B28 @H-FDD: 700MHz
87
88 (% style="color:#037691" %)**Battery:**
89
90 * Li/SOCI2 un-chargeable battery
91 * Capacity: 8500mAh
92 * Self Discharge: <1% / Year @ 25°C
93 * Max continuously current: 130mA
94 * Max boost current: 2A, 1 second
95
96 (% style="color:#037691" %)**Power Consumption**
97
98 * STOP Mode: 10uA @ 3.3v
99 * Max transmit power: 350mA@3.3v
100
101 == ​1.4  Applications ==
102
103 * Smart Buildings & Home Automation
104 * Logistics and Supply Chain Management
105 * Smart Metering
106 * Smart Agriculture
107 * Smart Cities
108 * Smart Factory
109
110 (% class="wikigeneratedid" id="H200B1.5FirmwareChangelog" %)
111
112
113
114 == 1.5  Pin Definitions & Switch ==
115
116
117 [[image:1657510398618-181.png]]
118
119 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:520px" %)
120 |=(% style="width: 30px;" %)**No.**|=(% style="width: 70px;" %)**Signal**|=(% style="width: 60px;" %)**Direction**|=(% style="width: 180px;" %)**Function**|=(% style="width: 180px;" %)**Remark**
121 |(% style="width:44px" %)1|(% style="width:86px" %)VCC(2.9V)|(% style="width:84px" %)OUTPUT|(% style="width:322px" %)VCC|(% style="width:296px" %)Directly connect to main power for board
122 |(% style="width:44px" %)2|(% style="width:86px" %)PA0|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)Used as ADC in NBSN95 image
123 |(% style="width:44px" %)3|(% style="width:86px" %)PA1|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
124 |(% style="width:44px" %)4|(% style="width:86px" %)PA2|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip, 10k pull up to VCC|(% style="width:296px" %)Used as UART_TXD in NBSN95 image
125 |(% style="width:44px" %)5|(% style="width:86px" %)PA3|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip, 10k pull up to VCC|(% style="width:296px" %)Used as UART_RXD in NBSN95 image
126 |(% style="width:44px" %)6|(% style="width:86px" %)PB6|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip, 10k pull up to VCC|(% style="width:296px" %)
127 |(% style="width:44px" %)7|(% style="width:86px" %)PB7|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip, 10k pull up to VCC|(% style="width:296px" %)
128 |(% style="width:44px" %)8|(% style="width:86px" %)PB3|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip, 10k pull up to VCC|(% style="width:296px" %)
129 |(% style="width:44px" %)9|(% style="width:86px" %)PB4|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
130 |(% style="width:44px" %)10|(% style="width:86px" %)PA9|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip, 10k pull up to VCC|(% style="width:296px" %)
131 |(% style="width:44px" %)11|(% style="width:86px" %)PA10|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip, 10k pull up to VCC|(% style="width:296px" %)
132 |(% style="width:44px" %)12|(% style="width:86px" %)GND|(% style="width:84px" %) |(% style="width:322px" %)Ground|(% style="width:296px" %)
133 |(% style="width:44px" %)13|(% style="width:86px" %)VCC(2.9V)|(% style="width:84px" %)OUTPUT|(% style="width:322px" %)VCC|(% style="width:296px" %)Directly connect to main power for board
134 |(% style="width:44px" %)14|(% style="width:86px" %)Jumper|(% style="width:84px" %) |(% style="width:322px" %)Power on/off jumper|(% style="width:296px" %)
135 |(% style="width:44px" %)15|(% style="width:86px" %)PA4|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
136 |(% style="width:44px" %)16|(% style="width:86px" %)NRST|(% style="width:84px" %)In|(% style="width:322px" %)Reset MCU|(% style="width:296px" %)
137 |(% style="width:44px" %)17|(% style="width:86px" %)PA12|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
138 |(% style="width:44px" %)18|(% style="width:86px" %)PA11|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
139 |(% style="width:44px" %)19|(% style="width:86px" %)PA14|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
140 |(% style="width:44px" %)20|(% style="width:86px" %)PB13|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
141 |(% style="width:44px" %)21|(% style="width:86px" %)PB12|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
142 |(% style="width:44px" %)22|(% style="width:86px" %)PB15|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
143 |(% style="width:44px" %)23|(% style="width:86px" %)PB14|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
144 |(% style="width:44px" %)24|(% style="width:86px" %)PA13|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
145 |(% style="width:44px" %)25|(% style="width:86px" %)PA8|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)Default use to turn on/off LED1 in NBSN95 image
146 |(% style="width:44px" %)26|(% style="width:86px" %)GND|(% style="width:84px" %) |(% style="width:322px" %)Ground|(% style="width:296px" %)
147 |(% style="width:44px" %)27|(% style="width:86px" %)+5V|(% style="width:84px" %)Out|(% style="width:322px" %)5v output power|(% style="width:296px" %)Controlled by PB5(Low to Enable, High to Disable)
148 |(% style="width:44px" %)28|(% style="width:86px" %)LED1|(% style="width:84px" %) |(% style="width:322px" %)Controlled by PA8|(% style="width:296px" %)Blink on transmit
149 |(% style="width:44px" %)29|(% style="width:86px" %)BOOT MODE|(% style="width:84px" %) |(% style="width:322px" %)Configure device in working mode or ISP program mode|(% style="width:296px" %)(((
150 (((
151 Flash: Normal Working mode and send AT Commands
152 )))
153
154 (((
155 ISP: UART Program Mode
156 )))
157 )))
158 |(% style="width:44px" %)30|(% style="width:86px" %)NRST|(% style="width:84px" %)In|(% style="width:322px" %)Reset MCU|(% style="width:296px" %)
159
160 === 1.5.1 Jumper JP2 ===
161
162 Power on Device when put this jumper.
163
164
165 === 1.5.2 BOOT MODE / SW1 ===
166
167 (((
168 1) 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.
169 )))
170
171 (((
172 2) Flash: work mode, device starts to work and send out console output for further debug
173 )))
174
175
176 === 1.5.3 Reset Button ===
177
178 Press to reboot the device.
179
180
181 === 1.5.4 LED ===
182
183 It will flash:
184
185 1. When boot the device in flash mode
186 1. Send an uplink packet
187
188 == 1.6 Hole Option ==
189
190 The NBSN95 provides different hole size options for different size sensor cable. The options provided are M12, M16. The definition is as below:
191
192 [[image:image-20220711135811-1.png]]
193
194
195 [[image:1657519103007-447.png]]
196
197
198
199 = 2.  Use NBSN95 to communicate with IoT Server =
200
201 == 2.1  How it works ==
202
203 (((
204 The NBSN95 is equipped with a NB-IoT module, the pre-loaded firmware in NBSN95 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 NBSN95.
205 )))
206
207
208 (((
209 The diagram below shows the working flow in default firmware of NBSN95:
210 )))
211
212 [[image:image-20220711135919-2.png]]
213
214
215
216 == 2.2 ​ Configure the NBSN95 ==
217
218
219 === 2.2.1  Power On NBSN95 ===
220
221 [[image:1657519498925-521.png]]
222
223
224 === 2.2.2  Test Requirement ===
225
226
227 (((
228 To use NBSN95 in your city, make sure meet below requirements:
229 )))
230
231 * Your local operator has already distributed a NB-IoT Network there.
232 * The local NB-IoT network used the band that NBSN95 supports.
233 * Your operator is able to distribute the data received in their NB-IoT network to your IoT server.
234
235 (((
236 Below figure shows our testing structure. Here we have NB-IoT network coverage by China Mobile, the band they use is B8.  The NBSN95 will use CoAP((% style="color:red" %)120.24.4.116:5683)(%%) or raw UDP((% style="color:red" %)120.24.4.116:5601)(%%) or MQTT((% style="color:red" %)120.24.4.116:1883)(%%)or TCP((% style="color:red" %)120.24.4.116:5600)(%%)protocol to send data to the test server
237 )))
238
239
240 [[image:1657519549982-889.png]]
241
242
243
244 === 2.2.3  Insert SIM card ===
245
246 (((
247 Insert the NB-IoT Card get from your provider.
248 )))
249
250 (((
251 User need to take out the NB-IoT module and insert the SIM card like below:
252 )))
253
254
255 [[image:1657249468462-536.png]]
256
257
258
259 === 2.2.4  Connect USB – TTL to NBSN95 to configure it ===
260
261 (((
262 (((
263 User need to configure NBSN95 via serial port to set the (% style="color:blue" %)**Server Address** / **Uplink Topic** (%%)to define where and how-to uplink packets. NBSN95 support AT Commands, user can use a USB to TTL adapter to connect to NBSN95 and use AT Commands to configure it, as below.
264 )))
265 )))
266
267 [[image:1657520237594-636.png]]
268
269
270 In the PC, use below serial tool settings:
271
272 * Baud:  (% style="color:green" %)**9600**
273 * Data bits:** (% style="color:green" %)8(%%)**
274 * Stop bits: (% style="color:green" %)**1**
275 * Parity:  (% style="color:green" %)**None**
276 * Flow Control: (% style="color:green" %)**None**
277
278 (((
279 Make sure the switch is in FLASH position, then power on device by connecting the jumper on NBSN95. NBSN95 will output system info once power on as below, we can enter the (% style="color:green" %)**password: 12345678**(%%) to access AT Command input.
280 )))
281
282 [[image:1657520459085-315.png]]
283
284 (((
285 (% style="color:red" %)Note: the valid AT Commands can be found at:  (%%)[[https:~~/~~/www.dragino.com/downloads/index.php?dir=NB-IoT/NBSN95/>>url:https://www.dragino.com/downloads/index.php?dir=NB-IoT/NBSN95/]]
286 )))
287
288
289
290 === 2.2.5  Use CoAP protocol to uplink data ===
291
292 (% style="color:red" %)Note: if you don't have CoAP server, you can refer this link to set up one: (%%)[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Set%20up%20CoAP%20Server/>>http://wiki.dragino.com/xwiki/bin/view/Main/Set%20up%20CoAP%20Server/]]
293
294
295 **Use below commands:**
296
297 * (% style="color:blue" %)**AT+PRO=1**  (%%) ~/~/ Set to use CoAP protocol to uplink
298 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5683   ** (%%)~/~/ to set CoAP server address and port
299 * (% style="color:blue" %)**AT+URI=5,11,"mqtt",11,"coap",12,"0",15,"c=text1",23,"0" ** (%%) ~/~/Set COAP resource path
300
301 For parameter description, please refer to AT command set
302
303 [[image:1657249793983-486.png]]
304
305
306 After configure the server address and (% style="color:green" %)**reset the device**(%%) (via AT+ATZ ), NSE01 will start to uplink sensor values to CoAP server.
307
308 [[image:1657522754681-536.png]]
309
310
311
312 === 2.2.6  Use UDP protocol to uplink data(Default protocol) ===
313
314 This feature is supported since firmware version v1.0.1
315
316
317 * (% style="color:blue" %)**AT+PRO=2   ** (%%) ~/~/ Set to use UDP protocol to uplink
318 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5601   ** (%%) ~/~/ to set UDP server address and port
319 * (% style="color:blue" %)**AT+CFM=1       ** (%%) ~/~/If the server does not respond, this command is unnecessary
320
321 [[image:1657522829933-263.png]]
322
323
324 [[image:1657522854411-706.png]]
325
326
327
328 === 2.2.7  Use MQTT protocol to uplink data ===
329
330 (((
331 This feature is supported since firmware version v110, it supports only plain MQTT now it doesn't support TLS and other related encryption.
332 )))
333
334
335 * (% style="color:blue" %)**AT+PRO=3   ** (%%) ~/~/Set to use MQTT protocol to uplink
336 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,1883   ** (%%) ~/~/Set MQTT server address and port
337 * (% style="color:blue" %)**AT+CLIENT=CLIENT       ** (%%)~/~/Set up the CLIENT of MQTT
338 * (% style="color:blue" %)**AT+UNAME=UNAME                               **(%%)~/~/Set the username of MQTT
339 * (% style="color:blue" %)**AT+PWD=PWD                                        **(%%)~/~/Set the password of MQTT
340 * (% style="color:blue" %)**AT+PUBTOPIC=T1_PUB                           **(%%)~/~/Set the sending topic of MQTT
341 * (% style="color:blue" %)**AT+SUBTOPIC=T1_SUB          **(%%) ~/~/Set the subscription topic of MQTT
342
343 [[image:1657522979257-629.png]]
344
345
346 [[image:1657522993615-517.png]]
347
348
349 (((
350 To save battery life, NBSN95 will establish a subscription before each uplink and close the subscription 3 seconds after uplink successful. Any downlink commands from server will only arrive during the subscription period.
351 )))
352
353
354 (((
355 MQTT protocol has a much higher power consumption compare vs UDP / CoAP protocol. Please check the power analyze document and adjust the uplink period to a suitable interval.
356 )))
357
358 (((
359
360 )))
361
362
363
364 === 2.2.8  Use TCP protocol to uplink data ===
365
366 This feature is supported since firmware version v110
367
368
369 * (% style="color:blue" %)**AT+PRO=4   ** (%%) ~/~/ Set to use TCP protocol to uplink
370 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5600   **(%%) ~/~/ to set TCP server address and port
371
372 [[image:1657523736162-303.png]]
373
374
375 [[image:1657523748549-241.png]]
376
377
378
379 === 2.2.9  Change Update Interval ===
380
381 User can use below command to change the (% style="color:green" %)**uplink interval**.
382
383 * (% style="color:blue" %)**AT+TDC=600      ** (%%)~/~/ Set Update Interval to 600s
384
385 (((
386
387 )))
388
389
390
391 == 2.3  Working Mode & Uplink Payload ==
392
393 (((
394 NBSN95 has different working mode for the connections of different type of sensors. This section describes these modes. User can use the AT Command (% style="color:blue" %)**AT+CFGMOD**(%%) to set NBSN95 to different working modes.
395 )))
396
397
398 (((
399 For example:
400 )))
401
402 (((
403 (% style="color:blue" %)**AT+CFGMOD=2     ** (%%) ~/~/** **will set the NBSN95 to work in [[MOD=2 distance mode>>||anchor="H"]] which target to measure distance via Ultrasonic Sensor.
404 )))
405
406
407 (((
408 The uplink payloads are composed in ASCII String. For example:
409 )))
410
411 (((
412 0a cd 00 ed 0a cc 00 00 ef 02 d2 1d (total 24 ASCII Chars). Representative the actually payload:
413 )))
414
415 (((
416 0x 0a cd 00 ed 0a cc 00 00 ef 02 d2 1d Total 12 bytes
417 )))
418
419
420 (((
421 (% style="color:red" %)**NOTE:**
422 )))
423
424 (((
425 (% style="color:red" %)1. All modes share the same Payload Explanation from [[HERE>>||anchor="H"]].
426 2. By default, the device will send an uplink message every 1 hour.
427 )))
428
429
430
431 === 2.3.1 CFGMOD~=1 (Default Mode) ===
432
433
434 In this mode, the uplink payload usually contains 25 bytes. ((% style="color:red" %)Note: Time stamp field are added since firmware version v120(%%))
435
436 (% border="1" cellspacing="8" style="background-color:#ffffcc; color:green; width:1071px" %)
437 |(((
438 **Size**
439
440 **(bytes)**
441 )))|(% style="width:82px" %)**6**|(% style="width:41px" %)(((
442 **2**
443
444
445 )))|(% style="width:46px" %)**2**|(% style="width:120px" %)**1**|(% style="width:55px" %)**1**|(% style="width:104px" %)**2**|(% style="width:159px" %)**1**|(% style="width:49px" %)**2**|(% style="width:104px" %)**2**|(% style="width:112px" %)**2**|(% style="width:94px" %)**4**
446 |**Value**|(% style="width:82px" %)[[Device ID>>||anchor="H"]]|(% style="width:41px" %)[[Ver>>||anchor="H"]]|(% style="width:46px" %)[[BAT>>||anchor="H"]]|(% style="width:120px" %)[[Signal Strength>>||anchor="H"]]|(% style="width:55px" %)(((
447 MOD
448
449 0x01
450 )))|(% style="width:104px" %)(((
451 [[Temperature>>||anchor="H"]]
452
453 [[(DS18B20)>>||anchor="H"]]
454 )))|(% style="width:159px" %)[[Digital in>>||anchor="H"]] & [[Interrupt>>||anchor="H"]]|(% style="width:49px" %)[[ADC>>||anchor="H"]]|(% style="width:104px" %)(((
455 [[Temperature>>||anchor="H"]]
456
457 by
458
459 SHT20/SHT31
460 )))|(% style="width:112px" %)(((
461 [[Humidity>>||anchor="H"]]
462
463 by
464
465 SHT20/SHT31
466 )))|(% style="width:94px" %)[[Timestamp>>||anchor="H"]]
467
468 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
469
470
471 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:523px" %)
472 |(% style="width:116px" %)**Frame header**|(% style="width:123px" %)**Frame data (1)**|(% style="width:121px" %)**Frame data (2)**|(% style="width:39px" %)**F…**|(% style="width:119px" %)**Frame data(X)**
473
474 (% style="color:red" %)**NOTE:**
475
476 (% style="color:red" %)**1. Only up to 10 sets of latest data will be cached.**
477
478 (% style="color:red" %)**2. Theoretically, the maximum upload bytes are 215.**
479
480
481 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
482
483 [[image:1657526816370-997.png]]
484
485
486 The payload is ASCII string, representative same HEX: 0x72403155615900780c541901000000004200fc023260da7c4e where:
487
488 * Device ID: 0x724031556159 = 724031556159
489 * Version: 0x0078=120=1.2.0
490
491 * BAT: 0x0c54 = 3156 mV = 3.156V
492 * Singal: 0x19 = 25
493 * Model: 0x01 = 1
494 * Temperature by DS18b20: 0x0000 = 0
495 * Interrupt: 0x00 = 0
496 * ADC: 0x0042 = 66 = 66mv
497 * Temperature by SHT20/SHT31: 0x00fc = 252 = 25.2 °C
498 * Humidity by SHT20/SHT31: 0x0232 = 562 = 56.2 %rh
499 * Timestamp: 0x60da7c4e = 1,624,931,406 = 2021-06-29 09:50:06
500
501
502
503
504 === 2.3.2 CFGMOD~=2 (Distance Mode) ===
505
506 This mode is target to measure the distance. Total 23 bytes, (Note: Time stamp field are added since firmware version v120)
507
508
509 (% border="1" cellspacing="8" style="background-color:#ffffcc; color:green; width:942px" %)
510 |=(% style="width: 104px;" %)**Size  (bytes)**|=(% style="width: 83px;" %)**6**|=(% style="width: 42px;" %)**2**|=(% style="width: 46px;" %)**2**|=(% style="width: 122px;" %)**1**|=(% style="width: 55px;" %)**1**|=(% style="width: 103px;" %)**2**|=(% style="width: 79px;" %)**1**|=(% style="width: 50px;" %)**2**|=(% style="width: 162px;" %)**2**|=(% style="width: 92px;" %)**4**
511 |(% style="width:104px" %)**Value**|(% style="width:83px" %)[[Device ID>>||anchor="H"]]|(% style="width:42px" %)[[Ver>>||anchor="H"]]|(% style="width:46px" %)[[BAT>>||anchor="H"]]|(% style="width:122px" %)[[Signal Strength>>||anchor="H"]]|(% style="width:55px" %)(((
512 MOD
513
514 0x02
515 )))|(% style="width:103px" %)(((
516 [[Temperature>>||anchor="H"]]
517
518 [[(DS18B20)>>||anchor="H"]]
519 )))|(% style="width:79px" %)(((
520 [[Digital in>>||anchor="H"]]
521
522 &
523
524 [[Interrupt>>||anchor="H"]]
525 )))|(% style="width:50px" %)[[ADC>>||anchor="H"]]|(% style="width:162px" %)(((
526 [[Distance measure>>||anchor="H"]] by:
527
528 1) [[LIDAR-Lite V3HP>>||anchor="H"]]
529
530 Or
531
532 2) [[Ultrasonic Sensor>>||anchor="H"]]
533 )))|(% style="width:92px" %)[[Timestamp>>||anchor="H"]]
534
535 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
536
537
538 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:512px" %)
539 |(% style="width:115px" %)**Frame header**|(% style="width:118px" %)**Frame data(1)**|(% style="width:116px" %)**Frame data(2)**|(% style="width:39px" %)**F…**|(% style="width:117px" %)**Frame data(X)**
540
541 (((
542 (% style="color:red" %)**NOTE:**
543 )))
544
545 (((
546 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
547 )))
548
549 (((
550 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes are 193.**
551 )))
552
553
554 (((
555 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
556 )))
557
558
559 [[image:1657527383721-325.png]]
560
561
562 So the payload is 0x72403162907100780ca91102010b000ca8015860dacc87 where:
563
564 * Device ID: 0x724031629071 = 724031629071
565 * Version: 0x0078=120=1.2.0
566
567 * BAT: 0x0ca9 = 3241mV = 3.241 V
568 * Singal: 0x11 = 17
569 * Model: 0x02 = 2
570 * Temperature by DS18b20: 0x010b= 267 = 26.7  °C
571 * Interrupt: 0x00 = 0
572 * ADC: 0x0ca8 = 3240 mv
573 * Distance by LIDAR-Lite V3HP/Ultrasonic Sensor: 0x0158 = 344 cm
574 * Timestamp: 0x60dacc87 = 1,624,951,943 = 2021-06-29 15:32:23
575
576 Connection of LIDAR-Lite V3HP:
577
578 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg]]
579
580
581 Connection to Ultrasonic Sensor:
582
583 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg]]
584
585
586 === 2.3.3 CFGMOD ===
587
588 3 (3 ADC + I2C) ===
589
590
591 This mode has total 26 bytes. Include 3 x ADC + 1x I2C, ((% style="color:red" %)Note: Time stamp field are added since firmware version v120(%%))
592
593
594 |**Frame definition**|**Frame header**|(% colspan="11" %)**Frame data(X)**
595 |(((
596 **Size**
597
598 **(bytes)**
599 )))|(((
600 **6**
601
602
603
604 )))|**1**|**2**|**1**|**1**|**2**|**1**|**2**|**2**|**2**|**2**|**4**
605 |**Value**|(((
606 [[Device ID>>||anchor="H"]]
607
608
609 )))|(((
610 [[Ver>>||anchor="H"]]
611
612
613
614 )))|[[BAT>>||anchor="H"]]|[[Signal Strength>>||anchor="H"]]|(((
615 MOD
616
617 0x03
618 )))|(((
619 [[ADC>>||anchor="H"]]1
620
621
622 )))|[[Digital in>>||anchor="H"]] & [[Interrupt>>||anchor="H"]]|(((
623 [[ADC>>||anchor="H"]]2
624
625
626 )))|(((
627 [[Temperature>>||anchor="H"]]
628
629 by
630
631 SHT20/SHT31
632 )))|(((
633 [[Humidity>>||anchor="H"]]
634
635 by
636
637 SHT20/SHT31
638 )))|(((
639 [[ADC>>||anchor="H"]]3
640
641
642 )))|[[Timestamp>>||anchor="H"]]
643
644 ADC1 uses pin PA0 to measure
645
646 ADC2 uses pin PA1 to measure
647
648 ADC3 uses pin PA4 to measure
649
650
651
652 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
653
654
655 |**Frame header**|**Frame data(1)**|**Frame data(2)**|**F…**|**Frame data(X)**
656
657 (% style="color:red" %)**NOTE:**
658
659 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
660
661 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes are 226.**
662
663
664
665 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
666
667 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png]]
668
669
670 So the payload is 0x724031629071780cf012030cbc000cef010a024b0cef60dbc494 where:
671
672 * Device ID: 0x724031629071 = 724031629071
673 * Version: 0x78=120=1.2.0
674
675 * BAT: 0x0cf0 = 3312 mV = 3.312 V
676 * Singal: 0x12 = 18
677 * Model: 0x03 = 3
678 * ADC1: 0x0cbc= 3260mV
679 * Interrupt: 0x00 = 0
680 * ADC2: 0x0cef =3311 mv
681 * Temperature by SHT20/SHT31: 0x010a = 266 = 26.6 °C
682 * Humidity by SHT20/SHT31: 0x024b =587 = 58.7 %rh
683 * ADC2: 0x0cef = 3311 mv
684
685 * Timestamp: 0x60dbc494 = 1,625,015,444= 2021-06-30 09:10:44
686
687 === 2.3.4 CFGMOD ===
688
689 4 (3 x DS18B20) ===
690
691
692 Hardware connection is as below, ((% style="color:red" %)Note: R3 & R4 should change from 10k to 4.7k to support DS18B20, Software set to AT+CFGMOD=4(%%))
693
694 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg]]
695
696
697 This mode has total 25 bytes. ((% style="color:red" %)Note: Time stamp field are added since firmware version v120(%%)) As shown below:
698
699
700 |**Frame definition**|**Frame header**|(% colspan="10" %)**Frame data(X)**
701 |(((
702 **Size**
703
704 **(bytes)**
705 )))|**6**|**2**|**2**|**1**|**1**|**2**|**2**|**1**|**2**|**2**|**4**
706 |**Value**|[[Device ID>>||anchor="H"]]|[[Ver>>||anchor="H"]]|[[BAT>>||anchor="H"]]|[[Signal strength>>||anchor="H"]]|(((
707 MOD
708
709 (0x04)
710 )))|(((
711 [[Temperature1>>||anchor="H"]]
712
713 [[(DS18B20)>>||anchor="H"]]
714
715 [[(PB3)>>||anchor="H"]]
716 )))|(((
717 [[ADC>>||anchor="H"]]
718
719
720 )))|[[Digital in & Digital Interrupt>>||anchor="H"]]|(((
721 [[Temperature2>>||anchor="H"]]
722
723 [[(DS18B20)>>||anchor="H"]]
724
725 [[(PA9)>>||anchor="H"]]
726 )))|(((
727 [[Temperature3>>||anchor="H"]]
728
729 [[(DS18B20)>>||anchor="H"]]
730
731 [[(PA10)>>||anchor="H"]]
732 )))|[[Timestamp>>||anchor="H"]]
733
734 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
735
736
737 |**Frame header**|**FFrame data(1)**|**FFrame data(2)**|**F…**|**FFrame data(X)**
738
739 (% style="color:red" %)**NOTE:**
740
741 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
742
743 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes is 215.**
744
745
746
747
748 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
749
750 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png]]
751
752
753 So the payload is 0x72403162907100780cdf1504010a0cde0000fb010060dbcb3f  where:
754
755 * Device ID: 0x724031629071 = 724031629071
756 * Version: 0x0078=120=1.2.0
757
758 * BAT: 0x0cdf = 3295 mV = 3.295 V
759 * Singal: 0x15 = 21
760 * Model: 0x04 = 4
761 * Temperature by DS18b20: 0x010a = 226 = 22.6 °C
762 * ADC: 0x0cde = 3294 mv
763 * Interrupt: 0x00 = 0
764 * Temperature by DS18b20: 0x00fb = 251 = 25.1°C
765 * Temperature by DS18b20: 0x0100  = 256 = 25.6 °C
766
767 * Timestamp: 0x60dbcb3f = 1,625,017,151= 2021-06-30 09:39:11
768
769
770
771 === 2.3.5 CFGMOD ===
772
773 5 (Weight Measurement by HX711) ===
774
775
776 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg]]
777
778 (% style="color:red" %)Notes about hardware connection:
779
780 1. Don’t connect the HX711 module VCC to NBSN95 3.3v VCC, in this case, the NBSN95 will always power on HX711 and the battery will run out soon.
781 1. HX711 support 5v VCC, but while connect the NBSN95’s +5V to HX711 VCC, the value from HX711 is not stable.
782 1. Connect NBSN95 +5V to HX711 VCC via a LDO module is stable.
783
784 (% style="color:red" %)Each HX711 need to be calibrated before used. User need to do below two steps:
785
786 1. Zero calibration. Don’t put anything on load cell and run (% style="color:blue" %)**AT+WEIGRE**(%%) to calibrate to Zero gram.
787 1. Adjust calibration factor (default value 400): Put a known weight thing on load cell and run (% style="color:blue" %)**AT+WEIGAP**(%%) to adjust the Calibration Factor.
788
789 For example:
790
791
792 (% style="color:blue" %)**AT+WEIGAP =403.0**
793
794 Response:  Weight is 401 g
795
796
797 Check the response of this command and adjust the value to match the real value for thing.
798
799
800 This mode has total 23 bytes. (Note: Time stamp field are added since firmware version v120). As shown below:
801
802
803 |**Frame definition**|**Frame header**|(% colspan="9" %)**Frame data(X)**
804 |(((
805 **Size**
806
807 **(bytes)**
808 )))|**6**|**2**|**2**|**1**|**1**|**2**|**2**|**1**|**2**|**4**
809 |**Value**|[[Device ID>>||anchor="H"]]|(((
810 [[Ver>>||anchor="H"]]
811
812
813 )))|[[BAT>>||anchor="H"]]|[[Signal strength>>||anchor="H"]]|(((
814 MOD
815
816 (0x05)
817 )))|(((
818 [[Temperature>>||anchor="H"]]
819
820 [[(DS18B20)>>||anchor="H"]]
821 )))|[[ADC>>||anchor="H"]]|[[Digital in & Digital Interrupt>>||anchor="H"]]|[[Weight>>||anchor="H"]]|[[Timestamp>>||anchor="H"]]
822
823 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
824
825
826 |**Frame header**|**Frame data (1)**|**Frame data (2)**|**F…**|**Frame data(X)**
827
828 (% style="color:red" %)**NOTE:**
829
830 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
831
832 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes are 193.**
833
834
835
836
837 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
838
839
840 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png]]
841
842
843 So the payload is 0x72403162907100780c94140501370c9300003a60dbe59e where:
844
845 * Device ID: 0x724031629071 =724031629071
846 * Version: 0x0078=120=1.2.0
847
848 * BAT: 0x0c75 = 3220 mV = 3.220 V
849 * Singal: 0x14 = 20
850 * Model: 0x05 = 5
851 * Temperature by DS18b20: 0x0137 = 311 = 31.1 °C
852 * ADC: 0x0c74 = 3219 mv
853 * Interrupt: 0x00 = 0
854 * Weigt by HX711: 0x003a  = 58 g
855
856 * Timestamp: 0x60dbe59e = 1,625,023,902= 2021-06-30 11:31:42
857
858
859 === 2.3.6 CFGMOD ===
860
861 6 (Counting mode) ===
862
863
864 In this mode, uplink payload includes in total 20 bytes, ((% style="color:red" %)Note: Time stamp field are added since firmware version v120(%%))
865
866
867 |**Frame definition**|**Frame header**|(% colspan="6" %)**Frame data(X)**
868 |**Size (bytes)**|**6**|**2**|**2**|**1**|**1**|**4**|**4**
869 |**Value**|[[Device ID>>||anchor="H"]]|[[Ver>>||anchor="H"]]|[[BAT>>||anchor="H"]]|[[Signal Strength>>||anchor="H"]]|(((
870 MOD
871
872 0x06
873 )))|Pulse count|[[Timestamp>>||anchor="H"]]
874
875 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
876
877
878 |**Frame header**|**Frame data (1)**|**Frame data (2)**|**F…**|**Frame data(X)**
879
880 (% style="color:red" %)**NOTE:**
881
882 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
883
884 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes are 160.**
885
886
887 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
888
889
890 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png]]
891
892 The payload is ASCII string, representative same HEX: 0x72403162907100780cc714060000000260dc03e5 where:
893
894 * Device ID: 0x724031629071 = 724031629071
895 * Version: 0x0078=120=1.2.0
896
897 * BAT: 0x0cc7 =3271mV =3.271V
898 * Singal: 0x14 = 20
899 * Model: 0x06 = 6
900 * Pulse count: 0x00000002= 2
901 * Timestamp: 0x60dc03e5 = 1,625,031,653= 2021-06-30 13:40:53
902
903
904 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
905 |=(% style="width: 60px;" %)(((
906 **Size(bytes)**
907 )))|=(% style="width: 50px;" %)**6**|=(% style="width: 25px;" %)2|=(% style="width: 25px;" %)**2**|=(% style="width: 70px;" %)**1**|=(% style="width: 60px;" %)**2**|=(% style="width: 80px;" %)**2**|=(% style="width: 90px;" %)**2**|=(% style="width: 50px;" %)**1**
908 |(% style="width:97px" %)**Value**|(% style="width:83px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:41px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:46px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:123px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:108px" %)[[Soil Moisture>>||anchor="H2.4.5A0SoilMoisture"]]|(% style="width:133px" %)[[Soil Temperature>>||anchor="H2.4.6A0SoilTemperature"]]|(% style="width:159px" %)[[Soil Conductivity(EC)>>||anchor="H2.4.7A0SoilConductivity28EC29"]]|(% style="width:80px" %)[[Interrupt>>||anchor="H2.4.8A0DigitalInterrupt"]]
909
910 (((
911
912 )))
913
914
915
916
917
918 == 2.4  Payload Explanation and Sensor Interface ==
919
920
921 === 2.4.1  Device ID ===
922
923 (((
924 By default, the Device ID equal to the last 6 bytes of IMEI.
925 )))
926
927 (((
928 User can use (% style="color:blue" %)**AT+DEUI**(%%) to set Device ID
929 )))
930
931 (((
932 **Example:**
933 )))
934
935 (((
936 AT+DEUI=A84041F15612
937 )))
938
939 (((
940 The Device ID is stored in a none-erase area, Upgrade the firmware or run AT+FDR won't erase Device ID.
941 )))
942
943
944
945 === 2.4.2  Version Info ===
946
947 (((
948 Specify the software version: 0x64=100, means firmware version 1.00.
949 )))
950
951 (((
952 For example: 0x00 64 : this device is NSE01 with firmware version 1.0.0.
953 )))
954
955
956
957 === 2.4.3  Battery Info ===
958
959 (((
960 Check the battery voltage for LSE01.
961 )))
962
963 (((
964 Ex1: 0x0B45 = 2885mV
965 )))
966
967 (((
968 Ex2: 0x0B49 = 2889mV
969 )))
970
971
972
973 === 2.4.4  Signal Strength ===
974
975 (((
976 NB-IoT Network signal Strength.
977 )))
978
979 (((
980 **Ex1: 0x1d = 29**
981 )))
982
983 (((
984 (% style="color:blue" %)**0**(%%)  -113dBm or less
985 )))
986
987 (((
988 (% style="color:blue" %)**1**(%%)  -111dBm
989 )))
990
991 (((
992 (% style="color:blue" %)**2...30**(%%) -109dBm... -53dBm
993 )))
994
995 (((
996 (% style="color:blue" %)**31**  (%%) -51dBm or greater
997 )))
998
999 (((
1000 (% style="color:blue" %)**99**   (%%) Not known or not detectable
1001 )))
1002
1003
1004
1005 === 2.4.5  Soil Moisture ===
1006
1007 (((
1008 (((
1009 Get the moisture content of the soil. The value range of the register is 0-10000(Decimal), divide this value by 100 to get the percentage of moisture in the soil.
1010 )))
1011 )))
1012
1013 (((
1014 (((
1015 For example, if the data you get from the register is **__0x05 0xDC__**, the moisture content in the soil is
1016 )))
1017 )))
1018
1019 (((
1020
1021 )))
1022
1023 (((
1024 (% style="color:#4f81bd" %)**05DC(H) = 1500(D) /100 = 15%.**
1025 )))
1026
1027
1028
1029 === 2.4.6  Soil Temperature ===
1030
1031 (((
1032 Get the temperature in the soil. The value range of the register is -4000 - +800(Decimal), divide this value by 100 to get the temperature in the soil. For example, if the data you get from the register is __**0x09 0xEC**__, the temperature content in the soil is
1033 )))
1034
1035 (((
1036 **Example**:
1037 )))
1038
1039 (((
1040 If payload is 0105H: ((0x0105 & 0x8000)>>15 === 0),temp = 0105(H)/100 = 2.61 °C
1041 )))
1042
1043 (((
1044 If payload is FF7EH: ((FF7E & 0x8000)>>15 ===1),temp = (FF7E(H)-FFFF(H))/100 = -1.29 °C
1045 )))
1046
1047
1048
1049 === 2.4.7  Soil Conductivity (EC) ===
1050
1051 (((
1052 Obtain (% style="color:#4f81bd" %)**__soluble salt concentration__**(%%) in soil or (% style="color:#4f81bd" %)**__soluble ion concentration in liquid fertilizer__**(%%) or (% style="color:#4f81bd" %)**__planting medium__**(%%). The value range of the register is 0 - 20000(Decimal)( Can be greater than 20000).
1053 )))
1054
1055 (((
1056 For example, if the data you get from the register is __**0x00 0xC8**__, the soil conductivity is 00C8(H) = 200(D) = 200 uS/cm.
1057 )))
1058
1059 (((
1060 Generally, the EC value of irrigation water is less than 800uS / cm.
1061 )))
1062
1063 (((
1064
1065 )))
1066
1067 (((
1068
1069 )))
1070
1071 === 2.4.8  Digital Interrupt ===
1072
1073 (((
1074 Digital Interrupt refers to pin (% style="color:blue" %)**GPIO_EXTI**(%%), and there are different trigger methods. When there is a trigger, the NSE01 will send a packet to the server.
1075 )))
1076
1077 (((
1078 The command is:
1079 )))
1080
1081 (((
1082 (% style="color:blue" %)**AT+INTMOD=3 **(%%) ~/~/(more info about INMOD please refer [[**AT Command Manual**>>url:https://www.dragino.com/downloads/downloads/NB-IoT/NBSN95/DRAGINO_NBSN95-NB_AT%20Commands_v1.1.0.pdf]])**.**
1083 )))
1084
1085
1086 (((
1087 The lower four bits of this data field shows if this packet is generated by interrupt or not. Click here for the hardware and software set up.
1088 )))
1089
1090
1091 (((
1092 Example:
1093 )))
1094
1095 (((
1096 0x(00): Normal uplink packet.
1097 )))
1098
1099 (((
1100 0x(01): Interrupt Uplink Packet.
1101 )))
1102
1103
1104
1105 === 2.4.9  ​+5V Output ===
1106
1107 (((
1108 NSE01 will enable +5V output before all sampling and disable the +5v after all sampling. 
1109 )))
1110
1111
1112 (((
1113 The 5V output time can be controlled by AT Command.
1114 )))
1115
1116 (((
1117 (% style="color:blue" %)**AT+5VT=1000**
1118 )))
1119
1120 (((
1121 Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.
1122 )))
1123
1124
1125
1126 == 2.5  Downlink Payload ==
1127
1128 By default, NSE01 prints the downlink payload to console port.
1129
1130 [[image:image-20220708133731-5.png]]
1131
1132
1133 (((
1134 (% style="color:blue" %)**Examples:**
1135 )))
1136
1137 (((
1138
1139 )))
1140
1141 * (((
1142 (% style="color:blue" %)**Set TDC**
1143 )))
1144
1145 (((
1146 If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.
1147 )))
1148
1149 (((
1150 Payload:    01 00 00 1E    TDC=30S
1151 )))
1152
1153 (((
1154 Payload:    01 00 00 3C    TDC=60S
1155 )))
1156
1157 (((
1158
1159 )))
1160
1161 * (((
1162 (% style="color:blue" %)**Reset**
1163 )))
1164
1165 (((
1166 If payload = 0x04FF, it will reset the NSE01
1167 )))
1168
1169
1170 * (% style="color:blue" %)**INTMOD**
1171
1172 (((
1173 Downlink Payload: 06000003, Set AT+INTMOD=3
1174 )))
1175
1176
1177
1178 == 2.6  ​LED Indicator ==
1179
1180 (((
1181 The NSE01 has an internal LED which is to show the status of different state.
1182
1183
1184 * When power on, NSE01 will detect if sensor probe is connected, if probe detected, LED will blink four times. (no blinks in this step is no probe)
1185 * Then the LED will be on for 1 second means device is boot normally.
1186 * After NSE01 join NB-IoT network. The LED will be ON for 3 seconds.
1187 * For each uplink probe, LED will be on for 500ms.
1188 )))
1189
1190
1191
1192
1193 == 2.7  Installation in Soil ==
1194
1195 __**Measurement the soil surface**__
1196
1197 (((
1198 Choose the proper measuring position. Avoid the probe to touch rocks or hard things. Split the surface soil according to the measured deep. Keep the measured as original density. Vertical insert the probe into the soil to be measured. Make sure not shake when inserting. [[https:~~/~~/img.alicdn.com/imgextra/i3/2005165265/O1CN010rj9Oh1olPsQxrdUK_!!2005165265.jpg>>url:https://img.alicdn.com/imgextra/i3/2005165265/O1CN010rj9Oh1olPsQxrdUK_!!2005165265.jpg]]
1199 )))
1200
1201 [[image:1657259653666-883.png]] ​
1202
1203
1204 (((
1205
1206
1207 (((
1208 Dig a hole with diameter > 20CM.
1209 )))
1210
1211 (((
1212 Horizontal insert the probe to the soil and fill the hole for long term measurement.
1213 )))
1214 )))
1215
1216 [[image:1654506665940-119.png]]
1217
1218 (((
1219
1220 )))
1221
1222
1223 == 2.8  ​Firmware Change Log ==
1224
1225
1226 Download URL & Firmware Change log
1227
1228 (((
1229 [[https:~~/~~/www.dragino.com/downloads/index.php?dir=NB-IoT/NSE01/firmware/>>https://www.dragino.com/downloads/index.php?dir=NB-IoT/NSE01/firmware/]]
1230 )))
1231
1232
1233 Upgrade Instruction: [[Upgrade_Firmware>>||anchor="H5.1200BHowtoUpgradeFirmware"]]
1234
1235
1236
1237 == 2.9  ​Battery Analysis ==
1238
1239 === 2.9.1  ​Battery Type ===
1240
1241
1242 (((
1243 The NSE01 battery is a combination of an 8500mAh Li/SOCI2 Battery and a Super Capacitor. The battery is none-rechargeable battery type with a low discharge rate (<2% per year). This type of battery is commonly used in IoT devices such as water meter.
1244 )))
1245
1246
1247 (((
1248 The battery is designed to last for several years depends on the actually use environment and update interval. 
1249 )))
1250
1251
1252 (((
1253 The battery related documents as below:
1254 )))
1255
1256 * [[Battery Dimension>>http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
1257 * [[Lithium-Thionyl Chloride Battery datasheet>>http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
1258 * [[Lithium-ion Battery-Capacitor datasheet>>http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
1259
1260 (((
1261 [[image:image-20220708140453-6.png]]
1262 )))
1263
1264
1265
1266 === 2.9.2  Power consumption Analyze ===
1267
1268 (((
1269 Dragino battery powered product are all runs in Low Power mode. We have an update battery calculator which base on the measurement of the real device. User can use this calculator to check the battery life and calculate the battery life if want to use different transmit interval.
1270 )))
1271
1272
1273 (((
1274 Instruction to use as below:
1275 )))
1276
1277 (((
1278 (% style="color:blue" %)**Step 1:  **(%%)Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/]]
1279 )))
1280
1281
1282 (((
1283 (% style="color:blue" %)**Step 2: **(%%) Open it and choose
1284 )))
1285
1286 * (((
1287 Product Model
1288 )))
1289 * (((
1290 Uplink Interval
1291 )))
1292 * (((
1293 Working Mode
1294 )))
1295
1296 (((
1297 And the Life expectation in difference case will be shown on the right.
1298 )))
1299
1300 [[image:image-20220708141352-7.jpeg]]
1301
1302
1303
1304 === 2.9.3  ​Battery Note ===
1305
1306 (((
1307 The Li-SICO battery is designed for small current / long period application. It is not good to use a high current, short period transmit method. The recommended minimum period for use of this battery is 5 minutes. If you use a shorter period time to transmit LoRa, then the battery life may be decreased.
1308 )))
1309
1310
1311
1312 === 2.9.4  Replace the battery ===
1313
1314 (((
1315 The default battery pack of NSE01 includes a ER26500 plus super capacitor. If user can't find this pack locally, they can find ER26500 or equivalence without the SPC1520 capacitor, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes).
1316 )))
1317
1318
1319
1320 = 3. ​ Access NB-IoT Module =
1321
1322 (((
1323 Users can directly access the AT command set of the NB-IoT module.
1324 )))
1325
1326 (((
1327 The AT Command set can refer the BC35-G NB-IoT Module AT Command: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC35-G/>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC35-G/]] 
1328 )))
1329
1330 [[image:1657261278785-153.png]]
1331
1332
1333
1334 = 4.  Using the AT Commands =
1335
1336 == 4.1  Access AT Commands ==
1337
1338 See this link for detail: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=NB-IoT/NSE01/>>url:http://www.dragino.com/downloads/index.php?dir=NB-IoT/NBSN50/]]
1339
1340
1341 AT+<CMD>?  : Help on <CMD>
1342
1343 AT+<CMD>         : Run <CMD>
1344
1345 AT+<CMD>=<value> : Set the value
1346
1347 AT+<CMD>=?  : Get the value
1348
1349
1350 (% style="color:#037691" %)**General Commands**(%%)      
1351
1352 AT  : Attention       
1353
1354 AT?  : Short Help     
1355
1356 ATZ  : MCU Reset    
1357
1358 AT+TDC  : Application Data Transmission Interval
1359
1360 AT+CFG  : Print all configurations
1361
1362 AT+CFGMOD           : Working mode selection
1363
1364 AT+INTMOD            : Set the trigger interrupt mode
1365
1366 AT+5VT  : Set extend the time of 5V power  
1367
1368 AT+PRO  : Choose agreement
1369
1370 AT+WEIGRE  : Get weight or set weight to 0
1371
1372 AT+WEIGAP  : Get or Set the GapValue of weight
1373
1374 AT+RXDL  : Extend the sending and receiving time
1375
1376 AT+CNTFAC  : Get or set counting parameters
1377
1378 AT+SERVADDR  : Server Address
1379
1380
1381 (% style="color:#037691" %)**COAP Management**      
1382
1383 AT+URI            : Resource parameters
1384
1385
1386 (% style="color:#037691" %)**UDP Management**
1387
1388 AT+CFM          : Upload confirmation mode (only valid for UDP)
1389
1390
1391 (% style="color:#037691" %)**MQTT Management**
1392
1393 AT+CLIENT               : Get or Set MQTT client
1394
1395 AT+UNAME  : Get or Set MQTT Username
1396
1397 AT+PWD                  : Get or Set MQTT password
1398
1399 AT+PUBTOPIC  : Get or Set MQTT publish topic
1400
1401 AT+SUBTOPIC  : Get or Set MQTT subscription topic
1402
1403
1404 (% style="color:#037691" %)**Information**          
1405
1406 AT+FDR  : Factory Data Reset
1407
1408 AT+PWORD  : Serial Access Password
1409
1410
1411
1412 = ​5.  FAQ =
1413
1414 == 5.1 ​ How to Upgrade Firmware ==
1415
1416
1417 (((
1418 User can upgrade the firmware for 1) bug fix, 2) new feature release.
1419 )))
1420
1421 (((
1422 Please see this link for how to upgrade:  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList>>http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList]]
1423 )))
1424
1425 (((
1426 (% style="color:red" %)Notice, NSE01 and LSE01 share the same mother board. They use the same connection and method to update.
1427 )))
1428
1429
1430
1431 == 5.2  Can I calibrate NSE01 to different soil types? ==
1432
1433 (((
1434 NSE01 is calibrated for saline-alkali soil and loamy soil. If users want to use it for other soil, they can calibrate the value in the IoT platform base on the value measured by saline-alkali soil and loamy soil. The formula can be found at [[this link>>https://www.dragino.com/downloads/downloads/LoRa_End_Node/LSE01/Calibrate_to_other_Soil_20220605.pdf]].
1435 )))
1436
1437
1438 = 6.  Trouble Shooting =
1439
1440 == 6.1  ​Connection problem when uploading firmware ==
1441
1442
1443 (((
1444 **Please see: **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H3.3Troubleshooting>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H3.3Troubleshooting]]
1445 )))
1446
1447 (% class="wikigeneratedid" %)
1448 (((
1449
1450 )))
1451
1452
1453 == 6.2  AT Command input doesn't work ==
1454
1455 (((
1456 In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:green" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:green" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string.
1457
1458
1459 )))
1460
1461
1462 = 7. ​ Order Info =
1463
1464
1465 Part Number**:** (% style="color:#4f81bd" %)**NSE01**
1466
1467
1468 (% class="wikigeneratedid" %)
1469 (((
1470
1471 )))
1472
1473 = 8.  Packing Info =
1474
1475 (((
1476
1477
1478 (% style="color:#037691" %)**Package Includes**:
1479
1480 * NSE01 NB-IoT Soil Moisture & EC Sensor x 1
1481 * External antenna x 1
1482 )))
1483
1484 (((
1485
1486
1487 (% style="color:#037691" %)**Dimension and weight**:
1488
1489 * Size: 195 x 125 x 55 mm
1490 * Weight:   420g
1491 )))
1492
1493 (((
1494
1495
1496
1497
1498 )))
1499
1500 = 9.  Support =
1501
1502 * 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.
1503 * 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.com>>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.com]]