라즈베리파이 피코에
라즈베리파이 피코(Raspberry Pi Pico)는 그 이름 때문에 종종 라즈베리파이 4나 5와 같은 단일 보드 컴퓨터(Single-Board Computer, SBC)의 저가형 버전으로 오해받곤 한다. 그러나 이는 근본적으로 잘못된 이해다. 피코는 마이크로컴퓨터가 아닌, 마이크로컨트롤러(Microcontroller Unit, MCU)다.1 이 둘의 차이는 단순한 성능의 차이를 넘어 작동 방식과 목적 자체가 다르다는 점에서 시작된다.
라즈베리파이 4/5와 같은 SBC는 리눅스(Linux)와 같은 완전한 운영체제(Operating System, OS) 위에서 작동한다.3 이는 다중 작업(multi-tasking), 복잡한 네트워크 통신, 키보드나 모니터와 같은 주변기기 연결, 그래픽 사용자 인터페이스(GUI) 렌더링 등 범용 컴퓨터가 수행하는 대부분의 작업을 처리할 수 있음을 의미한다.4 반면, 라즈베리파이 피코와 같은 마이크로컨트롤러는 OS의 오버헤드 없이 특정 작업을 수행하는 데 최적화된 장치다.1 피코는 OS를 실행하지 않으며, 전원이 켜지면 사용자가 작성한 단 하나의 프로그램, 즉 펌웨어(firmware)를 ‘베어메탈(bare-metal)’ 환경에서 직접 실행한다.
이러한 근본적인 차이는 여러 실용적인 측면에서 극명한 대조를 낳는다. 첫째, 전력 소비다. OS와 수많은 백그라운드 프로세스를 실행하는 SBC는 상대적으로 많은 전력을 소모하는 반면, 피코는 필요한 작업만 수행하므로 전력 소비가 현저히 낮다.1 이는 배터리로 작동하는 휴대용 장치나 장기간 작동해야 하는 센서 노드에 피코가 훨씬 더 적합한 이유다. 둘째, 부팅 시간과 반응성이다. SBC는 OS를 부팅하는 데 수십 초가 걸릴 수 있지만, 피코는 전원이 인가되는 즉시 프로그램을 실행한다. 이는 실시간 제어(real-time control)가 필수적인 애플리케이션에서 결정적인 장점이 된다. 예를 들어, 모터의 회전 속도를 정밀하게 제어하거나 센서의 입력에 즉각적으로 반응해야 하는 로봇이나 산업 자동화 장비에서 SBC의 OS는 예측 불가능한 지연(latency)을 유발할 수 있지만, 피코는 결정론적(deterministic)인 동작을 보장한다.6
결론적으로, 라즈베리파이 피코는 ‘컴퓨터’가 아니라 ‘제어 장치’로서의 정체성을 명확히 한다. 피코의 가치는 웹 브라우징 속도나 게임 성능으로 평가되는 것이 아니라, LED를 켜고 끄거나, 센서 데이터를 읽고, 모터를 움직이는 등 물리적 세계와 상호작용하는 능력의 정밀성과 안정성, 그리고 효율성에 있다.
라즈베리파이 피코의 역할을 가장 잘 이해하는 방법은 라즈베리파이 제로(Raspberry Pi Zero)가 아닌 아두이노 우노(Arduino Uno)와 비교하는 것이다.1 실제로 피코는 기능적, 철학적으로 아두이노와 훨씬 더 가깝다.1 2005년에 처음 등장한 아두이노는 복잡했던 마이크로컨트롤러 프로그래밍을 단순화하고, 사용하기 쉬운 통합 개발 환경(IDE)과 방대한 커뮤니티, 수많은 라이브러리를 통해 전자공학 교육 및 DIY(Do-It-Yourself) 프로토타이핑 시장에 혁명을 일으켰다.1
2021년에 출시된 라즈베리파이 피코는 바로 이 시장을 정조준했다. 피코는 아두이노가 구축한 ‘단순성’과 ‘접근성’이라는 성공 공식을 그대로 계승한다. 초심자도 쉽게 배울 수 있는 프로그래밍 언어인 마이크로파이썬(MicroPython)을 공식 지원하고, 드래그 앤 드롭 방식의 간편한 펌웨어 업로드 방식을 제공하는 것이 그 증거다.1
하지만 피코는 단순한 아두이노의 모방품이 아니다. 아두이노의 성공 공식을 학습하되, 그 성능적 한계를 극복하려는 명확한 의도를 가지고 설계되었다. 아두이노 우노의 심장인 8비트 ATmega328P 프로세서는 16MHz의 클럭 속도와 2KB의 SRAM을 가지는 반면 9, 피코의 RP2040 칩은 133MHz로 작동하는 32비트 듀얼 코어 ARM Cortex-M0+ 프로세서와 264KB라는 압도적인 용량의 SRAM을 탑재했다.1 이 강력한 하드웨어는 아두이노로는 구현하기 어려웠던 복잡한 연산이나 멀티태스킹을 가능하게 한다. 여기에 더해, 프로그래머블 I/O(PIO)라는 독자적인 기능을 통해 개발자가 소프트웨어로 커스텀 하드웨어 인터페이스를 만들 수 있는 전례 없는 유연성까지 제공한다.1 이는 “아두이노처럼 시작은 쉽게, 그러나 더 복잡하고 성능 집약적인 프로젝트까지 막힘없이” 수행할 수 있도록 하려는 전략적 목표를 보여준다. 즉, 피코는 초심자부터 전문가까지 아우르는 더 넓은 스펙트럼의 사용자를 공략하며 마이크로컨트롤러 시장의 성능 기준을 한 단계 끌어올린 것이다.
라즈베리파이 재단이 SBC 시장에서의 확고한 성공에 안주하지 않고 마이크로컨트롤러 시장에 직접 진출한 것은 매우 중요한 전략적 움직임이다.2 이는 IoT(사물 인터넷)와 임베디드 시스템이라는 거대한 시장의 잠재력을 인식하고, 자신들이 직접 설계한 실리콘(RP2040)을 통해 새로운 가치를 창출하려는 야심 찬 시도다.
가장 주목할 만한 점은 4달러라는 파격적인 가격 정책이다.7 이는 “모두를 위한 저렴하고 접근 가능한 컴퓨팅”이라는 라즈베리파이 재단의 핵심 철학을 마이크로컨트롤러 영역에서도 그대로 계승한 것이다. 이 가격은 학생, 교육자, 취미 활동가들이 기술을 배우고 실험하는 데 있어 경제적 장벽을 극적으로 낮춘다. 재단은 SBC 시장에서와 마찬가지로, 하드웨어 판매 자체의 이익보다는 거대한 사용자 커뮤니티를 형성하고 생태계를 확장하는 것을 더 중요한 목표로 삼고 있음을 보여준다.
결론적으로, 라즈베리파이 피코의 등장은 단순한 신제품 출시를 넘어, 라즈베리파이 생태계가 SBC를 넘어 임베디드 제어 영역까지 확장되었음을 알리는 선언과도 같다. 이는 기존의 아두이노와 ESP32가 양분하던 시장에 강력한 경쟁자를 등장시켰으며, 저비용 고성능 마이크로컨트롤러의 새로운 시대를 여는 계기가 되었다.
라즈베리파이 재단은 단일 제품에 의존하지 않고 시장의 다양한 요구에 대응하기 위해 체계적인 제품 라인업을 구축해왔다. 이 라인업은 크게 고성능 컴퓨팅을 위한 플래그십 시리즈(예: Raspberry Pi 5), 일체형 PC 경험을 제공하는 키보드 시리즈(예: Raspberry Pi 400), 소형 및 저전력 프로젝트를 위한 제로 시리즈, 그리고 산업용 임베디드 시스템을 위한 컴퓨트 모듈 시리즈로 구성된다.3
라즈베리파이 피코 시리즈는 이 견고한 포트폴리오에 ‘마이크로컨트롤러’라는 완전히 새로운 카테고리를 추가한 것이다.3 이는 재단의 사업 영역을 기존의 리눅스 기반 마이크로컴퓨터에서 실시간 제어 및 임베디드 영역으로 확장하는 중요한 다각화 전략이다. 이러한 움직임은 몇 가지 배경을 가진다. 첫째, SBC 시장은 때때로 공급망 불안정 문제에 직면해왔다.5 자체 설계한 RP2040 칩을 기반으로 한 피코는 이러한 외부 요인에 대한 의존도를 줄이고 보다 안정적인 제품 공급을 가능하게 한다. 둘째, IoT, 웨어러블, 로보틱스 등 마이크로컨트롤러가 핵심적인 역할을 하는 시장은 SBC 시장만큼이나, 혹은 그 이상으로 거대한 잠재력을 가지고 있다. 피코는 라즈베리파이라는 강력한 브랜드를 앞세워 이 새로운 시장을 공략하기 위한 전략적 교두보인 셈이다.
라즈베리파이 피코는 단일 제품으로 머무르지 않고, 시장의 피드백을 적극적으로 반영하며 빠르게 하나의 ‘패밀리’로 진화했다. 이는 재단이 MCU 시장을 일회성 실험으로 보지 않고, 지속적으로 제품을 개선하고 경쟁 우위를 확보하려는 의지를 명확히 보여준다.
- Pico (2021년 1월): 모든 것의 시작. RP2040 칩의 강력한 듀얼 코어 성능과 PIO의 혁신적인 유연성을 단돈 4달러에 제공하며 시장에 큰 충격을 주었다.2 하지만 출시 직후부터 가장 큰 단점으로 지적된 것은 무선 연결 기능의 부재였다.1 이는 IoT 프로젝트를 구현하는 데 있어 상당한 장벽으로 작용했다.
- Pico H (Header): 오리지널 피코에 20x2 핀 헤더를 사전 납땜한 버전이다. 사용자가 직접 납땜해야 하는 번거로움을 없애 브레드보드에 바로 꽂아 사용할 수 있도록 편의성을 높인 모델이다.13
- Pico W (Wireless, 2022년 6월): 시장의 요구에 대한 직접적인 응답이었다. 인피니언(Infineon)의 CYW43439 무선 칩을 탑재하여 2.4GHz Wi-Fi (802.11n)와 블루투스 5.2(출시 초기에는 소프트웨어 미지원) 기능을 추가했다.13 이로써 피코는 IoT 프로젝트의 강자인 ESP32와 직접적인 경쟁 구도를 형성하게 되었다. 안테나 공간 확보를 위해 디버그 포트의 위치가 변경되는 등 약간의 물리적 변화가 있었지만, 40핀 GPIO 레이아웃은 그대로 유지하여 기존 프로젝트와의 호환성을 확보했다.16 가격은 6달러로 소폭 상승했지만, 추가된 기능의 가치를 고려하면 여전히 매우 경쟁력 있는 가격이었다.17
- Pico WH (Wireless + Header): Pico W 모델에 핀 헤더를 사전 납땜한 버전으로, 무선 기능과 사용 편의성을 모두 갖춘 모델이다.13
- Pico 2 (2024년 8월): 피코의 차세대 진화를 알리는 모델이다. 핵심은 새롭게 설계된 RP2350 칩이다.18 RP2350은 최대 150MHz로 작동하는 더욱 강력한 Arm Cortex-M33 코어, 두 배로 늘어난 520KB의 SRAM과 4MB의 온보드 플래시를 탑재했다.19 가장 중요한 변화는 보안 기능의 대폭 강화다. 하드웨어적으로 격리된 실행 환경을 제공하는 Arm TrustZone, 서명된 펌웨어만 실행되도록 보장하는 Secure Boot, 하드웨어 암호화 가속기 등은 단순한 취미용 보드를 넘어 산업용 제어 및 보안이 중요한 상업용 IoT 애플리케이션까지 겨냥하고 있음을 명확히 보여준다.19 이는 피코의 목표 시장이 ‘취미/교육’에서 ‘산업/전문가’ 영역으로 확장되고 있음을 시사하는 중요한 이정표다.
이러한 진화 과정을 통해 라즈베리파이 재단은 피코를 단순한 저가형 보드에서 다양한 요구사항을 충족하는 포괄적인 마이크로컨트롤러 플랫폼으로 발전시키고 있다.
Table 1: Raspberry Pi Pico 시리즈 사양 비교
| 항목 (Feature) |
Raspberry Pi Pico |
Raspberry Pi Pico W |
Raspberry Pi Pico 2 |
Raspberry Pi Pico 2 W |
|
| 출시일 (Release Date) |
2021년 1월 |
2022년 6월 |
2024년 8월 |
2024년 8월 |
|
| 마이크로컨트롤러 (MCU) |
RP2040 |
RP2040 |
RP2350 |
RP2350 |
|
| CPU 코어 (CPU Core) |
Dual-core Arm Cortex-M0+ |
Dual-core Arm Cortex-M0+ |
Dual-core Arm Cortex-M33 |
Dual-core Arm Cortex-M33 |
|
| 최대 클럭 (Max Clock) |
133 MHz |
133 MHz |
150 MHz |
150 MHz |
|
| SRAM |
264 KB |
264 KB |
520 KB |
520 KB |
|
| 온보드 플래시 (On-board Flash) |
2 MB |
2 MB |
4 MB |
4 MB |
|
| Wi-Fi |
없음 (None) |
2.4GHz 802.11n |
없음 (None) |
2.4GHz 802.11n |
|
| 블루투스 (Bluetooth) |
없음 (None) |
5.2 (HW) |
없음 (None) |
5.2 |
|
| 보안 기능 (Security Features) |
기본 (Basic) |
기본 (Basic) |
Arm TrustZone, Secure Boot |
Arm TrustZone, Secure Boot |
|
| 출시 가격 (Launch Price) |
$4 |
$6 |
$5 |
$7 |
|
| Data Source: 13 |
|
|
|
|
|
라즈베리파이 피코의 모든 성능과 기능은 그 심장인 RP2040 마이크로컨트롤러 칩에서 비롯된다. RP2040은 라즈베리파이 재단의 인하우스 ASIC(Application-Specific Integrated Circuit) 팀이 직접 설계한 최초의 실리콘으로 2, 저비용 고성능이라는 재단의 철학이 집약된 결과물이다. RP2040의 아키텍처를 깊이 이해하는 것은 피코의 잠재력을 최대한 활용하기 위한 필수 과정이다.
Table 2: RP2040 주요 사양
| 항목 (Feature) |
사양 (Specification) |
|
| 프로세서 (Processor) |
Dual-core ARM Cortex-M0+ @ 133MHz |
|
| SRAM |
264KB (6개 뱅크로 분할) |
|
| 외부 플래시 지원 (External Flash Support) |
최대 16MB (QSPI 인터페이스 경유) |
|
| GPIO |
30개 (이 중 4개는 아날로그 입력으로 사용 가능) |
|
| ADC |
12-bit, 500ksps, 4채널 (+내부 온도 센서) |
|
| PIO (Programmable I/O) |
8개 상태 머신 |
|
| 직렬 통신 (Serial I/F) |
2 × UART, 2 × SPI, 2 × I2C |
|
| PWM |
16개 채널 |
|
| DMA |
12채널 컨트롤러 |
|
| 패키지 (Package) |
QFN-56 (7x7mm) |
|
| 제조 공정 (Process Node) |
TSMC 40nm |
|
| Data Source: 10 |
|
|
RP2040의 가장 두드러진 특징은 듀얼 코어 아키텍처다. 칩에는 에너지 효율성이 가장 높은 ARM 프로세서로 알려진 Cortex-M0+ 코어 두 개가 탑재되어 있다.2 이 두 코어는 대칭적으로 작동하며, 각각 독립적인 정수 나누기 하드웨어와 인터폴레이터(Interpolator)라는 특수한 연산 가속기를 가지고 있다.23 Cortex-M0+ 코어는 비용과 전력 소모를 줄이기 위해 부동소수점 연산 장치(Floating-Point Unit, FPU)를 포함하지 않는다. 따라서 삼각함수나 FFT와 같은 복잡한 부동소수점 연산은 하드웨어가 아닌, ROM에 내장된 최적화된 소프트웨어 라이브러리를 통해 처리된다.15 이는 특정 연산에서는 FPU가 있는 Cortex-M4 코어 등에 비해 성능 저하를 감수해야 하는 설계적 타협점이다.
듀얼 코어의 진정한 성능은 두 코어가 서로의 작업을 방해하지 않고 원활하게 작동할 때 발휘된다. 이를 위해 RP2040은 매우 정교한 버스 패브릭(Bus Fabric)을 갖추고 있다. 시스템의 중심에는 4개의 마스터(CPU 0, CPU 1, DMA 컨트롤러 읽기 포트, DMA 컨트롤러 쓰기 포트)와 10개의 슬레이브(ROM, 외부 플래시 XIP, 6개의 SRAM 뱅크, 고속 주변장치, 저속 주변장치용 APB 브리지)를 연결하는 완전 연결(fully-connected) AHB-Lite 크로스바가 있다.23 이 구조 덕분에 최대 4개의 버스 마스터가 서로 다른 메모리나 주변장치에 동시에, 병목 현상 없이 접근할 수 있다.24 예를 들어, 한 코어가 SRAM 뱅크 0에서 데이터를 읽는 동안, 다른 코어는 SRAM 뱅크 1에 데이터를 쓰고, 동시에 DMA 컨트롤러는 외부 플래시에서 데이터를 읽어올 수 있다. 이러한 병렬 처리 능력은 125MHz 시스템 클럭에서 최대 2.0GBps라는 인상적인 이론적 버스 대역폭을 가능하게 한다.24
또한, 각 코어는 단일 사이클 I/O(Single-Cycle I/O, SIO) 블록을 통해 GPIO에 단 1클럭 사이클 만에 접근할 수 있다.24 이는 CPU가 직접 핀의 상태를 읽거나 쓸 때 매우 빠르고 결정론적인(deterministic) 동작을 보장하여, PIO를 사용하지 않는 간단한 비트뱅잉(bit-banging) 프로토콜 구현 시에도 높은 성능을 제공한다. SIO 블록은 또한 두 코어 간의 통신을 위한 FIFO(메일박스)와 공유 자원에 대한 동시 접근을 막기 위한 32개의 하드웨어 스핀락(spinlock)을 제공하여, 멀티코어 프로그래밍의 안정성을 높이는 중요한 역할을 한다.24
RP2040의 메모리 아키텍처는 ‘비용’과 ‘성능’ 사이의 영리한 타협을 보여주는 대표적인 예시다.
- SRAM: 총 264KB의 온칩 SRAM은 앞서 언급한 버스 패브릭의 효율을 극대화하기 위해 물리적으로 6개의 독립적인 뱅크(64KB 4개, 4KB 2개)로 분할되어 있다.22 이 구조 덕분에 두 개의 CPU 코어와 DMA가 서로 다른 뱅크에 동시에 접근하여 메모리 접근 경합(contention)을 최소화할 수 있다. 이는 멀티코어 환경에서 시스템 전체의 처리량을 유지하는 데 매우 중요한 설계다.24
- ROM: 칩 내부에는 16KB의 읽기 전용 메모리(ROM)가 고정적으로 내장되어 있다.24 이 ROM에는 매우 중요한 코드들이 포함되어 있다. 가장 핵심적인 것은 부트로더(bootloader)다. 이 부트로더는 전원이 켜질 때 외부 QSPI 플래시 메모리에서 사용자 프로그램을 읽어와 SRAM에 로드하고 실행하는 역할을 한다. 또한, 사용자가 보드의 BOOTSEL 버튼을 누른 상태에서 USB를 연결하면, 피코를 USB 대용량 저장장치(USB Mass Storage)로 인식시켜준다. 이를 통해 사용자는 복잡한 프로그래밍 도구 없이도 컴파일된 펌웨어 파일(.uf2)을 드래그 앤 드롭 방식으로 간단하게 플래싱할 수 있다.1 이 외에도 ROM에는 빠른 부동소수점 연산을 위한 최적화된 함수 라이브러리 등이 포함되어 있어, 소프트웨어의 성능을 보조한다.24
-
XIP (Execute-in-Place): RP2040은 칩 내부에 플래시 메모리를 내장하고 있지 않다.23 이는 칩의 크기와 제조 비용을 줄이기 위한 의도적인 선택이다. 대신, QSPI(Quad Serial Peripheral Interface)라는 고속 직렬 인터페이스를 통해 최대 16MB 용량의 외부 플래시 메모리에 직접 접근하여 코드를 실행하는 XIP 기술을 사용한다.22 시스템은 이 외부 플래시를 마치 내부 메모리처럼 주소 공간에 매핑하여 사용한다. 이 방식은 개발자가 프로젝트의 요구사항에 따라 2MB, 4MB, 8MB 등 다양한 용량의 플래시 메모리를 유연하게 선택할 수 있게 해주는 장점이 있다.2 XIP의 성능 저하를 완화하기 위해, RP2040은 16KB의 내부 캐시를 사용하여 자주 접근하는 코드나 데이터를 저장하고 접근 속도를 높인다.24
- GPIO: RP2040은 총 30개의 범용 입출력(GPIO) 핀을 제공하며, 이 중 26개가 라즈베리파이 피코 보드의 양쪽 가장자리를 통해 사용자가 접근할 수 있도록 배치되어 있다.10 모든 GPIO 핀은 3.3V 로직 레벨에서 동작하며, 5V 전압을 직접 인가해서는 안 된다(not 5V-tolerant).15 각 핀은 UART, I2C, SPI, PWM 등 다양한 내장 주변장치의 기능으로 멀티플렉싱(multiplexing)될 수 있어, 제한된 핀 수로도 다양한 기능을 구현할 수 있는 유연성을 제공한다.24
- ADC (Analog-to-Digital Converter): RP2040은 아날로그 신호를 디지털 값으로 변환하기 위한 4채널 12비트 SAR(Successive Approximation Register) ADC를 내장하고 있다.6 이 ADC는 초당 50만 샘플(500ksps)의 속도로 변환이 가능하다. 피코 보드에서는 이 중 3개의 ADC 핀(GP26, GP27, GP28)이 외부로 노출되어 있으며, 나머지 한 채널은 칩 내부의 온도 센서에 연결되어 칩의 온도를 모니터링하는 데 사용된다.21 12비트의 해상도는 0부터 4095까지의 값을 표현할 수 있으며, 이는 10비트 해상도를 가진 아두이노 우노의 ADC보다 더 정밀한 측정이 가능함을 의미한다.6 다만, 출시 초기 일부 사용자들로부터 ADC의 선형성, 특히 0V에 가까운 낮은 전압을 측정할 때의 정확도에 대한 문제가 제기된 바 있다.28 이는 초정밀 아날로그 측정이 요구되는 애플리케이션에서는 외부의 고정밀 ADC 사용을 고려해야 할 수도 있음을 시사한다.
RP2040은 현대적인 마이크로컨트롤러가 갖추어야 할 표준적인 주변장치들을 풍부하게 내장하고 있다.
- 직렬 통신: 2개의 UART, 2개의 SPI 컨트롤러, 2개의 I2C 컨트롤러를 제공한다.10 이는 대부분의 센서, 디스플레이, 통신 모듈 등 외부 장치와 통신하기에 충분한 개수이며, 각 컨트롤러는 DMA와 연동하여 CPU의 부담을 줄일 수 있다.
- PWM (Pulse Width Modulation): 총 16개의 제어 가능한 PWM 채널을 가지고 있다.10 각 PWM 채널은 독립적으로 주파수와 듀티 사이클(duty cycle)을 정밀하게 조절할 수 있어, LED의 밝기를 조절하거나 서보 모터 및 DC 모터의 속도를 제어하는 데 필수적이다.
- 기타 주변장치: 이 외에도 PC와의 연결 및 HID(Human Interface Device) 구현을 위한 USB 1.1 컨트롤러(Host 및 Device 모드 지원), 정밀한 시간 측정 및 주기적인 작업 수행을 위한 4개의 32비트 타이머, 시스템의 비정상적인 멈춤을 감지하고 재시작하는 워치독 타이머(Watchdog Timer, WDT), 그리고 시간 정보를 유지하기 위한 실시간 클럭(Real-Time Clock, RTC) 등 다양한 필수 기능들을 갖추고 있다.1
RP2040 칩을 다른 마이크로컨트롤러와 구별 짓는 가장 독창적이고 강력한 기능은 단연 프로그래머블 I/O(Programmable I/O), 즉 PIO다. PIO는 단순한 주변장치가 아니라, 개발자가 소프트웨어를 통해 자신만의 디지털 하드웨어 인터페이스를 창조할 수 있게 해주는 ‘만능 도구’에 가깝다. 이는 ‘하드웨어’와 ‘소프트웨어’의 경계를 허무는 혁신적인 개념으로, 피코의 유연성을 극대화하는 핵심 요소다.
PIO는 CPU 코어와는 완전히 독립적으로 작동하는 8개의 작은 ‘상태 머신(State Machine)’으로 구성된 서브시스템이다.1 이 상태 머신들은 각각이 하나의 초소형 프로세서처럼 동작하며, I/O 핀의 상태를 읽고, 쓰고, 정해진 시간만큼 대기하는 등의 간단한 프로그램을 실행할 수 있다. 본질적으로 PIO는 CPU의 부담을 덜어주기 위해 설계된 I/O 전용 코프로세서(co-processor)다.
기존의 MCU들은 UART, SPI, I2C와 같이 고정된 기능의 하드웨어 주변장치를 제공했다. 만약 WS2812 LED나 DVI 비디오 신호처럼 표준적이지 않은 프로토콜을 사용해야 한다면, 개발자는 CPU를 이용해 직접 핀의 상태를 정밀하게 제어하는 ‘비트뱅잉(bit-banging)’ 기법에 의존해야 했다. 이는 CPU의 자원을 많이 소모하고, 다른 인터럽트나 작업으로 인해 타이밍이 틀어질 위험이 크다. PIO는 바로 이 문제를 해결한다. 타이밍에 민감하고 반복적인 I/O 작업을 PIO 상태 머신에 위임함으로써, 메인 CPU 코어는 다른 복잡한 연산이나 로직 처리에 집중할 수 있게 된다.1
개념적으로 PIO는 FPGA(Field-Programmable Gate Array)와 유사한 유연성을 제공하지만, 작동 방식에는 차이가 있다. FPGA가 하드웨어 로직 게이트를 재구성하는 방식이라면, PIO는 정해진 명령어 셋을 순차적으로 실행하는 소프트웨어적인 방식에 더 가깝다.30 이는 FPGA보다 배우고 사용하기는 쉽지만, 그만큼 기능적인 제약도 따른다.
RP2040에는 총 2개의 PIO 블록이 있으며, 각 블록은 다음과 같은 구성 요소를 포함한다.
- 상태 머신 (State Machine): 각 PIO 블록에는 4개의 상태 머신이 있어, 칩 전체적으로 총 8개를 사용할 수 있다.22 이들이 PIO 프로그램의 실제 실행 주체다.
- 명령어 메모리 (Instruction Memory): 각 PIO 블록은 32개의 명령어를 저장할 수 있는 공유 메모리를 가진다. 4개의 상태 머신은 이 32개 슬롯을 나누어 사용하거나(예: 각각 8개 명령어), 하나의 긴 프로그램을 공유하여 실행할 수도 있다.31
- 명령어 셋 (Instruction Set): PIO는 매우 간결하지만 강력한 9개의 명령어로 프로그래밍된다: JMP(분기), WAIT(대기), IN(핀에서 데이터 읽기), OUT(핀으로 데이터 쓰기), PUSH(데이터를 CPU로 전송), PULL(CPU에서 데이터 수신), MOV(데이터 이동), IRQ(인터럽트 발생), SET(핀 상태 지정).31 각 명령어는 특별한 지연을 주지 않는 한 기본적으로 1 시스템 클럭 사이클에 실행되므로, 나노초 단위의 매우 정밀한 타이밍 제어가 가능하다.24
- FIFO와 DMA: 각 상태 머신은 CPU와의 데이터 교환을 위한 송신(TX) 및 수신(RX) FIFO(First-In, First-Out) 버퍼를 가지고 있다. PIO의 진정한 힘은 이 FIFO가 DMA(Direct Memory Access) 컨트롤러와 직접 연동될 수 있다는 점에서 나온다. DMA를 사용하면, CPU의 개입 없이도 메모리의 특정 영역(예: 이미지 버퍼)에서 PIO의 FIFO로 대량의 데이터를 자동으로 ‘퍼 나를’ 수 있다.32 이 ‘CPU-free’ 데이터 파이프라인은 PIO를 단순한 비트뱅잉 도구에서 강력한 ‘데이터 처리 오프로드 엔진’으로 격상시키는 핵심 메커니즘이다.
PIO의 유연성은 상상력에 따라 무한한 가능성을 열어준다. 대표적인 활용 사례는 다음과 같다.
- 비표준 프로토콜 구현: RP2040 칩이 하드웨어적으로 지원하지 않는 다양한 디지털 인터페이스를 PIO 프로그램을 통해 소프트웨어적으로 에뮬레이션할 수 있다. 대표적인 예로, 저항 몇 개만 추가하여 DVI 또는 VGA 비디오 신호를 생성하거나 6, 디지털 오디오를 위한 I2S 인터페이스를 구현하고 30, 산업용 통신 표준인 CAN 버스를 만드는 등의 프로젝트가 성공적으로 시연되었다.33
- 정밀 타이밍이 요구되는 작업: WS2812(네오픽셀)와 같은 주소 지정 가능 RGB LED 스트립은 데이터 전송에 매우 엄격하고 빠른 타이밍을 요구한다. CPU가 이 작업을 직접 처리하면 다른 중요한 작업을 놓칠 수 있다. 이 작업을 PIO 상태 머신에 맡기면, PIO는 DMA로부터 LED 색상 데이터를 받아 정확한 타이밍으로 출력하고, 그동안 CPU는 사용자 입력 처리나 알고리즘 연산과 같은 상위 레벨의 작업에 집중할 수 있다.30
- CPU 부하 경감: 고속으로 회전하는 모터의 위치를 파악하기 위한 쿼드러처 인코더(quadrature encoder) 신호 읽기, 여러 개의 센서에서 동시에 고속으로 데이터 샘플링하기, 수신된 직렬 데이터를 특정 형식의 패킷으로 재구성하기 등, 반복적이고 타이밍에 민감한 저수준(low-level) 작업들을 PIO가 전담 처리함으로써 메인 CPU의 부하를 획기적으로 줄일 수 있다.1
PIO는 pioasm이라는 전용 어셈블러를 통해 프로그래밍된다.24 C/C++ SDK 환경에서는, 개발자가
.pio 확장자를 가진 파일에 PIO 어셈블리 코드를 작성하면, 빌드 과정에서 pioasm이 이를 C 헤더 파일로 자동 변환해준다. 개발자는 이 헤더 파일을 자신의 C 코드에 포함시켜 PIO 프로그램을 로드하고 실행할 수 있다. MicroPython 환경에서는 더욱 간편하다. @rp2.asm_pio 데코레이터(decorator)를 사용하여 파이썬 함수 내에 PIO 어셈블리 코드를 직접 문자열 형태로 작성할 수 있다.31 이는 C/C++에 비해 성능은 다소 떨어질 수 있지만, 빠른 프로토타이핑과 실험에는 매우 편리한 방식이다.
결론적으로, PIO는 RP2040의 비용 효율성을 극대화하는 핵심 전략이다. 다른 MCU 제조사들이 수많은 종류의 복잡한 하드웨어 주변장치를 칩에 내장하여 가격과 복잡성을 높이는 동안, 라즈베리파이는 기본적인 주변장치와 함께 PIO라는 ‘만능 도구’를 제공함으로써, 칩의 실리콘 면적과 개발 비용을 절감하면서도 기능적으로는 훨씬 더 비싼 칩들 못지않은 유연성을 확보했다. 이는 “최소한의 하드웨어로 최대한의 기능을” 구현하려는 미니멀리즘 설계 철학의 정수라 할 수 있다.
라즈베리파이 피코의 성공 요인 중 하나는 소프트웨어 개발 환경에 대한 이중 전략이다. 초심자를 위한 쉽고 빠른 진입로와 전문가를 위한 강력하고 유연한 도구를 모두 공식적으로 지원함으로써, 매우 넓은 스펙트럼의 개발자들을 피코 생태계로 끌어들이고 있다.
MicroPython은 피코를 처음 접하는 사용자나 빠른 프로토타이핑이 중요한 프로젝트에 가장 권장되는 개발 방식이다. 파이썬 문법에 익숙한 수많은 개발자들에게 MCU 프로그래밍의 진입 장벽을 극적으로 낮춰준다.
- 환경 설정: MicroPython 개발을 위한 사실상의 표준 IDE는 Thonny다.1 Thonny는 라즈베리파이 OS에 기본적으로 설치되어 있으며, 윈도우, macOS, 리눅스용 설치 파일도 제공되어 누구나 쉽게 설치할 수 있다.37 피코에 MicroPython 펌웨어를 설치하는 과정은 놀라울 정도로 간단하다. 보드의 BOOTSEL 버튼을 누른 상태에서 PC에 USB로 연결하면 피코가 외장 드라이브로 인식된다. 여기에 다운로드한 MicroPython 펌웨어(.uf2 파일)를 드래그 앤 드롭하기만 하면 자동으로 설치 및 재부팅이 완료된다.1
- 프로그래밍 방식: Thonny IDE는 코드 편집기 창과 함께 REPL(Read-Eval-Print Loop)이라는 대화형 셸을 제공한다.1 개발자는 REPL에 코드를 한 줄씩 입력하고 엔터를 누르는 것만으로 피코에서 즉시 실행 결과를 확인할 수 있다. 이는 하드웨어를 테스트하거나 특정 기능의 동작을 실험할 때 매우 유용하다. 완성된 코드를 피코 보드 내부에
main.py라는 이름의 파일로 저장하면, 이후 피코에 전원이 공급될 때마다 해당 코드가 자동으로 실행된다.28 이러한 직관적인 워크플로우는 교육 환경과 신속한 프로토타이핑에 매우 효과적이다.
- 핵심 라이브러리: MicroPython 환경에서 하드웨어를 제어하기 위한 핵심은 machine 라이브러리다. 이 라이브러리는 Pin, I2C, SPI, ADC와 같은 클래스를 통해 GPIO, 통신 인터페이스, 아날로그 입력 등 하드웨어의 저수준 기능을 직접 제어할 수 있게 해준다.41 한편,
picozero 라이브러리는 이러한 기능들을 더욱 추상화하여 LED, Button, Buzzer와 같이 더 인간 친화적인 객체로 제공함으로써, 초심자들이 더 쉽게 물리적 컴퓨팅을 시작할 수 있도록 돕는다.35
최고의 성능, 저수준 하드웨어 제어, 그리고 듀얼 코어나 PIO와 같은 RP2040의 모든 잠재력을 끌어내기 위해서는 C/C++ SDK(Software Development Kit)가 필수적이다. 이는 상업용 제품 개발이나 고성능이 요구되는 복잡한 프로젝트를 위한 전문가의 선택이다.
- 환경 설정: C/C++ 개발 환경 구축은 MicroPython에 비해 훨씬 더 복잡한 과정을 요구한다. 개발자는 자신의 운영체제에 ARM GCC 컴파일러, CMake, Ninja(빌드 시스템), Python 3, Git 등 여러 명령줄 도구들을 수동으로 설치해야 한다.43 이 과정의 복잡성을 인지한 라즈베리파이 재단과 커뮤니티는 윈도우 사용자를 위한 자동 설치 스크립트를 제공하여 과정을 상당히 단순화했다.43
- IDE 연동: C/C++ 개발의 공식 주력 IDE는 Visual Studio Code (VS Code)다.46 VS Code에 ‘CMake Tools’, ‘Cortex-Debug’, 그리고 ‘Raspberry Pi Pico’ 확장 프로그램을 설치하면, 코드 작성부터 빌드, 업로드, 그리고 디버깅에 이르는 전체 개발 과정을 VS Code 내에서 통합적으로 관리할 수 있다. 특히, 별도의 피코 보드를 디버그 프로브(Picoprobe)로 사용하여 다른 피코 보드의 코드를 한 줄씩 실행하고, 변수 값을 확인하며, 레지스터 상태를 분석하는 소스 레벨 하드웨어 디버깅이 가능하다는 점은 전문적인 개발에 있어 큰 장점이다.45
- 프로그래밍 방식: C/C++ 프로젝트는 CMakeLists.txt라는 파일을 통해 빌드 구성을 정의한다.45 개발자는
pico_sdk_init() 함수로 SDK를 초기화하고, pico_stdlib와 같은 기본 라이브러리나 hardware_i2c, hardware_dma 등 특정 기능 라이브러리를 링크하여 사용한다. C/C++를 사용하면 MicroPython에서는 접근하기 어려운 저수준의 하드웨어 레지스터를 직접 제어할 수 있으며, 인터럽트를 세밀하게 다루거나, 두 개의 코어를 효율적으로 활용하여 진정한 병렬 처리를 구현하는 등 RP2040의 성능을 한계까지 끌어낼 수 있다.48
CircuitPython은 유명 전자부품 회사인 Adafruit가 주도하여 개발한 MicroPython의 파생 버전이다. CircuitPython의 가장 큰 특징은 초심자 친화성과 방대한 라이브러리 생태계다.26 코드를 수정하고 보드에 저장하면 별도의 재부팅 과정 없이 즉시 코드가 다시 실행되는 편리한 기능을 제공한다. 특히 Adafruit가 판매하는 수많은 센서, 디스플레이, 액추에이터 모듈에 대한 지원이 매우 잘 되어 있어, 해당 부품들을 사용하여 프로젝트를 구성할 때 개발 시간을 크게 단축할 수 있다.26
결론적으로, 피코의 소프트웨어 전략은 ‘접근성’과 ‘성능’이라는 두 마리 토끼를 모두 잡으려는 명확한 이중 전략을 보여준다. MicroPython과 Thonny는 아두이노만큼이나 쉬운 진입로를 제공하여 교육 시장과 취미 활동가들을 끌어들이고, C/C++ SDK와 VS Code는 전문 임베디드 개발자들이 요구하는 강력한 성능과 제어 기능을 제공한다. 만약 피코가 순수하게 교육용 보드였다면 MicroPython만으로도 충분했을 것이다. 그러나 복잡한 C/C++ 개발 환경과 하드웨어 디버깅까지 공식적으로 지원한다는 사실은, 이 보드가 단순한 장난감을 넘어 실제 제품 개발과 고성능 프로젝트에 사용될 것을 전제로 하고 있음을 명백히 보여주는 증거다.
라즈베리파이 피코의 가치와 시장에서의 위치를 정확히 파악하기 위해서는, 마이크로컨트롤러 시장의 대표적인 두 경쟁자인 아두이노 우노(Arduino Uno)와 ESP32와의 직접적인 비교가 필수적이다. 아두이노 우노는 ‘입문자의 표준’으로, ESP32는 ‘IoT의 강자’로 각각 확고한 입지를 다지고 있다. 피코는 이 두 플랫폼 사이에서 독자적인 영역을 구축하고 있다.
세 플랫폼을 비교하기 위한 분석의 틀은 다음과 같은 핵심 항목들로 구성된다: 코어 아키텍처와 성능, 메모리 용량, I/O 기능, 무선 연결성, 전력 소비, 가격, 그리고 생태계의 성숙도. 이 항목들을 통해 각 플랫폼의 하드웨어적 강점과 약점, 그리고 실용적인 가치를 객관적으로 평가할 수 있다. 세 플랫폼은 직접적인 경쟁 관계라기보다는, 서로 다른 문제 영역을 공략하는 보완적인 관계에 가깝다는 점을 염두에 두어야 한다. 개발자는 ‘어느 것이 더 좋은가’를 묻기보다, ‘자신의 프로젝트에 무엇이 가장 적합한가’를 판단해야 한다.
Table 3: 마이크로컨트롤러 비교: Pico vs. Arduino Uno vs. ESP32
| 항목 (Feature) |
Raspberry Pi Pico (RP2040) |
Arduino Uno R3 (ATmega328P) |
ESP32-WROOM-32 |
| 프로세서 (Processor) |
Dual-core ARM Cortex-M0+ @ 133MHz 25 |
Single-core 8-bit AVR @ 16MHz 50 |
Dual-core Tensilica LX6 @ 240MHz 51 |
| SRAM |
264 KB 25 |
2 KB 9 |
520 KB 52 |
| 플래시 (Flash) |
2MB (External QSPI) 25 |
32 KB (Internal) 9 |
4MB (Internal) 53 |
| GPIO (사용자) |
26 25 |
14 50 |
~34 (모델별 상이) 54 |
| ADC |
3 × 12-bit 25 |
6 × 10-bit 50 |
최대 18 × 12-bit 54 |
| 무선 (Wireless) |
Pico W: Wi-Fi/BT 14 |
없음 (None) |
Wi-Fi/BT 내장 (Built-in) 51 |
| 고유 특징 (Unique Feature) |
PIO (Programmable I/O) 25 |
방대한 생태계/쉴드 55 |
강력한 무선 기능/저전력 모드 55 |
| 전력 소비 (Power) |
유휴: ~1.3mA (Pico) 6 |
상대적으로 높음 |
다양한 저전력 모드, 최저 <5µA 54 |
| 가격 (Price) |
$4 (Pico), $6 (Pico W) 11 |
~$25 50 |
~$7-10 56 |
Raspberry Pi Pico:
- 강점: 피코의 가장 큰 무기는 가격 대비 압도적인 컴퓨팅 성능과 독보적인 I/O 유연성이다. 4달러라는 저렴한 가격에 133MHz 듀얼 코어 프로세서와 264KB의 넉넉한 SRAM을 제공하는 것은 다른 플랫폼이 따라오기 힘든 가성비다. 이를 통해 한 코어는 실시간 제어(예: 모터 구동)를, 다른 한 코어는 상위 레벨의 알고리즘이나 통신을 처리하는 효율적인 병렬 작업이 가능하다. 여기에 PIO 기능이 더해져, 하드웨어적으로 지원되지 않는 어떤 디지털 프로토콜이라도 소프트웨어로 구현할 수 있는 무한한 확장성을 제공한다.
- 약점: 오리지널 피코 모델은 Wi-Fi나 블루투스 기능이 없어 IoT 프로젝트에 사용하려면 ESP8266과 같은 별도의 무선 모듈을 추가해야 하는 번거로움이 있다.13 Pico W가 이 문제를 해결했지만, 여전히 ESP32만큼 무선 기능에 대한 소프트웨어 지원이나 커뮤니티 노하우가 성숙하지는 않았다. 또한, 생태계의 역사가 아두이노에 비해 짧아 특정 센서나 모듈에 대한 라이브러리가 부족한 경우가 있을 수 있다.
Arduino Uno:
- 강점: 아두이노의 핵심 자산은 하드웨어 자체가 아니라, 15년 이상 축적된 거대한 생태계다.55 인터넷에는 거의 모든 종류의 프로젝트에 대한 튜토리얼, 예제 코드, 라이브러리가 존재하며, 수많은 종류의 ‘쉴드(Shield)’를 보드에 꽂기만 하면 손쉽게 기능을 확장할 수 있다. 이처럼 극도로 낮은 진입 장벽은 전자공학과 코딩에 처음 입문하는 사람들에게 아두이노를 대체 불가능한 선택지로 만든다.
- 약점: 명백한 성능의 한계다. 8비트 16MHz 프로세서와 2KB의 SRAM으로는 약간의 연산만 더해져도 금방 한계에 부딪힌다. 여러 센서의 데이터를 동시에 처리하거나, 복잡한 알고리즘을 실행하거나, 그래픽 디스플레이를 구동하는 등의 현대적인 프로젝트에는 부적합하다. 가격 또한 성능에 비해 상대적으로 비싼 편이다.
ESP32:
- 강점: Wi-Fi와 블루투스 기능이 칩에 완벽하게 통합되어 있어 IoT 프로젝트를 위한 사실상의 표준으로 자리 잡았다.55 강력한 240MHz 듀얼 코어 프로세서와 520KB의 SRAM은 웬만한 IoT 애플리케이션을 처리하고도 남는 성능을 제공한다. 또한, 다양한 저전력 모드를 지원하여 배터리로 오랫동안 작동하는 무선 센서 노드를 만드는 데 매우 유리하다.54 아두이노 IDE를 통해 쉽게 프로그래밍할 수 있다는 점도 큰 장점이다.
- 약점: 일부 사용자들 사이에서 ADC의 성능이 불안정하고 비선형적이라는 평가가 있다.55 이는 정밀한 아날로그 측정이 중요한 프로젝트에서 단점으로 작용할 수 있다. 또한, 기능이 많은 만큼 핀의 기능이 복잡하게 다중화되어 있어 초심자가 사용하기에는 다소 혼란스러울 수 있다.
결론적으로, 피코의 등장은 마이크로컨트롤러 시장의 ‘가격 대비 성능’ 기준을 완전히 재정립했다. 과거 ESP32가 아두이노보다 훨씬 뛰어난 성능과 무선 기능을 저렴하게 제공하며 시장에 충격을 주었듯, 이제 피코가 4달러라는 가격에 듀얼 코어 ARM 프로세서와 PIO라는 독창적인 무기를 제공함으로써 “이 가격에 이 정도의 성능과 유연성이 가능해야 한다”는 새로운 기준을 만들었다. 이는 다른 MCU 제조사들에게 가격 인하 또는 기능 혁신에 대한 압박으로 작용하며, 궁극적으로는 개발자와 소비자에게 더 좋은 제품을 더 저렴하게 사용할 수 있는 혜택으로 돌아오고 있다.
라즈베리파이 피코의 이론적 강점들은 커뮤니티와 개발자들의 수많은 실제 프로젝트를 통해 그 유용성이 입증되고 있다. 피코의 적용 사례는 크게 IoT, 로보틱스, 커스텀 입력 장치, 웨어러블 기술의 네 가지 영역으로 나누어 살펴볼 수 있으며, 이 프로젝트들은 대부분 RP2040의 핵심 기능인 ‘듀얼 코어’와 ‘PIO’의 이점을 적극적으로 활용한다.
Pico W의 등장은 피코를 IoT 프로젝트의 강력한 후보로 만들었다. 개발자들은 BME280/BME680(온도, 습도, 압력, 가스), DS18B20(온도), PIR(동작 감지) 등 다양한 I2C 또는 1-Wire 센서들을 피코에 연결하고, 수집된 데이터를 Wi-Fi를 통해 클라우드 서버로 전송하는 센서 노드를 활발하게 구축하고 있다.57 특히, 경량 메시징 프로토콜인 MQTT를 사용하면 저전력으로 안정적인 데이터 전송이 가능하며, MicroPython을 통해 네트워크 연결과 데이터 발행(publish) 로직을 매우 간결한 코드로 구현할 수 있다.59
오리지널 피코를 사용하는 경우에도 방법은 있다. 저렴한 ESP8266 Wi-Fi 모듈을 피코의 UART 인터페이스에 연결하고, AT 명령어를 통해 제어함으로써 무선 기능을 추가하는 방식이 널리 사용된다.60 이는 피코의 강력한 연산 능력과 ESP8266의 검증된 무선 성능을 결합하는 효과적인 방법이다.
RP2040의 듀얼 코어 아키텍처는 로봇 제어에 이상적인 환경을 제공한다. 예를 들어, 한쪽 코어는 바퀴를 구동하는 모터의 PWM 신호를 생성하고, 초음파 센서로부터 거리를 측정하는 등 정밀한 타이밍이 요구되는 실시간 작업을 전담 처리할 수 있다. 동시에 다른 한쪽 코어는 장애물 회피 알고리즘을 계산하거나, 블루투스를 통해 원격 조종 명령을 수신하는 등 더 높은 수준의 로직을 담당할 수 있다. 이러한 작업 분리는 단일 코어 MCU에서는 구현하기 어려운 안정적이고 반응성 좋은 로봇 동작을 가능하게 한다. L298N 모터 드라이버를 이용한 기본적인 바퀴형 로봇 64부터, 여러 개의 서보 모터를 제어하는 로봇 팔 65에 이르기까지 다양한 로보틱스 프로젝트가 피코를 기반으로 만들어지고 있다. 또한, PicoBricks와 같은 교육용 로보틱스 키트는 블록 코딩 환경과 함께 피코를 제공하여 학생들이 STEM(과학, 기술, 공학, 수학) 개념을 쉽고 재미있게 배울 수 있도록 돕는다.65
피코가 USB HID(Human Interface Device) 프로토콜을 네이티브로 지원한다는 점은 커스텀 입력 장치 제작에 있어 엄청난 장점이다.6 개발자들은 피코를 이용해 자신만의 기계식 키보드, 특정 프로그램의 단축키를 모아놓은 매크로 패드, 비행 시뮬레이션용 조이스틱 등을 만들 수 있다.49 특히 Adafruit가 개발한 CircuitPython의
adafruit_hid 라이브러리를 사용하면, 키보드 키 입력, 마우스 커서 이동, 미디어 제어 버튼 등을 매우 간단한 코드로 에뮬레이션할 수 있다.49 수십 개의 기계식 스위치를 행과 열의 매트릭스(matrix) 형태로 연결하고, 각 키에 복잡한 매크로나 여러 키의 조합을 할당하는 프로젝트는 피코 커뮤니티에서 가장 인기 있는 분야 중 하나다.67 PIO는 키 매트릭스 스캔과 같은 작업을 CPU 대신 처리하여 키 입력의 반응성을 높이는 데 사용될 수도 있다.
피코의 작은 크기(51mm x 21mm)와 낮은 전력 소비는 스마트워치나 피트니스 트래커와 같은 웨어러블 기기를 만드는 데 매우 적합하다. 이 분야에서 가장 주목할 만한 프로젝트는 ‘WearPico’라는 이름의 오픈소스 스마트워치다.69 이 프로젝트는 Pico W, 원형 LCD 터치스크린, MPU6050 가속도 센서, 진동 모터, 그리고 리튬 폴리머 배터리를 3D 프린팅된 케이스 안에 결합하여 만들었다.69 C 언어로 작성된 펌웨어는 시간 표시, 스톱워치와 같은 기본적인 시계 기능뿐만 아니라, 블루투스를 통해 안드로이드 스마트폰과 연동하여 전화나 메시지 알림을 수신하고 미디어를 제어하는 스마트 기능까지 구현했다. 이 프로젝트는 피코가 단순한 학습용 보드를 넘어, 복잡하고 실용적인 상용 제품 수준의 웨어러블 기기를 만드는 데에도 충분히 활용될 수 있음을 보여주는 훌륭한 사례다.
Pico W가 Wi-Fi를 제공하지만, 산업 제어나 안정적인 데이터 로깅과 같이 신뢰성이 최우선인 환경에서는 유선 이더넷 연결이 더 선호된다. 피코는 내장 이더넷 컨트롤러가 없지만, SPI 인터페이스와 PIO를 활용하여 유선 네트워크 기능을 추가할 수 있는 몇 가지 방법이 있다. 76
-
SPI-to-Ethernet 브리지 칩 사용: 가장 일반적인 방법은 SPI 통신을 이더넷으로 변환해주는 전용 칩을 사용하는 것이다. 76
- WIZnet W5x00 시리즈 (W5100S, W5500): 이 칩들은 내부에 하드웨어 TCP/IP 스택을 내장하고 있어 피코의 CPU 부담을 크게 줄여준다. 77 WIZnet은 RP2040과 W5100S 또는 W5500 칩이 하나의 보드에 통합된 W5100S-EVB-Pico나 W5500-EVB-Pico와 같은 제품을 제공하며, 이는 별도의 배선 없이 바로 사용할 수 있어 편리하다. 77 일반 피코 보드에 WIZnet 칩 모듈을 SPI 핀(SCK, MOSI, MISO, CS)으로 연결하여 사용하는 것도 가능하다. 82 C/C++ SDK, MicroPython, CircuitPython 등 다양한 개발 환경을 위한 라이브러리가 잘 갖추어져 있다. 85
-
Microchip ENC28J60: WIZnet 칩에 비해 저렴한 대안이지만, TCP/IP 스택의 상당 부분을 소프트웨어로 처리해야 하므로 피코의 자원을 더 많이 사용한다. 76 이 칩 역시 SPI 인터페이스를 통해 연결되며, 커뮤니티를 통해 C/C++(Arduino IDE) 및 MicroPython용 드라이버를 찾을 수 있다. 90
-
PIO를 활용한 이더넷 MAC 구현: RP2040의 가장 독창적인 기능인 PIO를 활용하는 고급 기법이다. PIO 상태 머신을 프로그래밍하여 이더넷 MAC(Media Access Control) 계층을 소프트웨어적으로 구현할 수 있다. 92
- 최소 하드웨어 접근법 (10Base-T): 이더넷 변압기(transformer)와 소수의 저항, 커패시터 같은 수동 소자만으로 10Mbps 이더넷 물리 계층(PHY) 인터페이스를 구성할 수 있다. 92 이는 매우 저렴하게 유선 이더넷을 구현할 수 있는 방법이지만, 10Mbps로 속도가 제한되며 고급 사용자를 위한 방식이다.
- RMII PHY 칩 연동: 보다 표준적인 방법으로, PIO를 RMII(Reduced Media-Independent Interface) 인터페이스로 프로그래밍하여 외부 이더넷 PHY 칩과 통신할 수도 있다. 93 이 방식은 10/100Mbps를 모두 지원할 수 있지만, 별도의 PHY 칩이 필요하다. 이 방법들은 피코의 PIO가 얼마나 유연하고 강력한지를 보여주는 대표적인 사례다.
이러한 다양한 적용 사례들은 피코 생태계의 성장이 단지 라즈베리파이 재단의 노력만으로 이루어진 것이 아님을 보여준다. Adafruit, Pimoroni, SparkFun과 같은 서드파티 회사들은 피코를 위한 독창적인 애드온 보드(HAT)와 라이브러리를 출시하며 활용 가능성을 넓히고 있다.28 또한, Instructables, Hackster.io, GitHub, YouTube 등에서 활동하는 수많은 개인 개발자들과 커뮤니티가 자신들의 프로젝트와 노하우를 공유하며 생태계를 더욱 풍성하게 만들고 있다. 강력한 하드웨어 플랫폼이 활발한 커뮤니티와 결합될 때 얼마나 폭발적인 시너지를 낼 수 있는지를 피코가 명확히 보여주고 있는 것이다.
라즈베리파이 피코는 의심할 여지 없이 강력하고 혁신적인 마이크로컨트롤러지만, 만능은 아니다. 특히 피코의 저렴한 가격은 특정 기능들을 포기하거나 타협한 결과물이므로, 개발자는 프로젝트를 시작하기 전에 이러한 한계점들을 명확히 인지하고 있어야 한다. 피코의 한계는 크게 하드웨어적 제약과 소프트웨어 및 생태계의 한계로 나눌 수 있다.
피코의 하드웨어 설계는 ‘저비용’이라는 핵심 가치를 지키기 위한 의도적인 ‘설계적 타협’의 결과물이다. 이러한 타협점들이 일부 애플리케이션에서는 제약으로 작용할 수 있다.
- 무선 기능의 부재 (오리지널 피코): 2021년에 출시된 오리지널 피코의 가장 큰 단점은 Wi-Fi나 블루투스 기능이 없다는 점이다.1 이로 인해 IoT 프로젝트를 수행하려면 ESP8266이나 AirLift와 같은 외부 무선 모듈을 UART나 SPI를 통해 연결해야 하는 추가적인 노력과 비용이 발생했다. 2022년에 출시된 Pico W가 이 문제를 해결했지만, Pico W 역시 출시 초기에는 블루투스 기능에 대한 소프트웨어 지원이 미비하여 한동안 Wi-Fi만 사용 가능했다.13
- 프로세서 성능의 한계: RP2040에 탑재된 Cortex-M0+ 코어는 FPU(부동소수점 연산 장치)를 내장하고 있지 않다.15 이는 칩의 가격과 전력 소모를 줄이기 위한 선택이지만, 삼각함수, 푸리에 변환(FFT) 등 부동소수점 연산이 많이 필요한 과학 계산이나 신호 처리 작업에서는 FPU가 있는 Cortex-M4 코어에 비해 성능이 현저히 떨어진다. 또한, 오디오 처리나 특정 수학 연산을 가속화하는 DSP(Digital Signal Processing) 하드웨어 지원도 없다.26
- ADC 정확도 문제: 일부 초기 사용자들은 RP2040의 내장 ADC 성능에 대해 문제를 제기했다. 특히 입력 전압이 0V에 가까운 낮은 영역에서의 측정값이 부정확하고 노이즈가 많다는 보고가 있었다.28 이는 배터리 전압 모니터링이나 정밀한 센서 값을 읽어야 하는 애플리케이션에서는 신뢰성을 떨어뜨리는 요인이 될 수 있다. 따라서 매우 높은 정밀도의 아날로그 측정이 필요하다면, I2C나 SPI 인터페이스를 사용하는 외부 고정밀 ADC 칩을 추가로 사용하는 것이 바람직하다.
- 물리적 설계의 불편함: 핀의 기능과 번호를 알려주는 라벨이 보드 하단에 인쇄되어 있다.28 이 때문에 피코를 브레드보드에 꽂으면 라벨이 완전히 가려져, 핀맵 다이어그램을 계속 참조해야 하는 불편함이 있다. 또한, Micro-USB 포트는 잦은 연결과 분리에 상대적으로 취약하여 파손의 위험이 있다는 의견도 있다.28
피코의 생태계는 빠르게 성장하고 있지만, 아두이노처럼 오랜 역사를 가진 플랫폼에 비해서는 여전히 미성숙한 부분이 존재한다.
- MicroPython의 제약: MicroPython은 배우기 쉽고 빠르게 프로토타입을 만들 수 있다는 장점이 있지만, 성능과 기능 면에서 명확한 한계를 가진다. 순수 C/C++로 작성된 코드에 비해 실행 속도가 수십에서 수백 배까지 느릴 수 있다.74 이는 고속 데이터 처리나 복잡한 실시간 제어에는 부적합할 수 있음을 의미한다. 또한, MicroPython은 RP2040의 모든 하드웨어 기능을 완벽하게 지원하지 않는다. 예를 들어, 듀얼 코어를 활용한 멀티스레딩이나 DMA를 이용한 복잡한 데이터 전송, 그리고 PWM 모듈의 펄스 카운팅과 같은 일부 고급 기능들은 C/C++ SDK에서만 온전히 사용할 수 있다.48
- 문서 및 지원의 부족: 출시 초기에는 문서가 부족하거나, 공식 포럼에 기술적인 질문을 올려도 답변을 받기 어렵다는 비판이 있었다.73 일부 사용자들은 공식 SDK에서 I2C 통신 주파수가 정확히 설정되지 않는 버그나, UART 설정을 변경하는 함수가 제대로 동작하지 않는 등의 문제를 발견하기도 했다.73 이러한 문제들은 시간이 지나면서 커뮤니티의 노력과 재단의 업데이트를 통해 점차 개선되고 있지만, 생태계가 완전히 성숙하기까지는 시간이 더 필요함을 보여준다.
- 코드 보안 문제: MicroPython은 인터프리터 언어이므로, 소스 코드가 .py 파일 형태로 보드에 그대로 저장된다. 이는 누구나 피코를 PC에 연결하기만 하면 작성된 코드를 쉽게 읽고 복사할 수 있음을 의미한다.75 교육용이나 개인 프로젝트에서는 문제가 되지 않지만, 지적 재산권 보호가 중요한 상업용 제품을 개발할 경우에는 심각한 단점이 된다. 이를 해결하기 위해서는 코드를 C/C++로 작성하여 컴파일된 바이너리 파일(.uf2)로 만들거나, Python 코드를 알아보기 어렵게 만드는 난독화(obfuscation) 도구를 사용해야 한다.75
이러한 한계점들을 종합해볼 때, 개발자는 피코를 선택하기 전에 자신의 프로젝트 요구사항과 피코의 제약 조건을 신중하게 비교 분석해야 한다. 피코는 많은 프로젝트에 훌륭한 솔루션이지만, 모든 문제에 대한 정답은 아니다.
라즈베리파이 피코는 출시 이후 짧은 기간 동안 마이크로컨트롤러 시장에 상당한 파장을 일으켰다. 그것은 단순한 저가형 보드를 넘어, 기존의 시장 구도를 재편하고 개발자들에게 새로운 가능성을 제시하는 플랫폼으로 자리매김했다. 피코에 대한 심층적인 고찰을 통해 얻은 결론과 프로젝트 수행을 위한 전략적 제언은 다음과 같다.
라즈베리파이 피코의 핵심 가치는 세 가지로 요약할 수 있다.
- 가격 대비 월등한 컴퓨팅 파워: 4달러라는 파격적인 가격에 133MHz 듀얼 코어 ARM 프로세서와 264KB의 넉넉한 SRAM을 제공함으로써, 기존의 8비트 MCU 기반 보드들을 압도하는 연산 능력을 제공한다.
- 듀얼 코어를 통한 효율적인 병렬 처리: 두 개의 독립적인 코어를 통해 실시간 제어 작업과 상위 레벨의 연산 작업을 분리하여 처리할 수 있다. 이는 복잡한 로봇이나 실시간 데이터 처리 시스템에서 안정성과 반응성을 크게 향상시킨다.
- PIO를 통한 전례 없는 I/O 유연성: 소프트웨어로 커스텀 디지털 인터페이스를 만들 수 있는 PIO 기능은 하드웨어의 제약을 뛰어넘어, 사실상 모든 종류의 디지털 통신 프로토콜을 구현할 수 있는 무한한 확장성을 부여한다.
이 세 가지 핵심 가치의 조합은 기존에 아두이노와 ESP32가 각각 차지하고 있던 영역 사이의 빈틈을 정확히 파고들며, 개발자들에게 매력적인 새로운 선택지를 제공했다. 피코의 성공은 강력한 하드웨어 자체의 성능뿐만 아니라, 전 세계 수백만 명의 사용자를 보유한 ‘라즈베리파이’라는 브랜드의 신뢰도와 활발한 커뮤니티의 힘에 크게 의존한다. 사람들은 ‘RP2040’ 칩을 사는 것이 아니라, ‘라즈베리파이가 만든 마이크로컨트롤러’를 사는 것이며, 이 브랜드와 커뮤니티의 힘이 피코의 가장 강력한 자산이다.
어떤 플랫폼이 절대적으로 우월한 것은 없다. 프로젝트의 목표와 요구사항에 따라 최적의 선택은 달라진다.
Pico 2의 등장은 라즈베리파이 재단이 마이크로컨트롤러 시장에 일회성으로 진입한 것이 아니라, 장기적인 비전을 가지고 지속적으로 투자할 것임을 명확히 보여준다. 특히 Pico 2에서 강화된 보안 기능들은 피코의 활용 영역이 기존의 취미/교육 시장을 넘어 산업용 제어, 보안 IoT, 상업용 제품으로 확장될 것임을 예고한다.
개발자들은 피코를 단순히 ‘저렴한 아두이노 대체재’로만 바라볼 것이 아니라, 듀얼 코어와 PIO라는 고유한 장점을 어떻게 창의적으로 활용할 수 있을지를 고민해야 한다. 피코는 과거에는 복잡한 RTOS(실시간 운영체제)가 필요했던 작업을 더 간단한 베어메탈 환경에서 구현할 수 있게 해주며, 단일 코어 MCU의 성능 한계와 리눅스 기반 SBC의 복잡성 및 전력 소모 사이에서 완벽한 ‘스위트 스팟(sweet spot)’을 차지하는 강력한 솔루션이 될 수 있다.
결론적으로, 라즈베리파이 피코는 ‘강력하고 저렴한 하드웨어’와 ‘쉽고 접근 가능한 소프트웨어’가 결합될 때 어떤 시너지를 만들어내는지를 보여주는 교과서적인 사례다. 이는 기술 민주화라는 라즈베리파이의 근본 철학이 마이크로컨트롤러 영역에서도 성공적으로 구현되었음을 의미하며, 앞으로 더욱 다양하고 혁신적인 프로젝트들이 피코를 기반으로 탄생할 것임을 기대하게 한다.
- Getting Started With Raspberry Pi Pico : 9 Steps - Instructables, accessed July 24, 2025, https://www.instructables.com/Getting-Started-With-Raspberry-Pi-Pico/
- Raspberry Pi Pico microcontroller: specifications, features and RP2040, accessed July 24, 2025, https://magazine.raspberrypi.com/articles/raspberry-pi-pico-microcontroller-specifications-features-and-rp2040
- Raspberry Pi - Wikipedia, accessed July 24, 2025, https://en.wikipedia.org/wiki/Raspberry_Pi
- What is a Raspberry Pi? Series, Models, Features, and Uses - ELEPCB, accessed July 24, 2025, https://www.elepcb.com/blog/raspberry-pi-series-models-features-uses/
- Raspberry Pi is dead. Let’s admit it. : r/raspberry_pi - Reddit, accessed July 24, 2025, https://www.reddit.com/r/raspberry_pi/comments/11nxntr/raspberry_pi_is_dead_lets_admit_it/
- Everything about the Raspberry Pi Pico - PiCockpit, accessed July 24, 2025, https://picockpit.com/raspberry-pi/everything-about-the-raspberry-pi-pico/
- Raspberry Pi Pico - First Look and Project! - YouTube, accessed July 24, 2025, https://m.youtube.com/watch?v=zmeWQVTQvgg&pp=ygURI2NoYW5nZXBpY29pbm5hbWU%3D
- Set up Raspberry Pi Pico, accessed July 24, 2025, https://magazine.raspberrypi.com/articles/set-up-raspberry-pi-pico
- ARDUINO UNO REV3 SMD - Mouser Electronics, accessed July 24, 2025, https://www.mouser.com/datasheet/2/34/Arduino_A000073-1893642.pdf
- Introduction to Raspberry Pi Pico - SunFounder’s Documentations!, accessed July 24, 2025, https://docs.sunfounder.com/projects/thales-kit/en/latest/introduction_to_raspberry_pi_pico.html
- Raspberry Pi Pico (Non-Wireless) - PiShop.us, accessed July 24, 2025, https://www.pishop.us/product/raspberry-pi-pico/
- Raspberry Pi Pico, Microcontroller Board, RP2040, 32 bit, 2MB Flash, ARM Cortex-M0+, accessed July 24, 2025, https://www.newark.com/raspberry-pi/raspberry-pi-pico/mcu-board-rpi-pico-264kb-133mhz/dp/22AJ1097
-
| Raspberry Pi Pico W, H, & WH: Which to Choose |
All3DP, accessed July 24, 2025, https://all3dp.com/2/raspberry-pi-pico-w-h-wh-wifi/ |
- Raspberry Pi Pico W - Waveshare Wiki, accessed July 24, 2025, https://www.waveshare.com/wiki/Raspberry_Pi_Pico_W
- Raspberry Pi Pico W : ID 5526 - Adafruit, accessed July 24, 2025, https://www.adafruit.com/product/5526
-
| Raspberry Pi Pico W vs. Pico |
What’s the difference? - Tutorial Australia - Core Electronics, accessed July 24, 2025, https://core-electronics.com.au/guides/raspberry-pi-pico-w-vs-pico-whats-the-difference/ |
- Raspberry Pi Pico - Raspberry Pi 2040 chip, beginner-friendly microcontroller, small & flexible design, low power consumption - Seeed Studio, accessed July 24, 2025, https://www.seeedstudio.com/Raspberry-Pi-Pico-p-4832.html
- Raspberry Pi Pico 2 Revisions - The Centre for Computing History, accessed July 24, 2025, https://www.computinghistory.org.uk/det/75340/Raspberry-Pi-Pico-2-Revisions/
- Raspberry Pi Pico 2 - PiShop.us, accessed July 24, 2025, https://www.pishop.us/product/raspberry-pi-pico-2/
- Raspberry Pi Pico 2 W Vs Original Pico W - Comprehensive Guide - Zaitronics, accessed July 24, 2025, https://zaitronics.com.au/blogs/guides/raspberry-pi-pico-2-w-vs-original-pico-w-comprehensive-guide
- Raspberry Pi Pico - Raspberry Pi Datasheets, accessed July 24, 2025, https://datasheets.raspberrypi.com/pico/pico-product-brief.pdf
- Week 06: MCU Datasheet - Skylabworkshop > Fab Academy 2024, accessed July 24, 2025, https://academany.fabcloud.io/fabacademy/2024/labs/skylab/site/group_assignment/week06/
- RP2040 - Wikipedia, accessed July 24, 2025, https://en.wikipedia.org/wiki/RP2040
- RP2040 Datasheet: A microcontroller by Raspberry Pi., accessed July 24, 2025, https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf
- Raspberry Pi PICO - Silverline Electronics, accessed July 24, 2025, https://www.silverlineelectronics.in/products/raspberry-pi-pico
- Getting Started with Raspberry Pi Pico and CircuitPython - Adafruit, accessed July 24, 2025, https://cdn-learn.adafruit.com/downloads/pdf/getting-started-with-raspberry-pi-pico-circuitpython.pdf
- Raspberry Pi Pico and Pico W Pinout Guide: GPIOs Explained - Random Nerd Tutorials, accessed July 24, 2025, https://randomnerdtutorials.com/raspberry-pi-pico-w-pinout-gpios/
- Raspberry Pi Pico - Review - element14 Community, accessed July 24, 2025, https://community.element14.com/products/roadtest/rv/roadtest_reviews/964/raspberry_pi_pico
- Raspberry Pi Pico - Board Layout, Pinout, I/O, Power, and Specs - Data Capture Control, accessed July 24, 2025, https://datacapturecontrol.com/articles/io-devices/microcontrollers/rpi-pico
- Those little PIO-s on the Pico.. any ideas? : r/raspberrypipico - Reddit, accessed July 24, 2025, https://www.reddit.com/r/raspberrypipico/comments/1aes0jr/those_little_pios_on_the_pico_any_ideas/
- Raspberry Pi Pico and RP2040 - MicroPython Part 3: PIO - DigiKey, accessed July 24, 2025, https://www.digikey.com/en/maker/projects/raspberry-pi-pico-and-rp2040-micropython-part-3-pio/3079f9f9522743d09bb65997642e0831
- raspberrypi/pico-examples - GitHub, accessed July 24, 2025, https://github.com/raspberrypi/pico-examples
- Pico PIO state machine implements a peripheral: CAN - 1: example - element14 Community, accessed July 24, 2025, https://community.element14.com/products/raspberry-pi/b/blog/posts/pico-pio-state-machine-implements-an-peripheral-can—1-example
- Pio guide : r/raspberrypipico - Reddit, accessed July 24, 2025, https://www.reddit.com/r/raspberrypipico/comments/1bba5j5/pio_guide/
-
| Introduction to Raspberry Pi Pico guide |
Python |
Coding projects for kids and teens, accessed July 24, 2025, https://projects.raspberrypi.org/en/projects/introduction-to-the-pico |
- Raspberry Pi Pico - Control the (I/O) World - YouTube, accessed July 24, 2025, https://www.youtube.com/watch?v=Zy64kZEM_bg
-
| Install or update Thonny |
Getting started with Raspberry Pi Pico - Code Club Projects, accessed July 24, 2025, https://projects.raspberrypi.org/en/projects/getting-started-with-the-pico/2 |
- Code Pico with Thonny - Raspberry Pi Official Magazine, accessed July 24, 2025, https://magazine.raspberrypi.com/articles/code-pico-with-thonny
-
| Getting started with your Raspberry Pi Pico W |
Python |
Coding projects for kids and teens, accessed July 24, 2025, https://projects.raspberrypi.org/en/projects/get-started-pico-w/1 |
- How to Setup a Raspberry Pi Pico and Code with Thonny - YouTube, accessed July 24, 2025, https://www.youtube.com/watch?v=_ouzuI_ZPLs&pp=0gcJCdgAo7VqN5tD
-
- Thonny IDE with Raspberry Pi Pico - Tech Explorations, accessed July 24, 2025, https://techexplorations.com/guides/esp32/micropython-with-the-esp32/9-thonny-raspberry-pi-pico/
-
| Getting started with Raspberry Pi Pico |
Physical Computing |
Coding projects for kids and teens, accessed July 24, 2025, https://projects.raspberrypi.org/en/projects/getting-started-with-the-pico |
- PICO SDK On Windows Guide - 52Pi Wiki, accessed July 24, 2025, https://wiki.52pi.com/images/6/69/Pico_sdk_on_windows_guide.pdf
- Setting up the Raspberry Pi Pico for C/C++ Development on Windows - Parth Sarthi Sharma, accessed July 24, 2025, https://parthssharma.github.io/Pico/Setup.html
- pico-setup-windows/docs/tutorial.md at master - GitHub, accessed July 24, 2025, https://github.com/raspberrypi/pico-setup-windows/blob/master/docs/tutorial.md
- Pico: Using VS Code and the new Raspberry Pi Pico extension to develop an I2C driver application in C with the help of an AI LLM - element14 Community, accessed July 24, 2025, https://community.element14.com/products/raspberry-pi/b/blog/posts/using-visual-studio-code-vs-code-and-the-new-raspberry-pi-pico-extension-to-develop-an-i2c-driver-application-in-c-with-the-help-of-ai
- Raspberry Pi Pico and RP2040 - C/C++ Part 1: Blink and VS Code - DigiKey, accessed July 24, 2025, https://www.digikey.com/en/maker/projects/raspberry-pi-pico-and-rp2040-cc-part-1-blink-and-vs-code/7102fb8bca95452e9df6150f39ae8422
- Disadvantages of Micropython (against C) - Raspberry Pi Forums, accessed July 24, 2025, https://forums.raspberrypi.com/viewtopic.php?t=355596
- DIY Macro Keyboard Using a Raspberry PI Pico : 4 Steps - Instructables, accessed July 24, 2025, https://www.instructables.com/DIY-Macro-Keyboard-Using-a-Raspberry-PI-Pico/
- Arduino Uno - R3 SMD - SparkFun Electronics, accessed July 24, 2025, https://www.sparkfun.com/arduino-uno-r3-smd.html
-
| ESP-WROOM-32 Datasheet |
Elecrow, accessed July 24, 2025, https://www.elecrow.com/download/esp_wroom_32_datasheet_en.pdf |
- ESP32-WROOM-32 - Olimex, accessed July 24, 2025, https://www.olimex.com/Products/IoT/ESP32/ESP32-WROOM-32/
- ESP32-WROOM-32 - Datasheet Version 3.5 - Espressif Systems, accessed July 24, 2025, https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf
- ESP32-WROOM-32 - Datasheet - CBA, accessed July 24, 2025, http://academy.cba.mit.edu/classes/networking_communications/ESP32/esp32-wroom-32_datasheet_en.pdf
- Raspberry Pi VS Arduino VS ESP32 - TechteamGB, accessed July 24, 2025, https://techteamgb.co.uk/2025/07/21/raspberry-pi-vs-arduino-vs-esp32/
- Raspberry Pi VS Arduino VS ESP32 - YouTube, accessed July 24, 2025, https://www.youtube.com/watch?v=oJs0cVYuQTw
- Raspberry Pi Pico: 20 Free Guides for Sensors and Modules - Random Nerd Tutorials, accessed July 24, 2025, https://randomnerdtutorials.com/raspberry-pi-pico-guides-sensors-modules/
- This repository contains sensor code and network examples for pico-w - GitHub, accessed July 24, 2025, https://github.com/iot-lnu/pico-w
- Getting Started with Raspberry Pi Pico W for IoT: Micropython and MQTT - HiveMQ, accessed July 24, 2025, https://www.hivemq.com/blog/iot-reading-sensor-data-raspberry-pi-pico-w-micropython-mqtt-node-red/
- Pico ESP8266 - Waveshare Wiki, accessed July 24, 2025, https://www.waveshare.com/wiki/Pico-ESP8266
- Connect a Raspberry Pi Pico with Ubidots using an ESP8266, accessed July 24, 2025, https://help.ubidots.com/en/articles/5097358-connect-a-raspberry-pi-pico-with-ubidots-using-an-esp8266
- Connecting a Pico to WiFi network - Raspberry Pi Forums, accessed July 24, 2025, https://forums.raspberrypi.com/viewtopic.php?t=306605
- ESP8266 WiFi Module with Raspberry Pi Pico - Digital Lab, accessed July 24, 2025, https://digitalab.org/2023/05/esp8266-wifi-module-with-raspberry-pi-pico/
- Very Simple Raspberry Pi Pico Robot : 7 Steps - Instructables, accessed July 24, 2025, https://www.instructables.com/Very-Simple-Raspberry-Pi-Pico-Robot/
- Raspberry Pi STEM Robotics Projects - Picobricks, accessed July 24, 2025, https://picobricks.com/pages/robotic-stem-projects
- Picobricks - Best STEM Robotics Kits, accessed July 24, 2025, https://picobricks.com/
- Wireless Bluetooth Keyboard, Using Raspberry Pi Pico W : 5 Steps - Instructables, accessed July 24, 2025, https://www.instructables.com/Wireless-Bluetooth-Keyboard-Using-Raspberry-Pi-Pic/
-
| DIY Pico Mechanical Keyboard with Fritzing and CircuitPython |
Adafruit Learning System, accessed July 24, 2025, https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython/overview |
-
| The Dawn of DIY Smartwatches: Raspberry Pi Pico Ushers in a New Era |
by David Wix, accessed July 24, 2025, https://medium.com/@DavidWix_12195/the-dawn-of-diy-smartwatches-raspberry-pi-pico-ushers-in-a-new-era-0e0d1c7c3797 |
- Umut Sevdi’s WearPico Turns a Raspberry Pi Pico W Into an RP2040-Powered Smartwatch Platform - Hackster.io, accessed July 24, 2025, https://www.hackster.io/news/umut-sevdi-s-wearpico-turns-a-raspberry-pi-pico-w-into-an-rp2040-powered-smartwatch-platform-bf9809498001
- umutsevdi/wear-pico: An open source Smartwatch firmware written in C for the Raspberry Pi Pico - GitHub, accessed July 24, 2025, https://github.com/umutsevdi/wear-pico
- An Introduction to RP2040 PIO with CircuitPython - Adafruit, accessed July 24, 2025, https://cdn-learn.adafruit.com/downloads/pdf/intro-to-rp2040-pio-with-circuitpython.pdf
- What is the consensus on the Raspberry Pi Pico? : r/embedded - Reddit, accessed July 24, 2025, https://www.reddit.com/r/embedded/comments/1fsjp5p/what_is_the_consensus_on_the_raspberry_pi_pico/
- Pico W Benchmarks - Raspberry Pi Forums, accessed July 24, 2025, https://forums.raspberrypi.com/viewtopic.php?t=339512
- pi_Pico limitations - Core Electronics Forum, accessed July 24, 2025, https://forum.core-electronics.com.au/t/pi-pico-limitations/11736
- How To Add Ethernet On Raspberry Pi PICO - Pallav Aggarwal, accessed July 24, 2025, https://pallavaggarwal.in/2021/11/19/add-ethernet-to-raspberry-pi-pico/
-
| W5100S-EVB-Pico |
WIZnet Document System, accessed July 24, 2025, https://docs.wiznet.io/Product/iEthernet/W5100S/w5100s-evb-pico |
-
- MicroPython development for W5100S/W5500+RP2040
- Micropython with WIZnet W5500 EVB: Reliable Ethernet Communication for Raspberry Pi Pico, accessed July 24, 2025, https://maker.wiznet.io/matthew/projects/-micropython-with-wiznet-w5500-evb-reliable-ethernet-communication-for-raspberry-pi-pico/
- The Arduino Raspberry Pi Pico/RP2040-Ethernet V2.1.1 : 10 Steps - Instructables, accessed July 24, 2025, https://www.instructables.com/The-Arduino-Raspberry-Pi-PicoRP2040-Ethernet-V211/
- W5500-EVB-Pico Download - CircuitPython, accessed July 24, 2025, https://circuitpython.org/board/wiznet_w5500_evb_pico/
- Tutorials :: Raspberry Pi Pico [2] + W5500 - mongoose.ws, accessed July 24, 2025, https://mongoose.ws/documentation/tutorials/rp2040/pico-w5500/
- Raspberry Pi Pico and rp2040 board: ethernet w5500 with plain (HTTP) and SSL (HTTPS) requests - WIZnet Makers, accessed July 24, 2025, https://maker.wiznet.io/irina/projects/raspberry-pi-pico-and-rp2040-board:-ethernet-w5500-with-plain-http-and-ssl-https-requests/
- How to add W5500 Ethernet to Raspberry Pi Pico (Python) - 1 - Hackster.io, accessed July 24, 2025, https://www.hackster.io/bjnhur/how-to-add-w5500-ethernet-to-raspberry-pi-pico-python-1-c7340c
-
| Using Micropython to connect Wiznet W5500 Pico Pis over Ethernet |
Stephanj’s Writings, accessed July 24, 2025, https://sjhennion.github.io/jekyll/update/2023/09/22/w5500-intro.html |
- wiznetmaker/W5100S-EVB-Pico_Basic_Example_with_Arduino_IDE - GitHub, accessed July 24, 2025, https://github.com/wiznetmaker/W5100S-EVB-Pico_Basic_Example_with_Arduino_IDE
- How to add W5100S Ethernet to Raspberry Pi Pico - IoT Demo - Hackster.io, accessed July 24, 2025, https://www.hackster.io/bjnhur/how-to-add-w5100s-ethernet-to-raspberry-pi-pico-iot-demo-fed492
- WIZnet-ioNIC/WIZnet-PICO-C: Ethernet Example for RP2040, RP2350 - GitHub, accessed July 24, 2025, https://github.com/WIZnet-ioNIC/WIZnet-PICO-C
- Raspberry Pi Zero - Establishing an Ethernet connection (ENC28J60), accessed July 24, 2025, https://tutorials-raspberrypi.com/raspberry-pi-zero-establishing-an-ethernet-connection-enc28j60/
- ENC28J60 ethernet controller for Raspberry PI Pico, accessed July 24, 2025, https://forums.raspberrypi.com/viewtopic.php?t=344930
- Struggling In interfacing RP2040 With ENC28j60 Module - Arduino Forum, accessed July 24, 2025, https://forum.arduino.cc/t/struggling-in-interfacing-rp2040-with-enc28j60-module/1123073
- holysnippet/pico_eth_doc: RP2040 Minimal hardware (PIO) Ethernet interface + LwIP TCP/IP stack driver - GitHub, accessed July 24, 2025, https://github.com/holysnippet/pico_eth_doc
- sandeepmistry/pico-rmii-ethernet - GitHub, accessed July 24, 2025, https://github.com/sandeepmistry/pico-rmii-ethernet