diff --git a/.gitignore b/.gitignore
index c54d286f4cfa92c21f9d70a2895711fe7d05a34e..499efcb402f8ff762002abae4f827a6aae68047a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
 .*.sw?
 .DS_Store
 .checkstyle
+.cipd/
 .classpath
 .cproject
 .gdb_history
diff --git a/drivers/bluetooth/hci/intel/.gitignore b/drivers/bluetooth/hci/intel/.gitignore
index 2317a14ca02d3271aaf4a8185bb0a92cf53598e8..ed74fc11fad2e02a5937784866f7f0d945697cee 100644
--- a/drivers/bluetooth/hci/intel/.gitignore
+++ b/drivers/bluetooth/hci/intel/.gitignore
@@ -1,2 +1 @@
 firmware/
-intelbt.stamp
diff --git a/drivers/bluetooth/hci/intel/download-firmware.sh b/drivers/bluetooth/hci/intel/download-firmware.sh
deleted file mode 100755
index 8cb07512afa72e743c3eb33e488efb98621ab956..0000000000000000000000000000000000000000
--- a/drivers/bluetooth/hci/intel/download-firmware.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]} ) && pwd)"
-readonly FUCHSIA_URL_BASE="https://storage.googleapis.com/fuchsia-build"
-readonly FUCHSIA_ROOT="${SCRIPT_ROOT}/../../../../../"
-. "${FUCHSIA_ROOT}/buildtools/download.sh"
-
-download_tarball intelbt "${FUCHSIA_URL_BASE}/firmware/intel" "${SCRIPT_ROOT}/firmware" "${SCRIPT_ROOT}/intelbt"
diff --git a/drivers/bluetooth/hci/intel/intelbt.sha1 b/drivers/bluetooth/hci/intel/intelbt.sha1
deleted file mode 100644
index 846fdd9d2c44f43bf25a76348826c2ced1219302..0000000000000000000000000000000000000000
--- a/drivers/bluetooth/hci/intel/intelbt.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d5f92eeca320694c1163c56c52a64e91f36e5637
diff --git a/drivers/wlan/mediatek/ralink/.gitignore b/drivers/wlan/mediatek/ralink/.gitignore
index f65eb2cbd018ceb9a12ec8e4468b8e6d0008f2e3..ed74fc11fad2e02a5937784866f7f0d945697cee 100644
--- a/drivers/wlan/mediatek/ralink/.gitignore
+++ b/drivers/wlan/mediatek/ralink/.gitignore
@@ -1,2 +1 @@
 firmware/
-rt2870.stamp
diff --git a/drivers/wlan/mediatek/ralink/download-firmware.sh b/drivers/wlan/mediatek/ralink/download-firmware.sh
deleted file mode 100755
index 080251794a7a8d36b6bf28cd45f51b76a4efe911..0000000000000000000000000000000000000000
--- a/drivers/wlan/mediatek/ralink/download-firmware.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]} ) && pwd)"
-readonly FUCHSIA_URL_BASE="https://storage.googleapis.com/fuchsia-build"
-readonly FUCHSIA_ROOT="${SCRIPT_ROOT}/../../../../../"
-. "${FUCHSIA_ROOT}/buildtools/download.sh"
-
-download_zipfile rt2870 "${FUCHSIA_URL_BASE}/firmware/ralink" "${SCRIPT_ROOT}/firmware"
diff --git a/drivers/wlan/mediatek/ralink/rt2870.sha1 b/drivers/wlan/mediatek/ralink/rt2870.sha1
deleted file mode 100644
index 5303d1af111a228a6df9d4dffe73211d54d0e5b8..0000000000000000000000000000000000000000
--- a/drivers/wlan/mediatek/ralink/rt2870.sha1
+++ /dev/null
@@ -1 +0,0 @@
-83f6e2ce95b10df1cf3e06928761fa57133ef164
diff --git a/manifest/minimal b/manifest/minimal
index b41a0ad2bffbfb85ce35ee97001e4d2ddd0fb08e..3cdfef741482dc508c7082b52b74aa67efecc59b 100644
--- a/manifest/minimal
+++ b/manifest/minimal
@@ -10,12 +10,9 @@
     <hook name="build-update"
           project="garnet"
           action="tools/update.sh"/>
-    <hook name="download-rt2870-bin"
+    <hook name="cipd-update"
           project="garnet"
-          action="drivers/wlan/mediatek/ralink/download-firmware.sh"/>
-    <hook name="download-btintel-bin"
-          project="garnet"
-          action="drivers/bluetooth/hci/intel/download-firmware.sh"/>
+          action="tools/cipd-update.sh"/>
     <hook name="download-vulkan-sdk"
           project="garnet"
           action="public/lib/escher/scripts/download-vulkan-sdk"/>
diff --git a/tools/cipd-update.sh b/tools/cipd-update.sh
new file mode 100755
index 0000000000000000000000000000000000000000..644a4475568f0bd1cbe05ee09ef1d93ba457888f
--- /dev/null
+++ b/tools/cipd-update.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+set -ex
+
+readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]} ) && pwd)"
+readonly FUCHSIA_ROOT="${SCRIPT_ROOT}/../.."
+readonly GARNET_ROOT="${FUCHSIA_ROOT}/garnet"
+readonly BUILDTOOLS_DIR="${FUCHSIA_ROOT}/buildtools"
+
+${BUILDTOOLS_DIR}/cipd ensure -ensure-file "${SCRIPT_ROOT}/cipd.ensure" -root ${GARNET_ROOT} -log-level warning
diff --git a/tools/cipd.ensure b/tools/cipd.ensure
new file mode 100644
index 0000000000000000000000000000000000000000..57d8e0c3a8b4b078e09a4b5a841afc0e1339ee39
--- /dev/null
+++ b/tools/cipd.ensure
@@ -0,0 +1,11 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Ralink wlan firmware
+@Subdir drivers/wlan/mediatek/ralink/firmware
+fuchsia/firmware/ralink git_revision:12987cadb37de28719990dfc2397ec6d09e10566
+
+# Intel bluetooth firmware
+@Subdir drivers/bluetooth/hci/intel/firmware
+fuchsia/firmware/bluetooth/intel git_revision:2451bb228f6401ca3f2ecd498bf3bab613c532a7