Wiki source code of DMT01

Version 85.6 by Mengting Qiu on 2025/08/07 17:30

Show last authors
1
2
3 [[image:1753592237986-145.png||height="354" width="118"]] [[image:1753592287802-550.png||height="237" width="341"]]
4
5
6 **Table of Contents:**
7
8 {{toc/}}
9
10 (% aria-label="macro:toc widget" contenteditable="false" role="region" tabindex="-1" %)
11 (((
12 (% style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||height="15" role="presentation" title="Click and drag to move" width="15"]]
13 )))
14
15
16
17 = 1.  Introduction =
18
19 == 1.1 ​ What is DMT01 Wireless Meat Thermometer ==
20
21
22 The DMT01 is a (% style="color:blue" %)professional-grade wireless meat thermometer(%%) engineered for accurate, real-time temperature monitoring in commercial cooking environments. Ideal for restaurants, central kitchens, catering services, and food processing facilities, the DMT01 ensures consistent results across various cooking methods—including grilling, smoking, roasting, deep-frying, sous vide, baking, and more. Its precise monitoring helps improve cooking efficiency, ensure food safety, and meet HACCP compliance standards.
23
24 The system consists of two components:
25 - (% style="color:blue" %)Food-grade BLE High-Temperature Probe(%%) – A durable, high-heat resistant probe that measures internal food temperature during cooking.
26 - (% style="color:blue" %)Charging Base with BLE & LoRaWAN Forwarder(%%) – This base not only charges the probe but also acts as a communication bridge. It receives temperature data from the BLE probe and transmits it via the LoRaWAN long-range wireless protocol to your IoT platform or monitoring system.
27
28 With its dual wireless support ((% style="color:blue" %)BLE for close-range/small design(%%) and (% style="color:blue" %)LoRaWAN for long-range data transmission(%%)), the DMT01 is ideal for both home cooking enthusiasts and commercial kitchen environments seeking smart, connected temperature monitoring.
29
30 == ​1.2  Features ==
31
32 * Wireless Meat Thermometer – Designed for accurate and reliable cooking temperature monitoring
33 * Food-Grade Probe – Safe for food contact and dishwasher-compatible for easy cleaning
34 * BLE 5.1 Broadcasting – Supports real-time local data transmission via Bluetooth Low Energy
35 * LoRaWAN Connectivity – Enables long-range, low-power data transmission to IoT platforms
36 * Smart Uplink Triggering – Supports periodic data reporting and real-time alerts on temperature thresholds
37
38 (% style="display:none" %)
39
40 == 1.3 Specification ==
41
42
43 (% style="color:blue" %)**Common DC Characteristics:**
44
45 * Supply Voltage: +5v via USB Type-C
46 * Operating Temperature:
47
48 (% style="color:blue" %)**Food Probe Spec:**
49
50 * Length: 126mm
51 * Diameter: 6mm
52 * Food temperature: -30 ~~110 °C, Accuracy: ±0.5°C
53 * Ambient temperature: 0 ~~380°C, Accuracy: ±5°C
54 * Wireless: BLE 5.1
55 * Distance: ≥ 30m
56 * Battery: 4mAh
57 * Recharge time: < 2 hours
58 * Battery Duration: >30 hours
59 * IP Rate: IP67, Dish Washer proof
60
61
62
63 (% style="color:blue" %)**Charger Spec:**
64
65 * BLE v5.1 + LoRaWAN
66 * Power Input: USB Type-C, +5v
67 * Battery: Li-ion , 3000mAh
68 * Recharge time: < 2 hours
69
70
71
72
73 == 1.4 ​ Applications ==
74
75 * Commercial Kitchen
76 * Restaurant
77 * Catering
78 * Food Processing
79 * Central Kitchen
80 * Cloud Kitchen
81 * HACCP Monitoring
82 * Food Safety
83 * Meat Factory
84 * Industrial Cooking
85
86 == 1.5 Product Apperance ==
87
88 (% class="wikigeneratedid" %)
89 [[image:1753594523550-152.png||height="462" width="416"]]
90
91
92 == 1.6  Working mode ==
93
94
95 (% style="color:blue" %)**Deep Sleep Mode:**(%%)** **Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
96
97 (% style="color:blue" %)**Working Mode:**(%%) In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
98
99
100 == 1.7 LED Status ==
101
102
103 The DMT01 uses a dual-color LED to indicate system status:
104
105 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:503px" %)
106 |(% style="background-color:#4f81bd; color:white; width:196px" %)**LED Behavior**|(% style="background-color:#4f81bd; color:white; width:305px" %)**Description**
107 |(% style="width:196px" %)Green breathing effect|(% style="width:305px" %)Probe is inserted and charging
108 (LED turns off immediately when probe is removed)
109 |(% style="width:196px" %)Red solid (5 seconds)|(% style="width:305px" %)Mode switched successfully (after 1-3s button press)
110 |(% style="width:196px" %)Red blinking (15 seconds)|(% style="width:305px" %)Charging base low battery (≤20% capacity)
111 |(% style="width:196px" %)Red/Green alternating blink (3 seconds)|(% style="width:305px" %)Device reset in progress (after 3s long press)   
112 |(% style="width:196px" %)Single green blink|(% style="width:305px" %)BLE connection established between probe and base
113
114
115
116 == 1.8 Button Function ==
117
118 [[image:1754120439617-600.jpg||height="404" width="404"]]
119
120 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:536.222px" %)
121 |=(% style="width: 147px; background-color: rgb(79, 129, 189); color: white;" %)**Behavior on ACT**|=(% style="width: 130px; background-color: rgb(79, 129, 189); color: white;" %)**Function**|=(% style="width: 254px; background-color: rgb(79, 129, 189); color: white;" %)**Action**
122 |(% style="background-color:#f2f2f2; width:147px" %) [[image:1754045287749-587.png]]>3s|(% style="background-color:#f2f2f2; width:130px" %)Active Device|(% style="background-color:#f2f2f2; width:254px" %)(((
123 Red/Green alternating blink (3 seconds), DMT01 will enter working mode and start to JOIN LoRaWAN network.
124 When the probe is placed in the repeater to charge, the green LED above the relay box will have a breathing effect. When the probe is taken out, the LED light will go out.
125 )))
126 |(% style="background-color:#f2f2f2; width:147px" %)[[image:1754045287749-587.png]] 1~~3s|(% style="background-color:#f2f2f2; width:130px" %)Switch working mode|(% style="background-color:#f2f2f2; width:254px" %)(((
127 There are three operating modes:
128 Default LoRaWAN and Bluetooth broadcast mode,
129 Separate LoRaWAN mode
130
131 Separate Bluetooth broadcast mode.
132 (% style="color:red" %)**Note:**(%%) To switch modes, remove the probe and press the button; otherwise, the mode will not switch.
133 )))
134 |(% style="background-color:#f2f2f2; width:147px" %)[[image:1754558742780-944.png]] ×3 times|(% style="background-color:#f2f2f2; width:130px" %)Entering a deep sleep state|(% style="background-color:#f2f2f2; width:254px" %)When the device successfully enters the low power state, the LED light will flash red, green and red
135
136
137
138 == 1.9 Power on device and Recharge Probe ==
139
140 [[image:1754558298504-183.jpg||height="509" width="509"]]
141
142 * When the repeater is charging, the charging indicator light will be solid red.
143 * When the repeater is fully charged, the charging indicator will be solid green.
144
145
146
147
148 = 2.  Use DMT01 =
149
150 == 2.1  How it works ==
151
152 (((
153 (((
154
155
156 DMT01 Include two parts,
157
158 1. The food grade probe : used to measure the meat temperature
159 1. The Charger which is also a LoRaWAN End node: used to connect the probe via BLE and get the temperature and send via LoRaWAN to IoT server.
160
161
162
163 Consider the BLE coverage , there is two cases:
164
165 === **Connection Mode: Probe is near by the Charge, within BLE range** ===
166
167 Probe will establish connection to the charge via BLE.  and the data flow is as below.
168 )))
169
170 [[image:1753622303925-386.png]]
171
172
173 === **Broadcast Mode: Probe is far away from the Charge, out of BLE range** ===
174
175 Probe will auto swtich to BLE broadcast mode and broadcast the data via BLE. Any BLE Scaner can pick up the signal and send to IoT server.
176
177 For example:
178
179 1) User can use BH01 BLE to LoRaWAN converter to pick up the BLE signal to IoT Server
180
181 2) User can use Mobile phone to get the broadcast signal and further process.
182
183
184 == 2.2 Activate Device ==
185
186 To use DMT01 send data to LoRaWAN network, user need to:
187
188 1. Input the OTAA Keys in LoRaWAN Network Server
189 1. Make sure there is LoraWAN network
190 1. Press the button on the DMT01 for more than 3 seconds, DMT01 will start to connect to LoRaWAN network
191
192
193
194 After the DMT01 Join LoRaWAN network, once user take out the probe, the probe will start to measure temperature and user will be to see the data on the server.
195 )))
196
197
198 == 2.3 ​Quick guide to connect to LoRaWAN server (OTAA) ==
199
200
201 Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example.
202
203 The LPS8V2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.
204
205 [[image:1754298519453-808.jpg||height="211" width="951"]]
206
207
208 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DMT01.
209
210 Each DMT01 is shipped with a sticker with the default device EUI as below:
211
212 [[image:1754298588891-599.jpeg]](% style="display:none" %)
213
214 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:(% style="display:none" %)
215
216 (% style="color:blue" %)**Create the application.**
217
218 [[image:1754298671647-982.png]]
219
220 [[image:1754298685721-106.png]]
221
222 (% style="color:blue" %)**Add devices to the created Application.**
223
224 [[image:1754298708270-733.png]]
225
226 [[image:1754298719336-394.png]]
227
228 (% style="color:blue" %)**Enter end device specifics manually.**
229
230 [[image:1754298737089-161.png]]
231
232 (% style="color:blue" %)**Add DevEUI and AppKey.**
233
234 (% style="color:blue" %)**Customize a platform ID for the device.**
235
236 [[image:1754298751553-229.png]]
237
238
239 (% style="color:blue" %)**Step 2: **(%%)Add decoder
240
241 In TTN, user can add a custom payload so it shows friendly reading.
242
243 Click this link to get the decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/]]
244
245 Below is TTN screen shot:
246
247 [[image:1754298862776-783.png||height="609" width="1426"]]
248
249 [[image:1754299076396-787.png]]
250
251 (% style="color:blue" %)**Step 3:**(%%) Activate on DMT01
252
253 Press the button for 3 seconds to activate the DMT01.
254
255 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
256
257 [[image:1754298481895-828.png||height="441" width="1387"]]
258
259
260
261 == 2.3 LoRaWAN Payload ==
262
263
264 === 2.3.1 Probe in-place detection, FPORT~=6 ===
265
266 There are three types of detection:
267
268 * When the probe is placed in or removed from the relay box, or when Bluetooth charging is complete, an event packet is sent uplink to the LoRaWan server.
269 * The payload includes the** Timestamp, ProbeEvent and relay box battery level**.
270
271 The Payload format is as below:
272
273 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
274 |(% colspan="5" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=6)**
275 |(% style="width:103px" %)**Size (bytes)**|(% style="width:91px" %)**4**|(% style="width:98px" %)**1**|(% style="width:103px" %)**1**
276 |(% style="width:103px" %)Value|(% style="width:91px" %)Timestamp|(% style="width:98px" %)ProbeEvent|(% style="width:103px" %)relay box battery level
277
278 Example in TTN:
279
280 [[image:1754557417277-862.png||height="322" width="1388"]]
281
282
283 (% style="color:#037691" %)**Timestamp**(%%): 0x68946BB4
284
285 (% style="color:#037691" %)**ProbeEvent**(%%):
286
287 0x03 = PROBE_FULL
288
289 0x02 = PROBE_OUT
290
291 0x01 = PROBE_IN
292
293 (% style="color:#037691" %)**relay box battery level**(%%):0x32 = 50%
294
295
296 === 2.3.1 Device Status, FPORT~=5 ===
297
298
299 Users can use the downlink command(**0x26 01**) to ask DMT01 to send device configure detail, include device configure status. DMT01 will uplink a payload via FPort=5 to server.
300
301 The Payload format is as below.
302
303 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
304 |(% colspan="6" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=5)**
305 |(% style="width:103px" %)**Size (bytes)**|(% style="width:91px" %)**1**|(% style="width:98px" %)**2**|(% style="width:103px" %)**1**|(% style="width:112px" %)**1**
306 |(% style="width:103px" %)Value|(% style="width:91px" %)Sensor Model|(% style="width:98px" %)Firmware Version|(% style="width:103px" %)Frequency Band|(% style="width:112px" %)Sub-band
307
308 Example in TTN:
309
310 [[image:1754299464263-797.png||height="274" width="1384"]]
311
312
313 (% style="color:#037691" %)**Sensor Model**(%%): For DMT01, this value is 0x4B
314
315 (% style="color:#037691" %)**Firmware Version**(%%): 0x0101, Means: v1.0.1 version
316
317 (% style="color:#037691" %)**Frequency Band**(%%):
318
319 0x01: EU868
320
321 0x02: US915
322
323 0x03: IN865
324
325 0x04: AU915
326
327 0x05: KZ865
328
329 0x06: RU864
330
331 0x07: AS923
332
333 0x08: AS923-1
334
335 0x09: AS923-2
336
337 0x0a: AS923-3
338
339 0x0b: CN470
340
341 0x0c: EU433
342
343 0x0d: KR920
344
345 0x0e: MA869
346
347 (% style="color:#037691" %)**Sub-Band**(%%):
348
349 AU915 and US915:value 0x00 ~~ 0x08
350
351 CN470: value 0x0B ~~ 0x0C
352
353 Other Bands: Always 0x00
354
355
356 === 2.3.2  Sensor Data. FPORT~=2 ===
357
358
359 Sensor Data is uplink via FPORT=2
360
361 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
362 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
363 **Size(bytes)**
364 )))|=(% style="width: 40px;background-color:#4F81BD;color:white" %)4|=(% style="width: 90px;background-color:#4F81BD;color:white" %)1|=(% style="width: 150px; background-color: #4F81BD;color:white" %)6|=(% style="width: 80px; background-color: #4F81BD;color:white" %)1|=(% style="width: 80px; background-color: #4F81BD;color:white" %)1|=(% style="width: 80px; background-color: #4F81BD;color:white" %)2|=(% style="width: 80px; background-color: #4F81BD;color:white" %)2
365 |(% style="width:99px" %)Value|(% style="width:69px" %)(((
366 Timestamp
367
368
369 )))|(% style="width:130px" %)DevMode|(% style="width:194px" %)MACaddr|(% style="width:106px" %)ProbeBat|(% style="width:97px" %)(((
370 BoxBat
371 )))|(% style="width:97px" %)Food temperature|(% style="width:97px" %)Ambient temperature
372
373 [[image:1754300947187-648.png||height="641" width="1351"]]
374
375
376
377 ==== (% style="color:#4472c4" %)**Unit timestamp**(%%) ====
378
379 Unit TimeStamp Example: 689085D7(H) = 1754301911(D)
380
381 Put the decimal value into this link([[https:~~/~~/www.epochconverter.com)>>https://www.epochconverter.com]])to get the time.
382
383
384 ==== (% style="color:#4472c4" %)**DevMode**(%%) ====
385
386 **Example**:
387
388 If payload is 0x01: BLE_LoRa
389
390 If payload is 0x02: LoRa
391
392 If payload is 0x03: BLE
393
394
395 ==== (% style="color:#4472c4" %)**MACaddr**(%%) ====
396
397 **Example**:
398
399 If the payload is C12309250F1A, the MACaddr is C12309250F1A
400
401
402 ==== (% style="color:#4472c4" %)**ProbeBat**(%%) ====
403
404 **Example:**
405
406 If payload is 0x64 = 100%
407
408
409 ==== (% style="color:#4472c4" %)**BoxBat**(%%) ====
410
411 **Example:**
412
413 If payload is 0x46 = 70%
414
415
416 ==== (% style="color:#4472c4" %)**Food temperature**(%%) ====
417
418 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
419
420 **Example**:
421
422 If payload is: D300H = 00D3H, temp = 00D3H /10 = 21.1 degree
423
424 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
425
426
427 ==== (% style="color:#4472c4" %)**Ambient temperature**(%%) ====
428
429 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
430
431 **Example**:
432
433 If payload is: D200H = 00D2H, temp = 00D2H /10 = 21.0 degree
434
435 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
436
437
438
439 == 2.4 Bluetoothe Broadcast Payload ==
440
441 Scan and obtain DMT01 device broadcast data through a third-party mobile phone app (such as nRF Connect)
442
443 Example:
444
445 Note: The following data is obtained through the **nRF Connect tool**.
446
447 [[image:1754305290140-806.jpg||height="680" width="432"]]
448
449
450 If the scanned payload is 0x0201060609444D5430310EFF  **01C12309250F1AD100CD006446   **0512E001E001
451
452 (% style="color:red" %)**Note: **
453
454 * The first 12 bytes in the payload are the Bluetooth packet header data and do not need to be decoded.
455 * The last 6 bytes in the payload are the Bluetooth packet trailer data and do not need to be decoded.
456
457 So the payload is:**01C12309250F1AD100CD006446**
458
459
460 ==== (% style="color:#4472c4" %)**Bluetooth data packet frame header**(%%) ====
461
462 Example: 0x0201060609444D5430310EFF
463
464
465 ==== (% style="color:#4472c4" %)**DevMode**(%%) ====
466
467 **Example**:
468
469 If payload is 0x01: BLE_LoRa
470
471 If payload is 0x02: LoRa
472
473 If payload is 0x03: BLE
474
475
476 ==== (% style="color:#4472c4" %)**MACaddr**(%%) ====
477
478 **Example**:
479
480 If the payload is C12309250F1A, the MACaddr is C12309250F1A
481
482
483 ==== (% style="color:#4472c4" %)**ProbeBat**(%%) ====
484
485 **Example:**
486
487 If payload is 0x64 = 100%
488
489
490 ==== (% style="color:#4472c4" %)**BoxBat**(%%) ====
491
492 **Example:**
493
494 If payload is 0x46 = 70%
495
496
497 ==== (% style="color:#4472c4" %)**Food temperature**(%%) ====
498
499 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
500
501 **Example**:
502
503 If payload is: D300H = 00D3H, temp = 00D3H /10 = 21.1 degree
504
505 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
506
507
508 ==== (% style="color:#4472c4" %)**Ambient temperature**(%%) ====
509
510 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
511
512 **Example**:
513
514 If payload is: D200H = 00D2H, temp = 00D2H /10 = 21.0 degree
515
516 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
517
518
519 ==== (% style="color:#4472c4" %)**Bluetooth data packet frame tail**(%%) ====
520
521 Example: 0x0512E001E001
522
523
524
525 == 2.5 Datalog Feature ==
526
527
528 Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, DMT01 will store the reading for future retrieving purposes.
529
530
531 === 2.5.1 How datalog works ===
532
533
534 DMT01 will wait for ACK for every uplink, when there is no LoRaWAN network,DMT01 will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
535
536 * (((
537 a) DMT01 will do an ACK check for data records sending to make sure every data arrive server.
538 )))
539 * (((
540 b) DMT01 will send data in **CONFIRMED Mode**, but DMT01 won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if DMT01 gets a ACK, DMT01 will consider there is a network connection and resend all NONE-ACK messages.
541
542
543 )))
544
545 === 2.5.2 Enable Datalog ===
546
547 Using the platform downlink** 07 01**, you can enable the device to automatically send **non-ACK** messages. Once enabled, the LC01 will wait for an acknowledgment (ACK) for every uplink. If there is no LoRaWAN network available, DMT01 will mark these records as non-ACK messages, store the sensor data, and continue checking for network availability (at 10-second intervals) to resend all stored messages once the network is restored.
548
549 * (((
550 a) DMT01 performs an ACK check for each data record to ensure it successfully reaches the server.
551 )))
552 * (((
553 b) When automatic sending of non-ACK messages is enabled, the DMT01 transmits data in **CONFIRMED** mode. If an ACK is not received, it does not resend the packet; instead, it marks it as a **non-ACK** message. During subsequent uplinks, if the DMT01 receives an ACK, it considers the network restored and will resend all stored non-ACK messages.
554 )))
555
556
557
558 === 2.5.3 Unix TimeStamp ===
559
560
561 DMT01 uses Unix TimeStamp format based on
562
563 [[image:1754354802681-163.jpeg]]
564
565 User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
566
567 Below is the converter example
568
569 [[image:1754354818964-624.jpeg]]
570
571
572
573 === 2.5.4 Set Device Time ===
574
575
576 You need to run downlink command 28 01 to enable time synchronization.
577
578 Once the LC01 joins the LoRaWAN network, it will send the MAC command **DeviceTimeReq**, and the server will reply with **DeviceTimeAns** to provide the current time to the LC01. If the LC01 fails to receive the time from the server, it will use its internal time and wait for the next time request. //(By default, this occurs once every 10 days.)//
579
580 {{info}}
581 The LoRaWAN server must support LoRaWAN v1.0.3 (MAC v1.0.3) or higher to use this MAC command feature. ChirpStack, The Things Stack v3, and Loriot support it, but The Things Stack v2 does not. If the server does not support this command, it will discard the uplink packet containing it. As a result, the user will lose the time request packet when the automatic time synchronization function is enabled on TTN v2.
582 {{/info}}
583
584 (% style="color:#4f81bd" %)**Downlink Command: 0x28**
585
586 * Example: 0x28 01  ~/~/ Automatic time synchronization Enabled
587 * Example: 0x28 00  ~/~/  Automatic time synchronization Disable.
588
589
590
591 === 2.5.5 Datalog Uplink payload (FPORT~=3) ===
592
593
594 The Datalog uplinks will use below payload format.
595
596 **Retrieval data payload:**
597
598 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
599 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
600 **Size(bytes)**
601 )))|=(% style="width: 40px;background-color:#4F81BD;color:white" %)4|=(% style="width: 90px;background-color:#4F81BD;color:white" %)1|=(% style="width: 150px; background-color: #4F81BD;color:white" %)6|=(% style="width: 80px; background-color: #4F81BD;color:white" %)1|=(% style="width: 80px; background-color: #4F81BD;color:white" %)1|=(% style="width: 80px; background-color: #4F81BD;color:white" %)1|=(% style="width: 80px; background-color: #4F81BD;color:white" %)1|=(% style="width: 80px; background-color: #4F81BD;color:white" %)2|=(% style="width: 80px; background-color: #4F81BD;color:white" %)2
602 |(% style="width:99px" %)Value|(% style="width:69px" %)(((
603 Timestamp
604
605
606 )))|(% style="width:130px" %)DevMode|(% style="width:194px" %)MACaddr|(% style="width:106px" %)ProbeBat|(% style="width:97px" %)(((
607 BoxBat
608 )))|(% style="width:97px" %)Message Type|(% style="width:97px" %)(((
609 tempData
610
611 Length
612 )))|(% style="width:97px" %)Food temperature|(% style="width:97px" %)Ambient temperature
613
614 **No ACK Message**:  1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for **PNACKMD=1** feature)
615
616 **Poll Message Flag**: 1: This message is a poll message reply.
617
618 * Poll Message Flag is set to 1.
619
620 * Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
621
622 For example, in US915 band, the max payload for different DR is:
623
624 **a) DR0:** max is 11 bytes so one entry of data
625
626 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
627
628 **c) DR2:** total payload includes 11 entries of data
629
630 **d) DR3: **total payload includes 22 entries of data.
631
632 If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
633
634
635 If user sends below downlink command: 316892FD706893103005
636
637 Where : Start time: 6892FD70 = time 25/8/6 07:00:00
638
639 Stop time: 68931030 = time 25/8/6 08:20:00
640
641
642 DMT01 **will uplink this payload.**
643
644 [[image:1754468836928-459.png]]
645
646 (((
647 68930FD201C12309250F1A643C4028E000EA00DF00EA00DF00EC00DF00EF00DF00F100DE00F400DC00F700DC00F800DB00F900DB00FD00
648
649 6893100E01C12309250F1A643C4028DE000401FF00090105010D0103011001030112011A011401150115010E0117010A01170104011801
650 )))
651
652 (((
653 Where the first 55 bytes is for the first entry:
654 )))
655
656 (((
657 **68930FD2 01 C12309250F1A 64 3C 40 28 E000 EA00 DF00 EA00 DF00 EC00 DF00 EF00 DF00 F100 DE00 F400 DC00 F700 DC00 F800 DB00 F900 DB00 FD00**
658 )))
659
660 (((
661 **Unix time** is 0x68930FD2=1754468306s=25/8/6 08:18:00
662
663 **DevMode** is 0x01 =  BLE_LoRa
664
665 **MACaddr **is 0xC12309250F1A = C12309250F1A
666
667 **ProbeBat **is 0x64 = 100%
668
669 **BoxBat **is 0x3c = 60%
670
671 **Message Type** is 0x40 = POLL_REPLY
672
673 **tempDataLength **is 0x28 = 40(Represents the total number of temperature bytes of the current group)
674
675 **Food temperature** is 0xE000 = 00E0/10 = 22.4℃
676
677 **Ambient temperature** is 0xEA00 = 0x00EA/10=23.4℃
678
679 **Food temperature** is 0xDF00 = 00FD/10 = 25.3℃
680
681 **Ambient temperature** is 0xEA00 = 0x00EA/10=23.4℃
682
683 One set of data contains 10 sets of data, and so on...
684 )))
685
686
687 = 3. Configure DMT01 =
688
689
690 DMT01 supports below configure method:
691
692 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
693
694
695
696 == 3.1 General Commands ==
697
698 These commands are to configure:
699
700 * General system settings like: uplink interval.
701 * LoRaWAN protocol & radio related command.
702
703 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
704
705 [[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/]]
706
707 (% style="color:red" %)**Note: DMT01 can only be configured using Downlink commands and does not support configuration using AT commands.**
708
709
710 (((
711 == 3.2 Downlink Commands Set ==
712
713
714 These commands only valid for DMT01, as below:
715
716 === 3.2.1 Set Transmit Interval Time ===
717
718
719 (% style="color:#037691" %)**AT Command:**
720
721 There is no AT command to set TDC time.
722
723
724 **Feature**: Change LoRaWAN End Node Transmit Interval.
725
726 (% style="color:blue" %)**Downlink Command: 0x01**
727
728 Format: Command Code (0x01) followed by 3 bytes time value.
729
730 If the downlink payload is **0100003C**, it means set the end node's transmit Interval is set to 0x00003C = 60 seconds, with the type code 01.
731
732 * **Example 1**: Downlink Payload: 0100001E  ~/~/  Sets the transmit interval (TDC) to 30 seconds
733 * **Example 2**: Downlink Payload: 0100003C  ~/~/  Sets the transmit interval (TDC) to 60 seconds
734
735
736
737 === 3.2.2 Get Device Status ===
738
739
740 Send a LoRaWAN downlink to request the device's alarm settings.
741
742
743 (% style="color:blue" %)**Downlink Payload:  **(%%)**0x26 01**
744
745 The sensor will upload device status via FPort=5. See the payload section for details.
746
747
748 === 3.2.3 Clear Flash Record ===
749
750
751 (% style="color:#037691" %)**AT Command:**
752
753 There is no AT command to Clear flash storage for the data log feature
754
755
756 **Feature**: Clear flash storage for the  data log feature.
757
758 (% style="color:#4f81bd" %)**Downlink Command: 0x08**
759
760 * Example: 0x0801  ~/~/ Clears all saved data in flash.
761
762
763
764 === 3.2.4 Confirmed Mode ===
765
766
767 (% style="color:#037691" %)**AT Command:**
768
769 There is no AT command to control whether Confirmed Mode is enabled or disabled.
770
771
772 **Feature**: Mode for sending data that requires acknowledgment.
773
774 (% style="color:#4f81bd" %)**Downlink Command: 0x07**
775
776 * Example: 0x07 01  ~/~/ Confirmed Mode enabled.
777 * Example: 0x07 00  ~/~/  Confirmed Mode disable.
778
779
780
781 === 3.2.5 Set the time synchronization interval ===
782
783
784 **Feature**: Set how often to perform time synchronization (default: 10 days, unit: days)
785
786 (% style="color:#4f81bd" %)**Downlink Command: 0x28**
787
788 * Example: 0x28 01  ~/~/ Synchronize once a day
789 * Example: 0x28 03  ~/~/  Synchronize once every three days
790 )))
791
792
793 === 3.2.6  Alarm Mode ===
794
795
796 **Feature**: When the sample temperature is lower or higher than the set threshold, it will automatically alarm (the alarm mode is only for food temperature).
797
798 (% style="color:#4f81bd" %)**Downlink Command: 0x09**
799
800 Format: Command Code (0x09) followed by 4 bytes.
801
802 Example: 09 aa aa bb bb
803
804 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
805 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Parameter**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**
806 |(% style="width:154px" %)aa aa|(% style="width:196px" %)(((
807 Minimum temperature threshold
808
809 (Minimum not to exceed: -30℃)
810 )))
811 |(% style="width:154px" %)bb bb|(% style="width:196px" %)(((
812 Maximum temperature threshold
813
814 (Maximum not to exceed: 120℃)
815 )))
816
817 * Example: 0x09 00 14 00 15  ~/~/ Set the minimum threshold to 20℃ and the maximum threshold to 25℃
818 * Example: 0x09 00 00 00 00  ~/~/  Disable threshold alarm mode
819
820 Note:
821
822 * When the temperature exceeds the set minimum and maximum temperature thresholds, sampling will be performed at an interval of every 6 seconds. Each set of temperature data will be immediately uploaded to the server.
823 * The set minimum and maximum alarm temperatures must be within the food temperature range. The temperature detection range is -30 to 120°C.
824
825
826
827 === 3.2.7 Multi sampling ===
828
829 **Feature**: Sampling multiple times and uplink together.
830
831 (% style="color:#4f81bd" %)**Downlink Command: 0x09**
832
833 Format: Command Code (0x0A) followed by 3 bytes.
834
835 Example: 0A aa aa bb
836
837 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
838 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Parameter**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**
839 |(% style="width:154px" %)aa aa|(% style="width:196px" %)Sampling interval (range: 6~~65535s)
840 |(% style="width:154px" %)bb|(% style="width:196px" %)Sampling times (range: 1~~12 times)
841
842 Example: 0x0A 06 0A  ~/~/Sampling is done once every 6 seconds, and uploading is done after sampling 10 data points, i.e. uploading is done once every 1 minute.
843
844
845 = 4. Firmware update =
846
847
848 **Firmware download link **(% class="mark" %)(To be updated...)
849
850 User can upgrade the firmware for DMT01 charger. The charger include two piece of software:
851
852 * For LoRa part: OTA firmware update via LoRa.
853
854 * For BLE and controller part.
855
856
857
858 == 4.1 Update LoRa software ==
859
860 (% class="wikigeneratedid" %)
861 User can change firmware DMT01 charger to:
862
863 * Change Frequency band/ region.
864 * Update with new features.
865 * Fix bugs.
866
867 (((
868 **Firmware and changelog can be downloaded from :** **[[Firmware download link>>https://www.dropbox.com/scl/fo/ztlw35a9xbkomu71u31im/AE9nOhl7iwYvmnz7ggQXwZ0/LoRaWAN%20End%20Node/DMT01/Firmware?dl=0&rlkey=ojjcsw927eaow01dgooldq3nu&subfolder_nav_tracking=1]]**
869
870 **Methods to Update Firmware:**
871
872 * (Recommanded way) OTA firmware update via wireless : **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]]**
873
874
875 )))
876
877 == 4.2 Update BLE software ==
878
879 Step 1: You need to download an APP named: EspBleOTA on your mobile phone.
880
881 Download link of APK file for Android: [[APK file>>https://github.com/EspressifApps/esp-ble-ota-android/releases/tag/rc]]
882
883 [[image:1754547742655-178.png||height="364" width="1057"]]
884
885
886 Step 2: After the phone is installed, open the installed EspbleOTA
887 [[image:1754548807155-607.gif]]
888
889 (% style="color:red" %)**Note:**
890
891 (% style="color:red" %)**1. When you open it, the app will request permission to use your phone's Bluetooth. Please grant permission, otherwise the app will not be able to search for Bluetooth.**
892
893 (% style="color:red" %)**2. You need to pull down the scan display window again and rescan BLE.**
894
895
896 Step 3: Select the Bluetooth device named DMT01 in the scanning display window and click to connect.
897
898 (% style="color:red" %)**Note: Before upgrading, you need to save the firmware in the directory of the phone. When upgrading, you need to enter the saved path and select the firmware.**
899
900 [[image:1754555502747-456.gif||height="659" width="297"]]
901
902
903 Step 4: Wait for the update to complete
904
905 [[image:1754555791301-172.jpg||height="618" width="277"]]
906
907
908
909
910 = 5.  FAQ =
911
912
913
914 = 6.  Order Info =
915
916
917 Part Number: (% style="color:blue" %)**DMT01-XX**
918
919 (% style="color:red" %)**XX:**
920
921 * **EU433**: Frequency bands EU433
922 * **EU868**: Frequency bands EU868
923 * **KR920**: Frequency bands KR920
924 * **CN470**: Frequency bands CN470
925 * **AS923**: Frequency bands AS923
926 * **AU915**: Frequency bands AU915
927 * **US915**: Frequency bands US915
928 * **IN865**: Frequency bands IN865
929 * **CN779**: Frequency bands CN779
930
931 = 7. ​ Packing Info =
932
933
934 (% style="color:#037691" %)**Package Includes:**
935
936 * DMT01 -  Digital Meat Thermoneter x 1
937
938 (% style="color:#037691" %)**Dimension and weight:**
939
940 * Device Size: cm
941 * Device Weight: g
942 * Package Size / pcs : cm
943 * Weight / pcs : g
944
945 = 8.  ​Support =
946
947
948 * 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.
949 * 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]].