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 * (% style="color:#037691" %)**AT+CFM=1       ** (%%) ~/~/  If the server does not respond, this command is unnecessary
277
278 ​ [[image:image-20221208115548-2.png]]
279
280
281 [[image:image-20221208115714-6.png]]
282
283
284
285 === 2.2.6 Use MQTT protocol to uplink data ===
286
287
288 (% style="color:blue" %)**AT Commands:**
289
290 * (% style="color:#037691" %)**AT+PRO=3   ** (%%) ~/~/  Set to use MQTT protocol to uplink
291
292 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,1883   ** (%%) ~/~/  Set MQTT server address and port
293
294 * (% style="color:#037691" %)**AT+CLIENT=CLIENT       ** (%%) ~/~/  Set up the CLIENT of MQTT
295
296 * (% style="color:#037691" %)**AT+UNAME=UNAME                     **(%%)** **~/~/  Set the username of MQTT
297
298 * (% style="color:#037691" %)**AT+PWD=PWD                         **(%%)** **~/~/  Set the password of MQTT
299
300 * (% style="color:#037691" %)**AT+PUBTOPIC=NSE01_PUB              **(%%)** **~/~/  Set the sending topic of MQTT
301
302 * (% style="color:#037691" %)**AT+SUBTOPIC=NSE01_SUB          ** (%%) ~/~/  Set the subscription topic of MQTT
303
304 ​ [[image:image-20221208115608-3.png]]
305
306
307 [[image:image-20221118103453-8.png||height="608" width="841"]]
308
309
310
311 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.
312
313
314 === 2.2.7 Use TCP protocol to uplink data ===
315
316
317 (% style="color:blue" %)**AT Commands:**
318
319 * (% style="color:#037691" %)**AT+PRO=4   ** (%%) ~/~/  Set to use TCP protocol to uplink
320
321 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5600   ** (%%) ~/~/  Set TCP server address and port
322
323 ​ [[image:image-20221208115624-4.png]]
324
325
326 [[image:image-20221208115640-5.png]]
327
328
329
330 === 2.2.8 Change Update Interval ===
331
332
333 User can use below command to change the (% style="color:blue" %)**uplink interval**.
334
335 * (% style="color:#037691" %)**AT+TDC=14400      ** (%%) ~/~/ Set Update Interval to 14400s (4 hours)
336
337 (% style="color:red" %)**NOTE:**
338
339 1.  By default, the device will send an uplink message every 4 hour.
340
341
342 == 2.3  Uplink Payload ==
343
344
345 The uplink payload includes 26 bytes in total by default.
346
347 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.
348
349 (% style="color:blue" %)**When AT+TTRCHANNEL=1:**
350
351 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
352 |(% 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**
353 |(% 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)
354
355 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:450px" %)
356 |(% 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" %)(((
357 **1-32 group**
358 )))
359 |(% 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" %)...
360
361 (% style="color:blue" %)**When AT+TTRCHANNEL=2:**
362
363 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
364 |(% 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**
365 |(% 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)
366
367 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
368 |(% 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**
369 |(% 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)
370
371 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
372 |(% 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" %)(((
373 **1-32 group**
374 )))
375 |(% 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" %)......
376
377 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NDS03A uplink data.
378
379 [[image:image-20221117145932-2.png]]
380
381
382 The payload is ASCII string, representative same HEX:
383
384 **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__(%%)**
385
386 **where:**
387
388 * (% style="color:#037691" %)**Device ID:**(%%) 0x f867787050213317 = f867787050213317
389
390 * (% style="color:#037691" %)**Version:**(%%)  0x0064=100=1.0.0
391
392 * (% style="color:#037691" %)**BAT :**(%%)  0x0ccf = 3279 mV = 3.279V
393
394 * (% style="color:#037691" %)**Singal: **(%%)0x19 = 25
395
396 * (% style="color:#037691" %)**Mod:**(%%)  0x01 = 1
397
398 * (% style="color:#037691" %)**Door Status:**(%%)  0x00=0
399
400 * (% style="color:#037691" %)**Alarm Status: **(%%)0x00 =0
401
402 * (% style="color:#037691" %)**door open num: **(%%)0x000016 =22
403
404 * (% style="color:#037691" %)**last open time:   **(%%)0x000017 =23
405
406 * (% style="color:#037691" %)**Timestamp:**(%%) 0x637590df =1668649183 (Unix Time)
407
408 == 2.4  Payload Explanation and Sensor Interface ==
409
410 === 2.4.1  Device ID ===
411
412
413 By default, the Device ID is equal to the last 15 bits of IMEI.
414
415 User can use (% style="color:blue" %)**AT+DEUI** (%%)to set Device ID
416
417 **Example:**
418
419 AT+DEUI=868411056754138
420
421 The Device ID is stored in a non-erase area, Upgrade the firmware or run AT+FDR won't erase the Device ID.
422
423
424 === 2.4.2  Version Info ===
425
426
427 Specify the software version: 0x64=100, which means firmware version 1.00.
428
429 For example 0x00 64 : This device is NDS03A 1 with firmware version 1.0.0.
430
431
432 === 2.4.3  Battery Info ===
433
434
435 Check the battery voltage for NDS03A.
436
437 Ex1: 0x0B45 = 2885mV
438
439 Ex2: 0x0B49 = 2889mV
440
441
442 === 2.4.4  Signal Strength ===
443
444
445 NB-IoT Network signal Strength.
446
447 **Ex1: 0x1d = 29**
448
449 **0**  -113dBm or less
450
451 **1**  -111dBm
452
453 **2...30** -109dBm... -53dBm
454
455 **31**   -51dBm or greater
456
457 **99**    Not known or not detectable
458
459
460 === 2.4.5  Disalarm: (default: 0) ===
461
462
463 (% 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.
464
465 (% 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.
466
467 (% style="color:red" %)**Note:**(%%) When Disalarm=0, a high frequently open/close event will cause lots of uplink and drain battery very fast.
468
469
470 === 2.4.6  Keep Status & Keep Time ===
471
472
473 Shows the configure value of Alarm Base on Timeout Feature
474
475
476 === 2.4.7  Timestamp ===
477
478
479 Timestamp : 0x6315537b =1662342011
480
481
482 === 2.4.8  Switch Dual Channel Mode ===
483
484
485 NDS03A can connect two door sensors. Another door sensor can be connected to PB15 pin. Both channels support alarm function.
486
487
488 == 2.5  Downlink Payload ==
489
490
491 By default, NDS03A prints the downlink payload to console port.
492
493 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
494 |=(% 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)**
495 |(% style="width:183px" %)TDC (Transmit Time Interval)|(% style="width:55px" %)Any|(% style="width:93px" %)01|(% style="width:146px" %)4
496 |(% style="width:183px" %)RESET|(% style="width:55px" %)Any|(% style="width:93px" %)04|(% style="width:146px" %)2
497 |(% style="width:183px" %)INTMOD|(% style="width:55px" %)Any|(% style="width:93px" %)06|(% style="width:146px" %)4
498
499 **Examples:**
500
501 * (% style="color:#037691" %)**Set TDC**
502
503 If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.
504
505 Payload:    01 00 00 1E    TDC=30S
506
507 Payload:    01 00 00 3C    TDC=60S
508
509 * (% style="color:#037691" %)**Reset**
510
511 If payload = 0x04FF, it will reset the NDS03A
512
513 * (% style="color:#037691" %)**INTMOD**
514
515 Downlink Payload: 06000003, Set AT+INTMOD=3
516
517
518 == 2.6  ​LED Indicator ==
519
520
521 The NDS03A has an internal LED which is to show the status of different states.
522
523 * When the device starts normally, the LED will light up for 1 second.
524 * After NDS03A join NB-IoT network. The LED will be ON for 3 seconds.
525 * For each uplink probe, LED will be on for 500ms.
526
527 == 2.7  Alarm Base on Timeout ==
528
529
530 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:
531
532
533 (% style="color:blue" %)**1. Keep Status: Status to be monitor**
534
535 Keep Status = 1: Monitor Close to Open event
536
537 Keep Status = 0: Monitor Open to Close event
538
539
540 (% style="color:blue" %)**2. Keep Time: Timeout to send an Alarm**
541
542 Range 0 ~~ 65535(0xFFFF) seconds.
543
544 If keep time = 0, Disable Alarm Base on Timeout feature.
545
546 If keep time > 0, device will monitor the keep status event and send an alarm when status doesn't change after timeout.
547
548
549 (% style="color:blue" %)**AT Command to configure:**
550
551 (% style="color:blue" %)**PB14 PIN:**
552
553 (% 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.
554
555 (% style="color:#037691" %)**AT+TTRIG=0,0 ** (%%) **~-~->** Default Value, disable timeout Alarm.
556
557
558 (% style="color:blue" %)**PB15 PIN:**
559
560 (% style="color:#037691" %)**AT+TTRIG2=1,30**
561
562 (% style="color:#037691" %)**AT+TTRIG2=0,0 **
563
564
565 == 2.8  Set debug mode ==
566
567
568 Feature: Enable or Disable debug mode
569
570 (% style="color:blue" %)**AT Command: AT+DEBUG**
571
572 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
573 |=(% 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**
574 |(% style="width:157px" %)(((
575 AT+DEBUG=0
576 )))|(% style="width:156px" %)(((
577 Disable debug mode to 0
578 )))|(% style="width:89px" %)(((
579 (((
580 OK
581 )))
582 )))
583 |(% style="width:157px" %)(((
584 AT+DEBUG=1
585 )))|(% style="width:156px" %)Enable debug mode to 1|(% style="width:89px" %)(((
586 OK
587 )))
588
589 == 2.9  Clear Flash Record ==
590
591
592 Feature: Clear flash storage for data log feature.
593
594 (% style="color:blue" %)**AT Command: AT+CLRDTA**
595
596 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %)
597 |=(% 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**
598 |(% style="width:157px" %)AT+CLRDTA|(% style="width:169px" %)Clear flash storage for data log feature.|Clear all stored sensor data… OK
599
600 == 2.10  Count Mod ==
601
602
603 (% style="color:blue" %)**AT Command: AT+COUNTMOD**
604
605 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
606 |=(% 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**
607 |(% style="width:157px" %)(((
608 AT+COUNTMOD=0
609 )))|(% style="width:156px" %)(((
610 the count value keeps accumulating mode
611 )))|(% style="width:89px" %)(((
612 (((
613 OK
614 )))
615 )))
616 |(% style="width:157px" %)(((
617 AT+COUNTMOD=1
618 )))|(% style="width:156px" %)(((
619 the count value will be reset after each TDC time(Last Close Duration Reset after each uplink)
620 )))|(% style="width:89px" %)(((
621 OK
622 )))
623
624 == 2.11  Interrupt Pin Channel Mod ==
625
626
627 (% style="color:blue" %)**AT Command: AT+TTRCHANNEL**
628
629 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
630 |=(% 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**
631 |(% style="width:157px" %)(((
632 AT+TTRCHANNEL=1
633 )))|(% style="width:156px" %)(((
634 set as single channel, only use PB14 pin as interrupt pin.
635 )))|(% style="width:89px" %)(((
636 (((
637 OK
638 )))
639 )))
640 |(% style="width:157px" %)(((
641 AT+TTRCHANNEL=2
642 )))|(% style="width:156px" %)(((
643 is set as dual channel, use PB14 pin and PB15 pin as interrupt pin.
644 )))|(% style="width:89px" %)(((
645 OK
646 )))
647
648 == 2.12 TTRIG1/2 timeout status alarm ==
649
650
651 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.
652
653 (% style="color:blue" %)**AT Command: AT+TTRALARM**
654
655 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
656 |=(% 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**
657 |(% style="width:157px" %)(((
658 AT+TTRALARM=0
659 )))|(% style="width:156px" %)(((
660 disable continuous alarm
661 )))|(% style="width:89px" %)(((
662 (((
663 OK
664 )))
665 )))
666 |(% style="width:157px" %)(((
667 AT+TTRALARM=60
668 )))|(% style="width:156px" %)(((
669 The alarm interval is 60 minutes (unit: minutes)
670 )))|(% style="width:89px" %)(((
671 OK
672 )))
673
674 == 2.13  Select counting mode ==
675
676
677 (% style="color:blue" %)**AT Command: AT+TTRMODx=a,b**
678
679 When (% style="color:red" %)**a=0**(%%), the door is opened to count, and when (% style="color:red" %)**a=1**(%%),the closed door is counted.
680
681 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.
682
683 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
684 |=(% 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**
685 |(% style="width:157px" %)(((
686 AT+TTRMODx=1,0
687 )))|(% style="width:156px" %)Door closed count and record the last door opened duration|(% style="width:89px" %)(((
688 (((
689 OK
690 )))
691 )))
692 |(% style="width:157px" %)(((
693 AT+TTRMODx=0,1
694 )))|(% style="width:156px" %)(((
695 Door opened count and record the last door Door Door open closed duration
696 )))|(% style="width:89px" %)(((
697 OK
698 )))
699
700 == 2.14  Set the number of data to be uploaded and the recording time ==
701
702
703 (% style="color:blue" %)**AT Command:**
704
705 (% 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)
706
707 (% 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.
708
709
710 == 2.15  Read or Clear cached data ==
711
712
713 (% style="color:blue" %)**AT Command:**
714
715 (% style="color:#037691" %)**AT+CDP**  (%%) ~/~/ Read cached data
716
717 (% style="color:#037691" %)**AT+CDP=0**  (%%) ~/~/ Clear cached data ​
718
719 [[image:image-20221118094227-5.png]]
720
721
722 == 2.16  ​Firmware Change Log ==
723
724
725 Download URL & Firmware Change log: [[https:~~/~~/www.dropbox.com/sh/hacq385w6qgnonr/AAC3D79GFGF1JdZUIzNegn2Ha?dl=0>>https://www.dropbox.com/sh/hacq385w6qgnonr/AAC3D79GFGF1JdZUIzNegn2Ha?dl=0]]
726
727 Upgrade Instruction: [[Upgrade Firmware>>||anchor="H5.1200BHowtoUpgradeFirmware"]]
728
729
730 == 2.17 Battery & Power Consumption ==
731
732
733 NDS03A uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
734
735 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
736
737
738 = 4.  Using the AT Commands =
739
740 == 4.1  Access AT Commands ==
741
742
743 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]]
744
745 AT+<CMD>?  : Help on <CMD>
746
747 AT+<CMD>         : Run <CMD>
748
749 AT+<CMD>=<value> : Set the value
750
751 AT+<CMD>=?  : Get the value
752
753
754 (% style="color:blue" %)**General Commands**      
755
756 AT  : Attention       
757
758 AT?  : Short Help     
759
760 ATZ  : MCU Reset    
761
762 AT+TDC  : Application Data Transmission Interval
763
764 AT+CFG  : Print all configurations
765
766 AT+CFGMOD           : Working mode selection
767
768 AT+INTMOD            : Set the trigger interrupt mode
769
770 AT+5VT  : Set extend the time of 5V power  
771
772 AT+PRO  : Choose agreement
773
774 AT+RXDL  : Extend the sending and receiving time
775
776 AT+SERVADDR  : Server Address
777
778 AT+TR      :  Get or Set record time
779
780 AT+NOUD      : Get or Set the number of data to be uploaded
781
782 AT+CDP     :  Read or Clear cached data
783
784 AT+ DEBUG   : Enable or Disable debug mode
785
786 AT+ TTRIG1   : Get or Set PB14 PIN Alarm Base on Timeout
787
788 AT+ TTRIG2   : Get or Set PB15 PIN Alarm Base on Timeout
789
790 AT+COUNTMOD  :  Get or Set the count mode
791
792 AT+TTRCHANNEL  : Get or Set the number of interrupt channels
793
794 AT+TTRALARM : Get or Set TTRIG1 of Alarm interval (unit: minute)
795
796 AT+DISALARM  : Enable/Disable Alarm for door open/close or water leak event
797
798 AT+ CLRC   :  Clear current door open count
799
800
801 (% style="color:blue" %)**COAP Management**      
802
803 AT+URI            : Resource parameters
804
805
806 (% style="color:blue" %)**UDP Management**
807
808 AT+CFM          : Upload confirmation mode (only valid for UDP)
809
810
811 (% style="color:blue" %)**MQTT Management**
812
813 AT+CLIENT               : Get or Set MQTT client
814
815 AT+UNAME  : Get or Set MQTT Username
816
817 AT+PWD                  : Get or Set MQTT password
818
819 AT+PUBTOPIC  : Get or Set MQTT publish topic
820
821 AT+SUBTOPIC  : Get or Set MQTT subscription topic
822
823
824 (% style="color:blue" %)**Information**          
825
826 AT+FDR  : Factory Data Reset
827
828 AT+PWORD  : Serial Access Password
829
830
831 = ​5.  FAQ =
832
833 == 5.1 ​ How to Upgrade Firmware ==
834
835
836 User can upgrade the firmware for 1) bug fix, 2) new feature release.
837
838 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]]
839
840 (% 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.**
841
842
843 = 6.  Trouble Shooting =
844
845 == 6.1  ​Connection problem when uploading firmware ==
846
847
848 (% 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]]
849
850
851 == 6.2  AT Command input doesn't work ==
852
853
854 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.
855
856
857 == 6.3 Not able to connect to NB-IoT network and keep showing "Signal Strength:99". ==
858
859
860 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]]//**.
861
862
863 = 7. ​ Order Info =
864
865
866 Part Number**:** NDS03A
867
868
869 = 8.  Packing Info =
870
871
872 (% style="color:blue" %)**Package Includes**:
873
874 * NDS03A Open/Close Door Sensor x 1
875
876 = 9.  Support =
877
878
879 * 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.
880
881 * 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]]
882
883
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0