Show last authors
1 (% style="text-align:center" %)
2 [[image:image-20221117105556-1.png]]
3
4
5
6
7
8
9
10 **Table of Contents:**
11
12 {{toc/}}
13
14
15
16
17
18 = 1.  Introduction =
19
20 == 1.1 ​ What is NDS03A NB-IoT Open/Close Door Sensor ==
21
22
23 (((
24 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.
25 )))
26
27 (((
28 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.
29 )))
30
31 (((
32 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.
33 )))
34
35 (((
36 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.
37 )))
38
39 (((
40 NDS03A is designed for outdoor use. It has a weatherproof enclosure and industrial level battery to work in low to high temperatures.
41 )))
42
43 (((
44 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.
45 )))
46
47 (((
48 NDS03A supports different uplink methods including (% style="color:blue" %)**TCP, MQTT, UDP, and CoAP**(%%) for different application requirements.
49 )))
50
51 (((
52 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)
53 )))
54
55 (((
56 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.
57 )))
58
59
60 == ​1.2  Features ==
61
62
63 * NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
64 * Open/Close detect
65 * Open/Close statistics
66 * Monitor Battery Level
67 * connect two door sensors
68 * Datalog feature
69 * Uplink periodically
70 * Downlink to change configure
71 * Wall Mountable
72 * Outdoor Use
73 * Ultra-Low Power consumption
74 * AT Commands to change parameters
75 * Micro SIM card slot for NB-IoT SIM
76 * 8500mAh Battery for long-term use
77
78
79 == 1.3  Storage & Operation ==
80
81
82 Temperature -40°C to +85°C
83
84
85 == 1.4  Mechanical ==
86
87
88 [[image:image-20221117114937-4.png]]
89
90
91 [[image:image-20221117114949-5.png]]
92
93
94 [[image:image-20221117115010-6.png]]
95
96
97 == 1.5 ​ Applications ==
98
99
100 [[image:image-20221117114842-3.png]]
101
102
103 == 1.6  Specification ==
104
105
106 (% style="color:blue" %)**Common DC Characteristics:**
107
108 * Supply Voltage: 2.1v ~~ 3.6v
109 * Operating Temperature: -40 ~~ 85°C
110
111 (% style="color:blue" %)**NB-IoT Spec:**
112
113 * B1 @H-FDD: 2100MHz
114 * B3 @H-FDD: 1800MHz
115 * B8 @H-FDD: 900MHz
116 * B5 @H-FDD: 850MHz
117 * B20 @H-FDD: 800MHz
118 * B28 @H-FDD: 700MHz
119
120
121 == 1.7  Pin Definitions and Switch ==
122
123
124 [[image:image-20221021110429-4.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]]
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="5" style="background-color:#f2f2f2; width:510px" %)
352 |(% style="background-color:#d9e2f3; color:#0070c0; width:50px" %)**Size(bytes)**|(% style="background-color:#d9e2f3; color:#0070c0; width:50px" %)**8**|(% style="background-color:#d9e2f3; color:#0070c0; width:20px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:20px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:65px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:25px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:50px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:60px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:90px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; 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="5" style="background-color:#f2f2f2; width:450px" %)
356 |(% style="background-color:#d9e2f3; color:#0070c0; width:60px" %)**4**|(% style="background-color:#d9e2f3; color:#0070c0; width:90px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:90px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; width:90px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; width:60px" %)**4**|(% style="background-color:#d9e2f3; color:#0070c0; 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="5" style="background-color:#f2f2f2; width:510px" %)
364 |(% style="background-color:#d9e2f3; color:#0070c0; width:50px" %)**Size(bytes)**|(% style="background-color:#d9e2f3; color:#0070c0; width:45px" %)**8**|(% style="background-color:#d9e2f3; color:#0070c0; width:20px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:20px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:65px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:25px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:60px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:60px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:87px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; 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="5" style="background-color:#f2f2f2; width:510px" %)
368 |(% style="background-color:#d9e2f3; color:#0070c0; width:80px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:80px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:88px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; width:81px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; width:50px" %)**4**|(% style="background-color:#d9e2f3; color:#0070c0; width:75px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; 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="5" style="background-color:#f2f2f2; width:510px" %)
372 |(% style="background-color:#d9e2f3; color:#0070c0; width:100px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; width:80px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:90px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; width:90px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; width:70px" %)**4**|(% style="background-color:#d9e2f3; color:#0070c0; 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
409 == 2.4  Payload Explanation and Sensor Interface ==
410
411 === 2.4.1  Device ID ===
412
413
414 By default, the Device ID is equal to the last 15 bits of IMEI.
415
416 User can use (% style="color:blue" %)**AT+DEUI** (%%)to set Device ID
417
418 **Example:**
419
420 AT+DEUI=868411056754138
421
422 The Device ID is stored in a non-erase area, Upgrade the firmware or run AT+FDR won't erase the Device ID.
423
424
425 === 2.4.2  Version Info ===
426
427
428 Specify the software version: 0x64=100, which means firmware version 1.00.
429
430 For example 0x00 64 : This device is NDS03A 1 with firmware version 1.0.0.
431
432
433 === 2.4.3  Battery Info ===
434
435
436 Check the battery voltage for NDS03A.
437
438 Ex1: 0x0B45 = 2885mV
439
440 Ex2: 0x0B49 = 2889mV
441
442
443 === 2.4.4  Signal Strength ===
444
445
446 NB-IoT Network signal Strength.
447
448 **Ex1: 0x1d = 29**
449
450 **0**  -113dBm or less
451
452 **1**  -111dBm
453
454 **2...30** -109dBm... -53dBm
455
456 **31**   -51dBm or greater
457
458 **99**    Not known or not detectable
459
460
461 === 2.4.5  Disalarm: (default: 0) ===
462
463
464 (% 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.
465
466 (% 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.
467
468 (% style="color:red" %)**Note:**(%%) When Disalarm=0, a high frequently open/close event will cause lots of uplink and drain battery very fast.
469
470
471 === 2.4.6  Keep Status & Keep Time ===
472
473
474 Shows the configure value of Alarm Base on Timeout Feature
475
476
477 === 2.4.7  Timestamp ===
478
479
480 Timestamp : 0x6315537b =1662342011
481
482
483 === 2.4.8  Switch Dual Channel Mode ===
484
485
486 NDS03A can connect two door sensors. Another door sensor can be connected to PB15 pin. Both channels support alarm function.
487
488
489 == 2.5  Downlink Payload ==
490
491
492 By default, NDS03A prints the downlink payload to console port.
493
494 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:479.818px" %)
495 |=(% style="width: 183px; background-color:#D9E2F3;color:#0070C0" %)**Downlink Control Type**|=(% style="width: 55px; background-color:#D9E2F3;color:#0070C0" %)FPort|=(% style="width: 93px; background-color:#D9E2F3;color:#0070C0" %)**Type Code**|=(% style="width: 146px; background-color: rgb(217, 226, 243); color: rgb(0, 112, 192);" %)**Downlink payload size(bytes)**
496 |(% style="width:183px" %)TDC (Transmit Time Interval)|(% style="width:55px" %)Any|(% style="width:93px" %)01|(% style="width:146px" %)4
497 |(% style="width:183px" %)RESET|(% style="width:55px" %)Any|(% style="width:93px" %)04|(% style="width:146px" %)2
498 |(% style="width:183px" %)INTMOD|(% style="width:55px" %)Any|(% style="width:93px" %)06|(% style="width:146px" %)4
499
500 **Examples:**
501
502 * (% style="color:#037691" %)**Set TDC**
503
504 If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.
505
506 Payload:    01 00 00 1E    TDC=30S
507
508 Payload:    01 00 00 3C    TDC=60S
509
510 * (% style="color:#037691" %)**Reset**
511
512 If payload = 0x04FF, it will reset the NDS03A
513
514 * (% style="color:#037691" %)**INTMOD**
515
516 Downlink Payload: 06000003, Set AT+INTMOD=3
517
518
519 == 2.6  ​LED Indicator ==
520
521
522 The NDS03A has an internal LED which is to show the status of different states.
523
524 * When the device starts normally, the LED will light up for 1 second.
525 * After NDS03A join NB-IoT network. The LED will be ON for 3 seconds.
526 * For each uplink probe, LED will be on for 500ms.
527
528
529 == 2.7  Alarm Base on Timeout ==
530
531
532 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:
533
534
535 (% style="color:blue" %)**1. Keep Status: Status to be monitor**
536
537 Keep Status = 1: Monitor Close to Open event
538
539 Keep Status = 0: Monitor Open to Close event
540
541
542 (% style="color:blue" %)**2. Keep Time: Timeout to send an Alarm**
543
544 Range 0 ~~ 65535(0xFFFF) seconds.
545
546 If keep time = 0, Disable Alarm Base on Timeout feature.
547
548 If keep time > 0, device will monitor the keep status event and send an alarm when status doesn't change after timeout.
549
550
551 (% style="color:blue" %)**AT Command to configure:**
552
553 (% style="color:blue" %)**PB14 PIN:**
554
555 (% 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.
556
557 (% style="color:#037691" %)**AT+TTRIG=0,0 ** (%%) **~-~->** Default Value, disable timeout Alarm.
558
559
560 (% style="color:blue" %)**PB15 PIN:**
561
562 (% style="color:#037691" %)**AT+TTRIG2=1,30**
563
564 (% style="color:#037691" %)**AT+TTRIG2=0,0 **
565
566
567 == 2.8  Set debug mode ==
568
569
570 Feature: Enable or Disable debug mode
571
572 (% style="color:blue" %)**AT Command: AT+DEBUG**
573
574 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:495px" %)
575 |=(% style="width: 157px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 246px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 92px;background-color:#D9E2F3;color:#0070C0" %)**Response**
576 |(% style="width:157px" %)(((
577 AT+DEBUG=0
578 )))|(% style="width:156px" %)(((
579 Disable debug mode to 0
580 )))|(% style="width:89px" %)(((
581 (((
582 OK
583 )))
584 )))
585 |(% style="width:157px" %)(((
586 AT+DEBUG=1
587 )))|(% style="width:156px" %)Enable debug mode to 1|(% style="width:89px" %)(((
588 OK
589 )))
590
591
592 == 2.9  Clear Flash Record ==
593
594
595 Feature: Clear flash storage for data log feature.
596
597 (% style="color:blue" %)**AT Command: AT+CLRDTA**
598
599 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
600 |=(% style="width: 157px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 169px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 174px;background-color:#D9E2F3;color:#0070C0" %)**Response**
601 |(% style="width:157px" %)AT+CLRDTA|(% style="width:169px" %)Clear flash storage for data log feature.|Clear all stored sensor data… OK
602
603
604 == 2.10  Count Mod ==
605
606
607 (% style="color:blue" %)**AT Command: AT+COUNTMOD**
608
609 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:495px" %)
610 |=(% style="width: 157px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 246px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 92px;background-color:#D9E2F3;color:#0070C0" %)**Response**
611 |(% style="width:157px" %)(((
612 AT+COUNTMOD=0
613 )))|(% style="width:156px" %)(((
614 the count value keeps accumulating mode
615 )))|(% style="width:89px" %)(((
616 (((
617 OK
618 )))
619 )))
620 |(% style="width:157px" %)(((
621 AT+COUNTMOD=1
622 )))|(% style="width:156px" %)(((
623 the count value will be reset after each TDC time(Last Close Duration Reset after each uplink)
624 )))|(% style="width:89px" %)(((
625 OK
626 )))
627
628
629 == 2.11  Interrupt Pin Channel Mod ==
630
631
632 (% style="color:blue" %)**AT Command: AT+TTRCHANNEL**
633
634 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:495px" %)
635 |=(% style="width: 157px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 246px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 92px;background-color:#D9E2F3;color:#0070C0" %)**Response**
636 |(% style="width:157px" %)(((
637 AT+TTRCHANNEL=1
638 )))|(% style="width:156px" %)(((
639 set as single channel, only use PB14 pin as interrupt pin.
640 )))|(% style="width:89px" %)(((
641 (((
642 OK
643 )))
644 )))
645 |(% style="width:157px" %)(((
646 AT+TTRCHANNEL=2
647 )))|(% style="width:156px" %)(((
648 is set as dual channel, use PB14 pin and PB15 pin as interrupt pin.
649 )))|(% style="width:89px" %)(((
650 OK
651 )))
652
653
654 == 2.12 TTRIG1/2 timeout status alarm ==
655
656
657 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.
658
659 (% style="color:blue" %)**AT Command: AT+TTRALARM**
660
661 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:495px" %)
662 |=(% style="width: 157px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 246px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 92px;background-color:#D9E2F3;color:#0070C0" %)**Response**
663 |(% style="width:157px" %)(((
664 AT+TTRALARM=0
665 )))|(% style="width:156px" %)(((
666 disable continuous alarm
667 )))|(% style="width:89px" %)(((
668 (((
669 OK
670 )))
671 )))
672 |(% style="width:157px" %)(((
673 AT+TTRALARM=60
674 )))|(% style="width:156px" %)(((
675 The alarm interval is 60 minutes (unit: minutes)
676 )))|(% style="width:89px" %)(((
677 OK
678 )))
679
680
681 == 2.13  Select counting mode ==
682
683
684 (% style="color:blue" %)**AT Command: AT+TTRMODx=a,b**
685
686 When (% style="color:red" %)**a=0**(%%), the door is opened to count, and when (% style="color:red" %)**a=1**(%%),the closed door is counted.
687
688 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.
689
690 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:495px" %)
691 |=(% style="width: 157px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 246px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 92px;background-color:#D9E2F3;color:#0070C0" %)**Response**
692 |(% style="width:157px" %)(((
693 AT+TTRMODx=1,0
694 )))|(% style="width:156px" %)Door closed count and record the last door opened duration|(% style="width:89px" %)(((
695 (((
696 OK
697 )))
698 )))
699 |(% style="width:157px" %)(((
700 AT+TTRMODx=0,1
701 )))|(% style="width:156px" %)(((
702 Door opened count and record the last door Door Door open closed duration
703 )))|(% style="width:89px" %)(((
704 OK
705 )))
706
707
708 == 2.14  Set the number of data to be uploaded and the recording time ==
709
710
711 (% style="color:blue" %)**AT Command:**
712
713 (% 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)
714
715 (% 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.
716
717
718 == 2.15  Read or Clear cached data ==
719
720
721 (% style="color:blue" %)**AT Command:**
722
723 (% style="color:#037691" %)**AT+CDP**  (%%) ~/~/ Read cached data
724
725 (% style="color:#037691" %)**AT+CDP=0**  (%%) ~/~/ Clear cached data ​
726
727 [[image:image-20221118094227-5.png]]
728
729
730 == 2.16  ​Firmware Change Log ==
731
732
733 Download URL & Firmware Change log: [[https:~~/~~/www.dropbox.com/sh/hacq385w6qgnonr/AAC3D79GFGF1JdZUIzNegn2Ha?dl=0>>https://www.dropbox.com/sh/hacq385w6qgnonr/AAC3D79GFGF1JdZUIzNegn2Ha?dl=0]]
734
735 Upgrade Instruction: [[Upgrade Firmware>>||anchor="H5.1200BHowtoUpgradeFirmware"]]
736
737
738 == 2.17 Battery & Power Consumption ==
739
740
741 NDS03A uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
742
743 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
744
745
746 = 4.  Using the AT Commands =
747
748 == 4.1  Access AT Commands ==
749
750
751 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]]
752
753 AT+<CMD>?  : Help on <CMD>
754
755 AT+<CMD>         : Run <CMD>
756
757 AT+<CMD>=<value> : Set the value
758
759 AT+<CMD>=?  : Get the value
760
761
762 (% style="color:blue" %)**General Commands**      
763
764 AT  : Attention       
765
766 AT?  : Short Help     
767
768 ATZ  : MCU Reset    
769
770 AT+TDC  : Application Data Transmission Interval
771
772 AT+CFG  : Print all configurations
773
774 AT+CFGMOD           : Working mode selection
775
776 AT+INTMOD            : Set the trigger interrupt mode
777
778 AT+5VT  : Set extend the time of 5V power  
779
780 AT+PRO  : Choose agreement
781
782 AT+RXDL  : Extend the sending and receiving time
783
784 AT+SERVADDR  : Server Address
785
786 AT+TR      :  Get or Set record time
787
788 AT+NOUD      : Get or Set the number of data to be uploaded
789
790 AT+CDP     :  Read or Clear cached data
791
792 AT+ DEBUG   : Enable or Disable debug mode
793
794 AT+ TTRIG1   : Get or Set PB14 PIN Alarm Base on Timeout
795
796 AT+ TTRIG2   : Get or Set PB15 PIN Alarm Base on Timeout
797
798 AT+COUNTMOD  :  Get or Set the count mode
799
800 AT+TTRCHANNEL  : Get or Set the number of interrupt channels
801
802 AT+TTRALARM : Get or Set TTRIG1 of Alarm interval (unit: minute)
803
804 AT+DISALARM  : Enable/Disable Alarm for door open/close or water leak event
805
806 AT+ CLRC   :  Clear current door open count
807
808
809 (% style="color:blue" %)**COAP Management**      
810
811 AT+URI            : Resource parameters
812
813
814 (% style="color:blue" %)**UDP Management**
815
816 AT+CFM          : Upload confirmation mode (only valid for UDP)
817
818
819 (% style="color:blue" %)**MQTT Management**
820
821 AT+CLIENT               : Get or Set MQTT client
822
823 AT+UNAME  : Get or Set MQTT Username
824
825 AT+PWD                  : Get or Set MQTT password
826
827 AT+PUBTOPIC  : Get or Set MQTT publish topic
828
829 AT+SUBTOPIC  : Get or Set MQTT subscription topic
830
831
832 (% style="color:blue" %)**Information**          
833
834 AT+FDR  : Factory Data Reset
835
836 AT+PWORD  : Serial Access Password
837
838
839 = ​5.  FAQ =
840
841 == 5.1 ​ How to Upgrade Firmware ==
842
843
844 User can upgrade the firmware for 1) bug fix, 2) new feature release.
845
846 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]]
847
848 (% 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.**
849
850
851 = 6.  Trouble Shooting =
852
853 == 6.1  ​Connection problem when uploading firmware ==
854
855
856 (% 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]]
857
858
859 == 6.2  AT Command input doesn't work ==
860
861
862 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.
863
864
865 == 6.3 Not able to connect to NB-IoT network and keep showing "Signal Strength:99". ==
866
867
868 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]]//**.
869
870
871 = 7. ​ Order Info =
872
873
874 Part Number**:** NDS03A
875
876
877 = 8.  Packing Info =
878
879
880 (% style="color:blue" %)**Package Includes**:
881
882 * NDS03A Open/Close Door Sensor x 1
883
884
885 = 9.  Support =
886
887
888 * 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.
889
890 * 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]]
891
892
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0