스마트워치를 만드는 방법: 칩 선정
(ericmigi.com)- Core Time 2용 칩으로 SiFli의 SF32LB52J을 선택함
- 스마트워치 설계에서 가장 중요한 결정 중 하나가 바로 칩 선정임
- 소프트웨어 호환성과 전력 소비, 단가 등이 칩 선정에 큰 영향을 미침
- SiFli 칩은 오픈 소스 SDK와 낮은 전력 소비, 넉넉한 메모리를 제공함
- 이 시리즈는 앞으로 디스플레이 등 다른 주요 부품 선정 방법도 다룰 예정임
개요
- 본 글은 직접 스마트워치를 만드는 방법을 소개하는 연재 글의 첫 번째 편임
- 목표는 누구나 2025년 즈음에 쓸만한 스마트워치를 조금만 노력하면 만들 수 있음을 보여주는 것임
- PebbleOS의 오픈 소스화가 더 창의적인 스마트워치 개발을 촉진할 것으로 기대함
- 스마트워치는 크게 하드웨어, 소프트웨어(펌웨어/운영체제), 모바일 앱 등 세 가지 주요 요소로 구성됨
하드웨어 구성 요소의 분해
- 스마트워치 하드웨어는 크게 다섯 가지 시스템 요소로 나눌 수 있음
- 마이크로컨트롤러 칩(대개 Bluetooth 라디오 포함)
- 디스플레이
- 센서류와 출력장치(버튼, 터치, 마이크, 가속도계, 스피커 등)
- 기타 전자 부품(칩, 수동소자, PCB, 배터리 등)
- 기계적 구조(시계 케이스, 글라스, 버튼, 스트랩, 충전 케이블 등)
- 센서, 배터리, 스트랩, 마이크 등은 다양한 가격대에서 선택 대상이 많아 현재는 쉽게 고를 수 있음
- 가장 어려운 의사결정은 마이크로컨트롤러+Bluetooth 라디오, 그리고 디스플레이임
칩(마이크로컨트롤러) 선정의 중요성
- MCU는 스마트워치의 '심장' 역할을 하며 CPU, RAM, 플래시 저장공간, I/O, 라디오 등을 한 칩에 통합함
- 적합한 MCU를 고르는 일은 비용, 전력, 소프트웨어 호환성 등 여러 제약 조건의 균형점임
- MCU마다 SDK, 드라이버, 빌드 시스템이 달라 소프트웨어 개발 난이도가 높아짐
- PebbleOS는 특정 회사(STM)의 MCU에만 맞춰졌기 때문에 다른 MCU 전환 시 드라이버와 빌드 시스템 변경 필요함
- 특정 MCU는 PebbleOS에 필요한 FreeRTOS 지원이 어려움
- 대량 생산이 아니기 때문에 소프트웨어 개발비가 제품 단가에 큰 비중을 차지하게 됨
기존 사용 칩과 선정 과정
- 과거 Pebble 시계는 STM32F2를 활용했으며, 초기에는 릴레이션과 주변 조언을 토대로 칩을 선정하는 경우가 많았음
- 최근에는 Nordic nRF52840 칩을 사용해 Core 2 Duo 스마트워치 프로토타입을 제작함
- 오픈 소스 BLE 스택(nimBLE)로 전환하여 개발 진행
- 더 큰 메모리와 성능이 요구된 Core Time 2에는 nRF52840이 한계임
- Nordic의 최신 저가 칩(nRF54L15)은 RAM이 부족하고, 고급 칩(nRF54H)은 가격이 비쌈
- Core Time 2의 컬러 디스플레이 구동을 위한 특수 인터페이스도 필요함
SiFli 칩의 발견과 선정
-
여러 후보(Apollo, BES, Dialog 등)를 검토했으나, 오픈 소스 SDK 부재 등으로 만족하지 못함
-
BES 등 일부 칩은 NDA, 예제 코드 미공개 등으로 개발 환경이 부적합했음
-
우연히 SiFli CEO의 메일을 받고 소통한 후, 오픈 소스 생태계에 적극적임을 확인함
-
SiFli 칩은 이미 수천만 개 스마트워치(브랜드: Redmi, Oppo, Noise 등)에 적용되고 있음
- 최소형 모델(SF32LB52x)은 512K 이상의 SRAM, 16M PSRAM, 전용 MIP 디스플레이 제어기 탑재
- 낮은 소비 전력(BLE 연결시 ~50uA), 가격은 2달러 미만
- 1~2MB SRAM 추가 옵션 제공
- Github에 오픈 소스 SDK 제공, PebbleOS 포팅 지원 약속
-
결과적으로 Core Time 2 칩은 SF32LB52J(1.8V 버전) 으로 선정함
결론 및 이후 방향
- Core Time 2는 SiFli SF32LB52J 칩을 사용해 개발 예정임
- 다음 글에서는 디스플레이 선정 과정에 대해 다룰 예정임
참고 링크
Hacker News 의견
- PebbleOS만이 이 영역의 유일한 플레이어가 아닌 점을 강조함, Espruino라는 마이크로컨트롤러용 작은 Javascript 구현체도 소개함, bangle.js와 Fallout Pip boy 등에서 사용됨, 실시간으로 장치를 해킹하기 쉬움, Espruino 관련해서는 Github discussion 링크도 같이 공유함
- bangle.js를 처음 들었으며, 이미 알고 있는 언어로 마음껏 만질 수 있다는 점이 마음에 듦, 1세대 버전을 사고 싶었으나 현재는 판매하지 않는 점이 아쉬움
- 주목도 낮은 경쟁자들의 훌륭한 작업도 언급해줘서 고마움, Pebble도 훌륭하지만 그들도 관심 받을 자격 있음, 그리고 Amazon Fallout 쇼가 꽤 재미있으니 볼 기회 있으면 추천함
- 참고로 PineTime도 있음
- "SDK가 오픈 소스"라는 말에 주목함, BLE MCU에 오픈 소스 코드 SDK가 함께 있다는 말에 관심이 생겼음, 그러나 실제로는 BLE 코드는 바이너리 블롭 형태, 오픈 소스로 설명했다면 전체 소스코드를 읽을 수 있어야 한다고 생각함
- BLE 라디오 기기 펌웨어는 항상 IP와 규제상의 이유 때문에 바이너리 블롭 형태로 제공됨
- 이 스마트워치는 오늘날 기준으로 그리 스마트하지 않음, 내가 현재 사용하는 스마트워치에 있는 NFC 결제, 듀얼 밴드 GPS, 4G LTE 연결 같은 편의 기능이 상당히 그리울 것, Pebble(및 repebble)은 멀티 주간 배터리 수명과 바꿔치기함, 그러나 갤럭시 워치의 이틀에 한 번 충전하는 불편함이 모든 이 강력한 기능을 포기할 만큼 크지 않음
- 반대로, 나는 그 모든 기능에 관심이 없고 긴 배터리 수명이 중요함, 다양한 기기가 다양한 사용자를 대상으로 존재하는 건 좋은 일, 이 스마트워치가 맞지 않는다고 해서 “스마트하지 않다”는 건 아니고 그저 사용자에 따라 맞지 않을 뿐
- Garmin은 이미 대부분의 이런 기능과 멀티 주간 배터리 수명을 제공함, 4G만 아직 없을 뿐이며 내년쯤 기기에는 탑재된다는 소식도 들었음
- 나 역시 GPS가 없으면 아쉽지만, Pebble이 주던 만족감을 채워주는 기기를 아직 못 찾았음, Garmin은 다른 부분에서 타협이 생김(배터리, 위젯, 달력, 디스플레이 가독성 등), 모든 것은 트레이드오프
- 나에게는 그 모든 기능이 불필요, 알림 받고 간단한 심박수 측정만 되는, 약간 커스터마이즈 가능한 시계면 만족, 일주일에 한 번 이상 충전해야 한다면 착용할 생각이 없음
- 배터리 수명 하나만 봐도 상당히 뛰어남
- 해당 칩에 대한 더 많은 정보를 cnx-software 기사 링크로 공유함
- 주 칩과 BLE용 칩을 따로 두지 않고 단일 칩 디자인을 선택한 점이 흥미로움, 고성능 MCU는 보통 RF가 없어서 2칩 설계가 종종 더 적합한 경우도 있음
- 최신 고급형 MCU에서도 NRF나 ESP32처럼 블루투스와 와이파이 모두 함께 쓸 수 있는 칩들이 있음, 요즘 같아서는 개인적으로는 ESP32를 선호함, 지속적인 개선과 좋은 커뮤니티 지원이 매력, 나 역시 micropython 기반 스마트워치 플랫폼을 개발 중
- SiFli 칩의 Cortex-M33 코어는 기존 Pebble에서 사용하던 M4 코어보다 훨씬 빠름, 더 빠른 MCU까지는 필요하지 않음, 오히려 배터리 수명이 더 중요한데 이번에 블루투스가 내장된 MCU 사용으로 약 1주에서 약 1개월로 수명 확장이 큰 업그레이드
- 그냥 시계라면 굳이 UNIX 컴퓨터까지 필요하지 않음, 시간 표시, 심박 측정, AWS와의 통신 등은 간단한 MCU로 충분
- 칩 수가 늘어나면 프로젝트가 복잡해짐, 각 칩마다 패시브, 오실레이터가 필요, 칩끼리 통신 조정, 펌웨어 업데이트, 디버깅 방법 등도 고민해야 해서, 그럴 바엔 차라리 배터리 수명을 조금 포기하는 게 나을 수도 있음
- 저전력 칩 업계에서 오픈 소스를 지향하는 제품이 드디어 나와서 반가움, rePebble 발표 보자마자 바로 등록했었음, 그런데 사실 나는 스마트워치가 아니라 진동 알림만 있는 “멍청한” 시계를 원했다는 걸 나중에야 알게 됐음, 이런 수요는 소수이지만 아주 관심 있는 사람들이 있는 틈새 영역, 지난 2년간 Casio F105를 착용하다 보니 이보다 크거나 무겁거나 두꺼운 건 못 참겠음, 블루투스 기능만 있으면 주 1회 충전도 감수할 의향, 그래서 요즘은 아이폰의 모든 알림을 받을 수 있는 아주 작은 블루투스 칩과 진동 모터, 소형 리튬 배터리를 시계 스트랩 사이에 붙여두려고 계획 중, Mi Band 1을 처음 썼을 때를 아직도 기억함, 디스플레이도 없이 RGB LED 3개로 앱별로 알림 색이 달랐음, 바로 어떤 메시지가 왔는지 손쉽게 알 수 있었음
- Citizen에서 만든 W770이라는 제품을 언급함, 최근에 중고로 200달러 미만에 구입했는데 크로노그래프, BLE, 알람, 진동 모터가 조합된 꽤 괜찮은 시계, 디스플레이 대신 시곗바늘로 대부분의 정보를 표시해서 조작법을 숙지하려면 설명서를 꼭 읽어야 함, 슈퍼커패시터 기반의 태양광 충전으로 완전히 어두운 곳에서도 몇 달씩 배터리 걱정 없음, 슈퍼커패시터는 15~20년 정도 쓰면 교체 가능한 부품, 아무것도 요구하지 않고 그냥 본연의 역할만 꾸준히 수행함, Citizen에서 BLE 기능이 있는 다른 모델도 있을 수 있음, 누군가 알림/블루투스 프로토콜을 리버스엔지니어링해서 오픈소스 앱을 만들어주면 해커들에게 재미있는 가능성
- 여전히 OG Pebble을 쓰고 있고, 다시 돌아온다니 기대되지만 업그레이드 계획은 없음, 진동 알람과 알림 기능만 있으면 충분, 단 꼭 밝은 곳에서도 잘 보이고 노안에도 친화적인 디스플레이가 필요, OG Pebble의 eInk 디스플레이가 그 역할을 충분히 함, 스마트폰을 꺼내지 않아도 문자 확인 가능, 중고로 30달러, 새 배터리도 15달러면 구할 수 있어 가성비가 좋음, Rebble.io 커뮤니티도 충분히 잘 돌아가고 있음
- 나 역시 “스마트” 시곗줄이나 버클을 빈티지 세이코 시계에 달 수 있기를 바람, 아주 특정한 상황에만 진동 알림만 오면 충분, 모든 기능이나 디스플레이는 오히려 방해됨
- Apple Watch의 UX가 불편함(1cm 손가락으로 2cm 화면 터치...), 지나치게 많은 걸 하려는 점도 마음에 안 듦, Pebble은 전화나 문자 알림만 받아도 충분해서 내 폰에서 멀리 떨어질 수 있음, Pebble은 아주 가벼움, 특정 워치 페이스를 올리면 집에 돌아온 듯한 느낌
- 나도 그저 “멍청한” 시계에 진동 알림 기능만 원함, 대다수 알림은 거의 시간에 쫓기는 게 아니고 불필요하게 집중력을 뺏을 뿐, 결국 모든 알림을 끄고 몇 시간에 한 번만 직접 폰을 확인하게 됨, 오히려 정말 필요한 건 알람을 진동으로 알려주는 기능, “버스 시간 임박” 또는 “휴식 시간” 이런 용도로만 충분, 불필요한 센서는 필요 없음
- Withings ScanWatch도 이런 용도에 잘 맞는 제품, 배터리 수명이 거의 한 달
- 시계가 아닌 피트니스 트래커를 찾는 내 희망도 상당히 드문 수요, 반지는 싫어하고 팔찌 형태나 이상적으로는 발목 밴드였으면 좋겠음, 다만 심박 측정이나 추가 데이터 수집이 어려울 듯
- Mi Band 같은 기기들이 그 틈새를 잘 채워줌, 작고 가벼워서 거슬리지도 않으면서 디스플레이와 괜찮은 배터리 수명을 제공함
- 저가 중국 Freqchip SOC를 해킹하기 시작함, Ali에서 이 칩으로 만든 스마트워치를 3유로에 구할 수 있음
- 해당 칩이 들어간 시계 제품 링크를 요청함, 검색 몇 번 해도 찾지 못했다는 언급
- 일부 칩이 3천 개 MOQ에 2.6위안($0.36)짜리 Arm Cortex m3와 BLE, sig-mesh 지원까지 되어 놀라움, SDK 사용성에 대해 궁금증을 가짐
- PebbleOS로 구동되는 어느 정도 오픈 소스 하드웨어를 보게 되어 반가움, 2025년에는 좌측정렬 블로그 포맷이 그만 사라졌으면 하는 바람, 와이드 스크린 보급으로 굳이 읽기 어렵게 만드는 점이 아쉬움
- “가장 흥미롭고 어려운 제약조건은 소프트웨어 호환성”이라는 점에 대해, 오히려 이 부분이 리스트 제일 마지막에 위치해야 할 만큼 해결이 쉬운 일이라고 생각함
- 이 제품에 한해 소프트웨어 호환성은 두 가지 큰 이유로 매우 중요, 첫째, 현재 팀 규모가 옛 Pebble 시절에 비해 매우 작아 소프트웨어 작업을 줄이는 게 최우선, 둘째, 모든 앱과 워치페이스가 ARM 바이너리로 배포돼 있으므로 MCU 아키텍처가 다르면 이전 호환성이 사라짐, ESP32도 여기에 해당됨
- 모든 게 프로프라이어터리라면 많은 교착에 부딪힐 수 있음, 표준 PC 하드웨어와는 많이 다름
- 이 글을 아주 흥미롭게 읽었음, nimBLE은 훌륭한 블루투스 스택이고 Core Devices 향후 발전 가능성을 여는 점이 기대됨