필사 모드: 임베디드 시스템 & 펌웨어 개발 2026 완벽 가이드 — STM32 · ESP32-C6 · RP2040 · Raspberry Pi 5 · Arduino · PlatformIO · Zephyr RTOS · ESP-IDF 심층 분석
한국어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 워크플로는 다음과 같다.
1. **STM32CubeMX**로 핀, 클록, 페리페럴(USART, SPI, I2C, ADC 등) 설정 → HAL 코드 생성
2. **STM32CubeIDE**(또는 VS Code + Cortex-Debug)에서 코드 작성
3. **ST-Link V3**로 보드에 플래시 및 디버그
4. **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를 깜빡인다.
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년 전에는 상상하기 어려운 가격대다.
배움의 순서는 단순하다.
1. Arduino Uno R3 또는 Pi Pico로 LED를 깜빡인다.
2. UART, SPI, I2C로 센서 하나를 읽는다.
3. PlatformIO 또는 ESP-IDF로 환경을 정돈한다.
4. FreeRTOS의 태스크 두 개를 돌려본다.
5. WiFi/BLE 한 가지로 클라우드 또는 폰과 통신한다.
6. 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
현재 단락 (1/323)
임베디드 개발자가 가장 먼저 익혀야 하는 것은 **칩 선택의 축**이다. 2026년의 축은 세 개로 나뉜다.