diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moyoung/ZL02DCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moyoung/ZL02DCoordinator.java
new file mode 100644
index 0000000000..b032714d80
--- /dev/null
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moyoung/ZL02DCoordinator.java
@@ -0,0 +1,78 @@
+/* Copyright (C) 2025 Arjan Schrijver
+
+ This file is part of Gadgetbridge.
+
+ Gadgetbridge is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Gadgetbridge is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see . */
+package nodomain.freeyourgadget.gadgetbridge.devices.moyoung;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+
+import java.util.regex.Pattern;
+
+import nodomain.freeyourgadget.gadgetbridge.R;
+import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
+
+public class ZL02DCoordinator extends AbstractMoyoungDeviceCoordinator {
+ @Override
+ protected Pattern getSupportedDeviceName() {
+ return Pattern.compile("^ZL02D$");
+ }
+
+ @Override
+ public int getDeviceNameResource() {
+ return R.string.devicetype_zl02d;
+ }
+
+ @Override
+ @DrawableRes
+ public int getDefaultIconResource() {
+ return R.drawable.ic_device_miwatch;
+ }
+
+ @Override
+ public String getManufacturer() {
+ return "Mo Young / Da Fit";
+ }
+
+ @Override
+ public int getMtu() {
+ return 508;
+ }
+
+ @Override
+ public int getAlarmSlotCount(GBDevice device) {
+ return 8;
+ }
+
+ @Override
+ public int getWorldClocksSlotCount() {
+ return 6;
+ }
+
+ @Override
+ public int getWorldClocksLabelLength() {
+ return 30;
+ }
+
+ @Override
+ public boolean supportsRemSleep(@NonNull GBDevice device) {
+ return true;
+ }
+
+ @Override
+ public boolean supportsStressMeasurement(@NonNull GBDevice device) {
+ return true;
+ }
+}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
index 738db551b2..e5089364cc 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
@@ -345,6 +345,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.MisirunC17Coordinato
import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.R50ProCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.RainbuvvyT97Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.ViranC29Coordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.ZL02DCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.no1f1.No1F1Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.nothing.CmfBuds2Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.nothing.CmfBudsPro2Coordinator;
@@ -886,6 +887,7 @@ public enum DeviceType {
KSIX_VENTURE(KsixVentureCoordinator.class),
FIREBOLTT_TALK(FireBolttTalkCoordinator.class),
VIRAN_C29(ViranC29Coordinator.class),
+ ZL02D(ZL02DCoordinator.class),
R50PRO(R50ProCoordinator.class),
RAINBUVVY_T97(RainbuvvyT97Coordinator.class),
ADVAN_WATCH_SE1_AI(AdvanWatchSE1AICoordinator.class),
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 48c04d9e23..aa046d1d44 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2185,6 +2185,7 @@
Colmi V73
Colmi V76
Colmi V89
+ ZL02D
Colmi P80
Blackview R60
Misirun C17
diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java
index c023aaa0a8..ea4d0814d0 100644
--- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java
+++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java
@@ -46,6 +46,7 @@ public class AbstractDeviceCoordinatorTest extends TestBase {
put("D3(ID-417F)", DeviceType.D3);
put("S10", DeviceType.QECNATO_S10);
put("S52", DeviceType.S52);
+ put("ZL02D", DeviceType.ZL02D);
put("R11C_B200", DeviceType.YAWELL_R11);
put("R11_B200", DeviceType.YAWELL_R11);
put("WF-C710N", DeviceType.SONY_WF_C710N);