Firmware is software that is permanently or semi-permanently stored in a hardware device and provides low-level control of that device’s functions. Unlike application software, firmware is tightly coupled to the hardware it runs on. It is typically stored in non-volatile memory — ROM, EEPROM, or flash memory — so that it persists across power cycles. The term covers a wide range: from the BIOS in a PC to the program running on a small microcontroller on a sensor board.
Firmware can usually be updated via a process called flashing, which writes a new binary image to the device’s memory. This allows bugs to be fixed and features to be added without replacing the hardware.
In This Home
The firmware on home automation sensor and control devices is developed and maintained using the ESPHome framework. ESPHome compiles YAML configuration into a binary firmware image, which is then flashed to Espressif ESP32-based boards such as the [Seeed Studios](A10-Glossary/Seeed Studios.md) XIAO series. After initial USB flashing, subsequent updates are delivered over-the-air (OTA).