From Firmware to Product
Shipping a real embedded/IoT device is more than code β you specify the hardware the firmware needs and assemble the right supporting chips around the MCU. This page covers defining hardware requirements and a catalog of the building blocks that show up on almost every board.
Defining hardware requirementsβ
Translate the product's job into concrete specs before choosing the MCU:
| Requirement | What to estimate / specify |
|---|---|
| Flash | Code + assets + OTA (often dual-bank = ~2Γ) + ~20β30% headroom |
| RAM | Buffers + RTOS task stacks + network/TLS stack + heap + headroom |
| Performance | FPU/DSP if heavy math; core class for the workload |
| Security | Secure boot / key storage β add a secure element |
| Connectivity | Which buses & radios β pick the right transceivers/modules |
| Storage | Logs/config/data β external flash or EEPROM |
| Power | Source, budget, sleep currents, battery life |
| Environment | Temperature grade, sealing, ESD/surge protection |
| Bring-up | Debug header (SWD), test points, fiducials |
A "small" connected feature (Wi-Fi + TLS) can need tens of KB of RAM for buffers and certificates. Budget RAM for the whole stack, not just your application logic.
Common building blocksβ
What you typically place around the MCU, grouped by function.
Powerβ
- LDO (low-dropout linear regulator) β simple, low-noise, low current. e.g. AMS1117, MCP1700.
- Buck / boost (switching) β efficient, for higher current or big step-downs.
- PMIC / battery charger / fuel gauge β e.g. TP4056 charger for Li-ion products.
- Protection β TVS/ESD diodes, reverse-polarity protection, fuses.
Clocking (crystals & oscillators)β
- Main crystal (HSE) β accurate system clock, e.g. 8β25 MHz, needs correct load capacitors.
- 32.768 kHz crystal β for the RTC / low-power timekeeping.
- TCXO / oscillator module β when you need high accuracy (e.g. radio, precise timing).
- Internal RC β convenient but imprecise.
USB, CAN and precise UART baud rates generally need an external crystal β the internal RC oscillator usually isn't accurate enough. Decide clocking early.
Memory & storageβ
- SPI / QSPI NOR flash β external code/data/OTA storage. e.g. W25Q series.
- SDRAM / PSRAM β external RAM for large buffers (displays, MPUs, ESP32 PSRAM).
- EEPROM β small non-volatile config. e.g. 24Cxx (IΒ²C).
- eMMC / NAND / SD card β mass storage for logs and filesystems.
Interface & signal-conversion chipsβ
These bridge the MCU's logic-level pins to real-world buses and other voltage/isolation domains:
| Function | Common part | What it does |
|---|---|---|
| USB β UART bridge | CH340, CP2102, FT232 | Program/console over USB |
| CAN transceiver | TJA1050, SN65HVD230 | MCU CAN controller β differential CAN bus |
| RS-485 transceiver | MAX485, THVD series | Differential, multidrop industrial bus |
| RS-232 level shifter | MAX232 | Legacy serial voltage levels |
| Digital isolator | ADuM1201 (ADI) | Pass signals across isolated ground/safety domains |
| Logic level shifter | β | 3.3 V β 5 V interfacing |
| Ethernet PHY | LAN8720 (+ RJ45 magnetics) | MAC β physical Ethernet |
Isolators break ground loops and protect the MCU side from high voltage or noisy domains β essential in industrial, medical and mains-connected designs. Some parts also carry isolated power (e.g. ADuM5xxx family).
Connectivity / radioβ
- Wi-Fi / BLE β module or SoC (e.g. ESP32).
- Cellular β modem modules (e.g. SIMxx, Quectel) for LTE/NB-IoT.
- LoRa β long-range, low-power (e.g. SX127x).
- GNSS β positioning modules.
Securityβ
- Secure element / crypto-auth IC β e.g. ATECC608, NXP SE050 β protected key storage, authentication, and secure-boot support, kept off the main MCU.
Real-time clock & miscβ
- RTC chip (e.g. DS3231) + coin cell β keep time while powered off.
- Sensors β IMU, temperature/humidity, etc.
- GPIO/port expanders (IΒ²C) when you run out of pins.
A minimal IoT node β typical BOM shapeβ
- MCU/SoC with Wi-Fi/BLE (e.g. ESP32) Β· LDO for the rail Β· crystal + load caps Β· USB-UART (CH340) for programming Β· external QSPI flash Β· sensor(s) Β· TVS/ESD protection Β· debug/test points.
Early on, modules (pre-certified Wi-Fi, cellular, etc.) save design and certification effort. Move to discrete chips only when volume justifies the extra engineering. See PCB cost optimization.
See also: Choosing an MCU Β· Advanced Topics Β· PCB Design.