Skip to main content

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:

RequirementWhat to estimate / specify
FlashCode + assets + OTA (often dual-bank = ~2Γ—) + ~20–30% headroom
RAMBuffers + RTOS task stacks + network/TLS stack + heap + headroom
PerformanceFPU/DSP if heavy math; core class for the workload
SecuritySecure boot / key storage β†’ add a secure element
ConnectivityWhich buses & radios β†’ pick the right transceivers/modules
StorageLogs/config/data β†’ external flash or EEPROM
PowerSource, budget, sleep currents, battery life
EnvironmentTemperature grade, sealing, ESD/surge protection
Bring-upDebug header (SWD), test points, fiducials
TLS and network stacks are RAM-hungry

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.
Some peripherals require a real crystal

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:

FunctionCommon partWhat it does
USB ↔ UART bridgeCH340, CP2102, FT232Program/console over USB
CAN transceiverTJA1050, SN65HVD230MCU CAN controller ↔ differential CAN bus
RS-485 transceiverMAX485, THVD seriesDifferential, multidrop industrial bus
RS-232 level shifterMAX232Legacy serial voltage levels
Digital isolatorADuM1201 (ADI)Pass signals across isolated ground/safety domains
Logic level shifterβ€”3.3 V ↔ 5 V interfacing
Ethernet PHYLAN8720 (+ RJ45 magnetics)MAC ↔ physical Ethernet
Why isolation (e.g. ADuM1201)?

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.
Modules vs. discrete

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.