Version 179.1 by Bei Jinggeng on 2024/08/07 11:24

Show last authors
1 (% class="wikigeneratedid" id="HTableofContents:" %)
2 **Table of Contents:**
3
4 {{toc/}}
5
6
7
8
9
10
11 = 1. The use of this guideline =
12
13
14 This configure instruction is for Dragino NB-IoT models with -NB or -NS suffix, for example DDS75-NB. These models use the same NB-IoT Module **[[BC660K-GL>>https://www.quectel.com/product/lpwa-bc660k-gl-nb2]]** and has the same software structure. The have the same configure instruction to different IoT servers. Use can follow the instruction here to see how to configure to connect to those servers.
15
16
17 = 2. Attach Network =
18
19 == 2.1 General Configure to attach network ==
20
21
22 To attache NB-IoT sensors to NB-IoT Network, You need to:
23
24 1. Get a NB-IoT SIM card from Service Provider. (Not the same as the SIM card we use in mobile phone)
25 1. Power Off End Node ( See below for the power off/on position)
26 1. Insert the SIM card to Sensor. ( See below for direction)
27 1. Power On End Node
28 1. [[Configure APN>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20configure%20APN%20in%20the%20node/]] in the sensor (AT+APN=<APN>), example AT+APN=iot.1nce.net
29
30 [[image:image-20240208102804-1.png||height="286" width="696"]]
31
32 [[image:image-20230808205045-1.png||height="293" width="438"]]
33
34 After doing above, the NB-IoT Sensors should be able to attach to NB-IoT network .
35
36 The -NB and -NS models support (% style="color:blue" %)**LTE Cat NB2**(%%), with below frequency band: multiple frequency bands of (% style="color:blue" %)**B1/B2/B3/B4/B5/B8/B12/B13/B14/B17/B18/B19/B20/B25/B28/B66/B70/B85**(%%) . Make sure you use a the NB-IoT SIM card.
37
38 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:878px" %)
39 |(% style="background-color:#4f81bd; color:white; width:117px" %)**SIM Provider**|(% style="background-color:#4f81bd; color:white; width:151px" %)**AT+APN=**|(% style="background-color:#4f81bd; color:white; width:474px" %)**NB-IoT Coverage**|(% style="background-color:#4f81bd; color:white; width:135px" %)**Comments**
40 |(% style="width:117px" %)**[[1NCE>>https://1nce.com]]**|(% style="width:151px" %)iot.1nce.net|(% style="width:474px" %)(((
41 **[[Coverage Reference Link>>https://1nce.com/en-ap/1nce-connect]]**
42
43 Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Finland, Germany, Great Britain, Greece, Hungary, Ireland, Italy, Latvia, Malta, Netherlands, Norway, Puerto Rico, Russia, Slovak , Republic, Slovenia, Spain, Sweden, Switzerland, Taiwan, USA, UK, US Virgin Islands
44 )))|(% style="width:135px" %)UK: Band20
45 |(% style="width:117px" %)China Mobile|(% style="width:151px" %)No need configure|(% style="width:474px" %)China Mainland, HongKong|(% style="width:135px" %)
46 |(% style="width:117px" %)China Telecom|(% style="width:151px" %)ctnb|(% style="width:474px" %)China Mainland|(% style="width:135px" %)
47
48 == 2.2 Speed Up Network Attach time ==
49
50
51 BC660K-GL supports multi bands (% style="color:blue" %)**B1/B2/B3/B4/B5/B8/B12/B13/B14/B17/B18/B19/B20/B25/B28/B66/B70/B85. **(%%) It will search one by one and try to attach, this will take a lot of time and even cause attach fail and show **Signal Strenght:99**. User can lock the band to specify band for its operator to make this faster.
52
53 (% style="color:#037691" %)**AT+QBAND?       **(%%) ~/~/ Check what is the current used frequency band
54 (% style="color:#037691" %)**AT+QBAND=1,4    **(%%) ~/~/ Set to use 1 frequency band. Band4
55 (% style="color:#037691" %)**Europe General**(%%) **AT+QBAND=2,8,20 ** ~/~/ Set to use 2 frequency bands. Band 8 and Band 20
56 (% style="color:#037691" %)**Global General**(%%) : **AT+QBAND=10,8,20,28,2,4,12,13,66,85,5**
57
58 (% style="color:#037691" %)**Verizon**(%%)** ** AT+QBAND=1,13
59 (% style="color:#037691" %)**AT&T**(%%)           AT+QBAND=3,12,4,2
60 (% style="color:#037691" %)**Telstra**(%%)        AT+QBAND=1,28
61 (% style="color:#037691" %)**Softband**(%%)     AT+QBAND=2,3,8
62
63 After connection is successful, user can use (% style="color:#037691" %)**AT+QENG=0 **(%%) to check which band is actually in used.
64
65 By default, device will search network for 5 minutes. User can set the time to 10 minutes by (% style="color:#037691" %)**AT+CSQTIME=10 **(%%)so it can search longer.
66
67 See bands used for different provider:** [[NB-IoT Deployment , Bands, Operator list>>http://wiki.dragino.com/xwiki/bin/view/Main/NB-IoT%20Deployment%20%2C%20Bands%2C%20Operator%20list/]]**
68
69
70 = 3. Configure to connect to different servers =
71
72 == 3.1 General UDP Connection ==
73
74
75 The NB-IoT Sensor can send packet to server use UDP protocol.
76
77
78 === 3.1.1 Simulate UDP Connection by PC tool ===
79
80
81 We can use PC tool to simulate UDP connection to make sure server works ok.
82
83 [[image:image-20230802112413-1.png||height="468" width="1024"]]
84
85
86 === 3.1.2 Configure NB-IoT Sensor ===
87
88 ==== 3.1.2.1 AT Commands ====
89
90
91 (% style="color:blue" %)**AT Commands:**
92
93 * (% style="color:#037691" %)**AT+PRO=2,0**  (%%) ~/~/  Set to use UDP protocol to uplink ,Payload Type select Hex payload
94
95 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5601**  (%%) ~/~/  Set UDP server address and port
96
97 [[image:image-20230802112413-2.png]]
98
99
100 ==== 3.1.2.2 Uplink Example ====
101
102
103 [[image:image-20230802112413-3.png]]
104
105
106 == 3.2 General MQTT Connection ==
107
108
109 The NB-IoT Sensor can send packet to server use MQTT protocol.
110
111 Below are the commands.
112
113 (% style="color:blue" %)**AT Commands:**
114
115 * (% style="color:#037691" %)**AT+PRO=3,0**   (%%) ~/~/  Set to use MQTT protocol to uplink, Payload Type select Hex payload.
116
117 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,1883**  (%%) ~/~/  Set MQTT server address and port
118
119 * (% style="color:#037691" %)**AT+CLIENT=CLIENT**     (%%) ~/~/  Set up the CLIENT of MQTT
120
121 * (% style="color:#037691" %)**AT+UNAME=UNAME**        (%%) ~/~/  Set the username of MQTT
122
123 * (% style="color:#037691" %)**AT+PWD=PWD**             (%%) ~/~/  Set the password of MQTT
124
125 * (% style="color:#037691" %)**AT+PUBTOPIC=NSE01_PUB**  (%%) ~/~/  Set the sending topic of MQTT
126
127 * (% style="color:#037691" %)**AT+SUBTOPIC=NSE01_SUB**  (%%) ~/~/  Set the subscription topic of MQTT
128
129 [[image:image-20230802112413-4.png]]
130
131 [[image:image-20230802112413-5.png||height="530" width="987"]]
132
133 (% style="color:red" %)**Notice: 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.**
134
135
136 == 3.3 [[ThingSpeak>>url:https://thingspeak.com/]] (via MQTT) ==
137
138 === 3.3.1 Get MQTT Credentials ===
139
140
141 [[ThingSpeak>>url:https://thingspeak.com/]] connection uses MQTT Connection. So we need to get MQTT Credentials first. You need to point MQTT Devices to ThingSpeak Channel as well.
142
143 [[image:image-20230802112413-6.png||height="336" width="925"]]
144
145 [[image:image-20230802112413-7.png]]
146
147
148 === 3.3.2 Simulate with MQTT.fx ===
149
150 ==== 3.3.2.1 Establish MQTT Connection ====
151
152
153 After we got MQTT Credentials, we can first simulate with PC tool MQTT.fx tool to see if the Credentials and settings are fine.
154
155 [[image:image-20230802112413-8.png]]
156
157 * (% style="color:#037691" %)**Broker Address:**(%%) mqtt3.thingspeak.com
158
159 * (% style="color:#037691" %)**Broker Port:**(%%) 1883
160
161 * (% style="color:#037691" %)**Client ID:**(%%) <Your ThingSpeak MQTT ClientID>
162
163 * (% style="color:#037691" %)**User Name:**(%%) <Your ThingSpeak MQTT User Name>
164
165 * (% style="color:#037691" %)**Password:**(%%) <Your ThingSpeak MQTT Password>
166
167 ==== 3.3.2.2 Publish Data to ThingSpeak Channel ====
168
169
170 [[image:image-20230802112413-9.png]]
171
172 [[image:image-20230802112413-10.png]]
173
174
175 (% style="color:blue" %)**In MQTT.fx, we can publish below info:**
176
177 * (% style="color:#037691" %)**Topic:**(%%) channels/YOUR_CHANNEL_ID/publish
178
179 * (% style="color:#037691" %)**Payload:**(%%) field1=63&field2=67&status=MQTTPUBLISH
180
181 Where 63 and 67 are the value to be published to field1 & field2.
182
183
184 (% style="color:blue" %)**Result: **
185
186 [[image:image-20230802112413-11.png||height="539" width="901"]]
187
188
189 === 3.3.3 Configure NB-IoT Sensor for connection ===
190
191 ==== 3.3.3.1 AT Commands: ====
192
193
194 In the NB-IoT, we can run below commands so to publish the channels like MQTT.fx
195
196 * (% style="color:blue" %)**AT+PRO=3,1** (%%) ~/~/ Set to use ThingSpeak Server and Related Payload
197
198 * (% style="color:blue" %)**AT+CLIENT=<Your ThingSpeak MQTT ClientID>**
199
200 * (% style="color:blue" %)**AT+UNAME=<Your ThingSpeak MQTT User Name>**
201
202 * (% style="color:blue" %)**AT+PWD=<Your ThingSpeak MQTT Password>**
203
204 * (% style="color:blue" %)**AT+PUBTOPIC=<YOUR_CHANNEL_ID>**
205
206 * (% style="color:blue" %)**AT+SUBTOPIC=<YOUR_CHANNEL_ID>**
207
208 ==== 3.3.3.2 Uplink Examples ====
209
210
211 [[image:image-20230816201942-1.png]]
212
213 For SE01-NB
214
215 For DDS20-NB
216
217 For DDS45-NB
218
219 For DDS75-NB
220
221 For NMDS120-NB
222
223 For SPH01-NB
224
225 For NLM01-NB
226
227 For NMDS200-NB
228
229 For CPN01-NB
230
231 For DS03A-NB
232
233 For SN50V3-NB
234
235
236 ==== 3.3.3.3 Map fields to sensor value ====
237
238
239 When NB-IoT sensor upload to ThingSpeak. The payload already specify which fileds related to which sensor value. Use need to create fileds in Channels Settings. with name so to see the value correctly.
240
241
242 [[image:image-20230802112413-12.png||height="504" width="1011"]]
243
244 [[image:image-20230802112413-13.png||height="331" width="978"]]
245
246
247 Below is the NB-IoT Product Table show the mapping.
248
249 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:1424px" %)
250 |(% style="background-color:#4f81bd; width:143px" %) |(% style="background-color:#4f81bd; color:white; width:103px" %)Field1|(% style="background-color:#4f81bd; color:white; width:102px" %)Field2|(% style="background-color:#4f81bd; color:white; width:157px" %)Field3|(% style="background-color:#4f81bd; color:white; width:154px" %)Field4|(% style="background-color:#4f81bd; color:white; width:153px" %)Field5|(% style="background-color:#4f81bd; color:white; width:151px" %)Field6|(% style="background-color:#4f81bd; color:white; width:160px" %)Field7|(% style="background-color:#4f81bd; color:white; width:152px" %)Field8|(% style="background-color:#4f81bd; color:white; width:67px" %)Field9|(% style="background-color:#4f81bd; color:white; width:69px" %)Field10
251 |(% style="background-color:#4f81bd; color:white; width:143px" %)S31x-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)Battery|(% style="width:154px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
252 |(% style="background-color:#4f81bd; color:white; width:143px" %)SE01-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)conduct|(% style="width:154px" %)dielectric_constant|(% style="width:153px" %)Battery|(% style="width:151px" %)RSSI|(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
253 |(% style="background-color:#4f81bd; color:white; width:143px" %)DDS20-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:154px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
254 |(% style="background-color:#4f81bd; color:white; width:143px" %)DDS45-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:154px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
255 |(% style="background-color:#4f81bd; color:white; width:143px" %)DDS75-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:154px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
256 |(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS120-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:154px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
257 |(% rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SPH01-NB|(% style="width:103px" %)ph|(% style="width:102px" %)Temperature|(% style="width:157px" %)Battery|(% style="width:154px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% colspan="1" rowspan="1" style="width:69px" %)
258 |(% style="background-color:#4f81bd; color:white; width:143px" %)NLM01-NB|(% style="width:103px" %)Humidity|(% style="width:102px" %)Temperature|(% style="width:157px" %)Battery|(% style="width:154px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
259 |(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS200-NB|(% style="width:103px" %)distance1|(% style="width:102px" %)distance2|(% style="width:157px" %)Battery|(% style="width:154px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
260 |(% style="background-color:#4f81bd; color:white; width:143px" %)CPN01-NB|(% style="width:103px" %)alarm|(% style="width:102px" %)count|(% style="width:157px" %)door open duration|(% style="width:154px" %)calc flag|(% style="width:153px" %)Battery|(% style="width:151px" %)RSSI|(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
261 |(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)DS03A-NB|(% colspan="1" rowspan="1" style="width:103px" %)level|(% colspan="1" rowspan="1" style="width:102px" %)alarm|(% colspan="1" rowspan="1" style="width:157px" %)pb14door open num|(% colspan="1" rowspan="1" style="width:154px" %)pb14 last open time|(% colspan="1" rowspan="1" style="width:153px" %)pb15 level status|(% colspan="1" rowspan="1" style="width:151px" %)pb15 alarm status|(% colspan="1" rowspan="1" style="width:160px" %)pb15 door open num|(% colspan="1" rowspan="1" style="width:152px" %)pb15 last open time|(% colspan="1" rowspan="1" style="width:67px" %)Battery|(% colspan="1" rowspan="1" style="width:69px" %)RSSI
262 |(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod1|(% colspan="1" rowspan="1" style="width:103px" %)mod|(% colspan="1" rowspan="1" style="width:102px" %)Battery|(% colspan="1" rowspan="1" style="width:157px" %)RSSI|(% colspan="1" rowspan="1" style="width:154px" %)DS18B20 Temp|(% colspan="1" rowspan="1" style="width:153px" %)exit_state/input PA4|(% colspan="1" rowspan="1" style="width:151px" %)adc0|(% colspan="1" rowspan="1" style="width:160px" %)Temperature |(% colspan="1" rowspan="1" style="width:152px" %)Humidity|(% colspan="1" rowspan="1" style="width:67px" %) |(% colspan="1" rowspan="1" style="width:69px" %)
263 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod2|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:154px" %)DS18B20 Temp|(% colspan="1" style="width:153px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)adc0|(% colspan="1" style="width:160px" %)distance|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)
264 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod3|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:154px" %)adc0|(% colspan="1" style="width:153px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)adc1|(% colspan="1" style="width:160px" %)Temperature|(% colspan="1" style="width:152px" %)Humidity|(% colspan="1" style="width:67px" %)adc4|(% colspan="1" style="width:69px" %)
265 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod4|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:154px" %)DS18B20 Temp|(% colspan="1" style="width:153px" %)adc0|(% colspan="1" style="width:151px" %)exit_state/input PA4|(% colspan="1" style="width:160px" %)DS18B20 Temp2|(% colspan="1" style="width:152px" %)DS18B20 Temp3|(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)
266 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod5|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:154px" %)DS18B20 Temp|(% colspan="1" style="width:153px" %)adc0|(% colspan="1" style="width:151px" %)exit_state/input PA4|(% colspan="1" style="width:160px" %)Weight|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)
267 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod6|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:154px" %)count|(% colspan="1" style="width:153px" %) |(% colspan="1" style="width:151px" %) |(% colspan="1" style="width:160px" %) |(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)
268
269 == 3.4 [[Datacake>>https://datacake.co/]] ==
270
271
272 (% class="wikigeneratedid" %)
273 Dragino NB-IoT sensors has its template in **[[Datacake>>https://datacake.co/]]** Platform. There are two version for NB Sensor,
274
275
276 (% class="wikigeneratedid" %)
277 As example for S31B-NB. there are two versions: **S31B-NB-1D and S31B-NB-GE.**
278
279 * (% style="color:blue" %)**S31B-NB-1D**(%%): This version have pre-configure DataCake connection. User just need to Power on this device, it will auto connect send data to DataCake Server.
280
281 * (% style="color:blue" %)**S31B-NB-GE**(%%): This verson doesn't have pre-configure Datacake connection. User need to enter the AT Commands to connect to Datacake. See below for instruction.
282
283 === 3.4.1 For device Already has template ===
284
285 ==== 3.4.1.1 Create Device ====
286
287 (% style="color:blue" %)**Add Device**(%%) in DataCake.
288
289 [[image:image-20230808162301-1.png||height="453" width="952"]]
290
291
292 [[image:image-20230808162342-2.png||height="541" width="952"]]
293
294
295 (% style="color:blue" %)**Choose the correct model**(%%) from template.
296
297 [[image:image-20230808162421-3.png]]
298
299
300 (% style="color:blue" %)**Fill Device ID**(%%). The device ID needs to be filled in with IMEI, and a prefix of(% style="color:blue" %)** 'f' **(%%)needs to be added.
301
302 [[image:image-20230808163612-7.png||height="549" width="952"]]
303
304 [[image:image-20230808163035-5.png]]
305
306 [[image:image-20230808163049-6.png||height="544" width="926"]]
307
308
309 === 3.4.2 For Device already registered in DataCake before shipped ===
310
311 ==== 3.4.2.1 Scan QR Code to get the device info ====
312
313
314 Users can use their phones or computers to scan QR codes to obtain device data information.
315
316 [[image:image-20230808170051-8.png||height="255" width="259"]]
317
318 [[image:image-20230808170548-9.png]]
319
320
321 ==== 3.4.2.2 Claim Device to User Account ====
322
323
324 By Default, the device is registered in Dragino's DataCake Account. User can Claim it to his account.
325
326
327 === 3.4.3 Manual Add Decoder in DataCake ( don't use the template in DataCake) ===
328
329
330 **Step1: Add a device**
331
332 [[image:image-20240129170024-1.png||height="330" width="900"]]
333
334
335 **Step2: Choose your device type,please select dragino NB-IOT device**
336
337 [[image:image-20240129170216-2.png||height="534" width="643"]]
338
339
340 **Step3: Choose to create a new device**
341
342 [[image:image-20240129170539-3.png||height="459" width="646"]]
343
344
345 **Step4: Fill in the device ID of your NB device**
346
347 [[image:image-20240202111546-1.png||height="378" width="651"]]
348
349
350 **Step5: Please select your device plan according to your needs and complete the creation of the device**
351
352 [[image:image-20240129171236-6.png||height="450" width="648"]]
353
354
355 **Step6: Please add the decoder at the payload decoder of the device configuration.**
356
357 **Decoder location:**[[dragino-end-node-decoder/Datacake-Dragino_NB at main · dragino/dragino-end-node-decoder (github.com)>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/Datacake-Dragino_NB]]
358
359 **Due to version update, please use the following decoder for the new version firmware**
360 [[dragino-end-node-decoder/Datacake-Dragino_NB_New_Version at main · dragino/dragino-end-node-decoder (github.com)>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/Datacake-Dragino_NB_New_Version]]
361
362 [[image:image-20240129172056-7.png||height="457" width="816"]]
363
364 [[image:image-20240129173116-9.png||height="499" width="814"]]
365
366
367 **Step7: Add the output of the decoder as a field**
368
369 [[image:image-20240129173541-10.png||height="592" width="968"]]
370
371
372 **Step8: Customize the dashboard and use fields as parameters of the dashboard**
373
374 [[image:image-20240129174518-11.png||height="147" width="1042"]]
375
376 [[image:image-20240129174657-12.png||height="538" width="916"]]
377
378 [[image:image-20240129174840-13.png||height="536" width="750"]]
379
380
381 === 3.4.4 For device have not configured to connect to DataCake ===
382
383
384 (% class="lead" %)
385 Use AT command for connecting to DataCake
386
387 (% style="color:blue" %)**AT+PRO=2,0**
388
389 (% style="color:blue" %)**AT+SERVADDR=67.207.76.90,4445**
390
391
392 == 3.5 Node-Red (via MQTT) ==
393
394 === 3.5.1 Configure [[Node-Red>>http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/]] ===
395
396
397 Take S31-NB UDP protocol as an example.
398
399 Dragino provides input flow examples for the sensors.
400
401 User can download the required JSON file through Dragino Node-RED input flow template.
402
403 Download sample JSON file link: [[https:~~/~~/www.dropbox.com/sh/mduw85jcuwsua22/AAAvwPhg9z6dLjJhmZjqBf_ma?dl=0>>url:https://www.dropbox.com/sh/mduw85jcuwsua22/AAAvwPhg9z6dLjJhmZjqBf_ma?dl=0]]
404
405 We can directly import the template.
406
407 The templates for S31-NB and NB95S31B are the same.
408
409
410 [[image:image-20230809173127-4.png]]
411
412
413 Please select the NB95S31B template.
414
415 [[image:image-20230809173310-5.png||height="558" width="926"]]
416
417 [[image:image-20230809173438-6.png]]
418
419 [[image:image-20230809173800-7.png]]
420
421
422 Successfully imported template.
423
424 [[image:image-20230809173835-8.png||height="515" width="860"]]
425
426
427 Users can set UDP port.
428
429 [[image:image-20230809174053-9.png]]
430
431
432 === 3.5.2 Simulate Connection ===
433
434
435 We have completed the configuration of UDP. We can try sending packets to node red.
436
437 [[image:image-20230810083934-1.png]]
438
439 [[image:image-20230810084048-2.png||height="535" width="1052"]]
440
441
442 === 3.5.3 Configure NB-IoT Sensors ===
443
444
445 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%) **~/~/ hex format or json format**
446 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>or User Defined**
447 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>or User Defined**
448 * (% style="color:#037691" %)**AT+CLIENT=<device name> or User Defined**
449 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
450 * (% style="color:#037691" %)**AT+PWD=“Your device token”**
451
452 == 3.6 ThingsBoard.Cloud (via MQTT) ==
453
454 === 3.6.1 Configure ThingsBoard ===
455
456 ==== 3.6.1.1 Create Device ====
457
458
459 Create a New Device in [[ThingsBoard>>url:https://thingsboard.cloud/]]. Record Device Name which is used for MQTT connection.
460
461 [[image:image-20230802112413-32.png||height="583" width="1066"]]
462
463
464 ==== 3.6.1.2 Create Uplink & Downlink Converter ====
465
466
467 (% style="color:blue" %)**Uplink Converter**
468
469 The purpose of the decoder function is to parse the incoming data and metadata to a format that ThingsBoard can consume. deviceName and deviceType are required, while attributes and telemetry are optional. Attributes and telemetry are flat key-value objects. Nested objects are not supported.
470
471 To create an uplink converter go to the (% style="color:blue" %)**Integrations center**(%%) -> (% style="color:blue" %)**Data converters**(%%) page and click (% style="color:blue" %)**“plus”** (%%)button. Name it (% style="color:blue" %)**“MQTT Uplink Converter”**(%%) and select type (% style="color:blue" %)"**Uplink"**(%%). Use debug mode for now.
472
473 [[image:image-20230802112413-33.png||height="597" width="1061"]]
474
475
476 (% style="color:blue" %)**Downlink Converter**
477
478 The Downlink converter transforming outgoing RPC message and then the Integration sends it to external MQTT broke
479
480 [[image:image-20230802112413-34.png||height="598" width="1063"]]
481
482 (% style="color:red" %)**Note: Our device payload is already human readable data. Therefore, users do not need to write decoders. Simply create by default.**
483
484
485 ==== 3.6.1.3 MQTT Integration Setup ====
486
487
488 Go to the (% style="color:blue" %)**Integrations center**(%%) **->** (% style="color:blue" %)**Integrations page**(%%) and click **“(% style="color:blue" %)plus(%%)”** icon to add a new integration. Name it (% style="color:blue" %)**“MQTT Integration”**(%%), select type (% style="color:blue" %)**MQTT**;
489
490 [[image:image-20230802112413-35.png||height="597" width="1062"]]
491
492
493 * The next steps is to add the recently created uplink and downlink converters;
494
495 [[image:image-20230802112413-36.png||height="598" width="1062"]]
496
497 [[image:image-20230802112413-37.png||height="598" width="1064"]]
498
499
500 (% style="color:blue" %)**Add a topic filter:**
501
502 Consistent with the theme of the node setting.
503
504 You can also select an MQTT QoS level. We use MQTT QoS level 0 (At most once) by default;
505
506 [[image:image-20230802112413-38.png||height="598" width="1064"]]
507
508
509 === 3.6.2 Simulate with MQTT.fx ===
510
511
512 [[image:image-20230802112413-39.png]]
513
514 [[image:image-20230802112413-40.png||height="525" width="980"]]
515
516
517 === 3.6.3 Configure NB-IoT Sensor ===
518
519
520 (% style="color:blue" %)**AT Commands**
521
522 * (% style="color:#037691" %)**AT+PRO=3,3  **(%%)** **~/~/ Use MQTT to connect to ThingsBoard. Payload Type set to 3.
523
524 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>**
525
526 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>**
527
528 * (% style="color:#037691" %)**AT+CLIENT=<device name> or User Defined**
529
530 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
531
532 * (% style="color:#037691" %)**AT+PWD=<device name> or User Defined**
533
534 Test Uplink by click the button for 1 second
535
536 [[image:image-20230802112413-41.png||height="496" width="828"]]
537
538 [[image:image-20230802112413-42.png]]
539
540 [[image:image-20230802112413-43.png||height="407" width="825"]]
541
542
543
544 == 3.7 ThingsBoard.Cloud (via COAP) ==
545
546 === 3.7.1 Configure ThingsBoard ===
547
548 ==== 3.7.1.1 Create Uplink & Downlink Converter ====
549
550
551 (% style="color:blue" %)**Uplink Converter**
552
553 The purpose of the decoder function is to parse the incoming data and metadata to a format that ThingsBoard can consume. deviceName and deviceType are required, while attributes and telemetry are optional. Attributes and telemetry are flat key-value objects. Nested objects are not supported.
554
555 To create an uplink converter go to the (% style="color:blue" %)**Integrations center**(%%) -> (% style="color:blue" %)**Data converters**(%%) page and click (% style="color:blue" %)**“plus”** (%%)button. Name it (% style="color:blue" %)**“COAP Uplink Converter”**(%%) and select type (% style="color:blue" %)"**Uplink"**(%%). Use debug mode for now.
556
557 [[image:image-20240729141300-1.png||height="552" width="1115"]]
558
559
560 (% style="color:blue" %)**Downlink Converter**
561
562 The Downlink converter transforming outgoing RPC message and then the Integration sends it to external COAP broker.
563
564 [[image:image-20240729142505-3.png||height="507" width="1023"]]
565
566
567 ==== 3.7.1.2 COAP Integration Setup ====
568
569
570 Go to the (% style="color:blue" %)**Integrations center**(%%) **->** (% style="color:blue" %)**Integrations page**(%%) and click **“(% style="color:blue" %)plus(%%)”** icon to add a new integration. Name it (% style="color:blue" %)**“CoAP Integration”**(%%), select type **COAP    **(% style="color:blue" %);
571
572 [[image:image-20240729144058-4.png||height="506" width="1021"]]
573
574
575 The next steps is to add the recently created uplink converters;
576
577 [[image:image-20240729150142-5.png||height="507" width="1023"]]
578
579
580 ==== 3.7.1.3 Add COAP Integration ====
581
582 ==== [[image:image-20240729161543-9.png||height="500" width="1009"]] ====
583
584
585 === 3.7.2 Node Configuration(Example: Connecting to the Thingsboard platform) ===
586
587 ==== 3.7.2.1 Instruction Description ====
588
589 * AT+PRO=1,0(HEX format uplink)  &AT+PRO=1,5(JSON format uplink)
590 * AT+SERVADDR=COAP Server Address,5683
591
592 Example: AT+SERVADDR=int.thingsboard.cloud,5683(The address is automatically generated when the COAP integration is created)
593
594 [[image:image-20240729172305-12.png||height="361" width="624"]]
595
596 Note:The port for the COAP protocol has been fixed to 5683
597
598
599 * AT+URL1=11,(% style="color:red" %)**character length**(%%),"Needs to be consistent with the CoAP endpoint URL in the platform"
600
601 If the module used is (% style="color:red" %)**BC660K, only one **(%%)URL directive needs to be configured,
602
603 e.g.
604
605 * AT+URL1=11,38, "i/faaaa241f-af4a-b780-4468-c671bb574858"
606
607 [[image:image-20240729172415-13.png||height="401" width="694"]]
608
609 If you are using a (% style="color:red" %)**BG95-M2**(%%) module, you need to configure (% style="color:red" %)**TWO**(%%) URL commands,
610
611 e.g.
612
613 * AT+URL1=11, "i";  
614 * AT+URL2=11,"/faaaa241f-af4a-b780-4468-c671bb574858"
615
616 [[image:image-20240729172500-14.png||height="403" width="700"]]
617
618
619 == 3.8 [[Tago.io>>url:https://admin.tago.io/]] (via MQTT) ==
620
621 === 3.8.1 Create device & Get Credentials ===
622
623
624 We use MQTT Connection to send data to [[Tago.io>>url:https://admin.tago.io/]]. We need to Create Device and Get MQTT Credentials first.
625
626 [[image:image-20230802112413-44.png]]
627
628 [[image:image-20230802112413-45.png]]
629
630
631 Go to the Device section and create a device. Then, go to the section tokens and copy your device-token.
632
633 [[image:image-20230802112413-46.png]]
634
635
636 The device needs to enable the TLS mode and set the (% style="color:blue" %)**AT+TLSMOD=1,0**(%%) command.
637
638 (% style="color:blue" %)**On the Connection Profile window, set the following information:**
639
640 * (% style="color:#037691" %)**Profile Name: “Any name”**
641
642 * (% style="color:#037691" %)**Broker Address: mqtt.tago.io**
643
644 * (% style="color:#037691" %)**Broker Port: 8883**
645
646 * (% style="color:#037691" %)**Client ID: “Any value”**
647
648 (% style="color:blue" %)**On the section User credentials, set the following information:**
649
650 * (% style="color:#037691" %)**User Name: “Any value”** (%%) **~/~/ Tago validates your user by the token only**
651
652 * (% style="color:#037691" %)**Password: “Your device token”**
653
654 * (% style="color:#037691" %)**PUBTOPIC: “Any value”**
655
656 * (% style="color:#037691" %)**SUBTOPIC: “Any value”**
657
658 (% style="color:blue" %)**AT command:**
659
660 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%) **~/~/ hex format or json format**
661
662 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>or User Defined**
663
664 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>or User Defined**
665
666 * (% style="color:#037691" %)**AT+CLIENT=<device name> or User Defined**
667
668 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
669
670 * (% style="color:#037691" %)**AT+PWD=“Your device token”**
671
672 === 3.8.2 Simulate with MQTT.fx ===
673
674
675 [[image:image-20230802112413-52.png]]
676
677
678 [[image:image-20230808105300-2.png||height="553" width="1026"]]
679
680
681 Users can run the (% style="color:blue" %)**AT+PRO=3,5**(%%) command, and the payload will be converted to **JSON format**.
682
683 [[image:image-20230808105217-1.png||height="556" width="1031"]]
684
685 [[image:image-20230808105329-3.png]]
686
687
688 === 3.8.3 tago data ===
689
690
691 [[image:image-20230802112413-50.png||height="242" width="1037"]]
692
693 [[image:image-20230802112413-51.png||height="184" width="696"]]
694
695
696 == 3.9 TCP Connection ==
697
698
699 (% style="color:blue" %)**AT command:**
700
701 * (% style="color:#037691" %)**AT+PRO=4,0   ** (%%) ~/~/ Set to use TCP protocol to uplink(HEX format)
702
703 * (% style="color:#037691" %)**AT+PRO=4,1   ** (%%) ~/~/ Set to use TCP protocol to uplink(JSON format)
704
705 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5600 ** (%%) ~/~/ to set TCP server address and port
706
707 (% style="color:blue" %)**Sensor Console Output when Uplink:**
708
709 [[image:image-20230807233631-1.png]]
710
711
712 (% style="color:blue" %)**See result in TCP Server:**
713
714 [[image:image-20230807233631-2.png]]
715
716
717 == 3.10 AWS Connection ==
718
719
720 Users can refer to [[Dragino NB device connection to AWS platform instructions>>http://wiki.dragino.com/xwiki/bin/view/Dragino%20NB%20device%20connection%20to%20AWS%20platform%20instructions/#H1.LogintotheplatformandfindIoTcore]]
721
722
723
724
725 = 4. MQTT/UDP/TCP downlink =
726
727 == 4.1 MQTT (via MQTT.fx) ==
728
729 Configure MQTT connections properly and send downlink commands to configure nodes through the Publish function of MQTT.fx//.//
730
731 **1.** Configure node MQTT connection (via MQTT.fx):
732
733 (% style="color:blue" %)**AT command:**
734
735 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%)~/~/ hex format or json format
736
737 * (% style="color:#037691" %)**AT+SUBTOPIC=User Defined**
738
739 * (% style="color:#037691" %)**AT+PUBTOPIC=User Defined**
740
741 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
742
743 * (% style="color:#037691" %)**AT+PWD=<device name> or User Defined**
744
745 * (% style="color:#037691" %)**AT+SERVADDR=8.217.91.207,1883 ** (%%) ~/~/ to set MQTT server address and port
746
747 (% style="color:red" %)**Note: To uplink and downlink via MQTT.fx, we need set the publish topic and subscribe topic different, for example: AT+SUBTOPIC=SE01_SUB & AT+PUBTOPIC=SE01_PUB.**
748
749 [[image:image-20240417180145-2.png||height="434" width="587"]][[image:image-20240417180737-3.png||height="431" width="584"]]
750
751
752 **2. **When the node uplink packets, we can observe the data in MQTT.fx.
753
754 [[image:image-20240418144337-1.png||height="709" width="802"]]
755
756 **3. **The downlink command can be successfully sent only when the downlink port is open.
757
758 The downlink port is opened for about 3 seconds after uplink packets are sent.
759
760 Therefore, when we see the node uplink packets in the **Subscribe** window, we need to immediately switch to the **publish** window to publish the **hex format** command.
761
762 [[image:image-20240418150435-3.png||height="582" width="659"]]
763
764 [[image:image-20240418150932-4.png||height="492" width="1061"]]
765
766 (% style="color:red" %)**Note: Users can edit the hex command in advance. When the node uplink, directly click the publish button several times to increase the success rate of command configuration.**
767
768
769
770
771
772
773
774 = 5. FAQ =
775
776 == 5.1 What is the usage of Multi Sampling and One Uplink? ==
777
778
779 The NB series has the feature for Multi Sampling and one uplink. See one of them
780
781 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-NB_BN-IoT_Sensor_Node_User_Manual/#H2.5Multi-SamplingsandOneuplink>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-NB_BN-IoT_Sensor_Node_User_Manual/#H2.5Multi-SamplingsandOneuplink]]
782
783 User can use this feature for below purpose:
784
785 1. **Reduce power consumption**. The NB-IoT transmit power is much more higher than the sensor sampling power. To save battery life, we can sampling often and send in one uplink.
786 1. Give more sampling data points.
787 1. Increase reliable in transmission. For example. If user set
788 1*. **AT+TR=1800** ~/~/ The unit is seconds, and the default is to record data once every 1800 seconds (30 minutes, the minimum can be set to 180 seconds)
789 1*. **AT+NOUD=24** ~/~/  The device uploads 24 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
790 1*. **AT+TDC=7200**  ~/~/ Uplink every 2 hours.
791 1*. this will mean each uplink will actually include the 6 uplink data (24 set data which cover 12 hours). So if device doesn't lost 6 continue data. There will not data lost.
792
793 == 5.2 Why the uplink JSON format is not standard? ==
794
795
796 The json format in uplink packet is not standard Json format. Below is the example. This is to make the payload as short as possible, due to NB-IoT transmit limition, a standard Json is not able to include 32 sets of sensors data with timestamp.
797
798 The firmware version released after 2024, Mar will use change back to use Json format. Detail please check changelog.
799
800 [[image:image-20240229233154-1.png]]
801
802
803 = 6. Trouble Shooting: =
804
805 == 6.1 Checklist for debuging Network Connection issue. Signal Strenght:99 issue. ==
806
807
808 There are many different providers provide NB-IoT service in the world. They might use different band, different APN & different operator configuration. Which makes connection to NB-IoT network is complicate.
809
810 If end device successfully attached NB-IoT Network, User can normally see the signal strengh as below (between 0~~31)
811
812 [[image:image-20240207002003-1.png]]
813
814
815 If fail to attach network, it will shows signal 99. as below:
816
817 [[image:image-20240207002129-2.png]]
818
819
820 (% class="lead" %)
821 When see this issue, below are the checklist:
822
823 * Does your SIM card support NB-IoT network? If SIM card doesn't not specify support NB-IoT clearly, normally it doesn't support. You need to confirm with your operator.
824 * Do you configure the correct APN? [[Check here for APN settings>>http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H2.1GeneralConfiguretoattachnetwork]].
825 * Do you lock the frequency band? This is the most case we see. [[Explain and Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H2.2SpeedUpNetworkAttachtime]].
826 * Check if the device is attached to Carrier network but reject. (need to check with operator).
827 * Check if the antenna is connected firmly.
828
829 If you have check all above and still fail. please send console log files (as many as possible) to [[support@dragino.com>>mailto:support@dragino.com]] so we can check.
830
831
832 == 6.2 Issue: "NBIOT did not respond" ==
833
834
835 (% class="box errormessage" %)
836 (((
837 11:24:22.397 [44596]NBIOT did not respond.
838 11:24:24.315 [46530]NBIOT did not respond.
839 11:24:26.256 [48464]NBIOT did not respond.
840 11:24:28.196 [50398]NBIOT did not respond.
841 11:24:30.115 [52332]NBIOT did not respond.
842 11:24:32.127 [54266]NBIOT did not respond.
843 11:24:32.127 [54299]Restart the module...
844 11:24:39.181 [61332]No response when shutting down
845 )))
846
847 This issue might due to initiate issue for NB-IoT module. In this case, please try:
848
849 1) Open Enclosure
850
851 2) Power off device by pull out the power on Jumper
852
853 3) Power on device by connect back the power jumper.
854
855 4) push reset button.
856
857 [[image:image-20240208001740-1.png]]
858
859
860 == 6.3 Issue: "Failed to readI MSI number" ==
861
862
863 (% class="box errormessage" %)
864 (((
865 [18170]Failed to read IMSI:1umber.
866 [20109]Failed to read IMSI numoer.
867 [22048]Failed to read IMSI number.
868 [29842lRestart the module...
869 )))
870
871 Make sure that the SIM card is insert in correct direction and device is power off/on during insert. Here is reference link: [[Insert SIM Card>>||anchor="H2.1GeneralConfiguretoattachnetwork"]].
872
873
874 == (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)6.4 Why sometime the AT Command is slow in reponse?(%%) ==
875
876
877 When the MCU is communicating with the NB-IoT module, the MCU response of AT Command will become slower, it might takes several seconds to response.
878
879 [[image:image-20240226111928-1.png]]
880
881
882 == (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)6.5 What is the Downlink Command by the NB device?(%%) ==
883
884 (% data-sider-select-id="bb6e9353-0c3f-473c-938d-4b416c9a03e6" %)
885 === UDP: ===
886
887 (% data-sider-select-id="14a4790e-7faa-4508-a4dd-7605a53f1cb3" %)
888 Its downlink command is the same as the AT command, but brackets are required.
889 Example:
890
891 {AT+TDC=300}
892
893
894 (% data-sider-select-id="90b80f1a-e924-4c8a-afc5-4429e019a657" %)
895 === MQTT: ===
896
897 Json:
898
899 The Json format in MQTT mode needs to be configured with all commands.
900 If you have configurations that need to be changed, please change them in the template below.
901 Template:
902
903 {
904 "AT+SERVADDR":"119.91.62.30,1882",
905 "AT+CLIENT":"JwcXKjQBNhQ2JykDDAA5Ahs",
906 "AT+UNAME":"usenamedragino",
907 "AT+PWD":"passworddragino",
908 "AT+PUBTOPIC":"123",
909 "AT+SUBTOPIC":"321",
910 "AT+TDC":"7200",
911 "AT+INTMOD":"0",
912 "AT+APN":"NULL",
913 "AT+5VT":"0",
914 "AT+PRO":"3,5",
915 "AT+TR":"900",
916 "AT+NOUD":"0",
917 "AT+CSQTIME":"5",
918 "AT+DNSTIMER":"0",
919 "AT+TLSMOD":"0,0",
920 "AT+MQOS":"0",
921 "AT+TEMPALARM1":"0",
922 "AT+TEMPALARM2":"10",
923 "AT+TEMPALARM3":"0"
924 }
925
926 Hex:
927
928 MQTT's hex format. Since many commands need to support strings, only a few commands are supported.
929
930 The supported commands are consistent with LoRaWAN's hex commands.
931 Please refer to the following link to obtain the hex format:
932
933 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
934
935
936 == (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)6.6 How to obtain device logs?(%%) ==
937
938 * **AT Command: AT** **+GETLOG**
939
940 This command can be used to query upstream logs of data packets.
941
942 [[image:image-20240701114700-1.png]]
943
944
945
946