AEGLOSLAB Arduino UNO Q 완전 가이드

제1부 구매와 구성

1.4 언박싱부터 첫 부팅까지 — 초기 셋업

이 장은 UNO Q를 상자에서 꺼낸 뒤 실제로 Blink 예제 하나가 동작하는 것을 확인하기까지의 절차를 다룬다. 근거는 Arduino 공식 UNO Q User Manual(데이터시트, SKU ABX00162-ABX00173, 2026-08-17 개정판, "Device Operation" 절)과 docs.arduino.cc의 User Manual 튜토리얼(GitHub arduino/docs-content 저장소의 원문)이다. 준비물은 1.3을 먼저 확인한다.

1.4.1 시작 전 확인

  • UNO Q 보드(2GB 또는 4GB)
  • USB-C 케이블, 5V/3A 전원(또는 45W PD 어댑터)
  • PC-hosted 모드라면 PC 한 대, SBC 모드라면 모니터·키보드·마우스·USB-C 동글(1.3.4)
  • Wi-Fi 네트워크 정보(SSID·비밀번호) — 최초 설정 중 입력해야 한다

1.4.2 전원 연결

USB-C 케이블로 5V/3A 전원을 공급하는 것이 가장 단순한 방법이다(VIN·5V 핀을 이용한 대안 공급은 1.3.2, 2.4 참조). 전원을 넣으면 보드는 별도 전원 버튼 조작 없이 자동으로 부팅한다 — 보드 상단의 전원 버튼(JBTN1)은 평상시 부팅에는 필요 없고, 재부팅 용도로만 쓰인다(1.4.7).

첫 부팅은 20~30초가량 걸린다. 공식 문서는 "Linux가 시작되는 동안 20~30초 정도 걸리는 것이 일반적이며, 부팅 LED 시퀀스나 LED 매트릭스 애니메이션이 끝날 때까지 기다린 뒤 보드를 조작하라"고 명시한다. 이 대기 시간 전에 케이블을 뽑거나 App Lab에서 조작을 시도하면 인식 실패로 이어질 수 있다.

1.4.3 Arduino App Lab 설치·연결

App Lab은 이미 보드에 사전 설치되어 출하된다. 따라서 사용 방식은 두 가지로 나뉜다.

PC-hosted SBC 모드 전원 연결, 20~30초 대기 PC-hosted 또는 SBC 모드? PC에 Arduino App Lab 설치 USB-C 데이터 케이블로 PC ↔ 보드 연결 App Lab이 보드를 인식 모니터·키보드·마우스를 동글 경유로 연결 보드에 이미 설치된 App Lab이 화면에 표시 최초 설정 마법사
  • PC-hosted 모드: 공식 웹사이트에서 OS별(Windows/macOS/Linux) App Lab 설치 파일을 받아 PC에 설치한 뒤 실행하고, USB-C 데이터 케이블로 보드를 PC에 연결한다.
  • SBC 모드: 별도 설치 없이 모니터·키보드·마우스를 동글로 연결하면 보드 자체 화면에 App Lab이 표시된다.

App Lab을 처음 실행하면 자동으로 업데이트를 확인한다. 업데이트가 있으면 설치를 진행하고, 완료 후 App Lab을 재시작하라는 안내가 표시된다.

1.4.4 최초 설정 마법사 — 이름·비밀번호·Wi-Fi

업데이트가 끝나면 최초 설정 마법사가 이어진다. 공식 문서 기준 순서는 다음과 같다.

  1. 보드 이름 지정 — 여러 대를 구별하기 위한 이름을 정한다. 무작위로 생성된 이름을 그대로 쓰거나 직접 입력할 수 있다.
  2. 비밀번호 설정 — 보드(Linux 계정) 비밀번호를 설정하고 확인 입력한다.
  3. Wi-Fi 자격증명 입력 — 로컬 Wi-Fi 네트워크를 선택하고 비밀번호를 입력한다. 네트워크 연결은 필수인데, 보드가 필요한 Linux 소프트웨어 패키지·시스템 구성 요소를 인터넷에서 내려받아야 하기 때문이다.

GUI 대신 SBC 모드 터미널에서 직접 연결하고 싶다면 nmcli(NetworkManager CLI)를 쓸 수 있다.

