Wiki source code of DMT01

Version 54.1 by Mengting Qiu on 2025/08/04 19:45

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
140
141
142 = 2.  Use DMT01 =
143
144 == 2.1  How it works ==
145
146 (((
147 (((
148
149
150 DMT01 Include two parts,
151
152 1. The food grade probe : used to measure the meat temperature
153 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.
154
155
156
157 Consider the BLE coverage , there is two cases:
158
159 === **Connection Mode: Probe is near by the Charge, within BLE range** ===
160
161 Probe will establish connection to the charge via BLE.  and the data flow is as below.
162 )))
163
164 [[image:1753622303925-386.png]]
165
166
167 === **Broadcast Mode: Probe is far away from the Charge, out of BLE range** ===
168
169 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.
170
171 For example:
172
173 1) User can use BH01 BLE to LoRaWAN converter to pick up the BLE signal to IoT Server
174
175 2) User can use Mobile phone to get the broadcast signal and further process.
176
177
178 == 2.2 Activate Device ==
179
180 To use DMT01 send data to LoRaWAN network, user need to:
181
182 1. Input the OTAA Keys in LoRaWAN Network Server
183 1. Make sure there is LoraWAN network
184 1. Press the button on the DMT01 for more than 3 seconds, DMT01 will start to connect to LoRaWAN network
185
186
187
188 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.
189 )))
190
191
192 == 2.2  How it works? ==
193
194 (((
195 (((
196
197 )))
198
199 The DMT01 is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the DMT01. It will automatically join the network via OTAA and start to send the sensor value.
200
201 (((
202 On each uplink, DMT01 will get the temperature from the sensor and send it to the server.
203 )))
204 )))
205
206
207 == 2.3 ​Quick guide to connect to LoRaWAN server (OTAA) ==
208
209
210 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.
211
212 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.
213
214 [[image:1754298519453-808.jpg||height="211" width="951"]]
215
216
217 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DMT01.
218
219 Each DMT01 is shipped with a sticker with the default device EUI as below:
220
221 [[image:1754298588891-599.jpeg]](% style="display:none" %)
222
223 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:(% style="display:none" %)
224
225 (% style="color:blue" %)**Create the application.**
226
227 [[image:1754298671647-982.png]]
228
229 [[image:1754298685721-106.png]]
230
231 (% style="color:blue" %)**Add devices to the created Application.**
232
233 [[image:1754298708270-733.png]]
234
235 [[image:1754298719336-394.png]]
236
237 (% style="color:blue" %)**Enter end device specifics manually.**
238
239 [[image:1754298737089-161.png]]
240
241 (% style="color:blue" %)**Add DevEUI and AppKey.**
242
243 (% style="color:blue" %)**Customize a platform ID for the device.**
244
245 [[image:1754298751553-229.png]]
246
247
248 (% style="color:blue" %)**Step 2: **(%%)Add decoder
249
250 In TTN, user can add a custom payload so it shows friendly reading.
251
252 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/]]
253
254 Below is TTN screen shot:
255
256 [[image:1754298862776-783.png||height="609" width="1426"]]
257
258 [[image:1754299076396-787.png]]
259
260 (% style="color:blue" %)**Step 3:**(%%) Activate on DMT01
261
262 Press the button for 3 seconds to activate the DMT01.
263
264 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
265
266 [[image:1754298481895-828.png||height="441" width="1387"]]
267
268
269
270 == 2.3 LoRaWAN Payload ==
271
272 === 2.3.1 Device Status, FPORT~=5 ===
273
274
275 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.
276
277 The Payload format is as below.
278
279 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
280 |(% colspan="6" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=5)**
281 |(% style="width:103px" %)**Size (bytes)**|(% style="width:91px" %)**1**|(% style="width:98px" %)**2**|(% style="width:103px" %)**1**|(% style="width:112px" %)**1**
282 |(% style="width:103px" %)Value|(% style="width:91px" %)Sensor Model|(% style="width:98px" %)Firmware Version|(% style="width:103px" %)Frequency Band|(% style="width:112px" %)Sub-band
283
284 Example in TTN:
285
286 [[image:1754299464263-797.png||height="274" width="1384"]]
287
288
289 (% style="color:#037691" %)**Sensor Model**(%%): For DMT01, this value is 0x4B
290
291 (% style="color:#037691" %)**Firmware Version**(%%): 0x0101, Means: v1.0.1 version
292
293 (% style="color:#037691" %)**Frequency Band**(%%):
294
295 0x01: EU868
296
297 0x02: US915
298
299 0x03: IN865
300
301 0x04: AU915
302
303 0x05: KZ865
304
305 0x06: RU864
306
307 0x07: AS923
308
309 0x08: AS923-1
310
311 0x09: AS923-2
312
313 0x0a: AS923-3
314
315 0x0b: CN470
316
317 0x0c: EU433
318
319 0x0d: KR920
320
321 0x0e: MA869
322
323 (% style="color:#037691" %)**Sub-Band**(%%):
324
325 AU915 and US915:value 0x00 ~~ 0x08
326
327 CN470: value 0x0B ~~ 0x0C
328
329 Other Bands: Always 0x00
330
331
332 === 2.3.2  Sensor Data. FPORT~=2 ===
333
334
335 Sensor Data is uplink via FPORT=2
336
337 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
338 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
339 **Size(bytes)**
340 )))|=(% 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
341 |(% style="width:99px" %)Value|(% style="width:69px" %)(((
342 Timestamp
343
344
345 )))|(% style="width:130px" %)DevMode|(% style="width:194px" %)MACaddr|(% style="width:106px" %)ProbeBat|(% style="width:97px" %)(((
346 BoxBat
347 )))|(% style="width:97px" %)Food temperature|(% style="width:97px" %)Ambient temperature
348
349 [[image:1754300947187-648.png||height="641" width="1351"]]
350
351
352
353 ==== (% style="color:#4472c4" %)**Unit timestamp**(%%) ====
354
355 Unit TimeStamp Example: 689085D7(H) = 1754301911(D)
356
357 Put the decimal value into this link([[https:~~/~~/www.epochconverter.com)>>https://www.epochconverter.com]])to get the time.
358
359
360 ==== (% style="color:#4472c4" %)**DevMode**(%%) ====
361
362 **Example**:
363
364 If payload is 0x01: BLE_LoRa
365
366 If payload is 0x02: LoRa
367
368 If payload is 0x03: BLE
369
370
371 ==== (% style="color:#4472c4" %)**MACaddr**(%%) ====
372
373 **Example**:
374
375 If the payload is C12309250F1A, the MACaddr is C12309250F1A
376
377
378 ==== (% style="color:#4472c4" %)**ProbeBat**(%%) ====
379
380 **Example:**
381
382 If payload is 0x64 = 100%
383
384
385 ==== (% style="color:#4472c4" %)**BoxBat**(%%) ====
386
387 **Example:**
388
389 If payload is 0x46 = 70%
390
391
392 ==== (% style="color:#4472c4" %)**Food temperature**(%%) ====
393
394 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
395
396 **Example**:
397
398 If payload is: D300H = 00D3H, temp = 00D3H /10 = 21.1 degree
399
400 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
401
402
403 ==== (% style="color:#4472c4" %)**Ambient temperature**(%%) ====
404
405 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
406
407 **Example**:
408
409 If payload is: D200H = 00D2H, temp = 00D2H /10 = 21.0 degree
410
411 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
412
413
414
415 == 2.4 Bluetoothe Broadcast Payload ==
416
417 === 2.4.1 Scanning Tools ===
418
419 Scan and obtain DMT01 device broadcast data through a third-party mobile phone app (such as nRF Connect)
420
421 Example:
422
423 Note: The following data is obtained through the **nRF Connect tool**.
424
425 [[image:1754305290140-806.jpg||height="680" width="432"]]
426
427
428 If the scanned payload is 0x0201060609444D5430310EFF  **01C12309250F1AD100CD006446   **0512E001E001
429
430 (% style="color:red" %)**Note**(%%):
431
432 * The first 12 bytes in the payload are the Bluetooth packet header data and do not need to be decoded.
433 * The last 6 bytes in the payload are the Bluetooth packet trailer data and do not need to be decoded.
434
435 So the payload is:**01C12309250F1AD100CD006446**
436
437
438 ==== (% style="color:#4472c4" %)**Bluetooth data packet frame header**(%%) ====
439
440 Example: 0x0201060609444D5430310EFF
441
442
443 ==== (% style="color:#4472c4" %)**DevMode**(%%) ====
444
445 **Example**:
446
447 If payload is 0x01: BLE_LoRa
448
449 If payload is 0x02: LoRa
450
451 If payload is 0x03: BLE
452
453
454 ==== (% style="color:#4472c4" %)**MACaddr**(%%) ====
455
456 **Example**:
457
458 If the payload is C12309250F1A, the MACaddr is C12309250F1A
459
460
461 ==== (% style="color:#4472c4" %)**ProbeBat**(%%) ====
462
463 **Example:**
464
465 If payload is 0x64 = 100%
466
467
468 ==== (% style="color:#4472c4" %)**BoxBat**(%%) ====
469
470 **Example:**
471
472 If payload is 0x46 = 70%
473
474
475 ==== (% style="color:#4472c4" %)**Food temperature**(%%) ====
476
477 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
478
479 **Example**:
480
481 If payload is: D300H = 00D3H, temp = 00D3H /10 = 21.1 degree
482
483 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
484
485
486 ==== (% style="color:#4472c4" %)**Ambient temperature**(%%) ====
487
488 Because the food temperature data is a little-endian sequence, the order of the front and back bytes needs to be swapped during decoding.
489
490 **Example**:
491
492 If payload is: D200H = 00D2H, temp = 00D2H /10 = 21.0 degree
493
494 If payload is: 3FFFH  = FF3F , temp = (FF3FH - 65536)/10 = -19.3 degrees.
495
496
497 ==== (% style="color:#4472c4" %)**Bluetooth data packet frame tail**(%%) ====
498
499 Example: 0x0512E001E001
500
501
502
503 = 3. Configure DMT01  ~-~- 需要修改 =
504
505 == 3.1 Configure Methods ==
506
507 User can use LoRaWAN downlink command to configure the DMT01
508
509 (((
510 (((
511 == 3.2 Downlink Commands Set ==
512
513
514 (% class="box infomessage" %)
515 (((
516 To be updated...
517 )))
518 )))
519 )))
520
521
522 = 4. Firmware update =
523
524
525 **Firmware download link **(% class="mark" %)(To be updated...)
526
527 User can upgrade the firmware for DMT01 charger. The charger include two piece of software:
528
529 * For LoRa part: OTA firmware update via LoRa:.
530
531 * For BLE and controller part.
532
533 == 4.1 Update LoRa software ==
534
535
536 == 4.2 Update BLE software ==
537
538
539 (((
540
541 )))
542
543 = 5.  FAQ =
544
545
546
547 = 6.  Order Info =
548
549
550 Part Number: (% style="color:blue" %)**DMT01-XX**
551
552 (% style="color:red" %)**XX:**
553
554 * **EU433**: Frequency bands EU433
555 * **EU868**: Frequency bands EU868
556 * **KR920**: Frequency bands KR920
557 * **CN470**: Frequency bands CN470
558 * **AS923**: Frequency bands AS923
559 * **AU915**: Frequency bands AU915
560 * **US915**: Frequency bands US915
561 * **IN865**: Frequency bands IN865
562 * **CN779**: Frequency bands CN779
563
564 = 7. ​ Packing Info =
565
566
567 (% style="color:#037691" %)**Package Includes:**
568
569 * DMT01 -  Digital Meat Thermoneter x 1
570
571 (% style="color:#037691" %)**Dimension and weight:**
572
573 * Device Size: cm
574 * Device Weight: g
575 * Package Size / pcs : cm
576 * Weight / pcs : g
577
578 = 8.  ​Support =
579
580
581 * 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.
582 * 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]].