courses > Cellular IoT Foundations > Device architecture basics
Device architecture basics
Hardware, firmware, and application software are distinct but tightly coupled, each with its own tools, update mechanism, and lifecycle.
The PCB, MCU, sensors, and modem define the system's constraints and cannot change without physical access, so hardware changes are expensive and must be right before mass production.
Running on the MCU, it provides the bootloader, HAL, drivers, scheduler, and communication stack and can be patched in the field via OTA updates.
It defines device behavior, data processing, cloud communication, and configuration, and can sometimes be adjusted through lightweight remote configuration.
Knowing which layer owns an issue determines whether a fix is a config change, a firmware update, or a costly hardware recall. Each layer needs its own security protections.
When someone says "we need to update the device," do they mean a hardware change, a firmware update, or a software fix? These three terms are used constantly in IoT, but their boundaries are often blurred, especially for people from pure software or pure hardware backgrounds. This page clarifies the distinct roles of firmware, hardware, and software, where the boundaries lie, and why those boundaries matter for design, maintenance, and security.
Hardware is everything you can physically touch: the printed circuit board (PCB), the microcontroller chip, the sensors, the cellular modem, the antenna, the battery, the connectors, and the enclosure. It is designed with electrical engineering tools, manufactured in factories, and critically cannot be changed after deployment without physically accessing the device. Key considerations include:
Hardware changes are expensive: a new PCB revision means re-design, re-manufacturing, and re-certification. That is why getting hardware right before mass production is critical. It is also why firmware and software provide flexibility on top of fixed hardware.
Firmware is the low-level software that runs directly on the microcontroller. It is stored in the MCU's flash memory, executes as soon as the device powers on, and sits between the hardware and higher-level application logic. It typically includes:
Firmware is written in C or C++ (occasionally Rust), compiled for the specific MCU, and flashed during manufacturing. Unlike hardware, it can be updated after deployment through OTA updates, making it the primary way to fix bugs, add features, and patch security issues. Secure boot should verify the firmware signature before execution, and flash encryption should keep firmware unreadable even with physical access.
In many simpler IoT devices, firmware and application software blur together where the application runs on the same MCU, compiled into the same binary. Conceptually, though, the application layer is distinct: it holds the business-specific logic that defines what the device actually does. It includes:
In more capable devices running Linux on a microprocessor (MPU) rather than an RTOS on an MCU, the separation is clearer: firmware is effectively the operating system and kernel drivers, while application software runs as user-space processes.
1. Which statement best describes hardware in an IoT device?
2. What makes firmware different from hardware in terms of maintenance?
3. Which layer contains the business logic that defines what the device actually does?
Bridge the gap between local hardware and the global cloud. Demystify SIM, eSIM, and iSIM technology while mastering network attachment and data routing. This chapter ensures your device isn't just an island, but a connected powerhouse.
Start lesson