sudo nmcli d wifi connect <SSID> password <PASSWORD>

일반 가정용 WPA2-PSK가 아니라 WPA2-Enterprise(예: 대학·회사의 eduroam, TTLS-PAP 방식)에 연결해야 한다면 GUI 마법사만으로는 부족할 수 있다. 공식 문서는 nmcli로 인증 방식(EAP 방법, 내부 인증, 사용자명/비밀번호 등)을 상세히 지정하는 예시를 별도로 제공한다 — 상세 명령은 A.1(부록 A)에서 다룬다.

1.4.5 첫 스케치 확인 — Hello World / Blink

설정이 끝나면 App Lab이 Examples 섹션에서 시작한다. 여기서 클래식 Arduino의 "Hello World"에 해당하는 Blink LED 예제로 보드가 App Lab과 정상적으로 연결되어 있는지 확인한다.

  1. App Lab을 열면 Examples 섹션이 기본으로 표시된다.
  2. SBC 모드가 아니라면(PC-hosted라면) UNO Q가 PC에 연결되어 있는지 확인한다.
  3. Blink LED 예제를 연다. 예제 노트를 읽어 앱이 어떻게 동작하는지 확인한다.
  4. 우측 상단 Run 버튼을 클릭하고 업로드가 끝날 때까지 기다린다.

업로드가 끝나면 보드 내장 RGB LED의 빨간색 채널이 1초 켜짐 · 1초 꺼짐을 반복한다. 이 LED는 STM32U585(MCU)가 Arduino 스케치를 통해 직접 구동한다 — 즉 이 테스트 하나로 "MPU→MCU 배포 경로 전체(App Lab → Bridge → MCU 플래시)"가 정상 동작함을 확인하는 셈이다.

App Lab에서 실행하는 단위는 App이라고 부른다. 하나의 App은 다음을 포함할 수 있다.

  • Linux(MPU) 쪽에서 실행되는 Python 프로그램
  • MCU(STM32U585)에서 실행되는 Arduino 스케치
  • 선택적으로 Brick(AI 모델, 웹 서버, API 클라이언트 등 미리 패키징된 서비스 모듈)

Linux 쪽과 MCU 쪽은 Bridge(RPC 라이브러리)로 데이터를 주고받는다. App을 실행할 때마다 매번 MCU 스케치가 컴파일되고 Python 애플리케이션이 Linux 쪽에서 새로 시작되므로, 복잡한 App은 실행까지 최대 1분 정도 걸릴 수 있다. 이 App/Bridge/Brick 아키텍처의 내부 동작은 3.3(App Lab 아키텍처)·3.4(Bridge)에서 더 깊이 다룬다.

1.4.6 앱 실행 상태 확인하기

App Lab의 Console 탭에는 세 개의 하위 탭이 있다.

탭내용
Start-up실행 시작 로그 — MCU 컴파일, Linux 배포 과정 포함
Main (Python)Python 애플리케이션의 표준 출력(print())
Sketch (Microcontroller)Arduino 스케치의 시리얼 출력(Serial.println())

주의할 엣지 케이스: App이 "성공적으로 실행됨"으로 표시되더라도 런타임 중 오류가 있을 수 있다 — Python 로그를 반드시 확인하라. 반대로 스케치 컴파일 오류가 나면 실행(launch) 자체가 중단된다.

1.4.7 이후 접속 — Network 모드와 재부팅

최초 설정에서 USB 데이터 연결이 필요했던 것은 처음 한 번뿐이다. 이후에는 같은 Wi-Fi 네트워크에 연결된 PC의 App Lab에서 mDNS(로컬 네트워크 탐색)로 보드를 자동으로 찾아 Network 타깃으로 SSH 접속할 수 있다(PC-hosted·SBC 두 모드는 동시에 사용 가능). SSH를 이용한 원격 접속의 세부 사항은 5.2에서 다룬다.

App이 실행 중인 동안에는 USB 인터페이스를 시스템이 점유할 수 있다 — 외부 CLI 도구로 USB를 직접 쓰려면 App Lab에서 App을 정지하거나 보드 연결을 해제해야 한다.

