Wiki source code of NDS03A - Outdoor NB-IoT Open/Close Door Sensor User Manual
Last modified by Mengting Qiu on 2024/04/02 16:55
Show last authors
author | version | line-number | content |
---|---|---|---|
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 | |