Version 61.4 by Xiaoling on 2022/11/17 16:40

Hide last authors
Xiaoling 1.5 1 (% style="text-align:center" %)
Xiaoling 53.2 2 [[image:image-20221117105556-1.png]]
Xiaoling 1.5 3
Xiaoling 48.2 4
5
Xiaoling 53.2 6
7
8
9
Xiaoling 48.2 10 **Table of Contents:**
11
Xiaoling 1.5 12
13
14
Xiaoling 48.2 15
16 = 1.  Introduction =
17
Xiaoling 53.2 18 == 1.1 ​ What is NDS03A NB-IoT Open/Close Door Sensor ==
Xiaoling 48.2 19
20
Xiaoling 52.2 21 (((
Xiaoling 53.3 22 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.
23 )))
Xiaoling 1.5 24
Xiaoling 53.3 25 (((
26 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.
27 )))
Xiaoling 1.5 28
Xiaoling 53.3 29 (((
30 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.
31 )))
Xiaoling 1.5 32
Xiaoling 53.3 33 (((
34 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.
35 )))
Xiaoling 53.2 36
Xiaoling 53.3 37 (((
Xiaoling 53.2 38 NDS03A is designed for outdoor use. It has a weatherproof enclosure and industrial level battery to work in low to high temperatures.
Xiaoling 52.2 39 )))
Xiaoling 1.5 40
Xiaoling 52.2 41 (((
Xiaoling 53.3 42 NarrowBand-Internet of Things (NB-IoT) is a (% style="color:blue" %)**standards-based low power wide area (LPWA) technologyTCP, MQTT, UDP, and CoAP**(%%) for different application requirements.
Xiaoling 52.2 43 )))
Xiaoling 1.5 44
Xiaoling 53.3 45 (((
46 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)
47 )))
48
49 (((
50 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.
51 )))
52
53
Edwin Chen 35.1 54
Xiaoling 48.2 55 == ​1.2  Features ==
56
57
David Huang 2.1 58 * NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
59 * Open/Close detect
60 * Open/Close statistics
61 * Monitor Battery Level
Xiaoling 58.2 62 * connect two door sensors
David Huang 2.1 63 * Datalog feature
Edwin Chen 34.1 64 * Uplink periodically
David Huang 2.1 65 * Downlink to change configure
66 * Wall Mountable
67 * Outdoor Use
68 * Ultra-Low Power consumption
69 * AT Commands to change parameters
70 * Micro SIM card slot for NB-IoT SIM
Edwin Chen 34.1 71 * 8500mAh Battery for long-term use
Xiaoling 1.5 72
Xiaoling 58.2 73 == 1.3  Storage & Operation ==
Xiaoling 1.5 74
75
Xiaoling 58.2 76 Temperature -40°C to +85°C
Xiaoling 1.5 77
78
Xiaoling 58.2 79 == 1.4  Mechanical ==
Xiaoling 48.2 80
Xiaoling 1.5 81
Xiaoling 58.2 82 [[image:image-20221117114937-4.png]]
Xiaoling 1.5 83
Xiaoling 52.2 84
Xiaoling 58.2 85 [[image:image-20221117114949-5.png]]
Xiaoling 1.5 86
Edwin Chen 38.1 87
Xiaoling 58.2 88 [[image:image-20221117115010-6.png]]
David Huang 31.1 89
Xiaoling 58.2 90
91
Xiaoling 48.2 92 == 1.5 ​ Applications ==
93
94
Xiaoling 58.2 95 [[image:image-20221117114842-3.png]]
Xiaoling 1.5 96
97
Xiaoling 48.2 98
Xiaoling 58.2 99 == 1.6  Specification ==
Xiaoling 1.5 100
101
Xiaoling 58.2 102 (% style="color:blue" %)**Common DC Characteristics:**
Xiaoling 48.2 103
Xiaoling 58.2 104 * Supply Voltage: 2.1v ~~ 3.6v
105 * Operating Temperature: -40 ~~ 85°C
106
107 (% style="color:blue" %)**NB-IoT Spec:**
108
109 * - B1 @H-FDD: 2100MHz
110 * - B3 @H-FDD: 1800MHz
111 * - B8 @H-FDD: 900MHz
112 * - B5 @H-FDD: 850MHz
113 * - B20 @H-FDD: 800MHz
114 * - B28 @H-FDD: 700MHz
115
Xiaoling 48.2 116 == 1.7  Pin Definitions and Switch ==
117
Xiaoling 52.2 118
David Huang 31.1 119 [[image:image-20221021110429-4.png]]
Xiaoling 1.5 120
121
Xiaoling 48.2 122 === 1.7.1  Pin Definition ===
123
124
Xiaoling 58.4 125 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]]
Xiaoling 1.5 126
Edwin Chen 38.1 127
Xiaoling 1.5 128
Xiaoling 48.2 129 === 1.7.2  Jumper JP2(Power ON/OFF) ===
130
131
David Huang 2.1 132 Power on Device when putting this jumper.
133
134
135
Xiaoling 48.2 136 === 1.7.3  BOOT MODE / SW1 ===
David Huang 2.1 137
138
Xiaoling 48.3 139 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.
David Huang 2.1 140
Xiaoling 48.3 141 2)  Flash:  working mode, the device starts to work for NB-IoT connection and sends out console output for further debugging.
David Huang 2.1 142
143
144
Xiaoling 48.2 145 === 1.7.4  Reset Button ===
146
147
David Huang 2.1 148 Press to reboot the device.
149
150
151
Xiaoling 48.2 152 === 1.7.5  LED ===
David Huang 2.1 153
Xiaoling 48.2 154
Edwin Chen 38.1 155 The LED will blink when :
David Huang 2.1 156
Xiaoling 48.2 157 1.  Boot the device in flash mode
David Huang 2.1 158
Xiaoling 48.2 159 2.  Send an uplink packet
David Huang 2.1 160
161
162
Xiaoling 58.2 163 == 1.8  Magnet Distance ==
164
165
Xiaoling 58.4 166 (% style="color:blue" %)**Wood Door:**(%%) 10 ~~ 30mm
Xiaoling 58.2 167
Xiaoling 61.2 168 (% style="color:blue" %)**Iron Door:**(%%)**    **30 ~~ 45mm
Xiaoling 58.2 169
170
171
Xiaoling 48.2 172 = 2.  Use CPN01 to communicate with IoT Server =
173
174 == 2.1  How it works ==
175
176
Xiaoling 59.2 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.
Xiaoling 48.2 178
Xiaoling 59.2 179 The diagram below shows the working flow in the default firmware of NDS03A:
David Huang 2.1 180
David Huang 31.1 181 [[image:image-20221021110615-5.png]]
David Huang 2.1 182
183
Edwin Chen 40.1 184
Xiaoling 59.3 185 == 2.2 ​ Configure NDS03A ==
David Huang 2.1 186
Xiaoling 48.2 187 === 2.2.1 Test Requirement ===
188
189
Xiaoling 59.2 190 To use NDS03A in your city, make sure to meet below requirements:
David Huang 2.1 191
Edwin Chen 40.1 192 * Your local operator has already distributed an NB-IoT Network.
Xiaoling 59.3 193 * The local NB-IoT network used the band that NDS03A supports.
David Huang 2.1 194 * Your operator is able to distribute the data received in their NB-IoT network to your IoT server.
195
Xiaoling 59.2 196 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.
David Huang 2.1 197
Xiaoling 59.2 198 [[image:image-20221117142300-1.png]]
Edwin Chen 40.1 199
David Huang 2.1 200
201
202
Xiaoling 48.2 203 === 2.2.2 Insert NB-IoT SIM card ===
204
205
David Huang 2.1 206 Insert the NB-IoT Card get from your provider.
207
Edwin Chen 40.1 208 User needs to take out the NB-IoT module and insert the SIM card like below:
David Huang 2.1 209
David Huang 31.1 210 [[image:image-20221021110745-6.png]] ​
David Huang 2.1 211
Edwin Chen 40.1 212
David Huang 2.1 213
Xiaoling 59.3 214 === 2.2.3 Connect USB – TTL to NDS03A and configure it ===
David Huang 2.1 215
216
Xiaoling 59.3 217 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.
David Huang 2.1 218
Xiaoling 48.2 219 (% style="color:blue" %)**Connection:**
David Huang 2.1 220
Xiaoling 48.2 221 (% style="background-color:yellow" %)** USB TTL GND <~-~-~-~-> GND**
David Huang 2.1 222
Xiaoling 48.2 223 (% style="background-color:yellow" %)** USB TTL TXD <~-~-~-~-> UART_RXD**
224
225 (% style="background-color:yellow" %)** USB TTL RXD <~-~-~-~-> UART_TXD**
226
227
David Huang 2.1 228 In the PC, use below serial tool settings:
229
Xiaoling 48.2 230 * Baud:  (% style="color:red" %)**9600**
David Huang 2.1 231
Xiaoling 48.2 232 * Data bits:** (% style="color:red" %)8(%%)**
233
234 * Stop bits: (% style="color:red" %)**1**
235
236 * Parity:  (% style="color:red" %)**None**
237
238 * Flow Control: (% style="color:red" %)**None**
239
Xiaoling 59.3 240 Make sure the switch is in FLASH position, then power on NDS03A by connecting the (% style="color:orange" %)**Yellow Jumper**(%%).
David Huang 2.1 241
David Huang 31.1 242 ​[[image:image-20221021110817-7.png]]
David Huang 2.1 243
Xiaoling 59.3 244 NDS03A will output system info once powered on as below, we can enter the **password: 12345678** to access AT Command input.
Edwin Chen 40.1 245
246
Xiaoling 48.2 247 (% 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]]
David Huang 2.1 248
Edwin Chen 42.1 249
David Huang 2.1 250
Xiaoling 48.2 251 === 2.2.4 Use CoAP protocol to uplink data ===
David Huang 2.1 252
253
Xiaoling 48.2 254 (% 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/]]
Edwin Chen 42.1 255
David Huang 2.1 256
Xiaoling 48.2 257 (% style="color:blue" %)**Use below commands in CPN01:**
258
Xiaoling 48.3 259 * (% style="color:#037691" %)**AT+PRO=1**                (%%) ~/~/ Set to use CoAP protocol to uplink
Xiaoling 48.2 260
Xiaoling 48.3 261 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5683   ** (%%) ~/~/ Set CoAP server address and port
Xiaoling 48.2 262
Xiaoling 48.3 263 * (% style="color:#037691" %)**AT+URI=0,0,11,2,"mqtt" ** (%%) ~/~/  Set CoAP resource path
Xiaoling 48.2 264
David Huang 2.1 265 For parameter description, please refer to AT command set
266
David Huang 31.1 267 [[image:image-20221021110948-8.png]]
David Huang 2.1 268
269
Xiaoling 59.3 270 After configuring the server address and (% style="color:green" %)**reset CPN01**(%%) (via AT+ATZ ), NDS03A will start to uplink sensor values to the CoAP server.
Edwin Chen 42.1 271
David Huang 31.1 272 [[image:image-20221021110956-9.png]] ​
David Huang 2.1 273
Edwin Chen 42.1 274
David Huang 2.1 275
Xiaoling 48.2 276 === 2.2.5 Use UDP protocol to uplink data(Default protocol) ===
David Huang 2.1 277
Edwin Chen 42.1 278
Xiaoling 48.2 279 (% style="color:blue" %)**AT Commands:**
David Huang 2.1 280
Xiaoling 48.3 281 * (% style="color:#037691" %)**AT+PRO=2   ** (%%) ~/~/  Set to use UDP protocol to uplink
Xiaoling 48.2 282
Xiaoling 48.3 283 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5601   ** (%%) ~/~/  Set UDP server address and port
Xiaoling 48.2 284
Xiaoling 48.3 285 * (% style="color:#037691" %)**AT+CFM=1       ** (%%) ~/~/  If the server does not respond, this command is unnecessary
Xiaoling 48.2 286
David Huang 32.1 287 ​ [[image:image-20221021111025-10.png]]
David Huang 2.1 288
Xiaoling 48.3 289
David Huang 31.1 290 [[image:image-20221021111033-11.png||height="241" width="576"]]
David Huang 2.1 291
292
293
294
Xiaoling 48.2 295 === 2.2.6 Use MQTT protocol to uplink data ===
David Huang 2.1 296
Edwin Chen 42.1 297
Xiaoling 48.2 298 (% style="color:blue" %)**AT Commands:**
David Huang 2.1 299
Xiaoling 48.3 300 * (% style="color:#037691" %)**AT+PRO=3   ** (%%) ~/~/  Set to use MQTT protocol to uplink
Xiaoling 48.2 301
Xiaoling 48.3 302 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,1883   ** (%%) ~/~/  Set MQTT server address and port
Xiaoling 48.2 303
Xiaoling 48.3 304 * (% style="color:#037691" %)**AT+CLIENT=CLIENT       ** (%%) ~/~/  Set up the CLIENT of MQTT
Xiaoling 48.2 305
Xiaoling 48.3 306 * (% style="color:#037691" %)**AT+UNAME=UNAME                     **(%%)** **~/~/  Set the username of MQTT
Xiaoling 48.2 307
Xiaoling 48.3 308 * (% style="color:#037691" %)**AT+PWD=PWD                         **(%%)** **~/~/  Set the password of MQTT
Xiaoling 48.2 309
Xiaoling 48.3 310 * (% style="color:#037691" %)**AT+PUBTOPIC=NSE01_PUB              **(%%)** **~/~/  Set the sending topic of MQTT
Xiaoling 48.2 311
Xiaoling 48.3 312 * (% style="color:#037691" %)**AT+SUBTOPIC=NSE01_SUB          ** (%%) ~/~/  Set the subscription topic of MQTT
Xiaoling 48.2 313
David Huang 32.1 314 ​ [[image:image-20221021111058-12.png]]
David Huang 2.1 315
Xiaoling 48.3 316
David Huang 47.1 317 [[image:image-20221021111201-16.png||height="472" width="653"]]
David Huang 2.1 318
319
320
Edwin Chen 42.1 321 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.
David Huang 2.1 322
Edwin Chen 42.1 323
Xiaoling 48.3 324
Xiaoling 48.2 325 === 2.2.7 Use TCP protocol to uplink data ===
David Huang 2.1 326
327
Xiaoling 48.3 328 (% style="color:blue" %)**AT Commands:**
David Huang 2.1 329
Xiaoling 48.3 330 * (% style="color:#037691" %)**AT+PRO=4   ** (%%) ~/~/  Set to use TCP protocol to uplink
Xiaoling 48.2 331
Xiaoling 48.3 332 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5600   ** (%%) ~/~/  Set TCP server address and port
Xiaoling 48.2 333
David Huang 32.1 334 ​ [[image:image-20221021111125-14.png]]
David Huang 2.1 335
David Huang 31.1 336 [[image:image-20221021111131-15.png]]
David Huang 2.1 337
338
339
Xiaoling 48.3 340
Xiaoling 48.2 341 === 2.2.8 Change Update Interval ===
David Huang 2.1 342
343
Xiaoling 48.2 344 User can use below command to change the (% style="color:blue" %)**uplink interval**.
David Huang 2.1 345
Xiaoling 59.3 346 * (% style="color:#037691" %)**AT+TDC=14400      ** (%%) ~/~/ Set Update Interval to 14400s (4 hours)
David Huang 2.1 347
Xiaoling 48.2 348 (% style="color:red" %)**NOTE:**
David Huang 2.1 349
Xiaoling 59.3 350 1.  By default, the device will send an uplink message every 4 hour.
Edwin Chen 42.1 351
Xiaoling 48.3 352
353
Xiaoling 48.2 354 == 2.3  Uplink Payload ==
David Huang 2.1 355
Xiaoling 48.2 356
Xiaoling 61.3 357 The uplink payload includes 26 bytes in total by default.
David Huang 2.1 358
Xiaoling 61.3 359 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.
David Huang 2.1 360
Xiaoling 61.3 361 (% style="color:blue" %)**When AT+TTRCHANNEL=1:**
David Huang 2.1 362
Xiaoling 61.3 363 (% border="1" cellspacing="5" style="background-color:#ffffcc; color:green; width:693px" %)
364 |=(% scope="row" style="width: 93px;" %)**Size(bytes)**|(% style="width:67px" %)**8**|(% style="width:40px" %)**2**|(% style="width:45px" %)**2**|(% style="width:75px" %)**1**|(% style="width:54px" %)**1**|(% style="width:62px" %)**1**|(% style="width:60px" %)**1**|(% style="width:94px" %)**3**|(% style="width:93px" %)**3**
365 |=(% 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.4.6A0Alarm"]]|(% style="width:94px" %)door open num(pb14) |(% style="width:93px" %)last open time(pb14)
David Huang 2.1 366
Xiaoling 52.3 367 (% border="1.5" style="background-color:#ffffcc; color:green; width:490px" %)
Xiaoling 61.3 368 |(% style="width:50px" %)**4**|(% style="width:70px" %)**1**|(% style="width:50px" %)**3**|(% style="width:99px" %)**3**|(% style="width:67px" %)4|(% style="width:50px" %)(((
369 **1-32 group**
370 )))
371 |(% style="width:98px" %)[[Time stamp>>||anchor="H2.4.10A0Timestamp"]]|(% 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" %)...
Xiaoling 48.3 372
Xiaoling 61.3 373
374 (% style="color:blue" %)**When AT+TTRCHANNEL=2:**
375
376
377 (% border="1" cellspacing="5" style="background-color:#ffffcc; color:green; width:520px" %)
378 |=(% scope="row" style="width: 96px;" %)**Size(bytes)**|(% style="width:66px" %)**8**|(% style="width:40px" %)**2**|(% style="width:46px" %)**2**|(% style="width:70px" %)**1**|(% style="width:54px" %)**1**|(% style="width:55px" %)**1**|(% style="width:57px" %)**1**|(% style="width:86px" %)**3**|(% style="width:82px" %)**3**
379 |=(% 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|(% style="width:57px" %)[[Alarm Status>>||anchor="H2.4.6A0Alarm"]]|(% style="width:86px" %)door open num(pb14) |(% style="width:82px" %)last open time(pb14)
380
381 (% border="1" cellspacing="5" style="background-color:#ffffcc; color:green; width:520px" %)
382 |(% style="width:59px" %)**1**|(% style="width:67px" %)**1**|(% style="width:88px" %)**3**|(% style="width:81px" %)**3**|(% style="width:50px" %)**4**|(% style="width:66px" %)**1**|(% style="width:92px" %)**3**
383 |(% style="width:59px" %)Door Status(pb15)|(% style="width:67px" %)[[Alarm Status>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPN01-%20NB-IoT%20Outdoor%20OpenClose%20Dry%20Contact%20Sensor%C2%A0User%20Manual/#H2.4.7A0ContactStatus]](pb15)|(% style="width:88px" %)door open num(pb15)|(% style="width:81px" %)last open time(pb15)|(% style="width:50px" %)Time stamp|(% style="width:66px" %)Door Status(pb14)|(% style="width:92px" %)door open num(pb14)
384
385 (% border="1" cellspacing="5" style="background-color:#ffffcc; color:green; width:500px" %)
386 |(% style="width:102px" %)**3**|(% style="width:93px" %)**1**|(% style="width:91px" %)**3**|(% style="width:88px" %)**3**|(% style="width:63px" %)**4**|(% style="width:87px" %)(((
387 **1-32 group**
388 )))
389 |(% style="width:102px" %)last open time (pb14)|(% style="width:93px" %)Door Status(pb15)|(% style="width:91px" %)door open num(pb15)|(% style="width:88px" %)last open time(pb15)|(% style="width:63px" %)Time stamp|(% style="width:87px" %)...
390
Xiaoling 61.2 391 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NDS03A uplink data.
David Huang 2.1 392
Xiaoling 61.2 393 [[image:image-20221117145932-2.png]]
David Huang 2.1 394
Xiaoling 48.3 395
David Huang 2.1 396 The payload is ASCII string, representative same HEX:
397
Xiaoling 61.2 398 **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__(%%)**
399
Xiaoling 48.2 400 **where:**
David Huang 2.1 401
Xiaoling 48.13 402 * (% style="color:#037691" %)**Device ID:**(%%) 0x f867787050213317 = f867787050213317
David Huang 2.1 403
Xiaoling 48.13 404 * (% style="color:#037691" %)**Version:**(%%) 0x0064=100=1.0.0
David Huang 33.1 405
Xiaoling 61.2 406 * (% style="color:#037691" %)**BAT :**(%%)  0x0ccf = 3279 mV = 3.279V
David Huang 33.1 407
Xiaoling 61.2 408 * (% style="color:#037691" %)**Singal: **(%%)0x19 = 25
David Huang 33.1 409
Xiaoling 48.13 410 * (% style="color:#037691" %)**Mod:**(%%) 0x01 = 1
David Huang 33.1 411
Xiaoling 61.2 412 * (% style="color:#037691" %)**Door Status:**(%%) 0x00=0
David Huang 33.1 413
Xiaoling 61.2 414 * (% style="color:#037691" %)**Alarm Status: **(%%)0x00 =0
David Huang 33.1 415
Xiaoling 61.2 416 * (% style="color:#037691" %)**door open num: **(%%)0x000016 =22
David Huang 33.1 417
Xiaoling 61.2 418 * (% style="color:#037691" %)**last open time: **(%%)0x000017 =23
David Huang 33.1 419
Xiaoling 61.2 420 * (% style="color:#037691" %)**Timestamp:**(%%) 0x637590df =1668649183 (Unix Time)
David Huang 33.1 421
422
Xiaoling 48.2 423 == 2.4  Payload Explanation and Sensor Interface ==
424
425
426 === 2.4.1  Device ID ===
427
428
Edwin Chen 42.1 429 By default, the Device ID is equal to the last 15 bits of IMEI.
David Huang 2.1 430
Xiaoling 48.2 431 User can use (% style="color:blue" %)**AT+DEUI** (%%)to set Device ID
David Huang 2.1 432
433 **Example:**
434
435 AT+DEUI=868411056754138
436
Edwin Chen 42.1 437 The Device ID is stored in a non-erase area, Upgrade the firmware or run AT+FDR won't erase the Device ID.
David Huang 2.1 438
Edwin Chen 42.1 439
David Huang 2.1 440
Xiaoling 48.2 441 === 2.4.2  Version Info ===
442
443
Edwin Chen 42.1 444 Specify the software version: 0x64=100, which means firmware version 1.00.
David Huang 2.1 445
Edwin Chen 42.1 446 For example 0x00 64 : This device is CPN01 with firmware version 1.0.0.
David Huang 2.1 447
Edwin Chen 42.1 448
David Huang 2.1 449
Xiaoling 48.2 450 === 2.4.3  Battery Info ===
451
452
David Huang 2.1 453 Check the battery voltage for CPN01.
454
455 Ex1: 0x0B45 = 2885mV
456
457 Ex2: 0x0B49 = 2889mV
458
Edwin Chen 42.1 459
David Huang 2.1 460
Xiaoling 48.2 461 === 2.4.4  Signal Strength ===
462
463
David Huang 2.1 464 NB-IoT Network signal Strength.
465
466 **Ex1: 0x1d = 29**
467
468 **0**  -113dBm or less
469
470 **1**  -111dBm
471
472 **2...30** -109dBm... -53dBm
473
474 **31**   -51dBm or greater
475
476 **99**    Not known or not detectable
477
Edwin Chen 42.1 478
David Huang 2.1 479
Xiaoling 48.2 480 === 2.4.5  Calculate Flag ===
481
482
Edwin Chen 42.1 483 The calculate flag is a user defined field, IoT server can use this filed to handle different meters with different pulse factors. For example, if there are 100 water meters, meter 1~~50 are 1 liter/pulse and meter 51 ~~ 100 has 1.5 liter/pulse.
David Huang 2.1 484
485 User can set calculate flag to 1 for meter 1~~50 and 2 for meter 51 ~~ 100, So IoT Server can use this field for calculation.
486
487 Default value: 0. 
488
489 Range (6 bits): (b)000000 ~~ (b) 111111
490
Edwin Chen 42.1 491
David Huang 2.1 492
Xiaoling 48.2 493 === 2.4.6  Alarm ===
494
495
Xiaoling 48.10 496 See [[Alarm Base on Timeout>>||anchor="H2.7A0AlarmBaseonTimeout"]]
David Huang 2.1 497
Edwin Chen 42.1 498
David Huang 2.1 499
Xiaoling 48.2 500 === 2.4.7  Contact Status ===
501
502
David Huang 2.1 503 0: Open
504
505 1: Close
506
Edwin Chen 42.1 507
David Huang 2.1 508
Xiaoling 48.2 509 === 2.4.8  Total pulse ===
510
511
Xiaoling 48.11 512 Total pulse/counting based on dry [[contact trigger event>>||anchor="H2.12Setcountnumber"]]
David Huang 2.1 513
514 Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215
515
Edwin Chen 42.1 516
David Huang 2.1 517
Xiaoling 48.2 518 === 2.4.9  The last open duration ===
519
520
David Huang 2.1 521 Dry Contact last open duration.
522
523 Unit: min.
524
David Huang 31.1 525 [[image:image-20221021111346-17.png||height="146" width="770"]]
David Huang 2.1 526
527
528
Xiaoling 48.2 529 === 2.4.10  Timestamp ===
530
531
Edwin Chen 42.1 532 Timestamp : 0x6315537b =1662342011
David Huang 2.1 533
534 Convert Unix timestamp to time 2022-9-5 9:40:11.
535
536 **~ **
537
538
Xiaoling 48.2 539 == 2.5  Downlink Payload ==
540
541
David Huang 2.1 542 By default, CPN01 prints the downlink payload to console port.
543
David Huang 31.1 544 [[image:image-20221021111414-18.png]] ​
David Huang 2.1 545
Xiaoling 48.2 546
David Huang 2.1 547 **Examples:**
548
Xiaoling 48.2 549 * (% style="color:#037691" %)**Set TDC**
David Huang 2.1 550
551 If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.
552
553 Payload:    01 00 00 1E    TDC=30S
554
555 Payload:    01 00 00 3C    TDC=60S
556
Xiaoling 48.2 557 * (% style="color:#037691" %)**Reset**
David Huang 2.1 558
559 If payload = 0x04FF, it will reset the NSE01
560
Xiaoling 48.2 561 * (% style="color:#037691" %)**INTMOD**
David Huang 2.1 562
563 Downlink Payload: 06000003, Set AT+INTMOD=3
564
565
Xiaoling 48.2 566
567 == 2.6  ​LED Indicator ==
568
569
Edwin Chen 42.1 570 The CPN01 has an internal LED which is to show the status of different states.
David Huang 2.1 571
David Huang 45.1 572 * When the device starts normally, the LED will light up for 1 second.
David Huang 2.1 573 * After CPN01 join NB-IoT network. The LED will be ON for 3 seconds.
574 * For each uplink probe, LED will be on for 500ms.
575
Xiaoling 48.2 576 == 2.7  Alarm Base on Timeout ==
David Huang 2.1 577
Xiaoling 48.2 578
Edwin Chen 42.1 579 CPN01 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:
David Huang 2.1 580
581
Xiaoling 48.2 582 (% style="color:blue" %)**1. Keep Status: Status to be monitor**
David Huang 2.1 583
584 Keep Status = 1: Monitor Close to Open event
585
586 Keep Status = 0: Monitor Open to Close event
587
588
Xiaoling 48.2 589 (% style="color:blue" %)**2. Keep Time: Timeout to send an Alarm**
David Huang 2.1 590
591 Range 0 ~~ 65535(0xFFFF) seconds.
592
593 If keep time = 0, Disable Alarm Base on Timeout feature.
594
595 If keep time > 0, device will monitor the keep status event and send an alarm when status doesn’t change after timeout.
596
597
Xiaoling 48.2 598 (% style="color:blue" %)**AT Command to configure:**
David Huang 2.1 599
Xiaoling 48.2 600 (% 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. CPN01 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.
David Huang 2.1 601
Xiaoling 48.2 602 (% style="color:#037691" %)**AT+TTRIG=0,0 ** (%%) **~-~->** Default Value, disable timeout Alarm.
David Huang 2.1 603
Edwin Chen 42.1 604
David Huang 2.1 605
Xiaoling 48.2 606 == 2.8  Set debug mode ==
607
608
David Huang 2.1 609 Feature: Enable or Disable debug mode
610
Xiaoling 48.2 611 (% style="color:blue" %)**AT Command: AT+DEBUG**
David Huang 2.1 612
David Huang 31.1 613 [[image:image-20221021111629-21.png]]
David Huang 2.1 614
615
Xiaoling 48.2 616
617 == 2.9  Clear Flash Record ==
618
619
David Huang 2.1 620 Feature: Clear flash storage for data log feature.
621
Xiaoling 48.2 622 (% style="color:blue" %)**AT Command: AT+CLRDTA**
David Huang 2.1 623
David Huang 31.1 624 [[image:image-20221021111527-19.png]]
David Huang 2.1 625
626
627
Xiaoling 48.2 628 == 2.10  Set trigger mode ==
629
630
631 (% style="color:blue" %)**AT Command: AT+TTRMOD**
632
David Huang 2.1 633 Feature: Set the trigger interrupt mode.
634
David Huang 31.1 635 [[image:image-20221021111552-20.png]]
David Huang 2.1 636
637
Xiaoling 48.2 638
639 == 2.11  Set the calculate flag ==
640
641
David Huang 2.1 642 Feature: Set the calculate flag
643
Xiaoling 48.2 644 (% style="color:blue" %)**AT Command: AT+CALCFLAG**
David Huang 2.1 645
David Huang 31.1 646 [[image:image-20221021111711-22.png]]
David Huang 2.1 647
648
Xiaoling 48.2 649
650 == 2.12 Set count number ==
651
652
David Huang 2.1 653 Feature: Manually set the count number
654
Xiaoling 48.2 655 (% style="color:blue" %)**AT Command: AT+SETCNT**
David Huang 2.1 656
David Huang 31.1 657 [[image:image-20221021111748-24.png]]
David Huang 2.1 658
659
660
Xiaoling 48.2 661 == 2.13  Set the number of data to be uploaded and the recording time ==
David Huang 2.1 662
663
Xiaoling 48.2 664 (% style="color:blue" %)**AT Command:**
David Huang 2.1 665
Xiaoling 48.2 666 (% 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)
David Huang 2.1 667
Xiaoling 48.2 668 (% style="color:#037691" %)**AT+NOUD=8 ** (%%)~/~/  The device uploads 8 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
David Huang 2.1 669
670
Xiaoling 48.2 671
672 == 2.14  Read or Clear cached data ==
673
674
675 (% style="color:blue" %)**AT Command:**
676
677 (% style="color:#037691" %)**AT+CDP**  (%%) ~/~/ Read cached data
678
679 (% style="color:#037691" %)**AT+CDP=0**  (%%) ~/~/ Clear cached data ​
680
David Huang 31.1 681 [[image:image-20221021111810-25.png||height="364" width="797"]]
David Huang 2.1 682
683
684
Xiaoling 48.2 685 == 2.15  ​Firmware Change Log ==
David Huang 2.1 686
Xiaoling 48.2 687
Xiaoling 48.14 688 Download URL & Firmware Change log:  [[https:~~/~~/www.dropbox.com/sh/8p5nuvo6gh7je4n/AAAMP7MMusgbXMz9Ik7Ls03Ga?dl=0>>https://www.dropbox.com/sh/8p5nuvo6gh7je4n/AAAMP7MMusgbXMz9Ik7Ls03Ga?dl=0]]
David Huang 2.1 689
Xiaoling 48.12 690 Upgrade Instruction: [[Upgrade Firmware>>||anchor="H5.1200BHowtoUpgradeFirmware"]]
David Huang 2.1 691
692
693
Xiaoling 48.2 694 == 2.16  ​Battery Analysis ==
695
696
697 === 2.16.1  ​Battery Type ===
698
699
Edwin Chen 42.1 700 The CPN01 battery is a combination of an 8500mAh Li/SOCI2 Battery and a Super Capacitor. The battery is non-rechargeable battery type with a low discharge rate (<2% per year). This type of battery is commonly used in IoT devices such as water meter.
David Huang 2.1 701
Edwin Chen 42.1 702 The battery is designed to last for several years depends on the actual use environment and update interval. 
David Huang 2.1 703
Edwin Chen 42.1 704 The battery-related documents as below:
David Huang 2.1 705
706 * [[Battery Dimension>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
Xiaoling 48.2 707
David Huang 2.1 708 * [[Lithium-Thionyl Chloride Battery datasheet>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
Xiaoling 48.2 709
David Huang 2.1 710 * [[Lithium-ion Battery-Capacitor datasheet>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
711
David Huang 31.1 712 [[image:image-20221021111911-26.png]] ​
David Huang 2.1 713
714
Xiaoling 48.2 715
716 === 2.16.2  Power consumption Analyze ===
717
718
David Huang 2.1 719 Dragino battery powered product are all runs in Low Power mode. We have an update battery calculator which base on the measurement of the real device. User can use this calculator to check the battery life and calculate the battery life if want to use different transmit interval.
720
721 Instruction to use as below:
722
Xiaoling 48.2 723 (% style="color:blue" %)**Step 1:  **(%%)Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/]]
David Huang 2.1 724
Xiaoling 48.2 725 (% style="color:blue" %)**Step 2: **(%%) Open it and choose
David Huang 2.1 726
727 * Product Model
Xiaoling 48.2 728
David Huang 2.1 729 * Uplink Interval
Xiaoling 48.2 730
David Huang 2.1 731 * Working Mode
732
733 And the Life expectation in difference case will be shown on the right.
734
Xiaoling 48.2 735 [[image:1666596205057-567.png]] ​
David Huang 2.1 736
737
Xiaoling 48.2 738
739 === 2.16.3  ​Battery Note ===
740
741
David Huang 2.1 742 The Li-SICO battery is designed for small current / long period application. It is not good to use a high current, short period transmit method. The recommended minimum period for use of this battery is 5 minutes. If you use a shorter period time to transmit LoRa, then the battery life may be decreased.
743
744
Xiaoling 48.2 745
746 === 2.16.4  Replace the battery ===
747
748
David Huang 2.1 749 The default battery pack of CPN01 includes a ER26500 plus super capacitor. If user can't find this pack locally, they can find ER26500 or equivalence without the SPC1520 capacitor, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes).
750
Edwin Chen 42.1 751
David Huang 2.1 752
Xiaoling 48.2 753 = 3. ​ Access NB-IoT Module =
754
755
David Huang 2.1 756 Users can directly access the AT command set of the NB-IoT module.
757
758 The AT Command set can refer the BC35-G NB-IoT Module AT Command: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC35-G/>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC35-G/]] 
759
David Huang 31.1 760 [[image:image-20221021112006-28.png]] ​
David Huang 2.1 761
762
763
Xiaoling 48.2 764 = 4.  Using the AT Commands =
765
766
767 == 4.1  Access AT Commands ==
768
769
David Huang 2.1 770 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]]
771
772 AT+<CMD>?  : Help on <CMD>
773
774 AT+<CMD>         : Run <CMD>
775
776 AT+<CMD>=<value> : Set the value
777
778 AT+<CMD>=?  : Get the value
779
780
Xiaoling 48.2 781 (% style="color:blue" %)**General Commands**      
782
David Huang 2.1 783 AT  : Attention       
784
785 AT?  : Short Help     
786
787 ATZ  : MCU Reset    
788
789 AT+TDC  : Application Data Transmission Interval
790
791 AT+CFG  : Print all configurations
792
793 AT+CFGMOD           : Working mode selection
794
795 AT+INTMOD            : Set the trigger interrupt mode
796
797 AT+5VT  : Set extend the time of 5V power  
798
799 AT+PRO  : Choose agreement
800
801 AT+RXDL  : Extend the sending and receiving time
802
803 AT+SERVADDR  : Server Address
804
Xiaoling 48.2 805 AT+TR      :  Get or Set record time
David Huang 2.1 806
807 AT+NOUD      : Get or Set the number of data to be uploaded
808
Xiaoling 48.2 809 AT+CDP     :  Read or Clear cached data
David Huang 2.1 810
811 AT+ DEBUG   : Enable or Disable debug mode
812
813 AT+ TTRIG   : Get or Set Alarm Base on Timeout
814
815 AT+ TTRMOD   : Get or Set the trigger interrupt mode(0:falling,1:rising)
816
817 AT+ CALCFLAG   : Get or Set the calculate flag
818
819 AT+ CLRC   : Clear current door open count
820
821
Xiaoling 48.2 822 (% style="color:blue" %)**COAP Management**      
823
David Huang 2.1 824 AT+URI            : Resource parameters
825
826
Xiaoling 48.2 827 (% style="color:blue" %)**UDP Management**
828
David Huang 2.1 829 AT+CFM          : Upload confirmation mode (only valid for UDP)
830
831
Xiaoling 48.2 832 (% style="color:blue" %)**MQTT Management**
833
David Huang 2.1 834 AT+CLIENT               : Get or Set MQTT client
835
836 AT+UNAME  : Get or Set MQTT Username
837
838 AT+PWD                  : Get or Set MQTT password
839
840 AT+PUBTOPIC  : Get or Set MQTT publish topic
841
842 AT+SUBTOPIC  : Get or Set MQTT subscription topic
843
844
Xiaoling 48.2 845 (% style="color:blue" %)**Information**          
846
David Huang 2.1 847 AT+FDR  : Factory Data Reset
848
849 AT+PWORD  : Serial Access Password
850
851
852
Xiaoling 48.2 853 = ​5.  FAQ =
David Huang 2.1 854
855
Xiaoling 48.2 856 == 5.1 ​ How to Upgrade Firmware ==
David Huang 2.1 857
858
Xiaoling 48.2 859 User can upgrade the firmware for 1) bug fix, 2) new feature release.
David Huang 2.1 860
Xiaoling 48.2 861 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]]
David Huang 2.1 862
Xiaoling 48.2 863 (% style="color:red" %)**Notice: **(% style="color:blue" %)**CPN01** (%%)**and (% style="color:blue" %)CPL01(%%)**(% style="color:blue" %) (%%)**share the same mother board. They use the same connection and method to update.**
David Huang 2.1 864
Edwin Chen 42.1 865
David Huang 2.1 866
Xiaoling 48.2 867 = 6.  Trouble Shooting =
David Huang 2.1 868
Edwin Chen 42.1 869
Xiaoling 48.2 870 == 6.1  ​Connection problem when uploading firmware ==
David Huang 2.1 871
872
Xiaoling 48.2 873 (% 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]]
Edwin Chen 42.1 874
David Huang 2.1 875
876
Xiaoling 48.2 877 == 6.2  AT Command input doesn't work ==
David Huang 2.1 878
879
Xiaoling 48.2 880 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.
David Huang 2.1 881
882
883
Xiaoling 48.2 884 = 7. ​ Order Info =
David Huang 2.1 885
886
Xiaoling 48.2 887 Part Number**:** CPN01
David Huang 2.1 888
889
890
Xiaoling 48.2 891 = 8.  Packing Info =
David Huang 2.1 892
893
Xiaoling 48.2 894 (% style="color:blue" %)**Package Includes**:
David Huang 2.1 895
Xiaoling 48.2 896 * CPN01 Open/Close Sensor x 1
897 * External antenna x 1
David Huang 2.1 898
Xiaoling 48.2 899 (% style="color:blue" %)**Dimension and weight**:
David Huang 2.1 900
Xiaoling 48.2 901 * Size: 195 x 125 x 55 mm
902 * Weight:   420g
David Huang 2.1 903
Xiaoling 48.2 904 = 9.  Support =
David Huang 2.1 905
906
Xiaoling 48.2 907 * 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.
David Huang 2.1 908
Xiaoling 48.2 909 * 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]]
David Huang 2.1 910
Xiaoling 48.2 911