You have heard “firmware update” on a TV, a router, or a game controller. This page starts from zero. No coding class required. If you can follow a recipe, you can follow firmware.
Before the diagrams, lock in three words. Everything else on this page is just these three ideas wearing different clothes.
The thing you can touch. A light bulb, a motor, a button, a plastic box, a tiny chip. Hardware by itself does not know a plan. A bulb can glow. It does not know when to glow.
An app you install and delete. A game on a phone. A browser on a laptop. Software needs a bigger computer that is already awake — Windows, Android, or iOS.
A small recipe stored inside the gadget. It tells the hardware what to do. It stays even when the power is off. No app store. No Windows. Just steps the chip follows.
Hardware is the body. Firmware is the habit written into that body. Software is an extra job you give a computer that is already awake.
Your school uniform is muddy. You put it in a washing machine and press Start. You do not stand there saying “now spin, now add water.” The machine already knows the steps:
Those steps are not the metal drum. They are not the water. They are a list of orders saved inside a small chip in the machine. That list is firmware.
A toy car with a remote: the plastic car is hardware. The tiny program that says “if the forward button is pressed, spin the motor” is firmware. The racing game on your phone is software — it is not glued inside the toy.
Imagine you are asked to build a traffic light for a small school crossing. The light needs to do this:
Your first idea: "I will just wire it up with timers and relays!"
The hardware is frozen. Once you wire it, it can never learn new tricks.
Think of a robot toy. If you glue its arms in one position, it can only do one thing forever. But if you put a tiny computer inside and write instructions — "raise left arm, wait 2 seconds, lower it" — now you can change the instructions anytime without rebuilding the robot.
Those instructions stored inside the chip = Firmware.
Instead of 3 timers and 3 relays, we replace everything with one tiny chip called a microcontroller (like Arduino, STM32, ESP32). This chip has:
Here is the recipe inside the traffic-light chip. Read it like English. You do not need to memorize the words.
HIGH means “send electricity — light ON.”LOW means “stop electricity — light OFF.”delay(30000) means “wait 30,000 milliseconds,” which is 30 seconds.loop means “when you finish the list, start again at the top.”// ═══════════════════════════════════════════ // FIRMWARE: Smart Traffic Light Controller // Stored inside the chip's Flash memory // ═══════════════════════════════════════════ // Step 1: Name the 3 GPIO pins int RED_PIN = 1; int YELLOW_PIN = 2; int GREEN_PIN = 3; // Step 2: When the chip powers on, do this ONCE void setup() { // Tell the chip: these 3 pins will OUTPUT electricity pinMode(RED_PIN, OUTPUT); pinMode(YELLOW_PIN, OUTPUT); pinMode(GREEN_PIN, OUTPUT); } // Step 3: After setup, do this FOREVER (loop) void loop() { // ── GREEN PHASE ── digitalWrite(GREEN_PIN, HIGH); // Turn ON green delay(30000); // Wait 30 seconds digitalWrite(GREEN_PIN, LOW); // Turn OFF green // ── YELLOW PHASE ── digitalWrite(YELLOW_PIN, HIGH); // Turn ON yellow delay(5000); // Wait 5 seconds digitalWrite(YELLOW_PIN, LOW); // Turn OFF yellow // ── RED PHASE ── digitalWrite(RED_PIN, HIGH); // Turn ON red delay(30000); // Wait 30 seconds digitalWrite(RED_PIN, LOW); // Turn OFF red // Loop back to GREEN automatically! }
30000 to 45000. Done.You never touch the wires. You only change the instructions.
You do not open the chip with a screwdriver and drop letters inside. There are four simple steps. Think of translating a story into a secret code the chip can obey.
Flash memory is a notebook: close the book, the writing stays. RAM is a chalkboard: wipe it (or cut the power) and the writing is gone. Firmware belongs in the notebook, not on the chalkboard.
Nothing magical. The chip wakes up and does the same four jobs every time:
That loop — read, do, next — is the whole life of firmware. A phone, a keyboard, and a washing machine are the same idea with longer recipes.
| Name | School picture | Does it forget when power is off? | Used for |
|---|---|---|---|
| ROM | Words carved in stone | No | Very old chips. The recipe could not be changed. |
| Flash | A notebook you can erase and rewrite | No | Almost all modern firmware. This is why “firmware update” exists. |
| RAM | A chalkboard | Yes | Scratch work while the chip is running: a counter, a sensor reading. Not the permanent recipe. |
So when someone says “the firmware is stored in flash,” they mean: the recipe sits in memory that remembers, and we can replace the recipe later if we find a bug.
Below is a visual timeline showing exactly what happens inside the chip, clock cycle by clock cycle. The firmware reads each instruction from Flash memory and drives the GPIO pins accordingly:
Now that you understand the concept, you will start seeing firmware everywhere:
🖨️ Your Printer — Firmware tells the print head where to move, how much ink to spray, and when to feed the next page.
📺 Your Smart TV — Firmware boots the TV, initializes the display panel, connects to Wi-Fi, and launches the operating system.
🚗 Your Car — Modern cars have 50-100 microcontrollers, each running its own firmware: engine control, ABS brakes, airbag deployment, infotainment.
⌨️ Your Keyboard — Yes, even your keyboard has firmware! It detects which key you pressed and sends the correct signal to your computer.
📱 Your Phone (Bootloader) — When you press the power button, firmware is the first code that runs — before Android or iOS even loads.
A bug in firmware is a wrong step in the recipe. A washing machine might never stop spinning. A router might forget how to connect. A bad update can “brick” a device — the body is fine, but the first instructions are so broken the chip cannot start. That is why updates ask you not to unplug power halfway through.
Software tells the operating system what to do. Firmware tells the hardware what to do. Without firmware, the hardware is a lifeless brick. Without software, the hardware can still function (it just does one thing, defined by its firmware).
Yes! Modern chips use Flash memory, which can be erased and rewritten electrically. This is how your router, TV, or car gets "firmware updates" — new instructions are written to the chip's memory without physically replacing it. Older chips used ROM (Read-Only Memory), which truly could not be changed.
Most firmware is written in C or C++ because these languages give you direct control over the chip's memory and pins. Some very low-level firmware (bootloaders) is written in Assembly language. Arduino uses a simplified version of C++.
Yes! Your computer's BIOS (or UEFI) is firmware. When you press the power button, the BIOS is the first code that runs. It checks the RAM, detects the hard drive, initializes the screen, and then loads the operating system (Windows/Linux). Without BIOS firmware, pressing the power button would do absolutely nothing.
Very small compared to software! A traffic light firmware might be 2 KB (about a short page of text). A car's engine controller firmware might be 1–4 MB. A big phone app can be hundreds of megabytes because it carries pictures, videos, and an operating system around it. Firmware is small because it talks straight to pins and motors.
Yes. Press 2 + 2 =. The plastic keys are hardware. The steps “read the keys, add the numbers, light up these segments on the screen” are firmware stored in the calculator’s chip. There is no app to install.
An embedded engineer (sometimes called a firmware engineer). They write the recipe in C or C++, test it on a real board, then load it into flash. The same person often checks what happens if power cuts off in the middle of a step.
Close. The game data on an old cartridge is software stored in a chip. The tiny program inside the console that knows how to read that cartridge and drive the screen is firmware. Same family of idea: instructions living in a chip, not on a hard disk you can drag to the trash.