- Collection of air purifiers and humidifiers that can be more or less easily hacked to run ESPHome instead of cloud-based firmware.
- Eliminating cloud dependency and enabling native Home Assistant integration for air purifiers.
I like Wi-Fi enabled air purifiers! But I hate the fact that they all depend on a cloud service.
I've run Home Assistant and custom-built ESPHome devices at home for quite some time, and found a project that let me flash custom, ESPHome-based firmware onto a Levoit Core 300S (which I already owned). Wi-Fi enabled air purifiers often use an ESP32 for the Wi-Fi side plus a separate MCU to manage the purifier itself (speeds, air-quality sensor, auto mode, β¦), with a UART link between the two.
This started as a handful of custom ESPHome firmware and hardware projects for Levoit air purifiers, and is slowly growing into the broader collection you see here.
Every purifier that runs ESPHome at a glance β how it's converted, its specs, and how involved the teardown is. Click a model or its Guide for the full write-up.
Devices that can't run ESPHome but are still controllable locally on stock firmware are listed separately in Cloud-free without ESPHome below.
| Model | Manufacturer | Support | Methods | CADR (spec) | Noise | Disassembly | Guide | Links | Comments |
|---|---|---|---|---|---|---|---|---|---|
| Core 200S | Levoit | π levoit |
π’ Flash / π΅ Add ESP | 167 mΒ³/h | 24β48 dB | Easy | Guide | Amazon | β Tested Β· 3 speeds, no air-quality sensor |
| Core 300S | Levoit | π levoit |
π’ Flash / π΅ Add ESP | 214 mΒ³/h | 24β50 dB | Easy | Guide | Amazon | β Tested Β· PM2.5 + Auto mode |
| Core 400S | Levoit | π levoit |
π’ Flash / π΅ Add ESP | 442 mΒ³/h | 24β52 dB | Hard | Guide | Amazon | β Tested Β· 4 speeds |
| Core 600S | Levoit | π levoit |
π’ Flash / π΅ Add ESP | 641 mΒ³/h | 26β54 dB | Hard | Guide | Amazon | β Tested Β· 4 auto modes |
| Vital 100S | Levoit | π levoit |
π’ Flash / π΅ Add ESP | 221 mΒ³/h | 23β52 dB | Easy | Guide | Amazon | β Tested Β· Pet mode; detailed teardown |
| Vital 200S (Pro) | Levoit | π levoit |
π’ Flash / π΅ Add ESP | 415 mΒ³/h | 23β58 dB | Easy | Guide | Amazon | β Tested |
| Everest Air | Levoit | π levoit |
π’ Flash / π΅ Add ESP | 612 mΒ³/h | 24β56 dB | Easy | Guide | Amazon | β Tested Β· vent louver, PM1.0/2.5/10, Turbo |
| Sprout | Levoit | π levoit + levoit_audio |
π’ Flash / π΅ Add ESP | 145 mΒ³/h | 22β47 dB | Easy | Guide | Amazon | π§ WIP Β· white-noise audio (I2S MP3) |
| LV-PUR 131S | Levoit | π Guide + YAML | π΄ Custom HW | β | β | Medium | Guide | β | ESP12F β ESP32-C3, PM1003 β PM5003 |
| LV-PUR 131 | Levoit | π Guide + YAML | π΄ Custom HW | β | β | Medium | Guide | β | As above + temperature sensor |
| Levoit Mini | Levoit | π Guide + YAML | π΄ Custom HW | 78 mΒ³/h | 41.8 β 53.6 dBA | Easy | Guide | Amazon | Custom PCB + 3D parts; original PCB bypassed, reversible |
| Core 300 | Levoit | π External | π΄ Custom HW | 214 mΒ³/h | 24β50 dB | Easy | Reddit β | β | Non-smart Core 300 with broken PCB; ESP32 wired straight to the fan-speed lines β 3 interlocked GPIO switches (no MCU/UART, no sensors) |
| Core 300-P | Levoit | π External | π΄ Custom HW | 214 mΒ³/h | 24β50 dB | Easy | Shop β | Silo City Labs | Non-smart Core 300-P β a ready-made ESP32-C6 replacement controller running ESPHome, reusing the stock fan controller and PSU. 4 fan speeds, 14 RGB LEDs, 3 spare GPIOs for AQ/VOC add-ons. Check the Intertek model on the back (5014566 vs 5030453) before ordering |
| AC0650 | Philips / MUJI | π philips |
π΅ Add ESP | 170 mΒ³/h | 19β49 dB | Easy | Guide | Amazon | β Tested Β· secure boot β replace module; no AQ sensor |
| AC0651 | Philips / MUJI | π philips |
π΅ Add ESP | 170 mΒ³/h | 19β49 dB | Easy | Guide | Amazon | β Tested Β· adds PM2.5 (PM1003), allergen index, Auto mode |
| AC0951 | Philips | π philips |
π΅ Add ESP | β | β | Easy | Guide | β | β Tested Β· MXCHIP module parked, ESP32-C3 added; PM2.5, allergen index, child lock, beep, display brightness, sleep timer |
| AC0950 | Philips | π philips |
π΅ Add ESP | β | β | Easy | Guide | β | |
| FΓΆrnuftig | IKEA | π External | π΄ Custom HW | 120 mΒ³/h | 28β60 dB | Easy | Blog β Β· C6 β | β | Dumb 3-speed fan, ESP added for control |
| UppΓ₯tvind | IKEA | π External | π΄ Custom HW | 95 mΒ³/h | 42.5β53.8 dB | Easy | GitHub β | β | Small desk purifier, ESP added for control |
| Mi Air Purifier 3 / 3H / 3C Β· Pro H Β· Smart 4 / 4 Lite / 4 Pro / Elite | Xiaomi | π External | π’ Flash | β | β | β | GitHub β | β | MIoT UART component; flashes the built-in ESP gateway. Also covers other Xiaomi MIoT devices |
Support β where the firmware/guide lives:
- π This repo β maintained here: an in-repo ESPHome component (
levoit,philips) or a full build guide with YAML. - π External β someone else's project; the Guide column links straight to it. Listed for completeness, not maintained here.
Methods β how the custom firmware ends up on the device:
- π’ Flash β flash ESPHome straight onto the device's own ESP32 (works where it isn't locked β most Levoits). Easiest; back up the stock firmware first.
- π΅ Add ESP β wire in a separate ESP32 and disable the original (
ENβGND). Needed when secure boot blocks reflashing, and fully reversible. - π΄ Custom HW 9C8A β replace the controller board / build custom hardware.
CADR and Noise are manufacturer specs. Disassembly is a rough effort estimate (Easy / Medium / Hard) β check the linked Guide before you start.
Got another air purifier running ESPHome? Add it to the list β open a Pull Request or share it in Discussions. Two requirements: it has to be an air purifier, and it has to run (or be made to run) ESPHome. In-repo components or external projects (like the IKEA ones above) are both welcome.
Humidifiers use the same MCU-over-UART approach as the purifiers above, and the
same in-repo components β a Levoit humidifier is just another model: for the
levoit component.
| Model | Manufacturer | Support | Methods | Tank | Output (spec) | Disassembly | Guide | Links | Comments |
|---|---|---|---|---|---|---|---|---|---|
| Superior 6000S | Levoit | π levoit |
π’ Flash / π΅ Add ESP | 6 L | 500 mL/h | Easy | Guide | β | π§ Untested on hardware Β· evaporative; 9 fan speeds, target humidity, auto-dry, temperature + humidity sensors |
The legend is the same as for the purifiers above β Tank and Output are manufacturer specs and replace the CADR/Noise columns.
Got a humidifier running ESPHome? Same deal as the purifiers β open a Pull Request or start a Discussion.
Many Philips / Versuni purifiers can be driven locally over CoAP on stock firmware β no flashing, no hardware changes. The supported-model list and setup live in docs/philips-coap.md.
Two external components live here. Each README carries its own supported models, configuration reference, feature list and change log.
| Component | Devices | Docs |
|---|---|---|
levoit |
Levoit air purifiers and the Superior 6000S humidifier | README Β· compile tests |
philips |
Philips / MUJI 600 and 900 series purifiers | README |
Per-device wiring, teardowns and example YAML live under
devices/ β one folder per model, linked from the
tables above.
- Levoit LV-PUR 131S β Custom Firmware + MCU & sensor upgrade + hardware hack
- Levoit LV-PUR 131 β Custom Firmware + temperature sensor + MCU & sensor upgrade + hardware hack
- Levoit Mini β Custom PCB, 3D parts, hardware hack
Not part of this repo, but built on the same idea β an ESPHome component talking the vendor's UART protocol to the purifier's MCU:
- dhewg/esphome-miot β Xiaomi MIoT serial protocol. Flashes the device's built-in ESP gateway (no extra hardware) and covers a range of Xiaomi/Mi air purifiers: Mi Air Purifier 3 / 3H / 3C, Pro H, and Smart 4 / 4 Lite / 4 Pro / Elite. Also supports other Xiaomi MIoT devices (humidifiers, fans, β¦).
See CHANGELOG.md for project-level changes, and the levoit component change log for component releases.
See CONTRIBUTING.md β issues, pull requests, what CI runs, and what a good contribution looks like.
Adding a model that is not listed above? Start with docs/adding-a-new-device.md.
Not my projects, but worth checking out: