1. Название и модель
Core 200S меньше 300S и без датчика пыли: авторежима нет. На плате EH-BY-41916-C стоит ESP32-SOLO-1C, вентилятор, экран и ночник живут на соседнем MCU. Связь — UART 115200 8N1, тот же компонент tuct/levoit, модель CORE200S.
README проверял прошивку MCU 2.0.11. Три скорости, режимы Manual и Sleep, ночник Off / Mid / Full, ресурс фильтра и таймер в минутах.
Винты мягкие. При сборке не затягивайте их до срыва резьбы. Сеть 220 В внутри корпуса, перед разбором вилку вынимают.
2. Что даёт перепрошивка
- Вентилятор: три скорости, пресеты Manual и Sleep
- Экран и детская блокировка
- Ночник: выключен, середина, полная яркость
- Текущий CADR, остаток фильтра в процентах, порог «мало ресурса»
- Срок службы фильтра в месяцах и сброс счётчиков из Home Assistant
- Таймер работы в минутах и версия прошивки MCU
3. Что теряется
- Приложение VeSync перестаёт управлять очистителем
- Датчика PM2.5 на этой модели нет и в ESPHome он не появится
- Авторежима нет: его не было и в штатной прошивке
- Гарантия после вскрытия обычно заканчивается
- Запасной ESP снаружи корпуса портит вид и может мешать потоку воздуха
4. Что понадобится
- Паяльник, флюс, тонкий провод
- USB–UART на 3,3 В. Пять вольт на логику ESP подавать нельзя
- Для штатного модуля: доступ к TXD0, RXD0, IO0, 3V3 и земле
- Для замены: Seeed XIAO ESP32-C3 или ESP32-S3. Штатный ESP отключают, замкнув его EN на землю
- ESPHome 2026.5.3 или новее, как указано в README tuct
5. Разборка и пины
Программатор USB–UART подключают к модулю, который прошивают, крест-накрест:
- Земля переходника (GND) — на землю платы. Этот провод обязателен.
- TX переходника — на RX модуля. На плате площадка часто подписана RX, RXD или RXD0.
- RX переходника — на TX модуля. На плате это TX, TXD или TXD0.
- Питание логики — 3,3 В. Пять вольт на эти площадки не подают. Если плату уже кормит её блок, линию 3,3 В с переходника не подключают вторым источником.
- Для входа в загрузчик ESP8266 и ESP32 площадку GPIO0 (IO0, BOOT) замыкают на землю и в этот момент подают питание. После старта записи землю с GPIO0 снимают.
Если у этой модели в тексте ниже другие имена площадок, прямой порядок TX–TX или прошивка по USB, делайте как написано там. Общая схема выше — для обычного модульного UART.
Корпус ставят вверх дном, снимают крышку основания и фильтр, выкручивают винты. Между защёлками вводят пластиковый съёмник: верхняя гильза должна уйти внутрь. Плату откручивают и отключают шлейф.
На лицевой стороне модуля подписаны площадки прошивки. Для записи в штатный ESP паяют TXD0, RXD0, IO0, +3V3 и GND. IO0 держат на земле до подачи питания.
Замена модуля, как в README (пример для ESP32-S3):
- EN штатного ESP — на землю, чтобы старый модуль молчал
- 3,3 В и земля — на 3,3 В и землю нового модуля
- RX платы — на GPIO05 нового S3, TX платы — на GPIO04
Это распиновка примера S3 из README Core 200S, а не общая таблица «для любого ESP». У штатного ESP32 в компоненте tuct передача идёт с GPIO17, приём на GPIO16. Готовые файлы: levoit-core200s-builder.yaml для штатного модуля, -c3 и -s3 для замены.
Места внутри почти нет. Автор README вывел новый модуль в поток воздуха и вырезал небольшое окно под провода.
6. Прошивка
Готового файла «прошивка именно этой модели» на этом сайте нет. Её собирает ESPHome из текстового конфига YAML: туда входят Wi-Fi, пины и команды второго чипа. Чужой .bin из интернета почти наверняка собран с чужим паролем сети.
Какую программу ставить
- ESPHome Dashboard — дополнение в Home Assistant или программа на компьютере. В ней пишут YAML, нажимают Install, и она сама собирает прошивку. Установка: дополнение для Home Assistant или команда
pip install esphome. - ESPHome Web, сайт web.esphome.io, — загрузчик в браузере Chrome или Edge. Им записывают уже собранный
.binна ESP8266 и ESP32 через USB–UART. На BK72xx он не рассчитан. - esptool — программа Espressif, чтобы снять заводскую копию флеша и записать
.bin, если браузер порт не видит. Репозиторий: espressif/esptool. - ltchiptool — то же самое для чипов Beken BK72xx (модули WB3S, WBR3, CB3S и похожие). ESPHome для них собирается через LibreTiny. Программа: libretiny-eu/ltchiptool, описание платы: компонент bk72xx.
Как собрать конфиг
- В Dashboard нажмите New Device и выберите чип, который стоит на плате: ESP8266, ESP32 или BK72xx. Имя — латиницей, без пробелов.
- Пароль Wi-Fi уберите в файл
secrets.yamlрядом с конфигом. В YAML оставьтеssid: !secret wifi_ssidиpassword: !secret wifi_password. - Блок UART, модель и скорости из раздела ниже вставьте в этот файл. Полный пример, если он длинный, берите по ссылке в источниках внизу страницы, а не из гайда соседней модели.
- Строки
api:иota:оставьте. Безapi:Home Assistant устройство не увидит. Ключ шифрования Dashboard предлагает сам, его потом спросит интеграция ESPHome.
Как залить первый раз
- Подключите USB–UART, как в разделе «Разборка и пины»: земля переходника на землю платы, TX переходника на RX модуля, RX переходника на TX модуля. Логика 3,3 В. Имена площадок на конкретной плате — там же.
- Для ESP8266 и ESP32 замкните GPIO0 (IO0, BOOT) на землю и в этот момент подайте питание. Для BK72xx ltchiptool сам просит перезапустить чип, обычно кратким отключением земли.
- В Dashboard: Install → Plug into this computer, выберите порт переходника. Либо Install → Manual download, сохраните
.binи откройте его на web.esphome.io. Из терминала то же самое делаетesphome run имя-устройства.yaml. - Когда в логе появится IP-адрес, GPIO0 от земли отпустите, провода можно отпаять. Следующие обновления идут по Wi-Fi, пункт OTA, паяльник больше не нужен.
Дальше — только то, чем эта модель отличается от общей схемы.
Перед записью снимите копию, если esptool её отдаёт:
esptool read_flash 0 ALL levoit-core200s-backup.bin
README предупреждает, что на части плат дамп не снимается. Дальше копируют secrets-example.yaml в secrets.yaml и запускают конфиг из каталога устройства, а не YAML от Core 300S.
Короткий каркас UART для штатного ESP32. Пины замены S3 другие, см. разбор выше.
Полный файл берите из devices/levoit-core200s. В логе должна появиться строка, что модель выставлена в CORE200S.
Базовый конфиг этой модели с карточки или из репозитория компонента. Wi-Fi, пароль и OTA задайте как в общем разделе выше. Пароли из исходника сюда не перенесены.
# levoit-core200s.yaml
#example levoit-core200s.yaml for flashing the original ESP32-SOLO-1C
substitutions:
device_name: levoit-core200s
wifi_ap_ssid: "Levoit-Core200S"
rx_pin: GPIO17
tx_pin: GPIO16
esphome:
name: levoit-core200s
esp32:
board: esp32dev
framework:
type: esp-idf
sdkconfig_options:
CONFIG_FREERTOS_UNICORE: y
packages:
common: !include common.yaml
source: !include ../packages/source_git.yaml
# common.yaml
#Do not use this file directly, it is included in the device yaml files. Put common configuration here.
# Enable logging
logger:
level: VERBOSE
uart:
- id: uart_mcu2esp
tx_pin:
number: ${tx_pin}
inverted: false
rx_pin:
number: ${rx_pin}
inverted: false
baud_rate: 115200
levoit:
id: levoitcore200
model: CORE200S
fan:
- platform: levoit
levoit: levoitcore200
name: "Fan"
id: levoit_fan1
switch:
- platform: levoit
levoit: levoitcore200
name: "Display"
type: display
- platform: levoit
levoit: levoitcore200
name: "Child Lock"
type: child_lock
number:
- platform: levoit
levoit: levoitcore200
name: "Timer (min)"
type: timer
- platform: levoit
levoit: levoitcore200
name: "Filter Months"
type: filter_lifetime_months
sensor:
- platform: levoit
levoit: levoitcore200
name: "Current CADR"
type: current_cadr
- platform: levoit
levoit: levoitcore200
name: "Filter %"
type: filter_life_left
text_sensor:
- platform: levoit
levoit: levoitcore200
name: "MCU Version"
type: mcu_version
- platform: levoit
levoit: levoitcore200
name: "ESP Version"
type: esp_version
- platform: levoit
levoit: levoitcore200
name: "Timer Duration"
type: timer_duration_initial
- platform: levoit
levoit: levoitcore200
name: "Timer Remaining"
type: timer_duration_remaining
- platform: levoit
levoit: levoitcore200
name: "Error"
type: error_message
button:
- platform: levoit
levoit: levoitcore200
name: "Filter Reset"
type: reset_filter_stats
binary_sensor:
- platform: levoit
levoit: levoitcore200
name: "Filter Low"
type: filter_low
select:
- platform: levoit
levoit: levoitcore200
name: "Fan Operating Mode"
type: fan_operating_mode
- platform: levoit
levoit: levoitcore200
name: "Night Light"
type: nightlight
7. Настройка в Home Assistant
После api: очиститель появляется в интеграции ESPHome. На панель имеет смысл вынести вентилятор, ночник, экран, блокировку, остаток фильтра и таймер.
Порога пыли здесь нет: автоматизацию «включить, когда душно» собирают от другого датчика в комнате, не от самого Core 200S.
8. Известные баги и как их обойти
- Путают UART прошивки (TXD0/RXD0) и UART к MCU. Компонент слушает линию MCU, программатор сидит на площадках загрузчика
- Пины GPIO4/GPIO5 из фото проводов S3 нельзя вписать в конфиг штатного ESP32
- Модель
CORE300Sна этой плате не заговорит с MCU: в блокеlevoitнужноCORE200S - Резервная копия иногда не снимается. Тогда возврат к VeSync нечем сделать
- Новый модуль в воздушном потоке греется и собирает пыль. Проверьте, что крышка фильтра садится
- В issue 60 Core 200S-P заработал на YAML от 200S только после того, как TX и RX поменяли местами. Датчик ресурса фильтра там по-прежнему молчит
9. Источники
- GitHub tuct/levoit, Core 200S https://github.com/tuct/levoit/tree/main/devices/levoit-core200s
- GitHub README компонента levoit https://github.com/tuct/levoit/blob/main/components/levoit/README.md
- GitHub tuct/levoit https://github.com/tuct/levoit
- GitHub Issue: Core 200S-P, TX/RX и фильтр https://github.com/tuct/levoit/issues/60