diff --git a/platform.txt b/platform.txt
index 4260277745..7b41fb928b 100644
--- a/platform.txt
+++ b/platform.txt
@@ -180,3 +180,13 @@ tools.bmp_upload.upload.speed=230400
 tools.bmp_upload.upload.params.verbose=-batch
 tools.bmp_upload.upload.params.quiet=--batch-silent
 tools.bmp_upload.upload.pattern="{path}{cmd}" -nx -b {upload.speed} {upload.verbose} -ex "set confirm off" -ex "target extended-remote {serial.port}" -ex "monitor swdp_scan" -ex "attach 1" -ex "load" -ex "compare-sections" -ex "kill" "{build.path}/{build.project_name}.elf"
+
+# DFU upload using dfu-util
+tools.dfuutil_upload.cmd=dfu-util
+tools.dfuutil_upload.path.windows={runtime.hardware.path}/tools/win/dfu-util
+tools.dfuutil_upload.path.macosx={runtime.hardware.path}/tools/macosx/dfu-util
+tools.dfuutil_upload.path.linux={runtime.hardware.path}/tools/linux/dfu-util
+tools.dfuutil_upload.path.linux64={runtime.hardware.path}/tools/linux64/dfu-util
+tools.dfuutil_upload.upload.params.verbose=-d
+tools.dfuutil_upload.upload.params.quiet=
+tools.dfuutil_upload.upload.pattern="{path}/{cmd}" -a {upload.protocol} -s "{upload.address}:leave" -D "{build.path}/{build.project_name}.bin"