1. Название и модель
AC0650 и AC0651 — один корпус Philips/Versuni, в продаже бывает под маркой MUJI. Wi-Fi-модуль ESP32-C3-WROOM-02U включён с secure boot, записать в него ESPHome нельзя. Рабочий путь из README tuct: отключить штатный модуль и поставить свой ESP32-C3 на линию MCU.
Протокол общий, кадры начинаются с FE FF, скорость 115200 8N1. AC0650 — вентилятор и фильтры. AC0651 добавляет датчик PM1003, индекс аллергенов, авторежим и опрос датчика в ожидании.
Пины TX и RX в
common.yaml— подстановки${tx_pin}и${rx_pin}. Номера GPIO зависят от того, какой модуль вы припаяли. В гайде их нет, потому что в репозитории их нет.
2. Что даёт перепрошивка
- Вентилятор: сон, средняя, турбо. У AC0651 ещё пресет Auto
- Остаток предварительного фильтра и HEPA, кнопки сброса обоих счётчиков
- Версия прошивки MCU
- У AC0651: PM2.5, индекс аллергенов 1–12, выключатель опроса датчика в ожидании
3. Что теряется
- Приложение Philips / MUJI и облако Versuni больше не управляют аппаратом
- Штатный модуль остаётся на плате, но с EN на земле. Вернуть облако можно, только сняв эту перемычку и отключив свой ESP
- У AC0650 не будет PM2.5, даже если в YAML поставить модель AC0651
- Гарантия после разбора обычно заканчивается
4. Что понадобится
- Крестовая отвёртка и паяльник
- Свой ESP32-C3, в README указан Seeed XIAO ESP32-C3
- Провода на четыре тестовые площадки: +5V, GND, RX, TX. Это не гребёнка пинов
- Питание модуля берут с площадки +5V на вход 5 В (VIN) своего ESP. На логические выводы 5 В не подают
- Компонент
philipsиз tuct/levoit
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.
Вилку вынимают. Снизу три винта, снимают серую крышку и чёрный кабельный кожух. Ещё три винта — внутреннюю сборку выдвигают из корпуса. Снимают верхний колпачок и последние три винта платы.
Паяют +5V, GND, RX и TX на тестовые площадки рядом со штатным ESP. Разъём-гребёнка — не эти цепи.
Штатный модуль глушат: его EN сажают на землю, иначе два передатчика сидят на одной UART. Фото площадки EN есть в репозитории отдельно от фото RX/TX.
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, паяльник больше не нужен.
Дальше — только то, чем эта модель отличается от общей схемы.
Компонент один, модель выбирают явно.
Для AC0651 в model ставят AC0651. ${tx_pin} и ${rx_pin} заменяют на GPIO того модуля, который припаяли к площадкам. Готовые yaml лежат в devices/philips-600-series. Прошивку MCU 0.1.9 и 0.2.1 README уже видел.
Базовый конфиг этой модели с карточки или из репозитория компонента. Wi-Fi, пароль и OTA задайте как в общем разделе выше. Пароли из исходника сюда не перенесены.
# philips-ac0650.yaml
# MUJI/Philips AC0650/10 — replacement ESP32-C3 on the MCU↔module UART.
# The stock ESP32-C3-WROOM-02U has secure boot and can't be reflashed, so wire a
# replacement C3 to the MCU UART (hold the stock module's EN low to disable it).
# NOTE: verify the UART pins against your wiring (the MCU link, NOT the flash header).
substitutions:
device_name: philips-ac0650
wifi_ap_ssid: "Philips-AC0650"
philips_model: AC0650
rx_pin: GPIO20 # MCU TX → ESP RX
tx_pin: GPIO21 # ESP TX → MCU RX
esphome:
name: ${device_name}
esp32:
board: esp32-c3-devkitm-1
framework:
type: esp-idf
packages:
common: !include common.yaml
# common.yaml
# Shared config for the MUJI/Philips AC0650/10 — included by the per-board yamls.
# Do not flash this directly.
logger:
# On the ESP32-C3 the default logger UART (UART0) is GPIO20/21 — the same pins
# as the MCU link. Log over the native USB instead so those pins stay free.
hardware_uart: USB_SERIAL_JTAG
external_components:
- source:
type: local
path: ../../components
components: [philips]
uart:
- id: uart_mcu
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 115200
philips:
id: purifier
model: ${philips_model} # AC0650 (base) or AC0651 (PM2.5 + Auto Mode)
fan:
- platform: philips
philips: purifier
name: "Fan" # 3 speeds: 1=Sleep, 2=Medium, 3=Turbo
sensor:
- platform: philips
philips: purifier
name: "Pre-filter"
type: filter_clean
- platform: philips
philips: purifier
name: "HEPA Filter"
type: filter_lifetime
button:
- platform: philips
philips: purifier
name: "Reset Pre-filter"
type: reset_prefilter
- platform: philips
philips: purifier
name: "Reset HEPA Filter"
type: reset_hepa
text_sensor:
- platform: philips
philips: purifier
name: "MCU Version"
type: mcu_version
7. Настройка в Home Assistant
Вентилятор и два фильтра — база для обеих моделей. PM2.5 и авторежим появятся только если аппарат действительно AC0651 и в конфиге указана эта модель.
Сброс HEPA и префильтра — отдельные кнопки. Не вешайте их на одну автоматизацию.
8. Известные баги и как их обойти
- Попытка прошить штатный C3 упирается в secure boot. Это не «не тот режим загрузчика»
- Пайка на штыревой разъём вместо тестовых площадок RX/TX не попадает в UART MCU
- Пять вольт с площадки +5V годны для VIN модуля и не годны для GPIO
- Модель AC0650 на плате AC0651 спрячет датчик пыли, и наоборот конфиг 651 на плате без датчика будет пустым
9. Источники
- GitHub tuct/levoit, Philips 600 https://github.com/tuct/levoit/tree/main/devices/philips-600-series
- GitHub Компонент philips https://github.com/tuct/levoit/tree/main/components/philips
- GitHub tuct/levoit https://github.com/tuct/levoit