Insights / Embedded & Firmware
What Is Firmware? Definition, Types, Architecture and Uses
Firmware is software built for microcontrollers and microprocessors: what it does, its types, architecture, security and update practice.

The short answer
Firmware is software written for a specific device with limited computing resources, a microcontroller or a microprocessor, and stored in the device's non-volatile memory. It starts the hardware, talks to sensors, actuators and other peripherals, and handles basic input and output. It can be the only software on a device, as in a smart thermostat, or the layer beneath the applications, as BIOS or UEFI is in a computer.
What firmware is and how it works
Firmware runs in almost every electronic device that does more than switch on and off. It is software made for a specific system with limited computing capabilities, a microcontroller or a microprocessor, and it is stored in the device's non-volatile memory.
- Firmware
- Software written for a specific microcontroller or microprocessor and stored in the device's non-volatile memory, where it controls the hardware directly.
Firmware works close to the hardware. It starts the device, connects to peripherals, turns on screens, sensors and actuators, and transmits the data the sensors collect. The manufacturer installs it, and the user cannot uninstall or change it the way they can with an app.
Firmware can be the only software on a device, as in smart thermostats, routers, cameras and smart speakers. It can also be one layer of a larger system: in phones, tablets and computers it handles the basic hardware functions below the applications. BIOS, or its successor UEFI, is the firmware of a computer.
Types of firmware
There is no single standard classification. From a development point of view it helps to split firmware into user-level firmware, which delivers the device's value to its user, and system-level firmware, which only keeps the system running.
| Type | Runs on | Typical environment | Who writes it |
|---|---|---|---|
| Microcontroller (low-level) firmware | A microcontroller: a small chip with its own RAM, ROM and I/O, usually with kilobytes of memory | Bare metal or a real-time operating system (RTOS) | The device team, on demand |
| Microprocessor (high-level) firmware | A microprocessor with far more memory and computing power | An operating system adapted to the hardware, such as Embedded Linux or a custom Yocto build | The device team, on demand |
| System-level firmware | Any device | Drivers and bootloaders, such as BIOS or UEFI | Usually the chip or board manufacturer; the team configures it |
Microcontroller firmware
A microcontroller is the main computing unit of devices such as thermostats and washing machines. Its memory is measured in kilobytes, so its firmware is low-level and often runs on an RTOS. The RTOS guarantees fast, stable interaction with peripherals: reading sensors, driving actuators and passing data to higher levels of the system. Its simplicity makes it more reliable than larger systems, but fitting every requirement into such tight resources is a real design challenge.
Microprocessor firmware
A microprocessor has a more complex structure, can address far more memory and runs a full operating system adapted for constrained hardware. That leaves room for more complex firmware and heavier processing algorithms, which is why it is called high-level firmware.
System-level firmware
Drivers and bootloaders are firmware too, but they are rarely written for a product. They are usually supplied by the manufacturer and need to be configured correctly so that the user firmware runs. Their purpose is purely technical: start a component, help the system boot, connect a peripheral.
How firmware architecture is layered
Because firmware is so closely tied to the hardware, its architecture is easiest to read with the hardware included.
- Microcontroller startsPower-on or reset starts the chip.
- Bootloader runsThe bootloader launches at start-up and hands control to the application code.
- Application code runsThe firmware's own logic: the part that delivers the device's function.
- PeripheralsThe application reads sensors, drives actuators and exchanges data with other components.
On a microprocessor the picture gains a layer. The operating system sits between the hardware and the firmware: the hardware talks to the system, and the system talks to the firmware components, which can also talk to each other.
Firmware vs software
Firmware is a kind of software, alongside mobile, desktop, web and server software. What sets it apart is the hardware it runs on, and that changes how it is built.
| Aspect | Firmware | Application software |
|---|---|---|
| Runs on | Microcontrollers and microprocessors in devices | Windows, macOS, Linux, Android, iOS, web and servers |
| Memory | Every byte matters; memory rules are strict | More forgiving; optimisation often comes last |
| Tools and libraries | A restricted set; not every protocol is supported | Many libraries, UI toolkits and frameworks |
| Timing | Often real time, especially on an RTOS | Multithreaded, with larger and less predictable delays |
| Updates | Installed by the device itself, usually over the air | Installed or approved by the user |
Examples of devices that run firmware
- Smart home and appliances: washing machines, video surveillance, robot vacuum cleaners, smart bulbs and door locks
- HVAC: air conditioners, heaters and thermostats
- Automotive and e-mobility: on-board computers, electric vehicles, scooters and e-bikes
- Healthcare: fitness trackers, pacemakers, glucose monitors and medical gas monitoring
- Networking: repeaters, hubs, switches, routers and gateways
- Wearables: smartwatches, fitness trackers, biosensors and VR headsets
Firmware security and updates
Firmware security is the set of measures that protects a device against unauthorised access, data theft, reverse engineering and attacks meant to make the firmware inoperable. What a device needs depends on whether it is connected to the internet, whether it collects sensitive data and whether its code must be protected from copying.
Baseline security measures
- Secure communication protocols such as TLS (HTTPS) for all incoming and outgoing traffic
- Digitally signed firmware images and updates, so a device installs only authentic code
- Encryption of the firmware and of the data the device sends, against reverse engineering and interception
An insecure connected device can be taken over and fed code that blocks genuine updates, and the same weakness repeats across every unit in the field. That is a risk to users' safety and to the manufacturer's reputation.
Updates are also how firmware gets its errors fixed. Unlike a phone app, firmware cannot be updated by the user: the device has to download and install updates itself. Over-the-air (OTA) updates let a manufacturer reach every device without touching it, which is why OTA belongs in the first plan of a firmware project. Well-designed firmware needs far fewer updates than mobile or desktop software, and new features are rare because the hardware sets the limits.
Practices that keep firmware reliable
Firmware has more control over the hardware than ordinary software, so a small bug can stop the whole device. The usual software disciplines apply (good coding practice, code review, unit tests and automated tests), plus several practices specific to firmware.
Common firmware development issues and how to handle them
When an update fails
- Logs: support has no physical access to the device, so accurate logging is the main way to see what went wrong.
- Crash reports: the device sends the system state at the moment of the crash, so engineers can reproduce and fix the error.
- Rollback: the user cannot repair a failed update, so the device must fall back to the last stable firmware version on its own.
Engineering trade-offs
Microcontroller with an RTOS
- You gain
- Real-time, predictable behaviour, low power and a simpler system that is more reliable.
- You pay
- Kilobytes of memory and a restricted toolset make every feature harder to fit.
- Choose it when
- Devices that read sensors and drive actuators on a schedule: thermostats, appliances, trackers.
Microprocessor with Embedded Linux
- You gain
- Gigabytes of memory, a full operating system and room for complex processing.
- You pay
- A larger, more complex system with an extra OS layer to secure and maintain.
- Choose it when
- Gateways, cameras and devices that run heavier algorithms or rich interfaces.
Common mistakes
Planning firmware like application software
Memory, timing and tooling limits surface late, when the hardware is already fixed.
Instead: Size the firmware against the chosen microcontroller or microprocessor from the first architecture sketch.
Adding over-the-air updates later
Devices already in the field cannot receive bug or security fixes without physical access.
Instead: Design the OTA path, signing and rollback into the first release.
Tying business logic to one component
A discontinued chip forces a rewrite of large parts of the firmware.
Instead: Keep a hardware abstraction layer so a component can be replaced without touching the logic above it.
Was this useful?
Where this shows up in our work
ExpertiseEmbedded and firmware engineeringIf you are planning a device, see how firmware is engineered together with the hardware, the update path and the cloud it reports to.Apply this to your product