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