- Published on
임베디드 시스템 & 펌웨어 개발 2026 완벽 가이드 — STM32 · ESP32-C6 · RP2040 · Raspberry Pi 5 · Arduino · PlatformIO · Zephyr RTOS · ESP-IDF 심층 분석
- Authors

- Name
- Youngju Kim
- @fjvbn20031
1장 · 임베디드 2026 — MCU와 SBC, 그리고 FPGA의 경계
임베디드 개발자가 가장 먼저 익혀야 하는 것은 칩 선택의 축이다. 2026년의 축은 세 개로 나뉜다.
| 분류 | 대표 칩 | 특징 | OS |
|---|---|---|---|
| MCU | STM32, ESP32, RP2040 | 메모리 KB-MB, 마이크로앰페어 슬립 | Bare-metal / RTOS |
| SBC | Raspberry Pi 5, Jetson Orin | 메모리 GB, GPU/NPU | Linux |
| FPGA | Lattice ECP5, Xilinx Artix-7 | 게이트 단위 병렬, HDL 합성 | None / soft-core |
MCU는 결정론적 실시간 제어, SBC는 풍부한 운영체제와 AI, FPGA는 하드웨어 파이프라인이 필요한 경우에 쓴다. 이 세 가지는 서로를 대체하지 않는다. 같은 장치 안에서 함께 쓰는 경우도 흔하다. 예를 들어 산업용 머신비전 카메라는 FPGA가 센서를 읽고, MCU가 모터를 돌리고, SBC가 신경망을 추론하는 구조가 일반적이다.
이 글은 주로 MCU와 SBC를 다루지만, 어디서 FPGA가 필요한지의 감각도 같이 짚는다.
2장 · STM32 — Cortex-M의 사실상 표준
STMicroelectronics의 STM32는 2007년 출시 이후 Cortex-M 기반 MCU의 사실상 표준이 되었다. 2026년 현재 라인업은 매우 넓다.
| 시리즈 | 코어 | 특징 | 대표 부품 |
|---|---|---|---|
| STM32F0 | Cortex-M0 | 입문/저전력 | STM32F030 |
| STM32G0 | Cortex-M0+ | 신형 입문 | STM32G031 |
| STM32F4 | Cortex-M4 + FPU | 범용 고성능 | STM32F407 |
| STM32F7 | Cortex-M7 | DSP/이미지 | STM32F746 |
| STM32H7 | Cortex-M7 480MHz | 고성능 | STM32H743 |
| STM32L4/L5 | Cortex-M4/M33 | 초저전력 | STM32L476 |
| STM32U5 | Cortex-M33 + TrustZone | 보안 + 저전력 | STM32U585 |
| STM32WB/WL | M4 + M0+ | BLE / LoRa | STM32WB55 |
| STM32H5 | Cortex-M33 | 신형 메인스트림 | STM32H573 |
| STM32MP1/MP2 | Cortex-A7/A35 + M4/M33 | 헤테로 (Linux + RTOS) | STM32MP157 |
개발 흐름
전형적인 STM32 워크플로는 다음과 같다.
- STM32CubeMX로 핀, 클록, 페리페럴(USART, SPI, I2C, ADC 등) 설정 → HAL 코드 생성
- STM32CubeIDE(또는 VS Code + Cortex-Debug)에서 코드 작성
- ST-Link V3로 보드에 플래시 및 디버그
- STM32CubeMonitor로 변수 실시간 시각화
ST-Link는 보통 Nucleo 보드에 내장돼 있어 별도 구매가 필요 없다. Nucleo-F411RE 같은 보드는 15달러 안팎이다.
HAL vs LL vs 베어메탈
ST는 두 가지 라이브러리를 제공한다. HAL(Hardware Abstraction Layer)은 추상화가 두껍고, LL(Low Layer)는 레지스터 접근에 가깝다. 실시간 응답이 중요한 코드는 LL을 쓰거나 아예 베어메탈로 레지스터를 직접 다룬다. CubeMX는 두 가지 모두 생성할 수 있다.
3장 · ESP32 — WiFi/BT가 기본인 MCU
Espressif의 ESP32는 2016년 출시 이후 IoT의 사실상 표준이 되었다. 2026년 현재의 라인업은 다음과 같다.
| 칩 | ISA | WiFi | BT/BLE | 코어 |
|---|---|---|---|---|
| ESP32 (Classic) | Xtensa LX6 | 4 | 4.2 / BLE 4.2 | 듀얼 240MHz |
| ESP32-S2 | Xtensa LX7 | 4 | 없음 | 싱글 |
| ESP32-S3 | Xtensa LX7 | 4 | BLE 5.0 | 듀얼 + AI 가속 |
| ESP32-C3 | RISC-V | 4 | BLE 5.0 | 싱글 160MHz |
| ESP32-C6 | RISC-V | 6 | BLE 5.3 + Thread/Zigbee | 싱글 160MHz |
| ESP32-H2 | RISC-V | 없음 | BLE 5.3 + 802.15.4 | 싱글 |
| ESP32-P4 | RISC-V | 없음 (외부 코프로) | 없음 | 듀얼 400MHz + MIPI |
ESP32-C6(2023)는 WiFi 6, Thread, Zigbee, Matter를 한 칩에 담은 첫 라인업이다. ESP32-P4(2024 양산)는 WiFi가 없는 대신 RISC-V 듀얼코어 400MHz와 MIPI-CSI/DSI를 제공해 카메라/디스플레이 응용에 쓰인다.
ESP-IDF v5.4
Espressif 공식 SDK인 ESP-IDF는 v5.4(2024)에서 Rust 통합, ESP32-P4 정식 지원, OpenThread 1.3 등을 추가했다. 명령행은 단순하다.
idf.py set-target esp32c6
idf.py menuconfig
idf.py build flash monitor
idf.py menuconfig은 kconfig 트리에서 WiFi 스택, 파티션 테이블, 컴파일러 옵션을 토글한다.
Arduino-ESP32 vs ESP-IDF
ESP32는 Arduino 코어로도 쓸 수 있다. void setup(void), void loop(void) 패러다임을 그대로 쓰면서 WiFi/BLE를 부르는 코드는 5분이면 깜빡인다. 하지만 OTA, 듀얼 코어 활용, 저전력 슬립 같은 고급 기능은 ESP-IDF의 FreeRTOS API를 직접 다루는 편이 자연스럽다.
4장 · RP2040과 RP2350 — Raspberry Pi의 MCU
2021년 출시된 Raspberry Pi Pico의 RP2040은 입문용 MCU의 새로운 기준점이 되었다. 듀얼 Cortex-M0+ 133MHz, 264KB SRAM, PIO(Programmable I/O)라는 독특한 페리페럴이 특징이다. PIO는 작은 상태 기계 8개를 가지며, VGA, DPI, WS2812 LED 같은 까다로운 프로토콜을 비트단위로 직접 합성한다.
RP2350 (2024년 8월 출시)
RP2040의 후속작인 RP2350(Raspberry Pi Pico 2)은 2024년 8월에 발표됐다.
| 항목 | RP2040 | RP2350 |
|---|---|---|
| 코어 | 듀얼 Cortex-M0+ | 듀얼 Cortex-M33 + 듀얼 Hazard3 RISC-V |
| 클록 | 133MHz | 150MHz |
| SRAM | 264KB | 520KB |
| 보안 | 없음 | TrustZone, OTP, 부트 ROM 인증 |
| 가격(Pico 2) | 4달러 | 5달러 |
RP2350의 진짜 특이점은 듀얼-ISA다. 같은 코어 슬롯에 Cortex-M33 또는 RISC-V Hazard3 코어를 부팅 시점에 선택할 수 있다. SDK 빌드 시점에 결정한다.
Pico SDK
pico-sdk는 CMake 기반이고 의외로 깔끔하다.
cmake_minimum_required(VERSION 3.13)
include(pico_sdk_import.cmake)
project(blink)
pico_sdk_init()
add_executable(blink blink.c)
target_link_libraries(blink pico_stdlib)
pico_add_extra_outputs(blink)
uf2 파일을 만들어 Pico의 BOOTSEL 버튼을 누르고 USB로 연결하면 마운트된 드라이브에 파일을 끌어다 놓는 것으로 플래시 완료. 별도 프로그래머가 필요 없다.
5장 · Arduino Uno R4 — 16년 만의 세대 교체
Arduino Uno는 2010년 이후 ATmega328P(8비트 AVR)를 써왔지만, 2023년 출시된 Uno R4는 16년 만에 칩이 바뀌었다. Renesas RA4M1(Cortex-M4 48MHz, 256KB Flash, 32KB SRAM)로 옮긴 것이다.
Uno R4는 두 가지 변형이 있다.
- Uno R4 Minima — Cortex-M4 단일, 27달러
- Uno R4 WiFi — Cortex-M4 + ESP32-S3 보조, 12x8 LED 매트릭스 내장, 32달러
기존 Uno R3와 핀 호환이라 시일드를 그대로 쓸 수 있다. CAN, DAC, OpAmp, HID over USB가 추가됐다. 기존 ATmega328P보다 1000배 가까운 메모리를 받았다.
다만 8비트 시대의 일부 라이브러리는 호환되지 않는 경우가 있어 R4 출시 직후에는 호환성 이슈가 많았다. 2024-2025년에 걸쳐 대부분의 인기 라이브러리가 R4를 지원하도록 업데이트됐다.
6장 · Nordic nRF52 / nRF54 — BLE의 왕자
BLE(Bluetooth Low Energy) 전용 칩에서는 Nordic Semiconductor가 압도적이다. 2026년 라인업의 중심은 다음과 같다.
- nRF52840 — Cortex-M4 64MHz, BLE 5, Thread, Zigbee, 1MB Flash, 256KB RAM. 무선 마우스/키보드, 의료 웨어러블의 표준.
- nRF52833 — 가격 최적화 버전.
- nRF5340 — 듀얼 코어(앱 + 무선), 보안 강화.
- nRF54L15 (2024) — Cortex-M33 128MHz, BLE 5.4 + 802.15.4, RISC-V 보조 코어. 신형 플래그십.
Nordic은 nRF Connect SDK(NCS)를 제공하는데, 내부적으로 Zephyr RTOS를 사용한다. nRF52를 다루기 시작하면 자연스럽게 Zephyr를 배우게 된다. SoftDevice(BLE 스택 바이너리)는 사라지고 Zephyr 기반 Bluetooth Host/Controller로 통합되는 흐름이 자리 잡았다.
7장 · 기타 MCU 가족 — Microchip, NXP, TI, WCH
상위 4개 외에도 임베디드 세계는 넓다.
- Microchip — SAM(Cortex-M), PIC(레거시 8/16비트), AVR(Arduino Uno R3의 ATmega). 자동차/산업에서 많이 쓴다.
- NXP — i.MX RT(Cortex-M7 600MHz+ 크로스오버 MCU), LPC(범용), Kinetis(저전력). i.MX RT1176은 듀얼 코어(M7+M4).
- Texas Instruments — MSP430(초저전력 16비트, 곧 단종 예정 라인업), CC1352(Sub-GHz + 2.4GHz), Sitara(A 시리즈 SBC).
- WCH CH32V — 중국 WCH의 RISC-V MCU. CH32V003은 10센트 가격에 RISC-V 코어를 제공해 화제가 됐다.
- Renesas RA / RX — Arduino Uno R4의 RA4M1이 여기 속한다. 일본 산업/자동차 시장 강함.
- GD32 (GigaDevice) — STM32와 핀/페리페럴 호환을 노린 중국산. 가격은 절반.
칩 선택은 종종 공급 안정성, 가격, 개발 도구의 성숙도의 함수다. 2021-2022 칩 부족 사태 이후, 한 칩 가족에만 베팅하지 않는 멀티-벤더 설계가 일반화됐다.
8장 · Raspberry Pi 5와 SBC 생태계
Raspberry Pi 5(2023년 10월 출시, 2024년 본격 보급)는 SBC의 기준점을 다시 그렸다.
| 항목 | Pi 4 | Pi 5 |
|---|---|---|
| SoC | BCM2711 (A72) | BCM2712 (A76) |
| 클록 | 1.5/1.8GHz | 2.4GHz |
| 메모리 | 1/2/4/8GB LPDDR4 | 4/8/16GB LPDDR4X |
| PCIe | 없음 | PCIe 2.0 x1 (외부 NVMe) |
| 전원 | USB-C 15W | USB-C 25W (5A 권장) |
| 가격 | 35-75달러 | 60-120달러 |
Pi 5는 RP1이라는 자체 I/O 칩을 외부에 두고 PCIe로 연결하는 구조라, USB/Ethernet 처리량이 Pi 4 대비 크게 늘었다. NVMe SSD를 HAT로 붙이는 것이 보편적인 구성이 됐다.
다른 SBC들
- Pi Zero 2 W — 5달러 가격대, Cortex-A53 쿼드, WiFi.
- Pi Compute Module 5 — Pi 5 코어를 산업용 모듈로.
- NVIDIA Jetson Orin Nano Super — 2024년 12월 발표, AI 67TOPS(Sparse)를 249달러에. AI 엣지의 새 기준.
- NVIDIA Jetson Orin AGX — 275 TOPS, 로보틱스/자율주행용.
- BeagleBone Black / BeagleV-Ahead — PRU 실시간 코어가 특기. BeagleV-Ahead는 RISC-V T-Head 코어.
- Radxa Rock 5B/5C — Rockchip RK3588(A76 4 + A55 4 + 6 TOPS NPU). Pi 5 대안.
- Orange Pi 5 / Banana Pi M7 — 같은 RK3588 계열.
- LattePanda Sigma — Intel Core i5, x86 SBC.
- ODROID-N2L / H3 — Hardkernel(한국).
- UDOO Bolt / Vision — AMD/Intel + Arduino 마이크로컨트롤러 통합.
선택 기준은 보통 커뮤니티 크기 → 드라이버 성숙도 → 가격 → 사양 순이다. Pi의 강점은 첫 번째와 두 번째에 있다.
9장 · RTOS — FreeRTOS, Zephyr, ThreadX, NuttX
베어메탈은 단순한 응용에 좋지만, 태스크가 둘 이상으로 늘면 RTOS가 필요해진다. 2026년의 RTOS 지형은 다음과 같다.
FreeRTOS 11
- 2003년 Richard Barry가 시작 → 2017년 AWS 인수 → 현재 AWS가 관리.
- Cortex-M의 사실상 표준. 거의 모든 MCU 벤더가 BSP를 제공.
- 라이선스: MIT.
- v10에서 SMP(대칭 다중 처리) 지원 추가, v11에서 안정화.
- 가벼움. 커널 코드 4-9KB.
Zephyr RTOS 4.0
- 2016년 Linux Foundation 산하 프로젝트. Wind River의 Rocket OS를 기반으로 시작.
- 멀티 아키텍처: ARM, RISC-V, Xtensa, x86, ARC.
- Devicetree 기반 보드 추상화 — Linux와 같은 철학.
- 풍부한 서브시스템: 네트워킹(IP/TCP/MQTT/CoAP), USB, 파일 시스템, 디스플레이.
- Nordic nRF Connect SDK가 Zephyr 위에 만들어졌고, NXP, Intel, Google도 적극 기여.
- v4.0(2024 11월)에서 LLEXT(런타임 모듈 로딩), Sysbuild 안정화.
Eclipse ThreadX (구 Azure RTOS)
- 1996년 Express Logic 시작 → 2019년 Microsoft 인수 → 2024년 Eclipse Foundation 이전.
- 안전 인증(IEC 61508 SIL 4, ISO 26262 ASIL D, DO-178C)을 가장 폭넓게 받은 RTOS.
- 의료/항공/자동차에서 강함.
Apache NuttX
- POSIX 호환 RTOS. 작은 Linux처럼 보이는 API를 제공.
- Sony 미라이 카메라, Nokia 8110 4G 같은 상용 제품에서 사용.
CMSIS-RTOS / RTX
- Arm 공식. Cortex-M 시리즈에 최적화된 작은 RTOS.
Mbed OS
- Arm이 만든 IoT 플랫폼. 2026년 기준 유지보수 모드 진입, 신규 프로젝트에는 권장되지 않음. Zephyr로의 마이그레이션이 권장된다.
선택은 보통 인증 필요 여부, 멀티 아키텍처 여부, 커뮤니티 활성도로 갈린다. 새 프로젝트라면 FreeRTOS(가벼움 우선)나 Zephyr(생태계 우선)가 일반적인 선택이다.
10장 · 임베디드 언어의 다양화 — Rust, TinyGo, MicroPython
C가 여전히 임베디드의 1순위 언어인 것은 변함없지만, 2026년에는 진지한 대안이 늘었다.
Rust embedded
- embedded-hal 1.0(2024)이 안정화되어 HAL 트레잇이 표준화됐다.
- embassy-rs — async/await 기반의 no-std 런타임. WiFi/BLE 드라이버까지 async로.
- probe-rs — Rust 생태의 디버거. ST-Link, J-Link, CMSIS-DAP를 통합 지원.
- ESP32, STM32, RP2040, nRF52 모두 1급 지원.
#[embassy_executor::main]
async fn main(spawner: Spawner) {
let p = embassy_rp::init(Default::default());
let mut led = Output::new(p.PIN_25, Level::Low);
loop {
led.toggle();
Timer::after(Duration::from_millis(500)).await;
}
}
Pico의 GPIO 25번에 연결된 온보드 LED를 깜빡인다. async/await가 진짜로 동작한다.
TinyGo
- Go 언어의 LLVM 백엔드 컴파일러. 표준 라이브러리의 부분 집합 + 임베디드 페리페럴 API.
- 가비지 컬렉터는 conservative GC 또는 leaking allocator 중 선택.
- Wasm 컴파일도 지원해 임베디드와 웹을 같은 언어로 다룬다.
MicroPython / CircuitPython
- MicroPython은 Damien George가 2014년에 시작.
- CircuitPython은 Adafruit가 MicroPython을 포크해 메이커 친화적 API로 다듬은 변종.
- ESP32, RP2040, nRF52, STM32 모두 지원.
- 진입 장벽이 가장 낮다. 5분이면 LED를 깜빡인다.
import machine, time
led = machine.Pin(25, machine.Pin.OUT)
while True:
led.toggle()
time.sleep(0.5)
TinyMaix, picoTLS
성능/메모리 제약이 더 큰 환경을 위한 특수화된 라이브러리들. TinyMaix는 200KB Flash에 들어가는 신경망 추론 엔진.
11장 · PlatformIO — 다중 타겟 빌드의 사실상 표준
PlatformIO는 2014년 우크라이나의 Ivan Kravets가 시작한 멀티 플랫폼 임베디드 빌드 시스템이다. 2026년 현재 1300여 보드, 50여 플랫폼, 20여 프레임워크를 지원한다.
[env:esp32-c6]
platform = espressif32
board = esp32-c6-devkitc-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
[env:nucleo_f411re]
platform = ststm32
board = nucleo_f411re
framework = stm32cube
debug_tool = stlink
같은 폴더에 두 환경을 정의하면 pio run -e esp32-c6로 ESP32를, pio run -e nucleo_f411re로 STM32를 빌드한다. 라이브러리도 lib_deps = adafruit/Adafruit BME280 Library@^2.2.4 같은 SemVer 의존성으로 관리한다.
VS Code 확장이 가장 인기 있다. Arduino IDE보다 강력하고, Eclipse 기반 ST IDE보다 가볍다.
12장 · ESP-IDF v5.4와 ESP32 워크플로 심층
ESP-IDF는 Espressif 공식 SDK이고, FreeRTOS와 LwIP, WiFi 스택을 하나로 묶었다. v5.4(2024)의 주요 변화는 다음과 같다.
- ESP32-P4 정식 지원 — RISC-V 듀얼 400MHz, MIPI-CSI/DSI.
- Rust 통합 — Espressif가 Rust no-std HAL을 공식 메인테인.
- OpenThread 1.3, Matter 1.4 통합.
- Wokwi 시뮬레이터 공식 통합.
빌드 파이프라인
idf.py build는 내부적으로 CMake + Ninja를 호출하고, 파티션 테이블에 따라 부트로더, 앱 바이너리, NVS 영역을 만든다. 결과물은 다음과 같다.
build/bootloader/bootloader.bin # 1차 부트로더 (ROM 다음)
build/partition_table/partition-table.bin
build/myapp.bin # 애플리케이션
build/ota_data_initial.bin # OTA 슬롯 메타
플래시는 esptool.py write_flash 또는 idf.py flash로 한다.
듀얼 코어 활용
ESP32 Classic과 S3는 듀얼 코어다. FreeRTOS의 xTaskCreatePinnedToCore로 특정 코어에 태스크를 고정한다.
xTaskCreatePinnedToCore(network_task, "net", 8192, NULL, 5, NULL, 0);
xTaskCreatePinnedToCore(sensor_task, "sen", 4096, NULL, 5, NULL, 1);
코어 0은 WiFi/BT 스택이 무겁게 쓰고, 코어 1은 애플리케이션 로직이 점유하는 패턴이 일반적이다.
13장 · 디버그 — ST-Link, J-Link, OpenOCD, probe-rs
베어메탈 디버깅은 보통 두 단계다. 보드의 SWD 핀에 디버그 프로브를 연결하고, 호스트의 GDB가 프로브를 통해 칩을 조종한다.
디버그 프로브들
- ST-Link V3 — ST 공식. Nucleo 보드 내장. STM32 한정이지만 매우 저렴(10달러).
- J-Link (Segger) — 사실상 업계 표준. EDU 라이선스 70달러, Pro 라이선스 수백 달러.
- Black Magic Probe — 오픈 하드웨어. GDB 서버가 프로브 내부에 있어 OpenOCD가 필요 없다.
- CMSIS-DAP — Arm 공식 오픈 스펙. DAPLink 펌웨어가 들어간 nRF52, STM32 보드에서 무료로 동작.
- Raspberry Pi Debug Probe — 12달러. RP2040 + picoprobe 펌웨어.
OpenOCD와 probe-rs
호스트의 GDB 서버는 전통적으로 OpenOCD다. C 코드 베이스가 오래됐고 설정이 까다롭다. 2020년대 후반 probe-rs(Rust)가 떠올랐다. cargo flash --chip STM32F411RETx 한 줄로 끝나는 단순함이 특징이다.
GDB 자체는 여전히 표준. VS Code의 Cortex-Debug 확장이나 CLion의 임베디드 디버거가 GDB를 감싼다.
14장 · 통신 — SPI, I2C, UART, CAN, USB
MCU의 90%는 다음 5종의 직렬 통신을 직접 다룬다.
| 프로토콜 | 속도 | 핀 수 | 특징 |
|---|---|---|---|
| UART | 보통 115200bps | 2 (TX/RX) | 가장 단순. 비동기. |
| SPI | 수십 MHz | 4 (MOSI/MISO/SCK/CS) | 빠르고 대칭. |
| I2C | 100k/400k/1M | 2 (SDA/SCL) | 다중 슬레이브. 풀업 필수. |
| CAN | 1Mbps | 2 (CAN-H/L) | 차동, 자동차 표준. |
| RS-485 | 10Mbps | 2 (A/B) | 차동, 산업용 장거리. |
| USB FS/HS | 12/480Mbps | 4 (D+/D-/VBUS/GND) | 호스트/디바이스. |
핀 식별자는 GPIO_NUM_2 같이 칩별 매크로로 다룬다. 풀업/풀다운, 드라이브 강도, 오픈드레인 같은 GPIO 속성도 함께 설정한다.
15장 · 무선 — WiFi 6, BLE 5.4, Thread, Matter
2026년 임베디드 무선의 큰 흐름은 Matter 1.4의 메인스트림화다.
- WiFi 6/6E — ESP32-C6/C5, Realtek RTL8720, MediaTek MT7933. AP의 동시 접속 능력이 IoT 노드에 직접적인 영향.
- BLE 5.4 — Coded PHY(긴 거리), Periodic Advertising with Responses, Channel Sounding(2024 표준화).
- LoRaWAN — Semtech SX1262 시리즈. 수 km 거리, kbps 속도. 농장/도시 센서망.
- Zigbee 3.0 / Thread 1.3 — 802.15.4 메시. Matter의 하부 전송 계층.
- Matter 1.4 (2024 11월) — Connectivity Standards Alliance. 가전 표준. Apple Home/Google Home/Alexa/SmartThings가 공동 지원.
칩 선택 시 무선 스택의 RAM/Flash 부담은 작지 않다. BLE Host + Controller만 100-200KB Flash, 30-50KB RAM이 일반적이다.
16장 · 센서 — BME680, VL53L5, MPU6050, GPS
대표적인 센서 부품 몇 가지를 짚는다.
- BME680 / BME688 — 보쉬 환경 센서. 온도/습도/기압/VOC. Edge ML 적용 사례도 흔하다(BME688에 내장 4-class 분류기).
- VL53L1/L5/L7/L8 — ST의 ToF LiDAR. 1차원 또는 4x4/8x8 격자 거리. 최대 4m.
- MPU6050 / ICM-20948 — InvenSense IMU. 6축/9축. 자세 추정의 표준.
- MAX30102 — 맥박/SpO2 광학 센서.
- u-blox ZED-F9P — 멀티-밴드 RTK GPS, cm급 정밀도.
- Hall 효과 센서 — 회전 감지, 전류 측정, 위치.
I2C 주소 충돌은 흔한 함정이다. 같은 주소의 두 칩을 쓰려면 TCA9548A 같은 I2C 멀티플렉서를 거치거나, 한쪽의 SDO/ADDR 핀으로 주소를 옮긴다.
17장 · AI on MCU — TFLM, Edge Impulse, STM32Cube.AI
작은 신경망을 MCU에 띄우는 이른바 TinyML은 2020년대 후반에 본격적으로 산업화됐다.
- TensorFlow Lite Micro (TFLM) — Google. C++ 라이브러리. Cortex-M, Xtensa, RISC-V 지원. 라이센스 Apache 2.0.
- Edge Impulse — SaaS. 데이터 수집 → 학습 → 디바이스 배포까지 한 흐름. ST, Nordic, Espressif와 파트너십.
- STM32Cube.AI — ST 공식. ONNX/TFLite/Keras 모델을 Cortex-M에 최적화 컴파일.
- NXP eIQ — NXP의 ML 툴체인.
- Microsoft ELL (Embedded Learning Library) — 연구 단계.
Cortex-M55(Helium MVE)와 Ethos-U55/U65 NPU 코어가 추가되면서 MCU에서 0.5-1.0 TOPS급 추론이 가능해졌다. 화상 1프레임을 100ms 안에 분류하는 정도까지 도달했다.
18장 · OTA — SUIT, mender, ESP32 OTA
배포 후의 펌웨어 업데이트는 임베디드의 가장 어려운 운영 과제다.
- ESP32 OTA —
esp_https_ota. 두 OTA 슬롯 사이를 토글한다. 부트로더가 마지막으로 검증된 슬롯을 부팅한다. - mender.io — Linux SBC용 A/B 파티션 OTA. 차분 업데이트 지원.
- RAUC — Yocto 기반 Linux 임베디드를 위한 OTA 프레임워크.
- swupdate — Stefano Babic의 또 다른 Linux OTA.
- SUIT (Software Updates for the Internet of Things, RFC 9019/9124) — IETF 표준. 매니페스트 기반.
- Memfault — SaaS. OTA + 충돌 보고 + 메트릭을 통합 관리. STM32, nRF52, ESP32 모두 1급 지원.
A/B 슬롯, 롤백, 서명, 무결성 검증, 부분 업데이트(델타) 같은 요건을 충족하기는 어렵다. SaaS에 위탁하는 비율이 높아진 이유다.
19장 · PCB CAD — KiCad 8, Altium, EasyEDA
스키매틱과 PCB를 그리는 도구들.
- KiCad 8 (2024년 2월 출시) — 오픈소스. 상용 도구와 비교해 격차가 매우 좁아졌다. 5만 풋프린트의 풍부한 라이브러리, 3D 뷰, 자동 차동 페어 라우팅, JLCPCB 직접 발주.
- Altium Designer — 산업계 표준. 라이선스 연간 수천 달러.
- Autodesk EAGLE — 2026년 단종 예정. Fusion 360 Electronics로 이전 중.
- EasyEDA / LCEDA — JLCPCB 발주에 최적화. 클라우드 기반.
- Cadence OrCAD / Allegro — 고급 산업용.
- Zuken CR-8000, Mentor PADS, Xpedition — 산업/자동차 전문.
- Horizon EDA, LibrePCB — KiCad 외의 오픈 소스 대안.
소형 메이커는 KiCad + JLCPCB의 조합이 사실상 표준이다. 양면 100x100mm PCB 5장이 약 7달러, 3일이면 배송된다.
20장 · 한국과 일본의 임베디드 생태계
한국
- 삼성 ARTIK은 2019년 단종, 한국 IoT 플랫폼의 빈 자리를 ESP32와 RP2040 커뮤니티가 메우고 있다.
- Coding Devs Maker, 하이브로, 메카솔루션, 디바이스마트 등 부품 유통사가 활발.
- 카페24·플레이오스·KT·LG U+ 등에서 LoRaWAN/NB-IoT 통신망을 제공.
- 대학가의 STM32, Arduino 강의가 보편화됐고, 페이스북 그룹 "라즈베리파이 한국 사용자 모임"이 활성.
일본
- M5Stack — 비록 본사는 중국 선전이지만, 일본 메이커 커뮤니티의 사실상 표준 폼팩터.
- Switch Science — 일본의 대표 유통사. Sparkfun과 비슷한 위치.
- 秋月電子通商 (Akizuki Denshi) — 도쿄 아키하바라의 부품상. 수십 년 역사.
- マルツエレック (Marutsu), 千石電商 (Sengoku Denshi) — 또 다른 부품상.
- Trigence Semiconductor, Nuvoton Japan — 일본 IC 설계.
- Make: Japan, CQ出版 트랜지스터기술 — 출판/매체.
- SwitchBot — 도쿄 스타트업이지만 글로벌 스마트홈 강자.
두 지역 모두 메이커 시장은 활발하지만, 영문 문서의 양이 압도적이라 한국/일본 개발자도 영어 문서로 학습하는 비율이 높다.
21장 · 메이커 페어와 크라우드펀딩 — Hackaday, Tindie, Crowd Supply
오픈 하드웨어 프로젝트가 제품이 되는 통로.
- Hackaday — 일간 임베디드 뉴스 + 콘테스트(Hackaday Prize). 매년 1000-2000 응모.
- Hackaday.io — 프로젝트 호스팅 + 커뮤니티.
- Tindie — Etsy의 임베디드 버전. 개인 메이커가 만든 보드를 소량 판매.
- Crowd Supply — Hackster와 비슷한 크라우드펀딩. 임베디드/오픈 하드웨어에 특화.
- Kickstarter / Indiegogo — 일반 크라우드펀딩.
- CrowdSupply의 OSHWA 인증 — Open Source Hardware Association 정식 인증을 받은 프로젝트에 특별한 표식.
한국의 와디즈/텀블벅, 일본의 캠프파이어/마쿠아케에도 임베디드 카테고리가 있지만 영문권에 비해 규모는 작다.
22장 · 시뮬레이션 — Wokwi, Renode, QEMU
실물 보드 없이도 펌웨어를 돌리는 도구들이 정착했다.
- Wokwi — 브라우저에서 Arduino, ESP32, STM32, Pi Pico를 시뮬레이트. 회로도까지 그릴 수 있다. 무료 + 유료 플랜.
- Renode — Antmicro의 풀시스템 시뮬레이터. RISC-V SoC, Cortex-M/A를 사이클 정확도 수준이 아닌 명령어 단위로 시뮬레이트.
- QEMU — Cortex-M/A 머신 모델. Zephyr가 공식 지원.
CI/CD에서 매 커밋 단위로 펌웨어 회귀 테스트를 돌리려면 시뮬레이션이 사실상 필수다. 보드 100장을 CI 서버에 꽂아둘 수는 없다.
23장 · 케이스 — 3D 프린팅과 CAD
임베디드 제품의 외관은 보통 3D 프린팅이나 사출 성형으로 나온다. 메이커 단계에서는 3D 프린팅이 대세.
- Fusion 360 — Autodesk. 개인은 무료. 사실상 메이커 표준.
- OnShape — 클라우드 기반 풀 파라메트릭. 협업이 강점.
- FreeCAD 1.0 (2024년 11월 정식 1.0 출시) — 오픈 소스. 마침내 본격 권장 가능.
- Plasticity — 1인 개발 신생. 부드러운 곡면 모델링이 강점.
- Tinkercad — 입문용. 어린이 교육용으로도 활발.
PETG, ABS, ASA, PC, Nylon은 외장 부품에 자주 쓴다. PLA는 시작용으로는 좋지만 60도 이상에서 변형되어 차량 내장 같은 환경에서는 부적합하다.
24장 · 보안 — Secure Boot, TrustZone, OTP
IoT 디바이스의 보안은 더 이상 옵션이 아니다. 2024년 EU CRA(Cyber Resilience Act)가 2027년 12월 본격 적용을 앞두고 있다.
- Secure Boot — 부트로더가 펌웨어 서명을 검증. STM32 RDP, ESP32 Secure Boot V2, nRF Secure Bootloader.
- TrustZone-M — Cortex-M23/M33/M55의 보안 격리. Secure World와 Non-secure World.
- OTP (One-Time Programmable) — 키, 일련번호 영구 저장.
- PUF (Physically Unclonable Function) — 칩 고유의 미세한 차이를 키로.
- Matter 1.4 디바이스 인증서 — Connectivity Standards Alliance가 발급.
작은 MCU에도 ATECC608A 같은 외장 보안 IC를 추가하는 패턴이 늘었다.
25장 · 학습 자료 — 책, 강의, 컨퍼런스
- Making Embedded Systems (Elecia White, O'Reilly, 2024 2판) — 입문서의 정석.
- The Art of Electronics (Horowitz/Hill, 3판) — 전자공학의 바이블.
- Programming Embedded Systems (Michael Barr, O'Reilly) — 고전.
- Embedded.fm 팟캐스트 — 600회 이상 누적.
- The Amp Hour 팟캐스트 — Chris Gammell.
- embedded world(독일 뉘른베르크, 매년 3월), CES(라스베이거스 1월), Hackaday Supercon(11월 패서디나) — 컨퍼런스.
- Maker Faire Tokyo(일본 11월), Maker Faire Bay Area(미국 10월) — 메이커 페어.
한국어 자료로는 윤덕용 저 "AVR 마이크로컨트롤러" 시리즈, 장문철 강사의 유튜브 채널 등이 유명하다. 일본어로는 CQ出版의 "トランジスタ技術" 잡지가 70년 가까운 역사.
26장 · 마치며 — 작은 칩, 큰 세상
임베디드 개발은 모든 분야 중에서 가장 하드웨어와 소프트웨어의 경계에 가까운 일이다. 같은 코드라도 보드 두 장의 풀업 저항 값이 다르면 동작이 달라진다. C 한 줄이 만 분의 1초의 인터럽트 지연으로 모터를 부수기도 한다. 이 거리감은 임베디드의 매력이자 어려움이다.
2026년의 임베디드는 도구가 비약적으로 좋아진 시대다. PlatformIO와 Wokwi가 진입 장벽을 낮췄고, Rust embedded와 Zephyr가 안전성과 이식성을 강화했고, KiCad와 JLCPCB가 PCB 제작을 누구나 할 수 있게 만들었다. RP2350의 듀얼-ISA, ESP32-P4의 RISC-V, nRF54L15의 BLE 5.4 같은 새 칩들은 5년 전에는 상상하기 어려운 가격대다.
배움의 순서는 단순하다.
- Arduino Uno R3 또는 Pi Pico로 LED를 깜빡인다.
- UART, SPI, I2C로 센서 하나를 읽는다.
- PlatformIO 또는 ESP-IDF로 환경을 정돈한다.
- FreeRTOS의 태스크 두 개를 돌려본다.
- WiFi/BLE 한 가지로 클라우드 또는 폰과 통신한다.
- KiCad로 자기만의 보드 하나를 발주한다.
여섯 단계를 모두 거치면 임베디드 엔지니어가 된다. 한 번에 한 단계씩 가면 된다. 작은 칩이 큰 세상을 움직이는 즐거움이 그 끝에 있다.
참고 자료
- STMicroelectronics — STM32 공식: https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html
- Espressif — ESP-IDF v5.4: https://docs.espressif.com/projects/esp-idf/en/v5.4/esp32c6/
- Raspberry Pi — RP2350 datasheet: https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf
- Raspberry Pi 5 product brief: https://datasheets.raspberrypi.com/rpi5/raspberry-pi-5-product-brief.pdf
- Arduino — Uno R4 docs: https://docs.arduino.cc/hardware/uno-r4-wifi/
- Nordic Semiconductor — nRF Connect SDK: https://www.nordicsemi.com/Products/Development-software/nRF-Connect-SDK
- Zephyr Project — 4.0 release notes: https://docs.zephyrproject.org/4.0.0/releases/release-notes-4.0.html
- FreeRTOS — Official: https://www.freertos.org/
- Eclipse ThreadX: https://threadx.io/
- PlatformIO — Documentation: https://docs.platformio.org/
- embedded-hal 1.0 RFC: https://github.com/rust-embedded/embedded-hal
- Embassy — Async embedded Rust: https://embassy.dev/
- probe-rs — Debugger: https://probe.rs/
- MicroPython: https://micropython.org/
- CircuitPython: https://circuitpython.org/
- TinyGo: https://tinygo.org/
- TensorFlow Lite Micro: https://www.tensorflow.org/lite/microcontrollers
- Edge Impulse: https://www.edgeimpulse.com/
- Memfault: https://memfault.com/
- KiCad — 8.0 release notes: https://www.kicad.org/blog/2024/02/KiCad-8.0.0-Release/
- Matter 1.4 — CSA: https://csa-iot.org/all-solutions/matter/
- Wokwi — Online simulator: https://wokwi.com/
- Renode: https://renode.io/
- M5Stack: https://m5stack.com/
- Switch Science (Japan): https://www.switch-science.com/
- Hackaday: https://hackaday.com/
- Tindie: https://www.tindie.com/
- Crowd Supply: https://www.crowdsupply.com/
- WCH CH32V003: http://www.wch-ic.com/products/CH32V003.html