Show last authors
1
2
3 (% style="text-align:center" %)
4 [[image:image-20221117105556-1.png]]
5
6
7
8
9
10
11
12 **Table of Contents:**
13
14 {{toc/}}
15
16
17
18
19
20 = 1.  Introduction =
21
22 == 1.1 ​ What is NDS03A NB-IoT Open/Close Door Sensor ==
23
24
25 (((
26 The Dragino NDS03A is an (% style="color:blue" %)**Open/Close NB-IoT Door Sensor**(%%). It detects door (% style="color:blue" %)**open/close status**(%%) and (% style="color:blue" %)**uplinks**(%%) to IoT server via NB-IoT network. NDS03A can connect two door sensors. user can see the door status, open duration, open counts in the IoT Server.
27 )))
28
29 (((
30 The NDS03A will send periodically data (% style="color:blue" %)**every 4 hours** (%%)as well as for each door open/close action. It also counts the door open times and calculates the last door open duration. Users can also disable the uplink for each open/close event, instead, NDS03A can count each open event and uplink periodically.
31 )))
32
33 (((
34 NDS03A has a (% style="color:blue" %)**Datalog feature**(%%), it will record the open/close event and the user can retrieve the history from NB-IoT.
35 )))
36
37 (((
38 NDS03A has the (% style="color:blue" %)**open alarm feature**(%%), user can set this feature so the device will send an alarm if the door has been open for a certain time.
39 )))
40
41 (((
42 NDS03A is designed for outdoor use. It has a weatherproof enclosure and industrial level battery to work in low to high temperatures.
43 )))
44
45 (((
46 NarrowBand-Internet of Things (NB-IoT) is a (% style="color:blue" %)**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.
47 )))
48
49 (((
50 NDS03A supports different uplink methods including (% style="color:blue" %)**TCP, MQTT, UDP, and CoAP**(%%) for different application requirements.
51 )))
52
53 (((
54 NDS03A is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long-term use of up to 5 years. (Actually Battery life depends on the use environment, update period & uplink method)
55 )))
56
57 (((
58 To use NDS03A, user needs to check if there is NB-IoT coverage in the field and with the Nb-IoT bands that NDS03A supports. If local operator support it, user needs to get a (% style="color:blue" %)**NB-IoT SIM card**(%%) from the operator and install into NDS03A to get NB-IoT network connection.
59 )))
60
61
62 == ​1.2  Features ==
63
64
65 * NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
66 * Open/Close detect
67 * Open/Close statistics
68 * Probe length: 40cm
69 * Monitor Battery Level
70 * connect two door sensors
71 * Datalog feature
72 * Uplink periodically
73 * Downlink to change configure
74 * Wall Mountable
75 * Outdoor Use
76 * Ultra-Low Power consumption
77 * AT Commands to change parameters
78 * Micro SIM card slot for NB-IoT SIM
79 * 8500mAh Battery for long-term use
80
81 == 1.3  Storage & Operation ==
82
83
84 Temperature -40°C to +85°C
85
86
87 == 1.4  Mechanical ==
88
89
90 [[image:image-20221117114937-4.png||height="362" width="465"]]
91
92
93 [[image:image-20221117114949-5.png||height="295" width="723"]]
94
95
96 [[image:image-20221117115010-6.png||height="401" width="633"]]
97
98
99 == 1.5 ​ Applications ==
100
101
102 [[image:image-20221117114842-3.png]]
103
104
105 == 1.6  Specification ==
106
107
108 (% style="color:blue" %)**Common DC Characteristics:**
109
110 * Supply Voltage: 2.1v ~~ 3.6v
111 * Operating Temperature: -40 ~~ 85°C
112
113 (% style="color:blue" %)**NB-IoT Spec:**
114
115 * B1 @H-FDD: 2100MHz
116 * B3 @H-FDD: 1800MHz
117 * B8 @H-FDD: 900MHz
118 * B5 @H-FDD: 850MHz
119 * B20 @H-FDD: 800MHz
120 * B28 @H-FDD: 700MHz
121
122 == 1.7  Pin Definitions and Switch ==
123
124
125 [[image:image-20240119092023-1.png]]
126
127
128 === 1.7.1  Pin Definition ===
129
130
131 The device is pre-configured to connect to a door sensor. The other pins are not used. If user wants to know more about other pins, please refer to the user manual of LSN50v2 at:  [[https:~~/~~/www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0>>https://www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0]]
132
133
134 === 1.7.2  Jumper JP2(Power ON/OFF) ===
135
136
137 Power on Device when putting this jumper.
138
139
140 === 1.7.3  BOOT MODE / SW1 ===
141
142
143 1)  ISP:  upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. The firmware won't run.
144
145 2)  Flash:  working mode, the device starts to work for NB-IoT connection and sends out console output for further debugging.
146
147
148 === 1.7.4  Reset Button ===
149
150
151 Press to reboot the device.
152
153
154 === 1.7.5  LED ===
155
156
157 The LED will blink when :
158
159 1.  Boot the device in flash mode
160
161 2.  Send an uplink packet
162
163
164 == 1.8  Magnet Distance ==
165
166
167 (% style="color:blue" %)**Wood Door:**(%%) 10 ~~ 30mm
168
169 (% style="color:blue" %)**Iron Door:**(%%)**    **30 ~~ 45mm
170
171
172 = 2.  Use NDS03A to communicate with IoT Server =
173
174 == 2.1  How it works ==
175
176
177 In this user case, the NDS03A is installed on the door edge to detect the open/close event and send the status to the NB-IoT server. The NB-IoT network will forward this value to IoT server via the protocol defined by NDS03A.
178
179 The diagram below shows the working flow in the default firmware of NDS03A:
180
181 [[image:image-20221021110615-5.png]]
182
183
184 == 2.2 ​ Configure NDS03A ==
185
186 === 2.2.1 Test Requirement ===
187
188
189 To use NDS03A in your city, make sure to meet below requirements:
190
191 * Your local operator has already distributed an NB-IoT Network.
192 * The local NB-IoT network used the band that NDS03A supports.
193 * Your operator is able to distribute the data received in their NB-IoT network to your IoT server.
194
195 Below figure shows our testing structure. Here we have NB-IoT network coverage by China Mobile, the band they use is B8.  The NDS03A will use** (% style="color:red" %)CoAP(120.24.4.116:5683)(%%)** or raw (% style="color:red" %)**UDP(120.24.4.116:5601) **(%%)or (% style="color:red" %)**MQTT(120.24.4.116:1883) **(%%)or (% style="color:red" %)**TCP(120.24.4.116:5600)protocol**(%%) to send data to the test server.
196
197 [[image:image-20221117142300-1.png||height="287" width="982"]]
198
199
200 === 2.2.2 Insert NB-IoT SIM card ===
201
202
203 Insert the NB-IoT Card get from your provider.
204
205 User needs to take out the NB-IoT module and insert the SIM card like below:
206
207 [[image:image-20221021110745-6.png]] ​
208
209
210 === 2.2.3 Connect USB – TTL to NDS03A and configure it ===
211
212
213 User need to configure NDS03A via serial port to set the (% style="color:red" %)**Server Address** / **Uplink Topic**(%%) to define where and how-to uplink packets. NDS03A support AT Commands, user can use a USB to TTL adapter to connect to NDS03A and use AT Commands to configure it, as below.
214
215 (% style="color:blue" %)**Connection:**
216
217 (% style="background-color:yellow" %)** USB TTL GND <~-~-~-~-> GND**
218
219 (% style="background-color:yellow" %)** USB TTL TXD <~-~-~-~-> UART_RXD**
220
221 (% style="background-color:yellow" %)** USB TTL RXD <~-~-~-~-> UART_TXD**
222
223
224 In the PC, use below serial tool settings:
225
226 * Baud:  (% style="color:red" %)**9600**
227
228 * Data bits:** (% style="color:red" %)8(%%)**
229
230 * Stop bits: (% style="color:red" %)**1**
231
232 * Parity:  (% style="color:red" %)**None**
233
234 * Flow Control: (% style="color:red" %)**None**
235
236 Make sure the switch is in FLASH position, then power on NDS03A by connecting the (% style="color:orange" %)**Yellow Jumper**(%%).
237
238 ​[[image:image-20221021110817-7.png]]
239
240 NDS03A will output system info once powered on as below, we can enter the **password: 12345678** to access AT Command input.
241
242 (% style="color:red" %)**Note: the valid AT Commands can be found at:  **(%%)[[**https:~~/~~/www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0**>>url:https://www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0]]
243
244
245 === 2.2.4 Use CoAP protocol to uplink data ===
246
247
248 (% style="color:red" %)**Note: if you don't have a CoAP server, you can refer this link to set up a CoAP server: **(%%)[[**http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Set%20up%20CoAP%20Server/**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Set%20up%20CoAP%20Server/]]
249
250 (% style="color:blue" %)**Use below commands in NDS03A:**
251
252 * (% style="color:#037691" %)**AT+PRO=1**                (%%) ~/~/ Set to use CoAP protocol to uplink
253
254 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5683   ** (%%) ~/~/ Set CoAP server address and port
255
256 * (% style="color:#037691" %)**AT+URI=0,0,11,2,"mqtt" ** (%%) ~/~/  Set CoAP resource path
257
258 For parameter description, please refer to AT command set
259
260 [[image:image-20221208115527-1.png]]
261
262
263 After configuring the server address and (% style="color:green" %)**reset NDS03A**(%%) (via AT+ATZ ), NDS03A will start to uplink sensor values to the CoAP server.
264
265 [[image:image-20221208115733-7.png]] ​
266
267
268 === 2.2.5 Use UDP protocol to uplink data(Default protocol) ===
269
270
271 (% style="color:blue" %)**AT Commands:**
272
273 * (% style="color:#037691" %)**AT+PRO=2   ** (%%) ~/~/  Set to use UDP protocol to uplink
274
275 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5601   ** (%%) ~/~/  Set UDP server address and port
276
277 ​ [[image:image-20221208115548-2.png]]
278
279
280 [[image:image-20221208115714-6.png]]
281
282
283
284 === 2.2.6 Use MQTT protocol to uplink data ===
285
286
287 (% style="color:blue" %)**AT Commands:**
288
289 * (% style="color:#037691" %)**AT+PRO=3   ** (%%) ~/~/  Set to use MQTT protocol to uplink
290
291 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,1883   ** (%%) ~/~/  Set MQTT server address and port
292
293 * (% style="color:#037691" %)**AT+CLIENT=CLIENT       ** (%%) ~/~/  Set up the CLIENT of MQTT
294
295 * (% style="color:#037691" %)**AT+UNAME=UNAME                     **(%%)** **~/~/  Set the username of MQTT
296
297 * (% style="color:#037691" %)**AT+PWD=PWD                         **(%%)** **~/~/  Set the password of MQTT
298
299 * (% style="color:#037691" %)**AT+PUBTOPIC=NSE01_PUB              **(%%)** **~/~/  Set the sending topic of MQTT
300
301 * (% style="color:#037691" %)**AT+SUBTOPIC=NSE01_SUB          ** (%%) ~/~/  Set the subscription topic of MQTT
302
303 ​ [[image:image-20221208115608-3.png]]
304
305
306 [[image:image-20221118103453-8.png||height="608" width="841"]]
307
308
309
310 MQTT protocol has a much higher power consumption compare with UDP / CoAP protocol. Please check the power analyze document and adjust the uplink period to a suitable interval.
311
312
313 === 2.2.7 Use TCP protocol to uplink data ===
314
315
316 (% style="color:blue" %)**AT Commands:**
317
318 * (% style="color:#037691" %)**AT+PRO=4   ** (%%) ~/~/  Set to use TCP protocol to uplink
319
320 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5600   ** (%%) ~/~/  Set TCP server address and port
321
322 ​ [[image:image-20221208115624-4.png]]
323
324
325 [[image:image-20221208115640-5.png]]
326
327
328
329 === 2.2.8 Change Update Interval ===
330
331
332 User can use below command to change the (% style="color:blue" %)**uplink interval**.
333
334 * (% style="color:#037691" %)**AT+TDC=14400      ** (%%) ~/~/ Set Update Interval to 14400s (4 hours)
335
336 (% style="color:red" %)**NOTE:**
337
338 1.  By default, the device will send an uplink message every 4 hour.
339
340
341 == 2.3  Uplink Payload ==
342
343
344 The uplink payload includes 26 bytes in total by default.
345
346 Each time the device uploads a data package. The user can use the AT+NOUD command to upload the recorded data.Up to 32 sets of recorded data can be uploaded.
347
348 (% style="color:blue" %)**When AT+TTRCHANNEL=1:**
349
350 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
351 |(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:50px" %)**8**|(% style="background-color:#4f81bd; color:white; width:20px" %)**2**|(% style="background-color:#4f81bd; color:white; width:20px" %)**2**|(% style="background-color:#4f81bd; color:white; width:65px" %)**1**|(% style="background-color:#4f81bd; color:white; width:25px" %)**1**|(% style="background-color:#4f81bd; color:white; width:50px" %)**1**|(% style="background-color:#4f81bd; color:white; width:60px" %)**1**|(% style="background-color:#4f81bd; color:white; width:90px" %)**3**|(% style="background-color:#4f81bd; color:white; width:80px" %)**3**
352 |(% style="width:93px" %)Value|(% style="width:67px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:40px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:45px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:75px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:54px" %)MOD|(% style="width:62px" %)Door Status|(% style="width:60px" %)[[Alarm Status>>||anchor="H2.7A0AlarmBaseonTimeout"]]|(% style="width:94px" %)door open num(pb14) |(% style="width:93px" %)last open time(pb14)
353
354 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:450px" %)
355 |(% style="background-color:#4f81bd; color:white; width:60px" %)**4**|(% style="background-color:#4f81bd; color:white; width:90px" %)**1**|(% style="background-color:#4f81bd; color:white; width:90px" %)**3**|(% style="background-color:#4f81bd; color:white; width:90px" %)**3**|(% style="background-color:#4f81bd; color:white; width:60px" %)**4**|(% style="background-color:#4f81bd; color:white; width:60px" %)(((
356 **1-32 group**
357 )))
358 |(% style="width:98px" %)[[Time stamp>>||anchor="H2.4.7A0Timestamp"]]|(% style="width:115px" %)Door Status(pb14)|(% style="width:92px" %)door open num(pb14)|(% style="width:99px" %)last open time(pb14)|(% style="width:67px" %)Time stamp|(% style="width:74px" %)...
359
360 (% style="color:blue" %)**When AT+TTRCHANNEL=2:**
361
362 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
363 |(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:45px" %)**8**|(% style="background-color:#4f81bd; color:white; width:20px" %)**2**|(% style="background-color:#4f81bd; color:white; width:20px" %)**2**|(% style="background-color:#4f81bd; color:white; width:65px" %)**1**|(% style="background-color:#4f81bd; color:white; width:25px" %)**1**|(% style="background-color:#4f81bd; color:white; width:60px" %)**1**|(% style="background-color:#4f81bd; color:white; width:60px" %)**1**|(% style="background-color:#4f81bd; color:white; width:87px" %)**3**|(% style="background-color:#4f81bd; color:white; width:80px" %)**3**
364 |(% style="width:96px" %)Value|(% style="width:66px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:40px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:46px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:70px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:54px" %)MOD|(% style="width:55px" %)Door Status(pb14)|(% style="width:57px" %)[[Alarm Status>>||anchor="H2.7A0AlarmBaseonTimeout"]](pb14)|(% style="width:86px" %)door open num(pb14) |(% style="width:82px" %)last open time(pb14)
365
366 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
367 |(% style="background-color:#4f81bd; color:white; width:80px" %)**1**|(% style="background-color:#4f81bd; color:white; width:80px" %)**1**|(% style="background-color:#4f81bd; color:white; width:88px" %)**3**|(% style="background-color:#4f81bd; color:white; width:81px" %)**3**|(% style="background-color:#4f81bd; color:white; width:50px" %)**4**|(% style="background-color:#4f81bd; color:white; width:75px" %)**1**|(% style="background-color:#4f81bd; color:white; width:55px" %)**3**
368 |(% style="width:59px" %)Door Status(pb15)|(% style="width:67px" %)[[Alarm Status>>||anchor="H2.7A0AlarmBaseonTimeout"]](pb15)|(% style="width:88px" %)door open num(pb15)|(% style="width:81px" %)last open time(pb15)|(% style="width:50px" %)[[Time stamp>>||anchor="H2.4.7A0Timestamp"]]|(% style="width:66px" %)Door Status(pb14)|(% style="width:80px" %)door open num(pb14)
369
370 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
371 |(% style="background-color:#4f81bd; color:white; width:100px" %)**3**|(% style="background-color:#4f81bd; color:white; width:80px" %)**1**|(% style="background-color:#4f81bd; color:white; width:90px" %)**3**|(% style="background-color:#4f81bd; color:white; width:90px" %)**3**|(% style="background-color:#4f81bd; color:white; width:70px" %)**4**|(% style="background-color:#4f81bd; color:white; width:80px" %)(((
372 **1-32 group**
373 )))
374 |(% style="width:102px" %)last open time(pb14)|(% style="width:93px" %)Door Status(pb15)|(% style="width:91px" %)door open num(pb15)|(% style="width:100px" %)last open time(pb15)|(% style="width:63px" %)[[Time stamp>>||anchor="H2.4.7A0Timestamp"]]|(% style="width:87px" %)......
375
376 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NDS03A uplink data.
377
378 [[image:image-20221117145932-2.png]]
379
380
381 The payload is ASCII string, representative same HEX:
382
383 **0x (% style="color:red" %)__f867787050213317__  (% style="color:blue" %)__0064__ (% style="color:green" %) __0ccf__(% style="color:#00b0f0" %) __19__(% style="color:#7030a0" %) __01__(% style="color:#0020b0" %) __00__ (% style="color:#420042" %)__00__(% style="color:#660066" %) (% style="color:#aaaa40" %)__000016__(% style="color:#663300" %) __000017__ (% style="color:#d60093" %)__637590df__(%%)**
384
385 **where:**
386
387 * (% style="color:#037691" %)**Device ID:**(%%) 0x f867787050213317 = f867787050213317
388
389 * (% style="color:#037691" %)**Version:**(%%)  0x0064=100=1.0.0
390
391 * (% style="color:#037691" %)**BAT :**(%%)  0x0ccf = 3279 mV = 3.279V
392
393 * (% style="color:#037691" %)**Singal: **(%%)0x19 = 25
394
395 * (% style="color:#037691" %)**Mod:**(%%)  0x01 = 1
396
397 * (% style="color:#037691" %)**Door Status:**(%%)  0x00=0
398
399 * (% style="color:#037691" %)**Alarm Status: **(%%)0x00 =0
400
401 * (% style="color:#037691" %)**door open num: **(%%)0x000016 =22
402
403 * (% style="color:#037691" %)**last open time:   **(%%)0x000017 =23
404
405 * (% style="color:#037691" %)**Timestamp:**(%%) 0x637590df =1668649183 (Unix Time)
406
407 == 2.4  Payload Explanation and Sensor Interface ==
408
409 === 2.4.1  Device ID ===
410
411
412 By default, the Device ID is equal to the last 15 bits of IMEI.
413
414 User can use (% style="color:blue" %)**AT+DEUI** (%%)to set Device ID
415
416 **Example:**
417
418 AT+DEUI=868411056754138
419
420 The Device ID is stored in a non-erase area, Upgrade the firmware or run AT+FDR won't erase the Device ID.
421
422
423 === 2.4.2  Version Info ===
424
425
426 Specify the software version: 0x64=100, which means firmware version 1.00.
427
428 For example 0x00 64 : This device is NDS03A 1 with firmware version 1.0.0.
429
430
431 === 2.4.3  Battery Info ===
432
433
434 Check the battery voltage for NDS03A.
435
436 Ex1: 0x0B45 = 2885mV
437
438 Ex2: 0x0B49 = 2889mV
439
440
441 === 2.4.4  Signal Strength ===
442
443
444 NB-IoT Network signal Strength.
445
446 **Ex1: 0x1d = 29**
447
448 **0**  -113dBm or less
449
450 **1**  -111dBm
451
452 **2...30** -109dBm... -53dBm
453
454 **31**   -51dBm or greater
455
456 **99**    Not known or not detectable
457
458
459 === 2.4.5  Disalarm: (default: 0) ===
460
461
462 (% style="color:blue" %)**If Disalarm = 1**(%%), NDS03A will only send uplink at every TDC periodically. This is normally use for pulse meter application, in this application, there are many open/close event, and platform only care about the total number of pulse.
463
464 (% style="color:blue" %)**If Disalarm = 0**(%%), NDS03A will send uplink at every TDC periodically and send data on each open/close event. This is useful for the application user need to monitor the open/close event in real-time.
465
466 (% style="color:red" %)**Note:**(%%) When Disalarm=0, a high frequently open/close event will cause lots of uplink and drain battery very fast.
467
468
469 === 2.4.6  Keep Status & Keep Time ===
470
471
472 Shows the configure value of Alarm Base on Timeout Feature
473
474
475 === 2.4.7  Timestamp ===
476
477
478 Timestamp : 0x6315537b =1662342011
479
480
481 === 2.4.8  Switch Dual Channel Mode ===
482
483
484 NDS03A can connect two door sensors. Another door sensor can be connected to PB15 pin. Both channels support alarm function.
485
486
487 == 2.5  Downlink Payload ==
488
489
490 By default, NDS03A prints the downlink payload to console port.
491
492 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
493 |=(% style="width: 183px; background-color:#4F81BD;color:white" %)**Downlink Control Type**|=(% style="width: 55px; background-color:#4F81BD;color:white" %)FPort|=(% style="width: 93px; background-color:#4F81BD;color:white" %)**Type Code**|=(% style="width: 179px; background-color:#4F81BD;color:white" %)**Downlink payload size(bytes)**
494 |(% style="width:183px" %)TDC (Transmit Time Interval)|(% style="width:55px" %)Any|(% style="width:93px" %)01|(% style="width:146px" %)4
495 |(% style="width:183px" %)RESET|(% style="width:55px" %)Any|(% style="width:93px" %)04|(% style="width:146px" %)2
496 |(% style="width:183px" %)INTMOD|(% style="width:55px" %)Any|(% style="width:93px" %)06|(% style="width:146px" %)4
497
498 **Examples:**
499
500 * (% style="color:#037691" %)**Set TDC**
501
502 If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.
503
504 Payload:    01 00 00 1E    TDC=30S
505
506 Payload:    01 00 00 3C    TDC=60S
507
508 * (% style="color:#037691" %)**Reset**
509
510 If payload = 0x04FF, it will reset the NDS03A
511
512 * (% style="color:#037691" %)**INTMOD**
513
514 Downlink Payload: 06000003, Set AT+INTMOD=3
515
516
517 == 2.6  ​LED Indicator ==
518
519
520 The NDS03A has an internal LED which is to show the status of different states.
521
522 * When the device starts normally, the LED will light up for 1 second.
523 * After NDS03A join NB-IoT network. The LED will be ON for 3 seconds.
524 * For each uplink probe, LED will be on for 500ms.
525
526 == 2.7  Alarm Base on Timeout ==
527
528
529 NDS03A can monitor the timeout for a status change, this feature can be used to monitor some events such as door opening too long etc. Related Parameters are:
530
531
532 (% style="color:blue" %)**1. Keep Status: Status to be monitor**
533
534 Keep Status = 1: Monitor Close to Open event
535
536 Keep Status = 0: Monitor Open to Close event
537
538
539 (% style="color:blue" %)**2. Keep Time: Timeout to send an Alarm**
540
541 Range 0 ~~ 65535(0xFFFF) seconds.
542
543 If keep time = 0, Disable Alarm Base on Timeout feature.
544
545 If keep time > 0, device will monitor the keep status event and send an alarm when status doesn't change after timeout.
546
547
548 (% style="color:blue" %)**AT Command to configure:**
549
550 (% style="color:blue" %)**PB14 PIN:**
551
552 (% style="color:#037691" %)**AT+TTRIG=1,30** (%%) **~-~->**  When the **Keep Status** change from connected to disconnect, and device remains in disconnect status for more than 30 seconds. NDS03A will send an uplink packet, the [[Alarm bit>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/#H2.3.3Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2]] (the second bit of 1^^st^^ byte of payload) on this uplink packet is set to 1.
553
554 (% style="color:#037691" %)**AT+TTRIG=0,0 ** (%%) **~-~->** Default Value, disable timeout Alarm.
555
556
557 (% style="color:blue" %)**PB15 PIN:**
558
559 (% style="color:#037691" %)**AT+TTRIG2=1,30**
560
561 (% style="color:#037691" %)**AT+TTRIG2=0,0 **
562
563
564 == 2.8  Set debug mode ==
565
566
567 Feature: Enable or Disable debug mode
568
569 (% style="color:blue" %)**AT Command: AT+DEBUG**
570
571 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
572 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 246px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 92px;background-color:#4F81BD;color:white" %)**Response**
573 |(% style="width:157px" %)(((
574 AT+DEBUG=0
575 )))|(% style="width:156px" %)(((
576 Disable debug mode to 0
577 )))|(% style="width:89px" %)(((
578 (((
579 OK
580 )))
581 )))
582 |(% style="width:157px" %)(((
583 AT+DEBUG=1
584 )))|(% style="width:156px" %)Enable debug mode to 1|(% style="width:89px" %)(((
585 OK
586 )))
587
588 == 2.9  Clear Flash Record ==
589
590
591 Feature: Clear flash storage for data log feature.
592
593 (% style="color:blue" %)**AT Command: AT+CLRDTA**
594
595 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %)
596 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 169px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 174px;background-color:#4F81BD;color:white" %)**Response**
597 |(% style="width:157px" %)AT+CLRDTA|(% style="width:169px" %)Clear flash storage for data log feature.|Clear all stored sensor data… OK
598
599 == 2.10  Count Mod ==
600
601
602 (% style="color:blue" %)**AT Command: AT+COUNTMOD**
603
604 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
605 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 246px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 92px;background-color:#4F81BD;color:white" %)**Response**
606 |(% style="width:157px" %)(((
607 AT+COUNTMOD=0
608 )))|(% style="width:156px" %)(((
609 the count value keeps accumulating mode
610 )))|(% style="width:89px" %)(((
611 (((
612 OK
613 )))
614 )))
615 |(% style="width:157px" %)(((
616 AT+COUNTMOD=1
617 )))|(% style="width:156px" %)(((
618 the count value will be reset after each TDC time(Last Close Duration Reset after each uplink)
619 )))|(% style="width:89px" %)(((
620 OK
621 )))
622
623 == 2.11  Interrupt Pin Channel Mod ==
624
625
626 (% style="color:blue" %)**AT Command: AT+TTRCHANNEL**
627
628 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
629 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 246px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 92px;background-color:#4F81BD;color:white" %)**Response**
630 |(% style="width:157px" %)(((
631 AT+TTRCHANNEL=1
632 )))|(% style="width:156px" %)(((
633 set as single channel, only use PB14 pin as interrupt pin.
634 )))|(% style="width:89px" %)(((
635 (((
636 OK
637 )))
638 )))
639 |(% style="width:157px" %)(((
640 AT+TTRCHANNEL=2
641 )))|(% style="width:156px" %)(((
642 is set as dual channel, use PB14 pin and PB15 pin as interrupt pin.
643 )))|(% style="width:89px" %)(((
644 OK
645 )))
646
647 == 2.12 TTRIG1/2 timeout status alarm ==
648
649
650 It needs to be used with AT+TTRIG1 or AT+TTRIG2. When TTRIG1 or TTRIG2 times out and causes an alarm, and the status does not change subsequently, an alarm packet will be sent at the alarm interval.
651
652 (% style="color:blue" %)**AT Command: AT+TTRALARM**
653
654 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
655 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 246px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 92px;background-color:#4F81BD;color:white" %)**Response**
656 |(% style="width:157px" %)(((
657 AT+TTRALARM=0
658 )))|(% style="width:156px" %)(((
659 disable continuous alarm
660 )))|(% style="width:89px" %)(((
661 (((
662 OK
663 )))
664 )))
665 |(% style="width:157px" %)(((
666 AT+TTRALARM=60
667 )))|(% style="width:156px" %)(((
668 The alarm interval is 60 minutes (unit: minutes)
669 )))|(% style="width:89px" %)(((
670 OK
671 )))
672
673 == 2.13  Select counting mode ==
674
675
676 (% style="color:blue" %)**AT Command: AT+TTRMODx=a,b**
677
678 When (% style="color:red" %)**a=0**(%%), the door is opened to count, and when (% style="color:red" %)**a=1**(%%),the closed door is counted.
679
680 When (% style="color:red" %)**b=0**(%%), it is the last door open duration, and when (% style="color:red" %)**b=1**(%%),the last door close duration.
681
682 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
683 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 246px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 92px;background-color:#4F81BD;color:white" %)**Response**
684 |(% style="width:157px" %)(((
685 AT+TTRMODx=1,0
686 )))|(% style="width:156px" %)Door closed count and record the last door opened duration|(% style="width:89px" %)(((
687 (((
688 OK
689 )))
690 )))
691 |(% style="width:157px" %)(((
692 AT+TTRMODx=0,1
693 )))|(% style="width:156px" %)(((
694 Door opened count and record the last door Door Door open closed duration
695 )))|(% style="width:89px" %)(((
696 OK
697 )))
698
699 == 2.14  Set the number of data to be uploaded and the recording time ==
700
701
702 (% style="color:blue" %)**AT Command:**
703
704 (% style="color:#037691" %)**AT+TR=900**(%%)  ~/~/  The unit is seconds, and the default is to record data once every 900 seconds.( The minimum can be set to 180 seconds)
705
706 (% style="color:#037691" %)**AT+NOUD=8**(%%)** ** ~/~/  The device uploads 0 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
707
708
709 == 2.15  Read or Clear cached data ==
710
711
712 (% style="color:blue" %)**AT Command:**
713
714 (% style="color:#037691" %)**AT+CDP**  (%%) ~/~/ Read cached data
715
716 (% style="color:#037691" %)**AT+CDP=0**  (%%) ~/~/ Clear cached data ​
717
718 [[image:image-20221118094227-5.png]]
719
720
721 == 2.16  ​Firmware Change Log ==
722
723
724 Download URL & Firmware Change log: [[https:~~/~~/www.dropbox.com/sh/hacq385w6qgnonr/AAC3D79GFGF1JdZUIzNegn2Ha?dl=0>>https://www.dropbox.com/sh/hacq385w6qgnonr/AAC3D79GFGF1JdZUIzNegn2Ha?dl=0]]
725
726 Upgrade Instruction: [[Upgrade Firmware>>||anchor="H5.1200BHowtoUpgradeFirmware"]]
727
728
729 == 2.17 Battery & Power Consumption ==
730
731
732 NDS03A uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
733
734 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
735
736
737 = 4.  Using the AT Commands =
738
739 == 4.1  Access AT Commands ==
740
741
742 See this link for detail:  [[https:~~/~~/www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0>>url:https://www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0]]
743
744 AT+<CMD>?  : Help on <CMD>
745
746 AT+<CMD>         : Run <CMD>
747
748 AT+<CMD>=<value> : Set the value
749
750 AT+<CMD>=?  : Get the value
751
752
753 (% style="color:blue" %)**General Commands**      
754
755 AT  : Attention       
756
757 AT?  : Short Help     
758
759 ATZ  : MCU Reset    
760
761 AT+TDC  : Application Data Transmission Interval
762
763 AT+CFG  : Print all configurations
764
765 AT+CFGMOD           : Working mode selection
766
767 AT+INTMOD            : Set the trigger interrupt mode
768
769 AT+5VT  : Set extend the time of 5V power  
770
771 AT+PRO  : Choose agreement
772
773 AT+RXDL  : Extend the sending and receiving time
774
775 AT+SERVADDR  : Server Address
776
777 AT+TR      :  Get or Set record time
778
779 AT+NOUD      : Get or Set the number of data to be uploaded
780
781 AT+CDP     :  Read or Clear cached data
782
783 AT+ DEBUG   : Enable or Disable debug mode
784
785 AT+ TTRIG1   : Get or Set PB14 PIN Alarm Base on Timeout
786
787 AT+ TTRIG2   : Get or Set PB15 PIN Alarm Base on Timeout
788
789 AT+COUNTMOD  :  Get or Set the count mode
790
791 AT+TTRCHANNEL  : Get or Set the number of interrupt channels
792
793 AT+TTRALARM : Get or Set TTRIG1 of Alarm interval (unit: minute)
794
795 AT+DISALARM  : Enable/Disable Alarm for door open/close or water leak event
796
797 AT+ CLRC   :  Clear current door open count
798
799
800 (% style="color:blue" %)**COAP Management**      
801
802 AT+URI            : Resource parameters
803
804
805 (% style="color:blue" %)**MQTT Management**
806
807 AT+CLIENT               : Get or Set MQTT client
808
809 AT+UNAME  : Get or Set MQTT Username
810
811 AT+PWD                  : Get or Set MQTT password
812
813 AT+PUBTOPIC  : Get or Set MQTT publish topic
814
815 AT+SUBTOPIC  : Get or Set MQTT subscription topic
816
817
818 (% style="color:blue" %)**Information**          
819
820 AT+FDR  : Factory Data Reset
821
822 AT+PWORD  : Serial Access Password
823
824
825 = ​5.  FAQ =
826
827 == 5.1 ​ How to Upgrade Firmware ==
828
829
830 User can upgrade the firmware for 1) bug fix, 2) new feature release.
831
832 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>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList]]
833
834 (% style="color:red" %)**Notice: **(% style="color:blue" %)**NDS03A** (%%)**and (% style="color:blue" %)LDS03A(%%)**(% style="color:blue" %) (%%)**share the same mother board. They use the same connection and method to update.**
835
836
837 = 6.  Trouble Shooting =
838
839 == 6.1  ​Connection problem when uploading firmware ==
840
841
842 (% style="color:blue" %)**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]]
843
844
845 == 6.2  AT Command input doesn't work ==
846
847
848 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.
849
850
851 == 6.3 Not able to connect to NB-IoT network and keep showing "Signal Strength:99". ==
852
853
854 This means sensor is trying to join the NB-IoT network but fail. Please see this link for **//[[trouble shooting for signal strenght:99>>doc:Main.CSQ\:99,99.WebHome]]//**.
855
856
857 = 7. ​ Order Info =
858
859
860 Part Number**:** NDS03A
861
862
863 = 8.  Packing Info =
864
865
866 (% style="color:blue" %)**Package Includes**:
867
868 * NDS03A Open/Close Door Sensor x 1
869
870 = 9.  Support =
871
872
873 * 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.
874
875 * 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]]
876
877
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0