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.

Portrait of Andriy Shevchyk

Andriy Shevchyk

Chief Business Development Officer

Chief Business Development Officer, with more than 15 years in IoT, embedded systems and AI, previously co-founder and CTO of an embedded and system-level software firm.

View leadership profile

Raspberry Pi circuit board with the title What is firmware

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.

The three kinds of firmware a device team meets, what they run on and who usually writes them.
TypeRuns onTypical environmentWho writes it
Microcontroller (low-level) firmwareA microcontroller: a small chip with its own RAM, ROM and I/O, usually with kilobytes of memoryBare metal or a real-time operating system (RTOS)The device team, on demand
Microprocessor (high-level) firmwareA microprocessor with far more memory and computing powerAn operating system adapted to the hardware, such as Embedded Linux or a custom Yocto buildThe device team, on demand
System-level firmwareAny deviceDrivers and bootloaders, such as BIOS or UEFIUsually 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.

  1. Microcontroller startsPower-on or reset starts the chip.
  2. Bootloader runsThe bootloader launches at start-up and hands control to the application code.
  3. Application code runsThe firmware's own logic: the part that delivers the device's function.
  4. PeripheralsThe application reads sensors, drives actuators and exchanges data with other components.
Start-up path of microcontroller firmware, from power-on to talking to peripherals.

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.

Where firmware and application software differ in practice.
AspectFirmwareApplication software
Runs onMicrocontrollers and microprocessors in devicesWindows, macOS, Linux, Android, iOS, web and servers
MemoryEvery byte matters; memory rules are strictMore forgiving; optimisation often comes last
Tools and librariesA restricted set; not every protocol is supportedMany libraries, UI toolkits and frameworks
TimingOften real time, especially on an RTOSMultithreaded, with larger and less predictable delays
UpdatesInstalled by the device itself, usually over the airInstalled 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

  1. 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.

  2. 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.

  3. 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

Talk through your device architecture

Talk through your device architecture