Wiki source code of DMT01

Last modified by Mengting Qiu on 2025/08/07 17:38

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