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