- Levoit Core 200s – Custom ESPHome Firmware
- Levoit Core 300s – Custom ESPHome Firmware
- Levoit Core 400s – Custom ESPHome Firmware
- Levoit Core 600s – Custom ESPHome Firmware
- Levoit Vital 100s – Custom ESPHome Firmware
- Levoit Vital 200S – Custom ESPHome Firmware
Special:
- Levoit LV PUR 131s – Custom Firmware + MCU & sensor upgrade + hardware hack
- Levoit Mini – Custom PCB, 3D parts, hardware hack
Core 200S/300S/400S and Vital100/200, only require disassembly to flash firmware (no hardware modifications needed). They are using the esphome external component and can be flashed to original ESP32 or easily modded with a new one! The Mini and LV-PUR 131S require custom hardware hacks and PCB modifications.
Each device folder contains a YAML file per board variant, e.g.:
levoit-core300s/levoit-core300s.yaml # original ESP32-SOLO-1C
levoit-core300s/levoit-core300s-c3.yaml # ESP32-C3 replacement
levoit-core300s/levoit-core300s-s3.yaml # ESP32-S3 replacement
These pull the levoit component directly from GitHub on every compile:
esphome compile .\levoit-core300s\levoit-core300s.yamlIf you are working on the component code locally, use the _dev variants instead.
They load the component from ../../components (the repo root) rather than GitHub:
esphome compile .\levoit-core300s\levoit-core300s_dev.yamlThe only difference between the two is which source package is included:
| File | Component source |
|---|---|
levoit-core300s.yaml |
packages/source_git.yaml → GitHub |
levoit-core300s_dev.yaml |
packages/source_local.yaml → ../../components |
Run the PowerShell script from the devices/ folder:
.\build-all-dev.ps1This compiles every supported device using the local component and prints a pass/fail summary.
Each device folder contains pre-generated *-builder-*.yaml files with all configuration inlined — no local clone or package includes needed. Upload directly to the ESPHome web builder or paste into the ESPHome dashboard.
| File | Board |
|---|---|
levoit-core300s-builder.yaml |
original ESP32-SOLO-1C |
levoit-core300s-builder-c3.yaml |
ESP32-C3 replacement |
levoit-core300s-builder-s3.yaml |
ESP32-S3 replacement |
(Same pattern applies to all devices.)
To regenerate all builder files after making changes to common.yaml:
.\make-builder-yaml.ps1Choose the approach that fits your device and risk tolerance:
- Reuse Original ESP32 (single ESP)
- Put original ESP32 in bootloader, flash ESPHome directly over UART (TX/RX/GND/EN/GPIO0).
- Simplest wiring; you lose the stock firmware unless you back it up first.
- Add Second ESP32 (dual ESP)
- Keep the factory ESP32 intact and add a new ESP32 in parallel on UART.
- Use a 2-position switch on EN to select which ESP32 is active (switch only while powered down).
- Lets you revert to stock firmware or take MCU updates; recommended for cautious installs.
- Replace Module
- Desolder/disable the factory ESP32 module and drop in your own (e.g., ESP32-S3/C3).
- Cleanest for long-term custom firmware; cannot easily revert to stock without rework.
General tips:
- Backup with
esptool read_flash 0 ALL levoit.binif possible. - Common wiring: 3V3, GND, TX→MCU RX, RX→MCU TX, EN, GPIO0 (for boot).
- For WiFi LED/filter LED behaviors and entity list, see the component README.