Wiki source code of DMT01

Version 84.1 by Mengting Qiu on 2025/08/07 17:21

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 (<15% 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
135
136
137 == 1.9 Power on device and Recharge Probe ==
138
139 [[image:1754558298504-183.jpg||height="509" width="509"]]
140
141 When the repeater is charging, the charging indicator light will be solid red.
142
143
144
145 = 2.  Use DMT01 =
146
147 == 2.1  How it works ==
148
149 (((
150 (((
151
152
153 DMT01 Include two parts,
154
155 1. The food grade probe : used to measure the meat temperature
156 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.
157
158
159
160 Consider the BLE coverage , there is two cases:
161
162 === **Connection Mode: Probe is near by the Charge, within BLE range** ===
163
164 Probe will establish connection to the charge via BLE.  and the data flow is as below.
165 )))
166
167 [[image:1753622303925-386.png]]
168
169
170 === **Broadcast Mode: Probe is far away from the Charge, out of BLE range** ===
171
172 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.
173
174 For example:
175
176 1) User can use BH01 BLE to LoRaWAN converter to pick up the BLE signal to IoT Server
177
178 2) User can use Mobile phone to get the broadcast signal and further process.
179
180
181 == 2.2 Activate Device ==
182
183 To use DMT01 send data to LoRaWAN network, user need to:
184
185 1. Input the OTAA Keys in LoRaWAN Network Server
186 1. Make sure there is LoraWAN network
187 1. Press the button on the DMT01 for more than 3 seconds, DMT01 will start to connect to LoRaWAN network
188
189
190
191 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.
192 )))
193
194
195 == 2.3 ​Quick guide to connect to LoRaWAN server (OTAA) ==
196
197
198 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.
199
200 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.
201
202 [[image:1754298519453-808.jpg||height="211" width="951"]]
203
204
205 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DMT01.
206
207 Each DMT01 is shipped with a sticker with the default device EUI as below:
208
209 [[image:1754298588891-599.jpeg]](% style="display:none" %)
210
211 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:(% style="display:none" %)
212
213 (% style="color:blue" %)**Create the application.**
214
215 [[image:1754298671647-982.png]]
216
217 [[image:1754298685721-106.png]]
218
219 (% style="color:blue" %)**Add devices to the created Application.**
220
221 [[image:1754298708270-733.png]]
222
223 [[image:1754298719336-394.png]]
224
225 (% style="color:blue" %)**Enter end device specifics manually.**
226
227 [[image:1754298737089-161.png]]
228
229 (% style="color:blue" %)**Add DevEUI and AppKey.**
230
231 (% style="color:blue" %)**Customize a platform ID for the device.**
232
233 [[image:1754298751553-229.png]]
234
235
236 (% style="color:blue" %)**Step 2: **(%%)Add decoder
237
238 In TTN, user can add a custom payload so it shows friendly reading.
239
240 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/]]
241
242 Below is TTN screen shot:
243
244 [[image:1754298862776-783.png||height="609" width="1426"]]
245
246 [[image:1754299076396-787.png]]
247
248 (% style="color:blue" %)**Step 3:**(%%) Activate on DMT01
249
250 Press the button for 3 seconds to activate the DMT01.
251
252 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
253
254 [[image:1754298481895-828.png||height="441" width="1387"]]
255
256
257
258 == 2.3 LoRaWAN Payload ==
259
260
261 === 2.3.1 Probe in-place detection, FPORT~=6 ===
262
263 There are three types of detection:
264
265 * 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.
266 * The payload includes the** Timestamp, ProbeEvent and relay box battery level**.
267
268 The Payload format is as below:
269
270 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
271 |(% colspan="5" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=6)**
272 |(% style="width:103px" %)**Size (bytes)**|(% style="width:91px" %)**4**|(% style="width:98px" %)**1**|(% style="width:103px" %)**1**
273 |(% style="width:103px" %)Value|(% style="width:91px" %)Timestamp|(% style="width:98px" %)ProbeEvent|(% style="width:103px" %)relay box battery level
274
275 Example in TTN:
276
277 [[image:1754557417277-862.png||height="322" width="1388"]]
278
279
280 (% style="color:#037691" %)**Timestamp**(%%): 0x68946BB4
281
282 (% style="color:#037691" %)**ProbeEvent**(%%):
283
284 0x03 = PROBE_FULL
285
286 0x02 = PROBE_OUT
287
288 0x01 = PROBE_IN
289
290 (% style="color:#037691" %)**relay box battery level**(%%):0x32 = 50%
291
292
293 === 2.3.1 Device Status, FPORT~=5 ===
294
295
296 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.
297
298 The Payload format is as below.
299
300 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
301 |(% colspan="6" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=5)**
302 |(% style="width:103px" %)**Size (bytes)**|(% style="width:91px" %)**1**|(% style="width:98px" %)**2**|(% style="width:103px" %)**1**|(% style="width:112px" %)**1**
303 |(% style="width:103px" %)Value|(% style="width:91px" %)Sensor Model|(% style="width:98px" %)Firmware Version|(% style="width:103px" %)Frequency Band|(% style="width:112px" %)Sub-band
304
305 Example in TTN:
306
307 [[image:1754299464263-797.png||height="274" width="1384"]]
308
309
310 (% style="color:#037691" %)**Sensor Model**(%%): For DMT01, this value is 0x4B
311
312 (% style="color:#037691" %)**Firmware Version**(%%): 0x0101, Means: v1.0.1 version
313
314 (% style="color:#037691" %)**Frequency Band**(%%):
315
316 0x01: EU868
317
318 0x02: US915
319
320 0x03: IN865
321
322 0x04: AU915
323
324 0x05: KZ865
325
326 0x06: RU864
327
328 0x07: AS923
329
330 0x08: AS923-1
331
332 0x09: AS923-2
333
334 0x0a: AS923-3
335
336 0x0b: CN470
337
338 0x0c: EU433
339
340 0x0d: KR920
341
342 0x0e: MA869
343
344 (% style="color:#037691" %)**Sub-Band**(%%):
345
346 AU915 and US915:value 0x00 ~~ 0x08
347
348 CN470: value 0x0B ~~ 0x0C
349
350 Other Bands: Always 0x00
351
352
353 === 2.3.2  Sensor Data. FPORT~=2 ===
354
355
356 Sensor Data is uplink via FPORT=2
357
358 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
359 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
360 **Size(bytes)**
361 )))|=(% 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
362 |(% style="width:99px" %)Value|(% style="width:69px" %)(((
363 Timestamp
364
365
366 )))|(% style="width:130px" %)DevMode|(% style="width:194px" %)MACaddr|(% style="width:106px" %)ProbeBat|(% style="width:97px" %)(((
367 BoxBat
368 )))|(% style="width:97px" %)Food temperature|(% style="width:97px" %)Ambient temperature
369
370 [[image:1754300947187-648.png||height="641" width="1351"]]
371
372
373
374 ==== (% style="color:#4472c4" %)**Unit timestamp**(%%) ====
375
376 Unit TimeStamp Example: 689085D7(H) = 1754301911(D)
377
378 Put the decimal value into this link([[https:~~/~~/www.epochconverter.com)>>https://www.epochconverter.com]])to get the time.
379
380
381 ==== (% style="color:#4472c4" %)**DevMode**(%%) ====
382
383 **Example**:
384
385 If payload is 0x01: BLE_LoRa
386
387 If payload is 0x02: LoRa
388
389 If payload is 0x03: BLE
390
391
392 ==== (% style="color:#4472c4" %)**MACaddr**(%%) ====
393
394 **Example**:
395
396 If the payload is C12309250F1A, the MACaddr is C12309250F1A
397
398
399 ==== (% style="color:#4472c4" %)**ProbeBat**(%%) ====
400
401 **Example:**
402
403 If payload is 0x64 = 100%
404
405
406 ==== (% style="color:#4472c4" %)**BoxBat**(%%) ====
407
408 **Example:**
409
410 If payload is 0x46 = 70%
411
412
413 ==== (% style="color:#4472c4" %)**Food temperature**(%%) ====
414
415 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
416
417 **Example**:
418
419 If payload is: D300H = 00D3H, temp = 00D3H /10 = 21.1 degree
420
421 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
422
423
424 ==== (% style="color:#4472c4" %)**Ambient temperature**(%%) ====
425
426 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
427
428 **Example**:
429
430 If payload is: D200H = 00D2H, temp = 00D2H /10 = 21.0 degree
431
432 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
433
434
435
436 == 2.4 Bluetoothe Broadcast Payload ==
437
438 Scan and obtain DMT01 device broadcast data through a third-party mobile phone app (such as nRF Connect)
439
440 Example:
441
442 Note: The following data is obtained through the **nRF Connect tool**.
443
444 [[image:1754305290140-806.jpg||height="680" width="432"]]
445
446
447 If the scanned payload is 0x0201060609444D5430310EFF  **01C12309250F1AD100CD006446   **0512E001E001
448
449 (% style="color:red" %)**Note: **
450
451 * The first 12 bytes in the payload are the Bluetooth packet header data and do not need to be decoded.
452 * The last 6 bytes in the payload are the Bluetooth packet trailer data and do not need to be decoded.
453
454 So the payload is:**01C12309250F1AD100CD006446**
455
456
457 ==== (% style="color:#4472c4" %)**Bluetooth data packet frame header**(%%) ====
458
459 Example: 0x0201060609444D5430310EFF
460
461
462 ==== (% style="color:#4472c4" %)**DevMode**(%%) ====
463
464 **Example**:
465
466 If payload is 0x01: BLE_LoRa
467
468 If payload is 0x02: LoRa
469
470 If payload is 0x03: BLE
471
472
473 ==== (% style="color:#4472c4" %)**MACaddr**(%%) ====
474
475 **Example**:
476
477 If the payload is C12309250F1A, the MACaddr is C12309250F1A
478
479
480 ==== (% style="color:#4472c4" %)**ProbeBat**(%%) ====
481
482 **Example:**
483
484 If payload is 0x64 = 100%
485
486
487 ==== (% style="color:#4472c4" %)**BoxBat**(%%) ====
488
489 **Example:**
490
491 If payload is 0x46 = 70%
492
493
494 ==== (% style="color:#4472c4" %)**Food temperature**(%%) ====
495
496 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
497
498 **Example**:
499
500 If payload is: D300H = 00D3H, temp = 00D3H /10 = 21.1 degree
501
502 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
503
504
505 ==== (% style="color:#4472c4" %)**Ambient temperature**(%%) ====
506
507 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
508
509 **Example**:
510
511 If payload is: D200H = 00D2H, temp = 00D2H /10 = 21.0 degree
512
513 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
514
515
516 ==== (% style="color:#4472c4" %)**Bluetooth data packet frame tail**(%%) ====
517
518 Example: 0x0512E001E001
519
520
521
522 == 2.5 Datalog Feature ==
523
524
525 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.
526
527
528 === 2.5.1 How datalog works ===
529
530
531 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.
532
533 * (((
534 a) DMT01 will do an ACK check for data records sending to make sure every data arrive server.
535 )))
536 * (((
537 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.
538
539
540 )))
541
542 === 2.5.2 Enable Datalog ===
543
544 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.
545
546 * (((
547 a) DMT01 performs an ACK check for each data record to ensure it successfully reaches the server.
548 )))
549 * (((
550 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.
551 )))
552
553
554
555 === 2.5.3 Unix TimeStamp ===
556
557
558 DMT01 uses Unix TimeStamp format based on
559
560 [[image:1754354802681-163.jpeg]]
561
562 User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
563
564 Below is the converter example
565
566 [[image:1754354818964-624.jpeg]]
567
568
569
570 === 2.5.4 Set Device Time ===
571
572
573 You need to run downlink command 28 01 to enable time synchronization.
574
575 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.)//
576
577 {{info}}
578 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.
579 {{/info}}
580
581 (% style="color:#4f81bd" %)**Downlink Command: 0x28**
582
583 * Example: 0x28 01  ~/~/ Automatic time synchronization Enabled
584 * Example: 0x28 00  ~/~/  Automatic time synchronization Disable.
585
586
587
588 === 2.5.5 Datalog Uplink payload (FPORT~=3) ===
589
590
591 The Datalog uplinks will use below payload format.
592
593 **Retrieval data payload:**
594
595 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
596 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
597 **Size(bytes)**
598 )))|=(% 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
599 |(% style="width:99px" %)Value|(% style="width:69px" %)(((
600 Timestamp
601
602
603 )))|(% style="width:130px" %)DevMode|(% style="width:194px" %)MACaddr|(% style="width:106px" %)ProbeBat|(% style="width:97px" %)(((
604 BoxBat
605 )))|(% style="width:97px" %)Message Type|(% style="width:97px" %)(((
606 tempData
607
608 Length
609 )))|(% style="width:97px" %)Food temperature|(% style="width:97px" %)Ambient temperature
610
611 **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)
612
613 **Poll Message Flag**: 1: This message is a poll message reply.
614
615 * Poll Message Flag is set to 1.
616
617 * Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
618
619 For example, in US915 band, the max payload for different DR is:
620
621 **a) DR0:** max is 11 bytes so one entry of data
622
623 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
624
625 **c) DR2:** total payload includes 11 entries of data
626
627 **d) DR3: **total payload includes 22 entries of data.
628
629 If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
630
631
632 If user sends below downlink command: 316892FD706893103005
633
634 Where : Start time: 6892FD70 = time 25/8/6 07:00:00
635
636 Stop time: 68931030 = time 25/8/6 08:20:00
637
638
639 DMT01 **will uplink this payload.**
640
641 [[image:1754468836928-459.png]]
642
643 (((
644 68930FD201C12309250F1A643C4028E000EA00DF00EA00DF00EC00DF00EF00DF00F100DE00F400DC00F700DC00F800DB00F900DB00FD00
645
646 6893100E01C12309250F1A643C4028DE000401FF00090105010D0103011001030112011A011401150115010E0117010A01170104011801
647 )))
648
649 (((
650 Where the first 55 bytes is for the first entry:
651 )))
652
653 (((
654 **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**
655 )))
656
657 (((
658 **Unix time** is 0x68930FD2=1754468306s=25/8/6 08:18:00
659
660 **DevMode** is 0x01 =  BLE_LoRa
661
662 **MACaddr **is 0xC12309250F1A = C12309250F1A
663
664 **ProbeBat **is 0x64 = 100%
665
666 **BoxBat **is 0x3c = 60%
667
668 **Message Type** is 0x40 = POLL_REPLY
669
670 **tempDataLength **is 0x28 = 40(Represents the total number of temperature bytes of the current group)
671
672 **Food temperature** is 0xE000 = 00E0/10 = 22.4℃
673
674 **Ambient temperature** is 0xEA00 = 0x00EA/10=23.4℃
675
676 **Food temperature** is 0xDF00 = 00FD/10 = 25.3℃
677
678 **Ambient temperature** is 0xEA00 = 0x00EA/10=23.4℃
679
680 One set of data contains 10 sets of data, and so on...
681 )))
682
683
684 = 3. Configure DMT01 =
685
686
687 DMT01 supports below configure method:
688
689 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
690
691
692
693 == 3.1 General Commands ==
694
695 These commands are to configure:
696
697 * General system settings like: uplink interval.
698 * LoRaWAN protocol & radio related command.
699
700 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
701
702 [[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/]]
703
704 (% style="color:red" %)**Note: DMT01 can only be configured using Downlink commands and does not support configuration using AT commands.**
705
706
707 (((
708 == 3.2 Downlink Commands Set ==
709
710
711 These commands only valid for DMT01, as below:
712
713 === 3.2.1 Set Transmit Interval Time ===
714
715
716 (% style="color:#037691" %)**AT Command:**
717
718 There is no AT command to set TDC time.
719
720
721 **Feature**: Change LoRaWAN End Node Transmit Interval.
722
723 (% style="color:blue" %)**Downlink Command: 0x01**
724
725 Format: Command Code (0x01) followed by 3 bytes time value.
726
727 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.
728
729 * **Example 1**: Downlink Payload: 0100001E  ~/~/  Sets the transmit interval (TDC) to 30 seconds
730 * **Example 2**: Downlink Payload: 0100003C  ~/~/  Sets the transmit interval (TDC) to 60 seconds
731
732
733
734 === 3.2.2 Get Device Status ===
735
736
737 Send a LoRaWAN downlink to request the device's alarm settings.
738
739
740 (% style="color:blue" %)**Downlink Payload:  **(%%)**0x26 01**
741
742 The sensor will upload device status via FPort=5. See the payload section for details.
743
744
745 === 3.2.3 Clear Flash Record ===
746
747
748 (% style="color:#037691" %)**AT Command:**
749
750 There is no AT command to Clear flash storage for the data log feature
751
752
753 **Feature**: Clear flash storage for the  data log feature.
754
755 (% style="color:#4f81bd" %)**Downlink Command: 0x08**
756
757 * Example: 0x0801  ~/~/ Clears all saved data in flash.
758
759
760
761 === 3.2.4 Confirmed Mode ===
762
763
764 (% style="color:#037691" %)**AT Command:**
765
766 There is no AT command to control whether Confirmed Mode is enabled or disabled.
767
768
769 **Feature**: Mode for sending data that requires acknowledgment.
770
771 (% style="color:#4f81bd" %)**Downlink Command: 0x07**
772
773 * Example: 0x07 01  ~/~/ Confirmed Mode enabled.
774 * Example: 0x07 00  ~/~/  Confirmed Mode disable.
775
776
777
778 === 3.2.5 Set the time synchronization interval ===
779
780
781 **Feature**: Set how often to perform time synchronization (default: 10 days, unit: days)
782
783 (% style="color:#4f81bd" %)**Downlink Command: 0x28**
784
785 * Example: 0x28 01  ~/~/ Synchronize once a day
786 * Example: 0x28 03  ~/~/  Synchronize once every three days
787 )))
788
789
790 === 3.2.6  Alarm Mode ===
791
792
793 **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).
794
795 (% style="color:#4f81bd" %)**Downlink Command: 0x09**
796
797 Format: Command Code (0x09) followed by 4 bytes.
798
799 Example: 09 aa aa bb bb
800
801 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
802 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Parameter**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**
803 |(% style="width:154px" %)aa aa|(% style="width:196px" %)(((
804 Minimum temperature threshold
805
806 (Minimum not to exceed: -30℃)
807 )))
808 |(% style="width:154px" %)bb bb|(% style="width:196px" %)(((
809 Maximum temperature threshold
810
811 (Maximum not to exceed: 120℃)
812 )))
813
814 * Example: 0x09 00 14 00 15  ~/~/ Set the minimum threshold to 20℃ and the maximum threshold to 25℃
815 * Example: 0x09 00 00 00 00  ~/~/  Disable threshold alarm mode
816
817 Note:
818
819 * 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.
820 * The set minimum and maximum alarm temperatures must be within the food temperature range. The temperature detection range is -30 to 120°C.
821
822
823
824 === 3.2.7 Multi sampling ===
825
826 **Feature**: Sampling multiple times and uplink together.
827
828 (% style="color:#4f81bd" %)**Downlink Command: 0x09**
829
830 Format: Command Code (0x0A) followed by 3 bytes.
831
832 Example: 0A aa aa bb
833
834 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
835 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Parameter**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**
836 |(% style="width:154px" %)aa aa|(% style="width:196px" %)Sampling interval (range: 6~~65535s)
837 |(% style="width:154px" %)bb|(% style="width:196px" %)Sampling times (range: 1~~12 times)
838
839 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.
840
841
842 = 4. Firmware update =
843
844
845 **Firmware download link **(% class="mark" %)(To be updated...)
846
847 User can upgrade the firmware for DMT01 charger. The charger include two piece of software:
848
849 * For LoRa part: OTA firmware update via LoRa.
850
851 * For BLE and controller part.
852
853
854
855 == 4.1 Update LoRa software ==
856
857 (% class="wikigeneratedid" %)
858 User can change firmware DMT01 charger to:
859
860 * Change Frequency band/ region.
861 * Update with new features.
862 * Fix bugs.
863
864 (((
865 **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]]**
866
867 **Methods to Update Firmware:**
868
869 * (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/]]**
870
871
872 )))
873
874 == 4.2 Update BLE software ==
875
876 Step 1: You need to download an APP named: EspBleOTA on your mobile phone.
877
878 Download link of APK file for Android: [[APK file>>https://github.com/EspressifApps/esp-ble-ota-android/releases/tag/rc]]
879
880 [[image:1754547742655-178.png||height="364" width="1057"]]
881
882
883 Step 2: After the phone is installed, open the installed EspbleOTA
884 [[image:1754548807155-607.gif]]
885
886 (% style="color:red" %)**Note:**
887
888 (% 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.**
889
890 (% style="color:red" %)**2. You need to pull down the scan display window again and rescan BLE.**
891
892
893 Step 3: Select the Bluetooth device named DMT01 in the scanning display window and click to connect.
894
895 (% 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.**
896
897 [[image:1754555502747-456.gif||height="659" width="297"]]
898
899
900 Step 4: Wait for the update to complete
901
902 [[image:1754555791301-172.jpg||height="618" width="277"]]
903
904
905
906
907 = 5.  FAQ =
908
909
910
911 = 6.  Order Info =
912
913
914 Part Number: (% style="color:blue" %)**DMT01-XX**
915
916 (% style="color:red" %)**XX:**
917
918 * **EU433**: Frequency bands EU433
919 * **EU868**: Frequency bands EU868
920 * **KR920**: Frequency bands KR920
921 * **CN470**: Frequency bands CN470
922 * **AS923**: Frequency bands AS923
923 * **AU915**: Frequency bands AU915
924 * **US915**: Frequency bands US915
925 * **IN865**: Frequency bands IN865
926 * **CN779**: Frequency bands CN779
927
928 = 7. ​ Packing Info =
929
930
931 (% style="color:#037691" %)**Package Includes:**
932
933 * DMT01 -  Digital Meat Thermoneter x 1
934
935 (% style="color:#037691" %)**Dimension and weight:**
936
937 * Device Size: cm
938 * Device Weight: g
939 * Package Size / pcs : cm
940 * Weight / pcs : g
941
942 = 8.  ​Support =
943
944
945 * 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.
946 * 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]].