Show last authors
1 (% style="text-align:center" %)
2 [[image:1657509006180-251.png||height="409" width="409"]]
3
4
5
6
7
8 **Table of Contents:**
9
10 {{toc/}}
11
12
13
14
15
16
17 = 1.  Introduction =
18
19
20 == 1.1 ​ What is NBSN95 NB-IoT Sensor Node ==
21
22
23 (((
24 (((
25 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.
26 )))
27
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
34 (((
35 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.
36 )))
37
38
39 (((
40 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.
41 )))
42 )))
43
44
45 [[image:1657509740279-435.png]]
46
47
48 (% style="display:none" %) (%%)
49
50 == 1.2 ​ Features ==
51
52
53 * STM32L072CZT6 MCU
54 * NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
55 * Pre-load bootloader on USART1/USART2
56 * MDK-ARM Version 5.24a IDE
57 * I2C, LPUSART1, USB, SPI2
58 * 3x12bit ADC, 1x12bit DAC
59 * 20xDigital I/O
60 * Open-source hardware / software
61 * IP66 Waterproof Enclosure
62 * Ultra-Low Power consumption
63 * AT Commands to change parameters
64 * Micro SIM card slot for NB-IoT SIM
65 * 8500mAh Battery for long term use
66
67 (% style="display:none" %) (%%)
68
69 (% style="display:none" %) (%%)
70
71 == 1.3  Specification ==
72
73
74 (% style="color:#037691" %)**Micro Controller:**
75
76 * STM32L072CZT6 MCU
77 * MCU: STM32L072CZT6
78 * Flash: 192KB
79 * RAM: 20KB
80 * EEPROM: 6KB
81 * Clock Speed: 32Mhz
82
83 (% style="color:#037691" %)**Common DC Characteristics:**
84
85 * Supply Voltage: 2.1v ~~ 3.6v
86 * Operating Temperature: -40 ~~ 85°C
87 * I/O pins: Refer to STM32L072 datasheet
88
89 (% style="color:#037691" %)**NB-IoT Spec:**
90
91 * - B1 @H-FDD: 2100MHz
92 * - B3 @H-FDD: 1800MHz
93 * - B8 @H-FDD: 900MHz
94 * - B5 @H-FDD: 850MHz
95 * - B20 @H-FDD: 800MHz
96 * - B28 @H-FDD: 700MHz
97
98 (% style="color:#037691" %)**Battery:**
99
100 * Li/SOCI2 un-chargeable battery
101 * Capacity: 8500mAh
102 * Self Discharge: <1% / Year @ 25°C
103 * Max continuously current: 130mA
104 * Max boost current: 2A, 1 second
105
106 (% style="color:#037691" %)**Power Consumption**
107
108 * STOP Mode: 10uA @ 3.3v
109 * Max transmit power: 350mA@3.3v
110
111
112
113 == ​1.4  Applications ==
114
115
116 * Smart Buildings & Home Automation
117 * Logistics and Supply Chain Management
118 * Smart Metering
119 * Smart Agriculture
120 * Smart Cities
121 * Smart Factory
122
123 (% class="wikigeneratedid" id="H200B1.5FirmwareChangelog" %)
124 ​(% style="display:none" %)
125
126 (% style="display:none" %) (%%)
127
128 (% style="display:none" %) (%%)
129
130 == 1.5  Pin Definitions & Switch ==
131
132
133 [[image:1657510398618-181.png]](% style="display:none" %)
134
135
136 (% border="1" cellspacing="0" style="background-color:#ffffcc; color:green; width:520px" %)
137 |=(% style="width: 30px;" %)**No.**|=(% style="width: 70px;" %)**Signal**|=(% style="width: 60px;" %)**Direction**|=(% style="width: 180px;" %)**Function**|=(% style="width: 180px;" %)Remark
138 |(% 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
139 |(% 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
140 |(% style="width:44px" %)3|(% style="width:86px" %)PA1|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
141 |(% 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
142 |(% 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
143 |(% 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" %)
144 |(% 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" %)
145 |(% 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" %)
146 |(% style="width:44px" %)9|(% style="width:86px" %)PB4|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
147 |(% 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" %)
148 |(% 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" %)
149 |(% style="width:44px" %)12|(% style="width:86px" %)GND|(% style="width:84px" %) |(% style="width:322px" %)Ground|(% style="width:296px" %)
150 |(% 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
151 |(% style="width:44px" %)14|(% style="width:86px" %)Jumper|(% style="width:84px" %) |(% style="width:322px" %)Power on/off jumper|(% style="width:296px" %)
152 |(% style="width:44px" %)15|(% style="width:86px" %)PA4|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
153 |(% style="width:44px" %)16|(% style="width:86px" %)NRST|(% style="width:84px" %)In|(% style="width:322px" %)Reset MCU|(% style="width:296px" %)
154 |(% style="width:44px" %)17|(% style="width:86px" %)PA12|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
155 |(% style="width:44px" %)18|(% style="width:86px" %)PA11|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
156 |(% style="width:44px" %)19|(% style="width:86px" %)PA14|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
157 |(% style="width:44px" %)20|(% style="width:86px" %)PB13|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
158 |(% style="width:44px" %)21|(% style="width:86px" %)PB12|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
159 |(% style="width:44px" %)22|(% style="width:86px" %)PB15|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
160 |(% style="width:44px" %)23|(% style="width:86px" %)PB14|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
161 |(% style="width:44px" %)24|(% style="width:86px" %)PA13|(% style="width:84px" %)In/Out|(% style="width:322px" %)Directly from STM32 chip|(% style="width:296px" %)
162 |(% 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
163 |(% style="width:44px" %)26|(% style="width:86px" %)GND|(% style="width:84px" %) |(% style="width:322px" %)Ground|(% style="width:296px" %)
164 |(% 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)
165 |(% style="width:44px" %)28|(% style="width:86px" %)LED1|(% style="width:84px" %) |(% style="width:322px" %)Controlled by PA8|(% style="width:296px" %)Blink on transmit
166 |(% 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" %)(((
167 (((
168 Flash: Normal Working mode and send AT Commands
169 )))
170
171 (((
172 ISP: UART Program Mode
173 )))
174 )))
175 |(% style="width:44px" %)30|(% style="width:86px" %)NRST|(% style="width:84px" %)In|(% style="width:322px" %)Reset MCU|(% style="width:296px" %)
176
177
178
179 === 1.5.1 Jumper JP2 ===
180
181
182 Power on Device when put this jumper.
183
184
185
186 === 1.5.2 BOOT MODE / SW1 ===
187
188
189 (((
190 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.
191 )))
192
193 (((
194 2) Flash: work mode, device starts to work and send out console output for further debug
195 )))
196
197
198
199 === 1.5.3 Reset Button ===
200
201
202 Press to reboot the device.
203
204
205
206 === 1.5.4 LED ===
207
208
209 It will flash:
210
211 1.  When boot the device in flash mode
212
213 2.  Send an uplink packet
214
215
216
217 == 1.6 Hole Option ==
218
219
220 The NBSN95 provides different hole size options for different size sensor cable. The options provided are M12, M16. The definition is as below:
221
222
223 [[image:image-20220711135811-1.png]]
224
225
226 [[image:1657519103007-447.png]]
227
228
229
230 = 2.  Use NBSN95 to communicate with IoT Server =
231
232
233 == 2.1  How it works ==
234
235
236 (((
237 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.
238 )))
239
240
241 (((
242 The diagram below shows the working flow in default firmware of NBSN95:
243 )))
244
245 [[image:image-20220711135919-2.png]]
246
247
248
249 == 2.2 ​ Configure the NBSN95 ==
250
251
252 === 2.2.1  Power On NBSN95 ===
253
254
255 [[image:1657519498925-521.png]]
256
257
258 === 2.2.2  Test Requirement ===
259
260
261 (((
262 To use NBSN95 in your city, make sure meet below requirements:
263 )))
264
265 * Your local operator has already distributed a NB-IoT Network there.
266 * The local NB-IoT network used the band that NBSN95 supports.
267 * Your operator is able to distribute the data received in their NB-IoT network to your IoT server.
268
269 (((
270 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
271 )))
272
273
274 [[image:1657519549982-889.png]]
275
276
277
278 === 2.2.3  Insert SIM card ===
279
280
281 (((
282 Insert the NB-IoT Card get from your provider.
283 )))
284
285 (((
286 User need to take out the NB-IoT module and insert the SIM card like below:
287 )))
288
289
290 [[image:1657249468462-536.png]]
291
292
293
294 === 2.2.4  Connect USB – TTL to NBSN95 to configure it ===
295
296
297 (((
298 (((
299 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.
300 )))
301 )))
302
303 [[image:1657520237594-636.png]]
304
305
306 In the PC, use below serial tool settings:
307
308 * Baud:  (% style="color:green" %)**9600**
309 * Data bits:** (% style="color:green" %)8(%%)**
310 * Stop bits: (% style="color:green" %)**1**
311 * Parity:  (% style="color:green" %)**None**
312 * Flow Control: (% style="color:green" %)**None**
313
314 (((
315
316
317
318 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.
319
320
321 )))
322
323 [[image:1657520459085-315.png]]
324
325
326 (((
327 (% style="color:red" %)**Note: the valid AT Commands can be found at:  **(%%)**[[https:~~/~~/www.dropbox.com/sh/jao1xt9kw5r3yq4/AAAMpJkZzExF2JLbRWxGoQ9Na?dl=0>>https://www.dropbox.com/sh/jao1xt9kw5r3yq4/AAAMpJkZzExF2JLbRWxGoQ9Na?dl=0]]**
328 )))
329
330
331
332 === 2.2.5  Use CoAP protocol to uplink data ===
333
334
335 (% 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/]]**
336
337
338 **Use below commands:**
339
340 * (% style="color:blue" %)**AT+PRO=1**  (%%) ~/~/ Set to use CoAP protocol to uplink
341 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5683   ** (%%)~/~/ to set CoAP server address and port
342 * (% style="color:blue" %)**AT+URI=5,11,"mqtt",11,"coap",12,"0",15,"c=text1",23,"0" ** (%%) ~/~/Set COAP resource path
343
344 For parameter description, please refer to AT command set
345
346
347 [[image:1657249793983-486.png]]
348
349
350 (((
351 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.
352 )))
353
354 [[image:1657522754681-536.png]]
355
356
357
358 === 2.2.6  Use UDP protocol to uplink data(Default protocol) ===
359
360
361 This feature is supported since firmware version v1.0.1
362
363
364 * (% style="color:blue" %)**AT+PRO=2   ** (%%) ~/~/ Set to use UDP protocol to uplink
365 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5601   ** (%%) ~/~/  to set UDP server address and port
366 * (% style="color:blue" %)**AT+CFM=1       ** (%%) ~/~/ If the server does not respond, this command is unnecessary
367
368 [[image:1657522829933-263.png]]
369
370
371 [[image:image-20220913164447-1.png]]
372
373
374
375 === 2.2.7  Use MQTT protocol to uplink data ===
376
377
378 (((
379 This feature is supported since firmware version v110, it supports only plain MQTT now it doesn't support TLS and other related encryption.
380 )))
381
382
383 * (% style="color:blue" %)**AT+PRO=3   ** (%%) ~/~/ Set to use MQTT protocol to uplink
384 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,1883   ** (%%) ~/~/ Set MQTT server address and port
385 * (% style="color:blue" %)**AT+CLIENT=CLIENT       ** (%%)~/~/ Set up the CLIENT of MQTT
386 * (% style="color:blue" %)**AT+UNAME=UNAME                               **(%%)~/~/ Set the username of MQTT
387 * (% style="color:blue" %)**AT+PWD=PWD                                        **(%%)~/~/ Set the password of MQTT
388 * (% style="color:blue" %)**AT+PUBTOPIC=T1_PUB                           **(%%)~/~/ Set the sending topic of MQTT
389 * (% style="color:blue" %)**AT+SUBTOPIC=T1_SUB          **(%%) ~/~/ Set the subscription topic of MQTT
390
391 [[image:1657522979257-629.png]]
392
393
394 [[image:1657522993615-517.png]]
395
396
397 (((
398 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.
399 )))
400
401
402 (((
403 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.
404 )))
405
406 (((
407
408 )))
409
410
411 === 2.2.8  Use TCP protocol to uplink data ===
412
413
414 This feature is supported since firmware version v110
415
416
417 * (% style="color:blue" %)**AT+PRO=4   ** (%%) ~/~/ Set to use TCP protocol to uplink
418 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5600   **(%%) ~/~/  to set TCP server address and port
419
420 [[image:1657523736162-303.png]]
421
422
423 [[image:1657523748549-241.png]]
424
425
426
427 === 2.2.9  Change Update Interval ===
428
429
430 User can use below command to change the (% style="color:green" %)**uplink interval**.
431
432 * (% style="color:blue" %)**AT+TDC=600      ** (%%)~/~/ Set Update Interval to 600s
433
434 (((
435
436 )))
437
438
439
440 == 2.3  Working Mode & Uplink Payload ==
441
442
443 (((
444 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.
445 )))
446
447
448 (((
449 For example:
450 )))
451
452 (((
453 (% style="color:blue" %)**AT+CFGMOD=2     ** (%%) ~/~/** **will set the NBSN95 to work in MOD=2 distance mode which target to measure distance via [[Ultrasonic Sensor>>||anchor="H2.4.11A0UltrasonicSensor"]].
454 )))
455
456
457 (((
458 The uplink payloads are composed in ASCII String. For example:
459 )))
460
461 (((
462 0a cd 00 ed 0a cc 00 00 ef 02 d2 1d (total 24 ASCII Chars). Representative the actually payload:
463 )))
464
465 (((
466 0x 0a cd 00 ed 0a cc 00 00 ef 02 d2 1d Total 12 bytes
467 )))
468
469
470 (((
471 (% style="color:red" %)**NOTE:**
472 )))
473
474 (((
475 (% style="color:red" %)**1. All modes share the same Payload Explanation from [[HERE>>||anchor="H2.4A0PayloadExplanationandSensorInterface"]].
476 2. By default, the device will send an uplink message every 1 hour.**
477 )))
478
479
480
481 === 2.3.1 CFGMOD~=1 (Default Mode) ===
482
483
484 (((
485 In this mode, the uplink payload usually contains 27 bytes. ((% style="color:red" %)Note: Time stamp field are added since firmware version v120(%%))
486 )))
487
488
489 (% border="1" cellspacing="6" style="background-color:#ffffcc; color:green; width:520px" %)
490 |=(% style="width: 55px;" %)(((
491 **Size(bytes)**
492 )))|=(% style="width: 35px;" %)8|=(% style="width: 25px;" %)2|=(% style="width: 25px;" %)**2**|=(% style="width: 40px;" %)**1**|=(% style="width: 30px;" %)**1**|=(% style="width: 58px;" %)**2**|=(% style="width: 50px;" %)**1**|=(% style="width: 25px;" %)**2**|=(% style="width: 63px;" %)**2**|=(% style="width: 63px;" %)**2**|=(% style="width: 50px;" %)**4**
493 |(% style="width:46px" %)**Value**|(% style="width:46px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:46px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:46px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:120px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:55px" %)(((
494 (((
495 MOD
496 )))
497
498 (((
499 0x01
500 )))
501 )))|(% style="width:60px" %)(((
502 [[Temperature (DS18B20)>>||anchor="H2.4.5A0Temperature28DS18B2029"]]
503 )))|(% style="width:159px" %)[[Digital in>>||anchor="H2.4.6A0DigitalInput"]] & [[Interrupt>>||anchor="H2.4.8A0DigitalInterrupt"]]|(% style="width:49px" %)[[ADC>>||anchor="H2.4.7A0AnalogueDigitalConverter28ADC29"]]|(% style="width:104px" %)(((
504 (((
505 [[Temperature>>||anchor="H2.4.9A0I2CInterface28SHT2029"]]
506 )))
507
508 (((
509 by
510 )))
511
512 (((
513 SHT20/SHT31
514 )))
515 )))|(% style="width:112px" %)(((
516 (((
517 [[Humidity>>||anchor="H2.4.9A0I2CInterface28SHT2029"]]
518 )))
519
520 (((
521 by
522 )))
523
524 (((
525 SHT20/SHT31
526 )))
527 )))|(% style="width:94px" %)[[Timestamp>>||anchor="H2.4.14A0Timestamp"]]
528
529 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
530
531 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:512px" %)
532 |(% 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)**
533
534 (% style="color:red" %)**NOTE:**
535
536 (% style="color:red" %)**1. Only up to 10 sets of latest data will be cached.**
537
538 (% style="color:red" %)**2. Theoretically, the maximum upload bytes are 215.**
539
540
541 (((
542 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
543 )))
544
545 [[image:1657526816370-997.png]]
546
547
548 (((
549 The payload is ASCII string, representative same HEX: (% style="background-color:yellow" %)**0x f868411056754138 0078 0c54 19 01 0000 00 0042 00fc 0232 60da7c4e**
550
551 **where:**
552 )))
553
554 * (% style="color:#037691" %)**Device ID:**(%%) 0xf868411056754138 = 868411056754138
555
556 * (% style="color:#037691" %)**Version:**(%%)  0x0078=120=1.2.0
557
558 * (% style="color:#037691" %)**BAT:**(%%)  0x0c54 = 3156 mV = 3.156V
559
560 * (% style="color:#037691" %)**Singal:**(%%)  0x19 = 25
561
562 * (% style="color:#037691" %)**Model:** (%%)0x01 = 1
563
564 * (% style="color:#037691" %)**Temperature by DS18b20:**(%%) 0x0000 = 0
565
566 * (% style="color:#037691" %)**Interrupt:**(%%) 0x00 = 0
567
568 * (% style="color:#037691" %)**ADC:**(%%) 0x0042 = 66 = 66mv
569
570 * (% style="color:#037691" %)**Temperature by SHT20/SHT31:**(%%) 0x00fc = 252 = 25.2 °C
571
572 * (% style="color:#037691" %)**Humidity by SHT20/SHT31:**(%%) 0x0232 = 562 = 56.2 %rh
573
574 * (% style="color:#037691" %)**Timestamp:**(%%) 0x60da7c4e = 1,624,931,406 = 2021-06-29 09:50:06
575
576
577 === 2.3.2 CFGMOD~=2 (Distance Mode) ===
578
579
580 (((
581 This mode is target to measure the distance. Total 25 bytes, ((% style="color:red" %)**Note: Time stamp field are added since firmware version v120**(%%))
582
583
584 )))
585
586 (% border="1" cellspacing="6" style="background-color:#ffffcc; color:green; width:520px" %)
587 |=(% style="width: 55px;" %)(((
588 **Size(bytes)**
589 )))|=(% style="width: 35px;" %)8|=(% style="width: 30px;" %)2|=(% style="width: 30px;" %)**2**|=(% style="width: 40px;" %)**1**|=(% style="width: 30px;" %)**1**|=(% style="width: 58px;" %)**2**|=(% style="width: 50px;" %)**1**|=(% style="width: 30px;" %)**2**|=(% style="width: 100px;" %)**2**|=(% style="width: 50px;" %)**4**
590 |(% style="width:46px" %)**Value**|(% style="width:46px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:46px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:46px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:120px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:55px" %)(((
591 (((
592 MOD
593 )))
594
595 (((
596 0x02
597 )))
598 )))|(% style="width:60px" %)(((
599 [[Temperature (DS18B20)>>||anchor="H2.4.5A0Temperature28DS18B2029"]]
600 )))|(% style="width:159px" %)[[Digital in>>||anchor="H2.4.6A0DigitalInput"]] & [[Interrupt>>||anchor="H2.4.8A0DigitalInterrupt"]]|(% style="width:49px" %)[[ADC>>||anchor="H2.4.7A0AnalogueDigitalConverter28ADC29"]]|(% style="width:104px" %)(((
601 (((
602 (((
603 [[Distance measure>>||anchor="H2.4.11A0UltrasonicSensor"]] by:
604 )))
605
606 (((
607 1) [[LIDAR-Lite V3HP>>||anchor="HConnectionofLIDAR-LiteV3HP:"]]
608 )))
609
610 (((
611 Or
612 )))
613
614 (((
615 2) [[Ultrasonic Sensor>>||anchor="H2.4.11A0UltrasonicSensor"]]
616 )))
617 )))
618 )))|(% style="width:94px" %)[[Timestamp>>||anchor="H2.4.14A0Timestamp"]]
619
620 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
621
622 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:512px" %)
623 |(% 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)**
624
625 (((
626 (% style="color:red" %)**NOTE:**
627 )))
628
629 (((
630 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
631 )))
632
633 (((
634 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes are 193.**
635 )))
636
637
638 (((
639 (((
640 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
641 )))
642 )))
643
644
645 [[image:1657527383721-325.png]]
646
647
648 So the payload is (% style="background-color:yellow" %)**0xf868411056754138 0078 0ca9 11 02 010b 00 0ca8 0158 60dacc87 **
649
650 **where:**
651
652 * (% style="color:#037691" %)**Device ID:**(%%) 0xf868411056754138 = 868411056754138
653
654 * (% style="color:#037691" %)**Version:**(%%)  0x0078=120=1.2.0
655
656 * (% style="color:#037691" %)**BAT:**(%%)  0x0ca9 = 3241mV = 3.241 V
657
658 * (% style="color:#037691" %)**Singal:**(%%)  0x11 = 17
659
660 * (% style="color:#037691" %)**Model:** (%%)0x02 = 2
661
662 * (% style="color:#037691" %)**Temperature by DS18b20:**(%%) 0x010b= 267 = 26.7  °C
663
664 * (% style="color:#037691" %)**Interrupt:**(%%) 0x00 = 0
665
666 * (% style="color:#037691" %)**ADC:**(%%) 0x0ca8 = 3240 mv
667
668 * (% style="color:#037691" %)**Distance by LIDAR-Lite V3HP/Ultrasonic Sensor:**(%%) 0x0158 = 344 cm
669
670 * (% style="color:#037691" %)**Timestamp:** (%%)0x60dacc87 = 1,624,951,943 = 2021-06-29 15:32:23
671
672 ==== (% style="color:blue" %)**Connection of LIDAR-Lite V3HP:**(%%) ====
673
674
675 [[image:1657527422661-877.png]]
676
677
678 (% style="color:blue" %)**Connection to Ultrasonic Sensor:**
679
680 [[image:1657527441108-781.png]]
681
682
683
684 === 2.3.3 CFGMOD~=3 (3 ADC + I2C) ===
685
686
687 (((
688 This mode has total 29 bytes. Include 3 x ADC + 1x I2C, ((% style="color:red" %)**Note: Time stamp field are added since firmware version v120**(%%))
689 )))
690
691 (% border="1" cellspacing="6" style="background-color:#ffffcc; color:green; width:520px" %)
692 |=(% style="width: 55px;" %)(((
693 **Size(bytes)**
694 )))|=(% style="width: 35px;" %)8|=(% style="width: 25px;" %)2|=(% style="width: 25px;" %)**2**|=(% style="width: 40px;" %)**1**|=(% style="width: 30px;" %)**1**|=(% style="width: 30px;" %)**2**|=(% style="width: 50px;" %)**1**|=(% style="width: 28px;" %)**2**|=(% style="width: 61px;" %)**2**|=(% style="width: 61px;" %)**2**|=(% style="width: 30px;" %)2|=(% style="width: 50px;" %)**4**
695 |(% style="width:46px" %)**Value**|(% style="width:46px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:46px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:46px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:120px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:55px" %)(((
696 (((
697 MOD
698 )))
699
700 (((
701 0x03
702 )))
703 )))|(% style="width:60px" %)(((
704 [[ADC>>||anchor="H2.4.7A0AnalogueDigitalConverter28ADC29"]]1
705 )))|(% style="width:159px" %)[[Digital in>>||anchor="H2.4.6A0DigitalInput"]] & [[Interrupt>>||anchor="H2.4.8A0DigitalInterrupt"]]|(% style="width:49px" %)[[ADC>>||anchor="H2.4.7A0AnalogueDigitalConverter28ADC29"]]2|(% style="width:104px" %)(((
706 (((
707 [[Temperature>>||anchor="H2.4.9A0I2CInterface28SHT2029"]]
708 )))
709
710 (((
711 by
712 )))
713
714 (((
715 SHT20/SHT31
716 )))
717 )))|(% style="width:112px" %)(((
718 (((
719 [[Humidity>>||anchor="H2.4.9A0I2CInterface28SHT2029"]]
720 )))
721
722 (((
723 by
724 )))
725
726 (((
727 SHT20/SHT31
728 )))
729 )))|(% style="width:112px" %)[[ADC>>||anchor="H2.4.7A0AnalogueDigitalConverter28ADC29"]]3|(% style="width:94px" %)[[Timestamp>>||anchor="H2.4.14A0Timestamp"]]
730
731 ADC1 uses pin PA0 to measure
732
733 ADC2 uses pin PA1 to measure
734
735 ADC3 uses pin PA4 to measure
736
737
738 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
739
740
741 (% border="1" style="background-color:#ffffcc; color:green; width:510px" %)
742 |(% style="width:114px" %)**Frame header**|(% style="width:119px" %)**Frame data(1)**|(% style="width:118px" %)**Frame data(2)**|(% style="width:39px" %)**F…**|(% style="width:117px" %)**Frame data(X)**
743
744 (% style="color:red" %)**NOTE:**
745
746 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
747
748 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes are 226.**
749
750
751 (((
752 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
753 )))
754
755 [[image:1657527751330-433.png]]
756
757
758 So the payload is (% style="background-color:yellow" %)**0x f868411056754138 78 0cf0 12 03 0cbc 00 0cef 010a 024b 0cef 60dbc494**
759
760 **where:**
761
762 * (% style="color:#037691" %)**Device ID:**(%%) 0xf868411056754138 = 868411056754138
763
764 * (% style="color:#037691" %)**Version:**(%%)  0x78=120=1.2.0
765
766 * (% style="color:#037691" %)**BAT:**(%%)  0x0cf0 = 3312 mV = 3.312 V
767
768 * (% style="color:#037691" %)**Singal:**(%%)  0x12 = 18
769
770 * (% style="color:#037691" %)**Model:**(%%) 0x03 = 3
771
772 * (% style="color:#037691" %)**ADC1:**  (%%)0x0cbc= 3260mV
773
774 * (% style="color:#037691" %)**Interrupt:**(%%) 0x00 = 0
775
776 * (% style="color:#037691" %)**ADC2:**(%%) 0x0cef =3311 mv
777
778 * (% style="color:#037691" %)**Temperature by SHT20/SHT31:**(%%) 0x010a = 266 = 26.6 °C
779
780 * (% style="color:#037691" %)**Humidity by SHT20/SHT31:**(%%) 0x024b =587 = 58.7 %rh
781
782 * (% style="color:#037691" %)**ADC2:**(%%) 0x0cef = 3311 mv
783
784 * (% style="color:#037691" %)**Timestamp:** (%%)0x60dbc494 = 1,625,015,444= 2021-06-30 09:10:44
785
786
787 === 2.3.4 CFGMOD~=4 (3 x DS18B20) ===
788
789
790 (((
791 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**(%%))
792
793
794 )))
795
796 [[image:1657527815194-570.png]]
797
798
799 This mode has total 27 bytes. ((% style="color:red" %)**Note: Time stamp field are added since firmware version v120**(%%)) As shown below:
800
801 (% border="1" cellspacing="6" style="background-color:#ffffcc; color:green; width:520px" %)
802 |=(% style="width: 55px;" %)(((
803 **Size(bytes)**
804 )))|=(% style="width: 35px;" %)8|=(% style="width: 25px;" %)2|=(% style="width: 25px;" %)**2**|=(% style="width: 40px;" %)**1**|=(% style="width: 30px;" %)**1**|=(% style="width: 58px;" %)**2**|=(% style="width: 30px;" %)2|=(% style="width: 48px;" %)**1**|=(% style="width: 61px;" %)**2**|=(% style="width: 61px;" %)**2**|=(% style="width: 50px;" %)**4**
805 |(% style="width:46px" %)**Value**|(% style="width:46px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:46px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:46px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:120px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:55px" %)(((
806 (((
807 MOD
808 )))
809
810 (((
811 0x04
812 )))
813 )))|(% style="width:60px" %)(((
814 [[Temperature1 (DS18B20) (PB3)>>||anchor="H2.3.4CFGMOD3D4283xDS18B2029"]]
815 )))|(% style="width:60px" %)[[ADC>>||anchor="H2.4.7A0AnalogueDigitalConverter28ADC29"]]|(% style="width:159px" %)[[Digital in>>||anchor="H2.4.6A0DigitalInput"]] & [[Interrupt>>||anchor="H2.4.8A0DigitalInterrupt"]]|(% style="width:104px" %)(((
816 (((
817 [[Temperature2 (DS18B20) (PA9)>>||anchor="H2.3.4CFGMOD3D4283xDS18B2029"]]
818 )))
819 )))|(% style="width:112px" %)(((
820 (((
821 [[Temperature3 (DS18B20) (PA10)>>||anchor="H2.3.4CFGMOD3D4283xDS18B2029"]]
822 )))
823 )))|(% style="width:94px" %)[[Timestamp>>||anchor="H2.4.14A0Timestamp"]]
824
825 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
826
827
828 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:538px" %)
829 |(% style="width:115px" %)**Frame header**|(% style="width:125px" %)**FFrame data(1)**|(% style="width:126px" %)**FFrame data(2)**|(% style="width:40px" %)**F…**|(% style="width:126px" %)**FFrame data(X)**
830
831 (% style="color:red" %)**NOTE:**
832
833 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
834
835 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes is 215.**
836
837
838 (((
839 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
840 )))
841
842 (((
843
844 )))
845
846 [[image:1657528339054-727.png]]
847
848
849 So the payload is (% style="background-color:yellow" %)**0x f868411056754138 0078 0cdf 15 04 010a 0cde 00 00fb 0100 60dbcb3f  **
850
851 **where:**
852
853 * (% style="color:#037691" %)**Device ID:**(%%) 0xf868411056754138 = 868411056754138
854
855 * (% style="color:#037691" %)**Version:** (%%)0x0078=120=1.2.0
856
857 * (% style="color:#037691" %)**BAT:**      (%%)0x0cdf = 3295 mV = 3.295 V
858
859 * (% style="color:#037691" %)**Singal:**(%%)  0x15 = 21
860
861 * (% style="color:#037691" %)**Model:**(%%) 0x04 = 4
862
863 * (% style="color:#037691" %)**Temperature by DS18b20:**(%%) 0x010a = 226 = 22.6 °C
864
865 * (% style="color:#037691" %)**ADC:** (%%)0x0cde = 3294 mv
866
867 * (% style="color:#037691" %)**Interrupt:**(%%) 0x00 = 0
868
869 * (% style="color:#037691" %)**Temperature by DS18b20:** (%%)0x00fb = 251 = 25.1°C
870
871 * (% style="color:#037691" %)**Temperature by DS18b20:**(%%) 0x0100  = 256 = 25.6 °C
872
873 * (% style="color:#037691" %)**Timestamp:**(%%)** **0x60dbcb3f = 1,625,017,151= 2021-06-30 09:39:11
874
875
876 === 2.3.5 CFGMOD~=5 (Weight Measurement by HX711) ===
877
878
879 [[image:1657528388617-253.png]]
880
881
882 (% style="color:red" %)**Notes about hardware connection:**
883
884 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.
885 1. HX711 support 5v VCC, but while connect the NBSN95's +5V to HX711 VCC, the value from HX711 is not stable.
886 1. Connect NBSN95 +5V to HX711 VCC via a LDO module is stable.
887
888
889 (% style="color:red" %)**Each HX711 need to be calibrated before used. User need to do below two steps:**
890
891 1. Zero calibration. Don't put anything on load cell and run (% style="color:blue" %)**AT+WEIGRE**(%%) to calibrate to Zero gram.
892 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.
893
894 **For example:**
895
896 (% style="color:blue" %)**AT+WEIGAP =403.0**
897
898 Response:  Weight is 401 g
899
900
901 Check the response of this command and adjust the value to match the real value for thing.
902
903 This mode has total 25 bytes. ((% style="color:red" %)**Note: Time stamp field are added since firmware version v120**(%%)). As shown below:
904
905 (% border="1" cellspacing="6" style="background-color:#ffffcc; color:green; width:520px" %)
906 |=(% style="width: 55px;" %)(((
907 **Size(bytes)**
908 )))|=(% style="width: 45px;" %)8|=(% style="width: 30px;" %)2|=(% style="width: 30px;" %)**2**|=(% style="width: 65px;" %)**1**|=(% style="width: 30px;" %)**1**|=(% style="width: 58px;" %)**2**|=(% style="width: 30px;" %)**2**|=(% style="width: 85px;" %)**1**|=(% style="width: 40px;" %)**2**|=(% style="width: 50px;" %)**4**
909 |(% style="width:46px" %)**Value**|(% style="width:46px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:46px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:46px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:120px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:55px" %)(((
910 (((
911 MOD
912 )))
913
914 (((
915 0x05
916 )))
917 )))|(% style="width:60px" %)(((
918 [[Temperature (DS18B20)>>||anchor="H2.4.5A0Temperature28DS18B2029"]]
919 )))|(% style="width:60px" %)[[ADC>>||anchor="H2.4.7A0AnalogueDigitalConverter28ADC29"]]|(% style="width:159px" %)[[Digital in>>||anchor="H2.4.6A0DigitalInput"]] & [[Interrupt>>||anchor="H2.4.8A0DigitalInterrupt"]]|(% style="width:104px" %)(((
920 (((
921 [[Weight>>||anchor="H2.4.13A0WeighSensorHX711"]]
922 )))
923 )))|(% style="width:94px" %)[[Timestamp>>||anchor="H2.4.14A0Timestamp"]]
924
925 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
926
927
928 (% border="1" style="background-color:#ffffcc; color:green; width:522px" %)
929 |(% style="width:116px" %)**Frame header**|(% style="width:122px" %)**Frame data (1)**|(% style="width:122px" %)**Frame data (2)**|(% style="width:41px" %)**F…**|(% style="width:118px" %)**Frame data(X)**
930
931 (% style="color:red" %)**NOTE:**
932
933 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
934
935 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes are 193.**
936
937
938 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
939
940
941 [[image:1657528559833-164.png]]
942
943
944 So the payload is (% style="background-color:yellow" %)**0x f868411056754138 0078 0c94 14 05 0137 0c93 00 003a 60dbe59e**
945
946 **where:**
947
948 * (% style="color:#037691" %)**Device ID:** (%%)0xf868411056754138 = 868411056754138
949
950 * (% style="color:#037691" %)**Version:**(%%)  0x0078=120=1.2.0
951
952 * (% style="color:#037691" %)**BAT:**(%%)**      **0x0c94 = 3220 mV = 3.220 V
953
954 * (% style="color:#037691" %)**Singal:**  (%%)0x14 = 20
955
956 * (% style="color:#037691" %)**Model:** (%%)0x05 = 5
957
958 * (% style="color:#037691" %)**Temperature by DS18b20:**(%%) 0x0137 = 311 = 31.1 °C
959
960 * (% style="color:#037691" %)**ADC:** (%%)0x0c93 = 3219 mv
961
962 * (% style="color:#037691" %)**Interrupt:**(%%) 0x00 = 0
963
964 * (% style="color:#037691" %)**Weigt by HX711:** (%%)0x003a  = 58 g
965
966 * (% style="color:#037691" %)**Timestamp:**(%%) 0x60dbe59e = 1,625,023,902= 2021-06-30 11:31:42
967
968
969
970 === 2.3.6 CFGMOD~=6 (Counting mode) ===
971
972
973 (((
974 In this mode, uplink payload includes in total 22 bytes, ((% style="color:red" %)**Note: Time stamp field are added since firmware version v120**(%%))
975 )))
976
977 (% border="1" cellspacing="6" style="background-color:#ffffcc; color:green; width:400px" %)
978 |=(% style="width: 55px;" %)(((
979 **Size(bytes)**
980 )))|=(% style="width: 45px;" %)8|=(% style="width: 30px;" %)2|=(% style="width: 30px;" %)**2**|=(% style="width: 70px;" %)**1**|=(% style="width: 50px;" %)**1**|=(% style="width: 60px;" %)4|=(% style="width: 50px;" %)**4**
981 |(% style="width:46px" %)**Value**|(% style="width:46px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:46px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:46px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:120px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:55px" %)(((
982 (((
983 MOD 0x06
984 )))
985 )))|(% style="width:60px" %)Pulse count|(% style="width:94px" %)[[Timestamp>>||anchor="H2.4.14A0Timestamp"]]
986
987 If the cache upload mechanism is turned on, you will receive the payload shown in the figure below.
988
989
990 (% border="1" style="background-color:#ffffcc; color:green; width:518px" %)
991 |(% style="width:116px" %)**Frame header**|(% style="width:121px" %)**Frame data (1)**|(% style="width:121px" %)**Frame data (2)**|(% style="width:39px" %)**F…**|(% style="width:118px" %)**Frame data(X)**
992
993 (% style="color:red" %)**NOTE:**
994
995 (% style="color:red" %)**1.    Only up to 10 sets of latest data will be cached.**
996
997 (% style="color:red" %)**2.    Theoretically, the maximum upload bytes are 160.**
998
999
1000 (((
1001 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
1002 )))
1003
1004
1005 [[image:1657528693361-320.png]]
1006
1007 (((
1008
1009
1010 The payload is ASCII string, representative same HEX: (% style="background-color:yellow" %)**0x f868411056754138 0078 0cc7 14 06 00000002 60dc03e5**
1011
1012 **~ where:**
1013 )))
1014
1015 * (% style="color:#037691" %)**Device ID:** (%%)0xf868411056754138 = 868411056754138
1016
1017 * (% style="color:#037691" %)**Version:** (%%)0x0078=120=1.2.0
1018
1019 * (% style="color:#037691" %)**BAT:**(%%)  0x0cc7 =3271mV =3.271V
1020
1021 * (% style="color:#037691" %)**Singal:**(%%)  0x14 = 20
1022
1023 * (% style="color:#037691" %)**Model:**(%%) 0x06 = 6
1024
1025 * (% style="color:#037691" %)**Pulse count:**(%%)  0x00000002= 2
1026
1027 * (% style="color:#037691" %)**Timestamp:**(%%)  0x60dc03e5 = 1,625,031,653= 2021-06-30 13:40:53
1028
1029
1030
1031 == 2.4  Payload Explanation and Sensor Interface ==
1032
1033
1034 === 2.4.1  Device ID ===
1035
1036
1037 (((
1038 By default, the Device ID equal to the last 15 bits of IMEI.
1039
1040 User can use (% style="color:blue" %)**AT+DEUI** (%%)to set Device ID
1041
1042
1043 **Example**:
1044
1045 AT+DEUI=868411056754138
1046
1047 The Device ID is stored in a none-erase area, Upgrade the firmware or run AT+FDR won't erase Device ID.
1048 )))
1049
1050
1051
1052 === 2.4.2  Version Info ===
1053
1054
1055 (((
1056 (((
1057 These bytes include the hardware and software version.
1058 )))
1059
1060 (((
1061 **Higher byte:**  Specify hardware version: always 0x01 for NBSN95
1062 )))
1063
1064 (((
1065 **Lower byte:**  Specify the software version: 0x6E=110, means firmware version 110
1066 )))
1067
1068 (((
1069 **For example:  **0x01 6E: this device is NBSN95 with firmware version 110.
1070 )))
1071 )))
1072
1073
1074
1075 === 2.4.3  Battery Info ===
1076
1077
1078 (((
1079 Ex1: 0x0B45 = 2885mV
1080 )))
1081
1082 (((
1083 Ex2: 0x0B49 = 2889mV
1084 )))
1085
1086
1087
1088 === 2.4.4  Signal Strength ===
1089
1090
1091 (((
1092 NB-IoT Network signal Strength.
1093 )))
1094
1095 (((
1096
1097
1098 **Ex1: 0x1d = 29**
1099 )))
1100
1101 (((
1102 (% style="color:blue" %)**0**(%%)  -113dBm or less
1103 )))
1104
1105 (((
1106 (% style="color:blue" %)**1**(%%)  -111dBm
1107 )))
1108
1109 (((
1110 (% style="color:blue" %)**2...30**(%%) -109dBm... -53dBm
1111 )))
1112
1113 (((
1114 (% style="color:blue" %)**31**  (%%) -51dBm or greater
1115 )))
1116
1117 (((
1118 (% style="color:blue" %)**99**   (%%) Not known or not detectable
1119 )))
1120
1121
1122
1123 === 2.4.5  Temperature (DS18B20) ===
1124
1125
1126 If there is a DS18B20 connected to PB3 pin. The temperature will be uploaded in the payload.
1127
1128 (((
1129 More DS18B20 can check the [[3 DS18B20 mode>>||anchor="H2.3.4CFGMOD3D4283xDS18B2029"]]
1130 )))
1131
1132
1133 (((
1134 (% style="color:blue" %)**Connection for one DS18B20**
1135 )))
1136
1137 [[image:image-20220711164131-3.jpeg]]
1138
1139
1140 **Example**:
1141
1142 If payload is:  0x0105:  (0105 & FC00 == 0), temp = 0x0105 /10 = 26.1 degree
1143
1144 If payload is:  0xFF3F:  (FF3F & FC00 == 1) , temp = (0xFF3F - 65536)/10 = -19.3 degree.
1145
1146
1147
1148 === 2.4.6  Digital Input ===
1149
1150
1151 The digital input is for pin PA12,
1152
1153 * When PA12 is high, the bit2 of this byte is 1.
1154
1155 * When PA12 is low, the bit2 of this byte is 0.
1156
1157 (((
1158
1159 )))
1160
1161
1162
1163 === 2.4.7  Analogue Digital Converter (ADC) ===
1164
1165
1166 The ADC monitors the voltage on the (% style="color:blue" %)**PA0**(%%) line, in mV. Max value is from 0v to BAT voltage
1167
1168
1169 Ex: 0x021F = 543mv,
1170
1171
1172 (% style="color:blue" %)**Example1:**(%%)  Reading a Liquid Level Sensor (Read a resistance value):
1173
1174 [[image:image-20220711164848-12.png]]
1175
1176
1177
1178 (((
1179 In the NBSN95, we can use PB4 and PA0 pin to calculate the resistance for the liquid level sensor. The bottom of this sensor equal to 0ohm and top position equals to 10kohm.
1180 )))
1181
1182
1183 (% style="color:blue" %)**Steps:**
1184
1185 1.  Solder a 10K resistor between PA0 and VCC.
1186
1187 2.  Screw liquid level sensor's two pins to PA0 and PB4.
1188
1189
1190
1191 The equipment circuit is as below:
1192
1193
1194 [[image:image-20220711164942-13.png]]
1195
1196
1197
1198 According to above diagram:
1199
1200 ([[image:image-20220711164435-6.png]]
1201
1202 So
1203
1204 [[image:image-20220711164435-7.png]]
1205
1206 [[image:image-20220711164435-8.png]] is the reading of ADC. So if ADC=0x05DC=0.9 v and VCC (BAT) is 2.9v
1207
1208
1209 The [[image:image-20220711164435-9.png]] 4.5K ohm
1210
1211 Since the buoy is linear resistance from 10 ~~ 70cm.
1212
1213
1214 The position of buoy is [[image:image-20220711164435-10.png]] , from the bottom of buoy.
1215
1216 (((
1217
1218 )))
1219
1220 (((
1221
1222 )))
1223
1224 === 2.4.8  Digital Interrupt ===
1225
1226
1227 (((
1228 Digital Interrupt refers to pin PB14, and there are different trigger methods. When there is a trigger, the NBSN95 will send a packet to the server.
1229 )))
1230
1231
1232 (((
1233 **Example to use with door sensor**
1234 )))
1235
1236 (((
1237 The door sensor is shown at right. It is a two wire magnetic contact switch used for detecting the open/close status of doors or windows.
1238 )))
1239
1240 [[image:image-20220711165615-14.png]]
1241
1242 (((
1243 When the two pieces are close to each other, the 2 wire output will be short or open (depending on the type), while if the two pieces are away from each other, the 2 wire output will be the opposite status. So we can use NBSN95 interrupt interface to detect the status for the door or window.
1244 )))
1245
1246
1247 (((
1248 Below is the installation example:
1249 )))
1250
1251 (((
1252 Fix one piece of the magnetic sensor to the door and connect the two pins to NBSN95 as follows:
1253 )))
1254
1255 * One pin to NBSN95's PB14 pin
1256
1257 * The other pin to NBSN95's VCC pin
1258
1259 (((
1260 Install the other piece to the door. Find a place where the two pieces will be close to each other when the door is closed. For this particular magnetic sensor, when the door is closed, the output will be short, and PB14 will be at the VCC voltage.
1261 )))
1262
1263
1264 (((
1265 Door sensors have two types:  NC (Normal close) and NO (Normal Open). The connection for both type sensors are the same. But the decoding for payload is reverse, user need to modify this in the IoT Server decoder.
1266 )))
1267
1268
1269 (((
1270 When door sensor is shorted, there will extra power consumption in the circuit, the extra current is 3v3/R14 = 3v2/1Mohm = 0.3uA which can be ignored.
1271 )))
1272
1273
1274 [[image:image-20220711165615-15.png]]
1275
1276
1277 The above photos shows the two parts of the magnetic switch fitted to a door.
1278
1279
1280 (((
1281 The software by default uses the falling edge on the signal line as an interrupt. We need to modify it to accept both the rising edge (0v ~-~-> VCC , door close) and the falling edge (VCC ~-~-> 0v , door open) as the interrupt.
1282 )))
1283
1284
1285 (((
1286 The command is:
1287 )))
1288
1289 (((
1290 (% style="color:blue" %)**AT+INTMOD=1     ** (%%) ~/~/  (more info about INMOD please refer [[AT Command Manual>>url:http://www.dragino.com/downloads/index.php?dir=NB-IoT/NBSN50/]]).
1291 )))
1292
1293
1294 Below shows some screen captures in TTN:
1295
1296
1297 (((
1298 In MOD=1, user can use the (% style="color:blue" %)**Digital Input & Interrupt** (%%)byte to see the status for door open or close. The Decode is:
1299 )))
1300
1301 * When PB14 is high, the bit8 of this byte is 1.
1302
1303 * When PB14 is low, the bit8 of this byte is 0.
1304
1305
1306
1307 === 2.4.9  I2C Interface (SHT20) ===
1308
1309
1310 (((
1311 The (% style="color:blue" %)**PB6(SDA)**(%%) and (% style="color:blue" %)**PB7(SCK)**(%%) are I2C interface. User can use these pins to connect to an I2C device and get the sensor data.
1312 )))
1313
1314 (((
1315 There is an example to show how to use the I2C interface to connect to the SHT20 Temperature and Humidity Sensor. This is support in [[**AT+CFGMOD=1**>>||anchor="H2.3.1CFGMOD3D128DefaultMode29"]]** (default value).**
1316 )))
1317
1318
1319 (((
1320 Hardware connection for SHT20 is as below: 
1321 )))
1322
1323
1324 [[image:image-20220711170438-16.jpeg]]
1325
1326
1327 The device will be able to get the I2C sensor data now and upload to IoT Server.
1328
1329
1330 [[image:image-20220711170438-17.png]]
1331
1332
1333 Convert the read byte to decimal and divide it by ten.
1334
1335
1336 (% style="color:blue" %)**Example:**
1337
1338 Temperature:  Read:00ec (H) = 236(D)  Value:  236 /10=23.6℃
1339
1340 Humidity:    Read:0295(H)=661(D)    Value:  661 / 10=66.1, So 66.1%
1341
1342
1343 If you want to use other I2C device, please refer the SHT20 part source code as reference.
1344
1345
1346
1347 === 2.4.10  Distance Reading ===
1348
1349
1350 Refer [[Ultrasonic Sensor section>>||anchor="H2.4.11A0UltrasonicSensor"]].
1351
1352
1353
1354 === 2.4.11  Ultrasonic Sensor ===
1355
1356
1357 (((
1358 The NBSN95 firmware supports ultrasonic sensor (with AT+CFGMOD=2) such as SEN0208 from DF-Robot. This Fundamental Principles of this sensor can be found at this link: [[https:~~/~~/wiki.dfrobot.com/Weather_-_proof_Ultrasonic_Sensor_with_Separate_Probe_SKU~~_~~__SEN0208>>url:https://wiki.dfrobot.com/Weather_-_proof_Ultrasonic_Sensor_with_Separate_Probe_SKU___SEN0208]]
1359 )))
1360
1361
1362 (((
1363 The NBSN95 detects the pulse width of the sensor and converts it to mm output. The accuracy will be within 1 centimeter. The usable range (the distance between the ultrasonic probe and the measured object) is between 24cm and 600cm.
1364 )))
1365
1366
1367 The picture below shows the connection:
1368
1369
1370 [[image:image-20220711171223-18.jpeg]]
1371
1372
1373
1374 Connect to the NBSN95 and run [[(% class="wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink" %)**AT+CFGMOD=2**>>||anchor="H2.3.2CFGMOD3D228DistanceMode29"]](%%) to switch to ultrasonic mode (ULT).
1375
1376
1377 **Example:**
1378
1379 Distance:  Read:0155(Hex) = 3410(D)  Value:  3410 mm=341.0 cm
1380
1381 [[image:image-20220711171223-19.png]]
1382
1383
1384 You can see the serial output in ULT mode as below:
1385
1386
1387 [[image:image-20220711171223-20.png]]
1388
1389
1390
1391 === 2.4.12  ​+5V Output ===
1392
1393
1394 (((
1395 NBSN95 will enable +5V output before all sampling and disable the +5v after all sampling. 
1396 )))
1397
1398
1399 (((
1400 The 5V output time can be controlled by AT Command.
1401 )))
1402
1403 (((
1404 (% style="color:blue" %)**AT+5VT=1000**
1405 )))
1406
1407 (((
1408 Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.
1409 )))
1410
1411
1412
1413 === 2.4.13  Weigh Sensor HX711 ===
1414
1415
1416 NBSN95 supports Weigh Sensor HX711. See [[this link>>||anchor="H2.3.5CFGMOD3D528WeightMeasurementbyHX71129"]] for instruction.
1417
1418
1419
1420 === 2.4.14  Timestamp ===
1421
1422
1423 From the v1.2.0 version, the timestamp will be added after each upload link.
1424
1425
1426 The time of the timestamp is based on the time in time zone 0.
1427
1428 Such as: 0x60da837e = 1624933246 = 2021-06-29 2:20:46+32(Beijing time)
1429
1430
1431 User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
1432
1433 Below is the converter example
1434
1435
1436 [[image:image-20220711171448-21.png]]
1437
1438
1439
1440 == 2.5  Downlink Payload ==
1441
1442
1443 By default, NBSN95 prints the downlink payload to console port.
1444
1445 [[image:image-20220708133731-5.png]]
1446
1447
1448 (((
1449 (% style="color:blue" %)**Examples:**
1450 )))
1451
1452 (((
1453
1454 )))
1455
1456 * (((
1457 (% style="color:blue" %)**Set TDC**
1458 )))
1459
1460 (((
1461 If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.
1462 )))
1463
1464 (((
1465 Payload:    01 00 00 1E    TDC=30S
1466 )))
1467
1468 (((
1469 Payload:    01 00 00 3C    TDC=60S
1470 )))
1471
1472 (((
1473
1474 )))
1475
1476 * (((
1477 (% style="color:blue" %)**Reset**
1478 )))
1479
1480 (((
1481 If payload = 0x04FF, it will reset the NBSN95
1482 )))
1483
1484
1485 * (% style="color:blue" %)**INTMOD**
1486
1487 (((
1488 Downlink Payload: 06000003, Set AT+INTMOD=3
1489 )))
1490
1491
1492
1493 == 2.6  ​Firmware Change Log ==
1494
1495
1496 Download URL & Firmware Change log:  [[https:~~/~~/www.dropbox.com/sh/heyfnuod8qwwcm0/AACjmliw8Aeb9tYc74YoE9Qra?dl=0>>https://www.dropbox.com/sh/heyfnuod8qwwcm0/AACjmliw8Aeb9tYc74YoE9Qra?dl=0]]
1497
1498
1499 (((
1500 Upgrade Instruction: [[Upgrade Firmware>>||anchor="H6.1200BHowtoUpgradeFirmware"]]
1501 )))
1502
1503
1504
1505 == 2.7  Use VDD or +5V to Power External Sensor ==
1506
1507
1508 User can use VDD or +5V to power external sensor.
1509
1510
1511 (% style="color:red" %)**Note:**
1512
1513 1. VDD is 2.5~~3.3v from the battery + diode, the VDD is always on, so when use VDD to power external sensor, make sure the sensor has a low power consumption in sleep mode ( less 50 uA) to get a long battery life.
1514
1515 1. +5V output is only ON when sampling. And MCU will turn off it after sampling. So if sensor can support 5v, +5V out is the best choice. [[See here for more info>>||anchor="H2.4.12A0200B2B5VOutput"]].
1516
1517 (((
1518 (% style="color:red" %)**Note: Always test the actually current pass by the JP2 jumper when connect to a new type of sensor.**
1519 )))
1520
1521
1522
1523 == 2.8  ​Battery Analysis ==
1524
1525
1526 === 2.8.1  ​Battery Type ===
1527
1528
1529 (((
1530 The NBSN95 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.
1531 )))
1532
1533
1534 (((
1535 The battery is designed to last for several years depends on the actually use environment and update interval. 
1536 )))
1537
1538
1539 (((
1540 The battery related documents as below:
1541 )))
1542
1543 * [[Battery Dimension>>http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
1544
1545 * [[Lithium-Thionyl Chloride Battery datasheet>>http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
1546
1547 * [[Lithium-ion Battery-Capacitor datasheet>>http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
1548
1549 (((
1550 [[image:image-20220708140453-6.png]]
1551 )))
1552
1553
1554
1555 === 2.8.2  Power consumption Analyze ===
1556
1557
1558 The file **DRAGINO_NBSN95-Power-Analyzer.pdf** from [[https:~~/~~/www.dropbox.com/sh/jao1xt9kw5r3yq4/AAAMpJkZzExF2JLbRWxGoQ9Na?dl=0>>https://www.dropbox.com/sh/jao1xt9kw5r3yq4/AAAMpJkZzExF2JLbRWxGoQ9Na?dl=0]] describes a detail measurement to analyze the power consumption in different case. User can use it for design guideline for their project.
1559
1560 (((
1561
1562 )))
1563
1564
1565 === 2.8.3  ​Battery Note ===
1566
1567
1568 (((
1569 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.
1570 )))
1571
1572
1573
1574 === 2.8.4  Replace the battery ===
1575
1576
1577 (((
1578 You can change the battery in the NBSN95.The type of battery is not limited as long as the output is between 3v to 3.6v. On the main board, there is a diode (D1) between the battery and the main circuit. If you need to use a battery with less than 3.3v, please remove the D1 and shortcut the two pads of it so there won't be voltage drop between battery and main board.
1579 )))
1580
1581
1582 (((
1583 The default battery pack of NBSN95 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).
1584 )))
1585
1586 (((
1587
1588 )))
1589
1590
1591 = 3. ​ Access NB-IoT Module =
1592
1593
1594 (((
1595 Users can directly access the AT command set of the NB-IoT module.
1596
1597 (((
1598 The AT Command set can refer the BC95-G AT Command: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC95-G/>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC95-G/]]
1599 )))
1600
1601
1602 )))
1603
1604 [[image:1657531951422-179.png]]
1605
1606
1607
1608 = 4.  Using the AT Commands =
1609
1610
1611 == 4.1  Access AT Commands ==
1612
1613
1614 See this link for detail: [[https:~~/~~/www.dropbox.com/sh/jao1xt9kw5r3yq4/AAAMpJkZzExF2JLbRWxGoQ9Na?dl=0>>https://www.dropbox.com/sh/jao1xt9kw5r3yq4/AAAMpJkZzExF2JLbRWxGoQ9Na?dl=0]]
1615
1616
1617 AT+<CMD>?  : Help on <CMD>
1618
1619 AT+<CMD>         : Run <CMD>
1620
1621 AT+<CMD>=<value> : Set the value
1622
1623 AT+<CMD>=?  : Get the value
1624
1625
1626 (% style="color:#037691" %)**General Commands**(%%)      
1627
1628 AT  : Attention       
1629
1630 AT?  : Short Help     
1631
1632 ATZ  : MCU Reset    
1633
1634 AT+TDC  : Application Data Transmission Interval
1635
1636 AT+CFG  : Print all configurations
1637
1638 AT+CFGMOD           : Working mode selection
1639
1640 AT+INTMOD            : Set the trigger interrupt mode
1641
1642 AT+5VT  : Set extend the time of 5V power  
1643
1644 AT+PRO  : Choose agreement
1645
1646 AT+WEIGRE  : Get weight or set weight to 0
1647
1648 AT+WEIGAP  : Get or Set the GapValue of weight
1649
1650 AT+RXDL  : Extend the sending and receiving time
1651
1652 AT+CNTFAC  : Get or set counting parameters
1653
1654 AT+SERVADDR  : Server Address
1655
1656
1657 (% style="color:#037691" %)**COAP Management**      
1658
1659 AT+URI            : Resource parameters
1660
1661
1662 (% style="color:#037691" %)**UDP Management**
1663
1664 AT+CFM          : Upload confirmation mode (only valid for UDP)
1665
1666
1667 (% style="color:#037691" %)**MQTT Management**
1668
1669 AT+CLIENT               : Get or Set MQTT client
1670
1671 AT+UNAME  : Get or Set MQTT Username
1672
1673 AT+PWD                  : Get or Set MQTT password
1674
1675 AT+PUBTOPIC  : Get or Set MQTT publish topic
1676
1677 AT+SUBTOPIC  : Get or Set MQTT subscription topic
1678
1679
1680 (% style="color:#037691" %)**Information** 
1681
1682 AT+LDATA  : Get the last upload data
1683
1684 AT+CDP  : Read or Clear cached data(% style="color:#037691" %)       
1685
1686 AT+FDR  : Factory Data Reset
1687
1688 AT+PWORD  : Serial Access Password
1689
1690
1691
1692 = 5.  Developer Guide =
1693
1694
1695 == 5.1  Get and compile Software ==
1696
1697
1698 NBSN95 is an open-source project, developer can compile their firmware for customized applications. User can get the source code from:
1699
1700 * Software Source Code: [[https:~~/~~/github.com/dragino/NBSN95>>url:https://github.com/dragino/NBSN95]]
1701 * Compile instruction:  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Compile%20Instruction%20~~-~~-%20STM32/>>http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Compile%20Instruction%20--%20STM32/]]
1702 * Upgrade firmware instruction
1703
1704 (((
1705 See FAQ of this file.
1706 )))
1707
1708
1709 (((
1710 The project file is in: (% style="color:#4472c4" %)** NBSN95-95.v1.0.0\NBSN95-95.v1.0.0\MDK-ARM\NBSN95-95.v1.0.0.uvprojx**
1711 )))
1712
1713
1714
1715 == 5.2  Get hardware source ==
1716
1717
1718 NBSN95 are the compose of two PCB modules:
1719
1720 1.  Mother board:  [[LoRa ST Sensor node mother board>>url:https://github.com/dragino/Lora/tree/master/LSN50/v2.0]].
1721
1722 2.  NB-IoT Module: [[https:~~/~~/github.com/dragino/NB-IoT/tree/master/NB%20ST/BC95>>url:https://github.com/dragino/NB-IoT/tree/master/NB%20ST/BC95]]
1723
1724
1725
1726 = ​6.  FAQ =
1727
1728
1729 == 6.1 ​ How to Upgrade Firmware ==
1730
1731
1732 (((
1733 User can upgrade the firmware for 1) bug fix, 2) new feature release.
1734 )))
1735
1736 (((
1737 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]]
1738 )))
1739
1740 (((
1741 (% style="color:red" %)**Notice, NBSN95 and LSN50v2 share the same mother board. They use the same connection and method to update.**
1742 )))
1743
1744
1745
1746 = 7.  Trouble Shooting =
1747
1748
1749 == 7.1  ​Connection problem when uploading firmware ==
1750
1751
1752 (((
1753 **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]]
1754 )))
1755
1756 (% class="wikigeneratedid" %)
1757 (((
1758
1759 )))
1760
1761
1762 == 7.2  AT Command input doesn't work ==
1763
1764
1765 (((
1766 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.
1767
1768
1769 )))
1770
1771
1772 = 8. ​ Order Info =
1773
1774
1775 Part Number:
1776
1777 (% style="color:blue" %)**NBSN95-YY (Base on BC95-G)**
1778
1779 **or**
1780
1781 (% style="color:blue" %)**NBSN95A-YY(Base on BC35-G)**
1782
1783
1784 (% style="color:blue" %)**YY:**
1785
1786 * (% style="color:red" %)**12**(%%):  With M12 waterproof cable hole
1787 * (% style="color:red" %)**16**(%%):  With M16 waterproof cable hole
1788 * (% style="color:red" %)**NH**(%%): No Hole
1789
1790
1791
1792 = 9.  Packing Info =
1793
1794 (((
1795
1796
1797 (% style="color:#037691" %)**Package Includes**:
1798
1799 * NBSN95 NB-IoT Soil Moisture & EC Sensor x 1
1800 * External antenna x 1
1801 )))
1802
1803 (((
1804
1805
1806 (% style="color:#037691" %)**Dimension and weight**:
1807
1808 * Device Size: 13.0 x 5 x 4.5 cm
1809 * Device Weight: 150g
1810 * Package Size / pcs : 14.0 x 8x 5 cm
1811 * Weight / pcs : 180g
1812 )))
1813
1814 (((
1815
1816
1817
1818
1819 )))
1820
1821 = 10.  Support =
1822
1823
1824 * 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.
1825 * 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]]
1826
1827
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0