diff --git a/libweave/include/weave/config.h b/libweave/include/weave/config.h
index 6b87385..a13eee5 100644
--- a/libweave/include/weave/config.h
+++ b/libweave/include/weave/config.h
@@ -35,6 +35,7 @@
   base::TimeDelta backup_polling_period;
 
   bool wifi_auto_setup_enabled{true};
+  bool ble_setup_enabled{false};
   std::set<PairingType> pairing_modes;
   base::FilePath embedded_code_path;
 
diff --git a/libweave/src/buffet_config.cc b/libweave/src/buffet_config.cc
index a4a38da..ee15693 100644
--- a/libweave/src/buffet_config.cc
+++ b/libweave/src/buffet_config.cc
@@ -85,6 +85,7 @@
 const char kDeviceId[] = "device_id";
 const char kRobotAccount[] = "robot_account";
 const char kWifiAutoSetupEnabled[] = "wifi_auto_setup_enabled";
+const char kBleSetupEnabled[] = "ble_setup_enabled";
 const char kEmbeddedCodePath[] = "embedded_code_path";
 const char kPairingModes[] = "pairing_modes";
 const char kLastConfiguredSsid[] = "last_configured_ssid";
@@ -109,6 +110,7 @@
   result.polling_period = base::TimeDelta::FromSeconds(7);
   result.backup_polling_period = base::TimeDelta::FromMinutes(30);
   result.wifi_auto_setup_enabled = true;
+  result.ble_setup_enabled = false;
   result.pairing_modes.emplace(PairingType::kPinCode);
   return result;
 }
@@ -180,6 +182,9 @@
   store.GetBoolean(config_keys::kWifiAutoSetupEnabled,
                    &settings_.wifi_auto_setup_enabled);
 
+  store.GetBoolean(config_keys::kBleSetupEnabled,
+                   &settings_.ble_setup_enabled);
+
   std::string embedded_code_path;
   if (store.GetString(config_keys::kEmbeddedCodePath, &embedded_code_path)) {
     settings_.embedded_code_path = base::FilePath(embedded_code_path);
diff --git a/libweave/src/buffet_config.h b/libweave/src/buffet_config.h
index 8924365..f2c4891 100644
--- a/libweave/src/buffet_config.h
+++ b/libweave/src/buffet_config.h
@@ -112,6 +112,9 @@
   bool wifi_auto_setup_enabled() const {
     return settings_.wifi_auto_setup_enabled;
   }
+  bool ble_setup_enabled() const {
+    return settings_.ble_setup_enabled;
+  }
   const std::set<PairingType>& pairing_modes() const {
     return settings_.pairing_modes;
   }
diff --git a/libweave/src/buffet_config_unittest.cc b/libweave/src/buffet_config_unittest.cc
index 7811814..7c80b06 100644
--- a/libweave/src/buffet_config_unittest.cc
+++ b/libweave/src/buffet_config_unittest.cc
@@ -58,6 +58,7 @@
   EXPECT_EQ(base::TimeDelta::FromSeconds(7), config_->polling_period());
   EXPECT_EQ(base::TimeDelta::FromMinutes(30), config_->backup_polling_period());
   EXPECT_TRUE(config_->wifi_auto_setup_enabled());
+  EXPECT_FALSE(config_->ble_setup_enabled());
   EXPECT_EQ(std::set<PairingType>{PairingType::kPinCode},
             config_->pairing_modes());
   EXPECT_EQ("", config_->embedded_code_path().value());
@@ -86,6 +87,7 @@
   config_store.SetString("polling_period_ms", "12345");
   config_store.SetString("backup_polling_period_ms", "6589");
   config_store.SetBoolean("wifi_auto_setup_enabled", false);
+  config_store.SetBoolean("ble_setup_enabled", true);
   config_store.SetString("pairing_modes",
                          "pinCode,embeddedCode,ultrasound32,audible32");
   config_store.SetString("embedded_code_path", "/conf_code");
@@ -120,6 +122,7 @@
   EXPECT_EQ(base::TimeDelta::FromMilliseconds(6589),
             config_->backup_polling_period());
   EXPECT_FALSE(config_->wifi_auto_setup_enabled());
+  EXPECT_TRUE(config_->ble_setup_enabled());
   std::set<PairingType> pairing_types{
       PairingType::kPinCode, PairingType::kEmbeddedCode,
       PairingType::kUltrasound32, PairingType::kAudible32};
@@ -205,6 +208,8 @@
   EXPECT_EQ(default_.backup_polling_period(), config_->backup_polling_period());
   EXPECT_EQ(default_.wifi_auto_setup_enabled(),
             config_->wifi_auto_setup_enabled());
+  EXPECT_EQ(default_.ble_setup_enabled(),
+            config_->ble_setup_enabled());
   EXPECT_EQ(default_.pairing_modes(), config_->pairing_modes());
   EXPECT_EQ(default_.embedded_code_path(), config_->embedded_code_path());
   EXPECT_EQ("state_name", config_->name());
diff --git a/libweave/src/privet/privet_manager.cc b/libweave/src/privet/privet_manager.cc
index 5638726..698283a 100644
--- a/libweave/src/privet/privet_manager.cc
+++ b/libweave/src/privet/privet_manager.cc
@@ -83,6 +83,7 @@
     VLOG(1) << "Enabling WiFi bootstrapping.";
     wifi_bootstrap_manager_.reset(new WifiBootstrapManager(
         device->GetConfig().last_configured_ssid(), options.test_privet_ssid,
+        device->GetConfig().ble_setup_enabled(),
         shill_client, ap_manager_client_.get(), cloud_.get()));
     wifi_bootstrap_manager_->Init();
   }
diff --git a/libweave/src/privet/wifi_bootstrap_manager.cc b/libweave/src/privet/wifi_bootstrap_manager.cc
index a52b11c..d1bf380 100644
--- a/libweave/src/privet/wifi_bootstrap_manager.cc
+++ b/libweave/src/privet/wifi_bootstrap_manager.cc
@@ -26,6 +26,7 @@
 WifiBootstrapManager::WifiBootstrapManager(
     const std::string& last_configured_ssid,
     const std::string& test_privet_ssid,
+    bool ble_setup_enabled,
     ShillClient* shill_client,
     ApManagerClient* ap_manager_client,
     CloudDelegate* gcd)
@@ -33,7 +34,8 @@
       ap_manager_client_{ap_manager_client},
       ssid_generator_{gcd, this},
       last_configured_ssid_{last_configured_ssid},
-      test_privet_ssid_{test_privet_ssid} {
+      test_privet_ssid_{test_privet_ssid},
+      ble_setup_enabled_{ble_setup_enabled} {
   cloud_observer_.Add(gcd);
 }
 
@@ -86,9 +88,11 @@
   std::string ssid = GenerateSsid();
   CHECK(!ssid.empty());
   ap_manager_client_->Start(ssid);
+  LOG_IF(INFO, ble_setup_enabled_) << "BLE Bootstrap start: not implemented.";
 }
 
 void WifiBootstrapManager::EndBootstrapping() {
+  LOG_IF(INFO, ble_setup_enabled_) << "BLE Bootstrap stop: not implemented.";
   ap_manager_client_->Stop();
 }
 
diff --git a/libweave/src/privet/wifi_bootstrap_manager.h b/libweave/src/privet/wifi_bootstrap_manager.h
index 7ade295..fbe89d0 100644
--- a/libweave/src/privet/wifi_bootstrap_manager.h
+++ b/libweave/src/privet/wifi_bootstrap_manager.h
@@ -37,6 +37,7 @@
 
   WifiBootstrapManager(const std::string& last_configured_ssid,
                        const std::string& test_privet_ssid,
+                       bool wifi_setup_enabled,
                        ShillClient* shill_client,
                        ApManagerClient* ap_manager_client,
                        CloudDelegate* gcd);
@@ -105,6 +106,7 @@
   bool currently_online_{false};
   std::string last_configured_ssid_;
   std::string test_privet_ssid_;
+  bool ble_setup_enabled_{false};
 
   ScopedObserver<CloudDelegate, CloudDelegate::Observer> cloud_observer_{this};
 
