diff --git a/esphome/components/beacon/__init__.py b/esphome/components/beacon/__init__.py deleted file mode 100644 index 2105c7fa94..0000000000 --- a/esphome/components/beacon/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -import esphome.codegen as cg -import esphome.config_validation as cv -from esphome.const import ( - CONF_ID, -) - -dfu_ns = cg.esphome_ns.namespace("beacon") -Beacon = dfu_ns.class_("Beacon", cg.Component) - -CONFIG_SCHEMA = cv.All( - cv.Schema( - { - cv.GenerateID(): cv.declare_id(Beacon), - } - ).extend(cv.COMPONENT_SCHEMA), - cv.only_on_nrf52, - # TODO implement - cv.only_with_arduino, -) - - -async def to_code(config): - var = cg.new_Pvariable(config[CONF_ID]) - await cg.register_component(var, config) diff --git a/esphome/components/beacon/beacon.cpp b/esphome/components/beacon/beacon.cpp deleted file mode 100644 index dabace8669..0000000000 --- a/esphome/components/beacon/beacon.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include "beacon.h" -#include - -// Beacon uses the Manufacturer Specific Data field in the advertising packet, -// which means you must provide a valid Manufacturer ID. Update -// the field below to an appropriate value. For a list of valid IDs see: -// https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers -// - 0x004C is Apple -// - 0x0822 is Adafruit -// - 0x0059 is Nordic -// For testing with this sketch, you can use nRF Beacon app -// - on Android you may need change the MANUFACTURER_ID to Nordic -// - on iOS you may need to change the MANUFACTURER_ID to Apple. -// You will also need to "Add Other Beacon, then enter Major, Minor that you set in the sketch -#define MANUFACTURER_ID 0x0059 - -// "nRF Connect" app can be used to detect beacon -const uint8_t BEACON_UUID[16] = {0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78, - 0x89, 0x9a, 0xab, 0xbc, 0xcd, 0xde, 0xef, 0xf0}; - -// A valid Beacon packet consists of the following information: -// UUID, Major, Minor, RSSI @ 1M -BLEBeacon ble_beacon(BEACON_UUID, 1, 2, -54); - -void start_adv() { - // Advertising packet - // Set the beacon payload using the BLEBeacon class populated - // earlier in this example - Bluefruit.Advertising.setBeacon(ble_beacon); - - // Secondary Scan Response packet (optional) - // Since there is no room for 'Name' in Advertising packet - Bluefruit.ScanResponse.addName(); - - /* Start Advertising - * - Enable auto advertising if disconnected - * - Timeout for fast mode is 30 seconds - * - Start(timeout) with timeout = 0 will advertise forever (until connected) - * - * Apple Beacon specs - * - Type: Non-connectable, scannable, undirected - * - Fixed interval: 100 ms -> fast = slow = 100 ms - */ - Bluefruit.Advertising.setType(BLE_GAP_ADV_TYPE_NONCONNECTABLE_SCANNABLE_UNDIRECTED); - Bluefruit.Advertising.restartOnDisconnect(true); - Bluefruit.Advertising.setInterval(160, 160); // in unit of 0.625 ms - Bluefruit.Advertising.setFastTimeout(30); // number of seconds in fast mode - Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds -} - -namespace esphome { -namespace beacon { - -void Beacon::loop() {} - -void Beacon::setup() { - Bluefruit.begin(); - - // off Blue LED for lowest power consumption - Bluefruit.autoConnLed(false); - Bluefruit.setTxPower(0); // Check bluefruit.h for supported values - Bluefruit.setName("ESPHome"); - - // Manufacturer ID is required for Manufacturer Specific Data - ble_beacon.setManufacturer(MANUFACTURER_ID); - - // Setup the advertising packet - start_adv(); -} - -} // namespace beacon -} // namespace esphome diff --git a/esphome/components/beacon/beacon.h b/esphome/components/beacon/beacon.h deleted file mode 100644 index a9b568f261..0000000000 --- a/esphome/components/beacon/beacon.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once -#include "esphome/core/component.h" - -namespace esphome { -namespace beacon { -class Beacon : public Component { - void loop() override; - void setup() override; -}; -} // namespace beacon -} // namespace esphome diff --git a/esphome/components/deep_sleep/__init__.py b/esphome/components/deep_sleep/__init__.py index 35b847ef3d..fd7ef6fcce 100644 --- a/esphome/components/deep_sleep/__init__.py +++ b/esphome/components/deep_sleep/__init__.py @@ -16,7 +16,6 @@ from esphome.const import ( CONF_WAKEUP_PIN, PLATFORM_ESP32, PLATFORM_ESP8266, - PLATFORM_NRF52, ) from esphome.components.esp32 import get_esp32_variant @@ -199,7 +198,7 @@ CONFIG_SCHEMA = cv.All( cv.Optional(CONF_TOUCH_WAKEUP): cv.All(cv.only_on_esp32, cv.boolean), } ).extend(cv.COMPONENT_SCHEMA), - cv.only_on([PLATFORM_ESP32, PLATFORM_ESP8266, PLATFORM_NRF52]), + cv.only_on([PLATFORM_ESP32, PLATFORM_ESP8266]), ) diff --git a/esphome/components/deep_sleep/deep_sleep_backend_nrf52.cpp b/esphome/components/deep_sleep/deep_sleep_backend_nrf52.cpp deleted file mode 100644 index 175b6be71f..0000000000 --- a/esphome/components/deep_sleep/deep_sleep_backend_nrf52.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#if defined(USE_NRF52) && defined(USE_ARDUINO) -#include "deep_sleep_backend_nrf52.h" -#include "nrf_power.h" -#include -#include "Adafruit_TinyUSB.h" -#include "esphome/core/log.h" - -namespace esphome { -namespace deep_sleep { - -#define DFU_MAGIC_SKIP 0x6d - -static const char *const TAG = "deep_sleep.nrf52"; - -void Nrf52DeepSleepBackend::begin_sleep(const optional &sleep_duration) { - // RTC works only during System On - if (sleep_duration.has_value()) { - // TinyUSBDevice.detach(); - // TODO deinit USB - // TOOD and the rest of peripherals - uint32_t start_time = millis(); - portSUPPRESS_TICKS_AND_SLEEP(ms2tick(*sleep_duration / 1000)); - last_sleep_duration_ = millis() - start_time; - // TinyUSBDevice.attach(); - } else { - NRF_POWER->GPREGRET = DFU_MAGIC_SKIP; - // Enter System OFF. -#ifdef SOFTDEVICE_PRESENT - uint8_t sd_en = 0; - (void) sd_softdevice_is_enabled(&sd_en); - if (sd_en) { - uint32_t ret_code = sd_power_system_off(); - assert((ret_code == NRF_SUCCESS) || (ret_code == NRF_ERROR_SOFTDEVICE_NOT_ENABLED)); - } -#endif // SOFTDEVICE_PRESENT - nrf_power_system_off(NRF_POWER); - // it should never reach here... - } -} - -void Nrf52DeepSleepBackend::dump_config() { - if (last_sleep_duration_.has_value()) { - ESP_LOGD(TAG, "Last sleep duration: %lu ms", *last_sleep_duration_); - } else { - ESP_LOGD(TAG, "Last sleep duration: unknown"); - } -} - -} // namespace deep_sleep -} // namespace esphome - -#endif diff --git a/esphome/components/deep_sleep/deep_sleep_backend_nrf52.h b/esphome/components/deep_sleep/deep_sleep_backend_nrf52.h deleted file mode 100644 index b96ee11323..0000000000 --- a/esphome/components/deep_sleep/deep_sleep_backend_nrf52.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once -#if defined(USE_NRF52) && defined(USE_ARDUINO) - -#include "esphome/core/optional.h" -#include "Arduino.h" - -namespace esphome { -namespace deep_sleep { - -class Nrf52DeepSleepBackend { - public: - void begin_sleep(const optional &sleep_duration); - void dump_config(); - - protected: - optional last_sleep_duration_; -}; - -} // namespace deep_sleep -} // namespace esphome - -#endif diff --git a/esphome/components/deep_sleep/deep_sleep_component.cpp b/esphome/components/deep_sleep/deep_sleep_component.cpp index 7b772b8982..328e972e6b 100644 --- a/esphome/components/deep_sleep/deep_sleep_component.cpp +++ b/esphome/components/deep_sleep/deep_sleep_component.cpp @@ -7,10 +7,6 @@ #include #endif -#ifdef USE_NRF52 -#include "deep_sleep_backend_nrf52.h" -#endif - namespace esphome { namespace deep_sleep { @@ -37,8 +33,10 @@ optional DeepSleepComponent::get_run_duration_() const { return this->run_duration_; } -void DeepSleepComponent::setup_deep_sleep_() { - this->next_enter_deep_sleep_ = false; +void DeepSleepComponent::setup() { + ESP_LOGCONFIG(TAG, "Setting up Deep Sleep..."); + global_has_deep_sleep = true; + const optional run_duration = get_run_duration_(); if (run_duration.has_value()) { ESP_LOGI(TAG, "Scheduling Deep Sleep to start in %" PRIu32 " ms", *run_duration); @@ -47,14 +45,6 @@ void DeepSleepComponent::setup_deep_sleep_() { ESP_LOGD(TAG, "Not scheduling Deep Sleep, as no run duration is configured."); } } - -void DeepSleepComponent::setup() { - ESP_LOGCONFIG(TAG, "Setting up Deep Sleep..."); - global_has_deep_sleep = true; - - setup_deep_sleep_(); -} - void DeepSleepComponent::dump_config() { ESP_LOGCONFIG(TAG, "Setting up Deep Sleep..."); if (this->sleep_duration_.has_value()) { @@ -75,9 +65,6 @@ void DeepSleepComponent::dump_config() { ESP_LOGCONFIG(TAG, " GPIO Wakeup Run Duration: %" PRIu32 " ms", this->wakeup_cause_to_run_duration_->gpio_cause); } #endif -#if defined(USE_NRF52) && defined(USE_ARDUINO) - backend_.dump_config(); -#endif } void DeepSleepComponent::loop() { if (this->next_enter_deep_sleep_) @@ -152,7 +139,7 @@ void DeepSleepComponent::begin_sleep(bool manual) { esp_sleep_enable_touchpad_wakeup(); esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON); } -#endif // USE_ESP32_VARIANT_ESP32C3 +#endif #ifdef USE_ESP32_VARIANT_ESP32C3 if (this->sleep_duration_.has_value()) esp_sleep_enable_timer_wakeup(*this->sleep_duration_); @@ -164,17 +151,13 @@ void DeepSleepComponent::begin_sleep(bool manual) { esp_deep_sleep_enable_gpio_wakeup(1 << this->wakeup_pin_->get_pin(), static_cast(level)); } -#endif // USE_ESP32_VARIANT_ESP32C3 +#endif esp_deep_sleep_start(); -#endif // USE_ESP32 +#endif #ifdef USE_ESP8266 ESP.deepSleep(*this->sleep_duration_); // NOLINT(readability-static-accessed-through-instance) #endif -#if defined(USE_NRF52) && defined(USE_ARDUINO) - backend_.begin_sleep(this->sleep_duration_); - setup_deep_sleep_(); -#endif } float DeepSleepComponent::get_setup_priority() const { return setup_priority::LATE; } void DeepSleepComponent::prevent_deep_sleep() { this->prevent_ = true; } diff --git a/esphome/components/deep_sleep/deep_sleep_component.h b/esphome/components/deep_sleep/deep_sleep_component.h index 21f7602edc..e97d8300c4 100644 --- a/esphome/components/deep_sleep/deep_sleep_component.h +++ b/esphome/components/deep_sleep/deep_sleep_component.h @@ -14,10 +14,6 @@ #include "esphome/core/time.h" #endif -#ifdef USE_NRF52 -#include "deep_sleep_backend_nrf52.h" -#endif - #include namespace esphome { @@ -110,8 +106,6 @@ class DeepSleepComponent : public Component { // duration before entering deep sleep. optional get_run_duration_() const; - void setup_deep_sleep_(); - optional sleep_duration_; #ifdef USE_ESP32 InternalGPIOPin *wakeup_pin_; @@ -123,9 +117,6 @@ class DeepSleepComponent : public Component { optional run_duration_; bool next_enter_deep_sleep_{false}; bool prevent_{false}; -#if defined(USE_NRF52) && defined(USE_ARDUINO) - Nrf52DeepSleepBackend backend_; -#endif }; extern bool global_has_deep_sleep; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)