보드에는 전원 버튼(JBTN1)이 있다. 5초 이상 길게 누르면 Linux 시스템(MPU)만 재부팅되며, 이때 보드 전원 자체가 꺼지는 것은 아니다. 재부팅은 실행 중이던 App을 중단시킬 수 있으므로, 작업 중이던 내용을 저장하고 외부 프로세스를 안전하게 정지한 뒤 누르는 것이 좋다. 평상시 정상 부팅에는 이 버튼을 누를 필요가 없다 — 전원이 공급되면 자동으로 부팅한다.

1.4.8 흔한 초기 셋업 문제

아래는 공식 User Manual이 다루는 대표적인 문제와 대응이다. 더 폭넓은 트러블슈팅은 A.1(부록 A — 트러블슈팅)에서 종합적으로 다룬다 — 여기서는 초기 셋업 단계에서 자주 겪는 문제만 간단히 다룬다.

① 앱이 보드에 자동으로 연결되지 않거나 플래시(업로드)가 실패한다(Linux 사용자)

Linux PC에서 USB 장치 권한(udev 규칙)이 구성되지 않은 경우 자주 발생한다. udev 규칙 파일을 설치하고 보드를 물리적으로 분리했다가 다시 연결하면 해결되는 경우가 많다.

② Network 모드에서 보드가 검색되지 않는다

  • Windows에서는 App Lab을 처음 실행할 때 Windows Defender(또는 다른 보안 소프트웨어)가 mdns-discovery.exe의 네트워크 접근을 막을 수 있다 — 접근을 허용해야 한다.
  • 게스트 Wi-Fi, 회사/기관 네트워크, VPN, 엄격한 방화벽 환경은 mDNS 자동 탐색 자체를 막을 수 있다. 방화벽에서 UDP 5353 포트를 허용해야 하는 경우도 있다.

③ WPA2-Enterprise 네트워크(eduroam 등)에 연결이 안 된다

일반 GUI 마법사로는 세부 인증 파라미터를 지정할 수 없는 경우가 있다. nmcli로 EAP 방식·내부 인증까지 직접 지정해야 한다(A.1에서 예시 명령 정리).

④ Arduino IDE에서 UNO Q 보드 코어가 보이지 않는다

App Lab이 아니라 Arduino IDE 2+로 MCU만 별도 프로그래밍하려는 경우, IDE의 File > Preferences > Additional Boards Manager URLs에 Zephyr 코어 패키지 인덱스(https://downloads.arduino.cc/packages/package_zephyr_index.json)를 수동으로 추가해야 보드 매니저에 나타날 수 있다.

⑤ Bridge/RPC 통신이 멈춘 것처럼 보인다

provide() 콜백 함수 안에서 Serial.print()를 호출하면 데드락이 발생할 수 있다는 점이 공식 문서에 경고로 명시되어 있다 — 초보자가 로깅을 위해 무심코 넣기 쉬운 실수이니 주의한다.

⑥ arduino-router 서비스 관련 이상 동작

SBC 모드에서 Bridge/RPC 관련 서비스가 이상하면 아래 명령으로 상태를 점검할 수 있다.

systemctl status arduino-router
sudo systemctl restart arduino-router
journalctl -u arduino-router -f

⑦ 디버그 UART로 직접 접속할 때

JCTL1 커넥터의 디버그 UART는 1.8V 로직 레벨이다(3.3V/5V가 아니다) — 호환되는 USB-TTL 컨버터(또는 1.3.5에서 소개한 공식 BugHopper, 레벨 시프터 내장)를 써야 하며, 통신 속도는 115200bps다. 일반 3.3V USB-시리얼 케이블을 그대로 연결하면 신호 레벨 불일치로 손상 위험이 있으니 주의한다.

1.4.9 다음 단계

여기까지 오면 보드는 App Lab과 정상적으로 통신하고, MCU 쪽 Blink 예제가 확인된 상태다. 이제 실제 프로그래밍으로 넘어갈 차례다.

  • 스케치·App Lab 워크플로우를 더 깊이 배우려면 4.1(첫 스케치 — Arduino IDE와 App Lab 워크플로우).
  • MPU-MCU 연동 앱을 직접 만들려면 4.2.
  • SSH로 원격 접속해 Debian을 직접 다루려면 5.2.
  • 이 장에서 다 담지 못한 문제 상황은 A.1(부록 A — 트러블슈팅)에서 계속 확인한다.

Sources: