Skip to content

[How To] RetroWatch 제작 방법

Young-Bae Suh edited this page Jan 13, 2014 · 5 revisions

서문

RetroWatch 는 오픈 HW, SW 플랫폼인 아두이노와 안드로이드를 이용해서 스마트 워치를 제작할 수 있도록 지원하는 오픈소스 프로젝트입니다. 이 문서에서는 스마트 워치를 제작하기 위해 필요한 부품과 설계도, 아두이노 소스와 안드로이드 소스의 설치 및 사용법을 단계별로 설명합니다.


구조

RetroWatch는 취미 개발자, 아티스트, 디자이너와 같은 비 전공자도 쉽게 사용할 수 있는 오픈 하드웨어 플랫폼인 아두이노 보드와 안드로이드 앱을 이용한 비교적 심플한 시스템입니다. 전체적인 구조는 다음과 같습니다.

Structure overview

손목에 올릴 매우 작은 컴퓨터를 만든다고 생각하시면 됩니다. 아두이노 보드가 메인보드 및 저장장치 역할을 하고 유일한 입력 장치인 버튼 하나, 통신 모듈인 블루투스와 전원용 배터리를 조합합니다.

안드로이드에서는 Notification 과 다양한 시스템 정보, RSS 정보를 수집하고 편집할 수 있는 앱을 올릴겁니다. 아두이노 보드는 극히 제한적인 자원만 운용할 수 있으므로 컨텐츠 처리는 모두 안드로이드 앱에서 합니다.


준비물

손목에 올릴려면 운용 가능한 최소 사이즈의 부품들로 구비해야 합니다. 다양한 조합이 있을 수 있겠지만 Retro Watch v1.x 에서는 범용적으로 많이 사용되고 비교적 저렴한 부품들로 선택했습니다. 아래 구성품들을 다른 부품들로 대체해도 상관 없으며 아두이노 호환 보드를 사용하기만 한다면 소스 코드도 상당 부분 그대로 사용하실 수 있습니다. 다만 부품을 연결한 핀 번호 등은 직접 수정하셔야겠죠.

시계 HW 준비물

아두이노 보드

arduino pro mini

아두이노 보드도 종류가 많지만 그 중 가장 작은 사이즈인 Pro mini 버전을 사용했습니다. 아두이노 Pro mini 는 국민 보드인 UNO R3 의 다이어트 형 입니다. 가격과 사이즈 절감을 위해 USB 칩이 빠져있고, 동작전압에 따라 3.3v/5v 버전 두 종류가 있습니다. Size: 33mm x 18 mm x 6mm

FT232-USB-UART-Board-Type-A-2USB

변화 칩이 없으므로 PC 연결 후 소스 업로드를 위해서는 별도의 변환 모듈이 필요합니다. FTDI 혹은 USB to UART(Serial) 변환 모듈이라 부르는데 이 모듈을 같이 준비해야 합니다. 자세한 사용법은 링크를 참조하세요.

[USB to UART 모듈 사용법]

그리고 3.3v/5v 버전 중 3.3v 버전을 사용했습니다. 보드와 연결될 블루투스, 디스플레이 모듈이 모두 3.3v를 지원하고 배터리와의 궁합도 좋기 때문입니다. 3.3v 는 8MHz로 동작하고 5v 버전은 16MHz 로 동작하지만 8MHz 로도 우리가 원하는 성능은 내줍니다.

결론은 Arduino Pro Mini 3.3v + USB to UART 모듈을 준비한다.

아두이노 메인 칩인 ATmega328 의 경우 RAM을 2KByte 탑재하고 있지만 ATmega128 의 경우 RAM 1KByte 입니다. RAM 이 워낙 제한적이라 ATmega128 에서는 돌아가질 않습니다. 대부분 판매중인 보드는 ATmega328 을 쓰던데 그래도 확인하고 구입이 필요합니다.

블루투스

Bluetooth module

블루투스 모듈은 보통 HC-06 블루투스 메인 모듈 또는 여기에 Interface base board 가 달린 것 두 가지로 판매합니다. 인터페이스 보드가 달려 있는 모듈이 리셋버튼, 동작상태 LED, 3.3v ~ 5v 지원 등 일반적으로 사용하기에 더 편리합니다만 사이즈가 크고, 우리에게 불필요한 LED가 전류를 잡아 먹고, 약간 더 비쌉니다. 그래서 인터페이스 보드 없이 HC-06 모듈만 사용할겁니다. size: 28mm x 15 mm x 2.35mm (35.7mm x 15.2mm with base board)

Display

아마도 가장 핵심이 되는 모듈은 디스플레이가 아닐까 합니다. 얼마나 작고 저전력의 디스플레이를 구하느냐가 스마트 워치 다워지기 위한 가장 큰 요소입니다. 상당한 고민을 했고, 결국 0.96'' OLED Display를 사용하기로 했습니다. size: 26.7mm x 19.26mm x ??

oled

0.96'', 1.3'' 등 다양한 사이즈가 있고 저전력 OLED 사용, 영문 폰트와 이미지를 출력 가능하며 I2C, SPI 등의 통신 인터페이스를 지원해서 아두이노와의 연결도 간단합니다. 가장 큰 장점이자 단점이 Graphic library 입니다. 도형이나 폰트, 이미지를 그리기 위한 라이브러리를 제공합니다만.. 이게 2KB 에 불과한 RAM을 너무 잡아먹습니다.(그래픽 버퍼 때문인듯) 그래서 최소한의 RAM만 사용하도록 자린고비 코딩을 해야합니다.

Battery

LiPo(리튬 폴리머) 배터리가 전원을 책임집니다. LiPo 배터리 1셀 타입이 3.7v를 출력해줘서 아두이노 프로 미니 보드의 3.3v와 궁합도 좋고 무엇보다 다양한 사이즈와 용량을 지원해줍니다. 저, 중, 고용량 다양하게 구비해서 테스트 해보고 선택하시는게 좋을 듯 합니다. RetroWatch 프로토타입을 제작할 때 501430 - 170mAh, 302030 - 140mAh, 552036 - 350mAh 를 구해서 테스트 했습니다. (모델명 앞 두 자리는 두께, 중간 두 자리는 폭, 뒤 두 자리는 길이: ex> 501430 = 5.0mm x 14mm x 30mm)

LiPo battery

사용자 입력이 없이 폰과 Sync 동작만 주기적으로 할 경우 501430 - 170mAh 배터리가 7시간 반이 지속되었고 302030 - 140mAh 배터리는 7시간에 조금 못미쳤습니다. 가장 이상적인 배터리는 자신이 만들고자 하는 사이즈에 맞는 초박형(3mm 미만), 400mAh 이상인 배터리가 겠지요. 자신의 프로젝트에 꼭 맞는 배터리를 구하는 것은 당신의 몫 입니다.

사이즈가 작더라도 100 mAh 미만은 전원 유지에 어려움이 있을 가능성이 클 것이라 생각되며, 너무 낮을 경우 부팅조차 불가합니다. 배터리는 보호회로가 장착되어 있는 제품을 추천하며 (과방전, 과충전 방지) 끝에 소켓이 부착되어 탈착 할 수 있는 것이 좋습니다. 이 소켓과 결합할 수 있는 female 소켓도 추가로 구하고, 구매할 때 USB 또는 220v 충전기를 함께 구매하는 것이 편하겠죠.

기타

부품들을 연결할 전선들, 인두기 세트, 유일한 입력 장치인 작은 스위치와 여기에 연결할 10K 저항, 배터리 잭 등등을 준비하고 조립과 관련된 매뉴얼 등을 바로 볼 수 있게 해둡니다.

안드로이드 준비물

Notification 정보를 앱에서 가져오기 위해서 사용하는 서비스가 안드로이드 v4.3 부터 지원됩니다. 이 매뉴얼에서 제공하는 RetroWatch 안드로이드 앱도 v4.3 을 기준으로 작성되어 있습니다. 4.3 이하의 버전을 쓰시는 분을 위해 Notification 정보 가져오는 기능만 제거된 앱은 곧 지원 예정입니다. 매뉴얼 하단에 제공된 링크를 통해 직접 소스를 다운로드 받으시고 빌드하셔서 설치하셔도 되고, Google 마켓에서 다운로드 받으셔도 됩니다.


시계 조립

아두이노나 Physical computing에 이미 익숙한 분들 께서는 쉽게 진행 하시겠지만 그렇지 않은 분들 께서는 바로 아두이노 프로 미니 보드를 조립하지 마시고, UNO 보드 처럼 연결과 사용이 쉬운 보드를 이용해서 먼저 테스트해 보는 것이 좋습니다. RetroWatch 에서 사용한 조립 구조는 아래와 같습니다.

assembly

아래 주요 부품들 실사진과 비교해 보세요. 합선 조심하시고 3개의 레이어 사이에 절연 되도록 얇은 테이프 등으로 분리해 주시면 좋겠습니다.

before assembly

아두이노 – 블루투스 연결

일반적인 아두이노와 블루투스 연결 및 테스트 방법은 http://www.hardcopyworld.com/ngine/aduino/index.php/archives/177 참고하세요. 일단 링크의 내용을 참고하셔서 장치 이름이나 비번 등을 재설정 하시고 진행하셔도 되고, 기본 장치명과 비번을 그대로 사용해도 됩니다. 링크의 내용은 인터페이스 보드가 결합된 블루투스 모듈인데 연결 방법은 거의 유사합니다. VCC -> 3.3V, GND -> GND, TX -> D2, RX -> D3.

BT_pin

블루투스 모듈은 다른 전도성 물체에 칩이나 안테나가 닿으면 오동작한다는 보고가 있으니 주의

아두이노 – OLED display 연결

RetroWatch 에서 사용한 OLED display 는 I2C 통신을 사용해서 아두이노 보드와 통신합니다. 아래는 일반적인 I2C 인터페이스 연결 방법으로 이 순서대로 연결하면 됩니다.

OLED Arduino Pro mini GND GND VCC VCC SDA A4 (아날로그 4번핀) SCL A5 (아날로그 5번핀)

만약 구입한 디스플레이가 SPI 통신 인터페이스를 가진 경우는 아래 링크를 참고하세요. 다만 이 경우 코드상에 약간의 수정이 필요합니다. (디스플레이 인스턴스 초기화 부분)

OLED SPI Interface

아두이노 – 버튼 연결

스마트 워치에 어울릴만한 작은 버튼과 10k옴 저항을 아래와 같이 연결해 줍니다. 원하는 디지털 핀을 선택해서 연결하고 소스상에서 buttonPin 으로 정의된 부분에 연결한 핀 번호를 수정해 줍니다. 여기서는 디지털 5번 핀을 사용 했습니다. 버튼 컨트롤에 대한 내용은 구글에서 스위치 콘트롤 예제를 찾아보시기 바랍니다.

circuit_button

아두이노 – Battery 연결

배터리는 간단히 (+) -> RAW, (-) -> GND로 연결하면 됩니다. LiPo 충전지를 사용할 예정이니까 아두이노 보드에서 미리 두 가닥의 선을 빼서 female 소켓을 달아둡니다.

아두이노 Pro mini 보드에 외부 배터리와 같은 전원 입력을 사용할 경우 (+) 라인을 RAW 핀에 넣어줘야 합니다. 그렇지 않을 경우 보드에 손상을 초래할 수도 있습니다.

아두이노 – USB to UART 모듈 연결

USB 시리얼 통신으로 소스코드 업로딩을 하기 위해 USB to UART 변환 모듈을 연결합니다. 여기서 상세 내용을 확인하실 수 있습니다. 아래와 같이 연결하면 됩니다. 모듈에 따라 틀릴 수도 있지만 보통 RX-TX 를 엇갈리게 연결합니다.

USB to UART 모듈 아두이노 (Pro mini) 3.3V VCC TXD RXD RXD TXD GND GND

연결 확인

최종 배선이 끝난 모습은 아래와 같습니다.

RetroWatch_circuit_all_bb

이제 연결이 제대로 됐는지 확인이 필요합니다. 왼쪽 맨 위에 있는 FTDI 모듈(USB to UART) 을 PC에 연결해서 아두이노 보드에 불이 들어오면 일단 부팅은 정상입니다.

아래는 이번 장에서 설명한 조립 과정과 조립을 모두 마친 RetroWatch 의 모습입니다.

assembly_process


시계용 아두이노 소스 컴파일, 업로드

RetroWatch Arduino 소스는 이 페이지의 우측 소스 탭에서 받으실 수 있습니다.

GitHub - RetroWatch project page

Download ZIP 버튼을 눌러 파일을 받고 압축을 풀어줍니다. 아두이노 보드에 올릴 소스는 RetroWatchArduino 폴더에 있습니다. 소스 컴파일 전에 몇 가지 사전작업이 필요합니다.

그래픽 드라이버 설치

OLED 디스플레이 모듈에 이미지와 도형, 폰트 출력을 위해서는 그래픽 라이브러리가 필요합니다. 그래픽 라이브러리를 사용하기 위해서는 Adafruit_SSD1306, Adafruit-GFX-Library 두 개의 라이브러리를 설치해야 합니다. 링크에서 우측 아래에 있는 download ZIP 버튼으로 다운로드 받고 안에 있는 라이브러리 폴더를 (아두이노 설치폴더/libraries/) 아래에 복사해 줍니다. 좀 더 상세한 내용은 여기서 확인하세요.

비트맵 이미지 헤더 파일 복사

비트맵 이미지를 담고 있는 헤더 파일을 불러와서 쓸 수 있도록 복사해 줘야 합니다. RetroWatchArduino 폴더에 있는 bitmap.h 파일을 (아두이노 설치폴더\Arduino\hardware\libraries\RetroWatch) 경로에 넣어줍니다. 폴더가 없으면 만드어주면 됩니다.

소스 수정

아두이노 IDE 개발 툴을 열어서 RetroWatchArduino.ino 파일을 불러옵니다. 시계 HW를 연결할 때 사용했던 핀 번호들을 설정해줍니다. 여기서 사용했던 아두이노 핀 들을 그대로 사용했다면 수정이 필요 없겠지만 다르게 했다면 아래 소스들을 자신의 작업 내용에 맞게 수정해주세요.

SoftwareSerial BTSerial(2, 3); // 자신의 블루투스 TX, RX 핀 번호를 입력 int buttonPin = 5; // 자신의 버튼 핀 번호를 입력

일단 소스코드 컴파일, 업로드 과정까지 완료하기 전까지는 이 외의 소스코드 수정을 하지 않는 것이 좋습니다. HW 혹은 SW 문제가 있는 경우 어디가 문제인지 찾기가 힘들 수 있습니다.

컴파일/업로드

여기까지 설정이 완료됐으면 이제 소스 코드를 컴파일 합니다. 그리고 이 과정에서 문제가 발생한다면 에러 메시지를 보시고 지금까지의 과정을 확인해야 합니다. 에러 메시지를 구글링 해 보시고, 관련된 모듈들에 대해 자세히 설명한 페이지를 확인하시는 것도 좋겠습니다.

컴파일이 완료되면 아두이노 보드에 업로드 합니다. 업로드 할 때 아두이노 IDE 하단을 자세히 보시면 (컴파일...) 메시지가 보이다가 pregress bar 가 잠시 멈추면서 (업로딩...) 으로 바뀝니다. 이 타이밍에 아두이노 프로 미니 보드에 있는 리셋 버튼을 눌러줘야 정상적으로 (업로딩 완료) 메시지가 출력됩니다. 업로딩에 실패하면 아래와 같은 에러 메시지가 출력 될 것입니다.

avrdude: stk500_getsync(): not in sync: resp=0×00

이 메시지가 계속 보이면서 업로딩을 못하는 경우라면 USB to UART 모듈 사용법 여기를 참고하셔서 문제를 해결하세요.

정상적으로 업로딩이 완료되면 OLED 디스플레이에 OLED 제작사인 Adafruit 로고와 RetroWatch Adruino 로고가 표시되어야 합니다. 화면에 아무것도 표시되지 않는다면 Reset 버튼을 눌러 리셋을 한 번 해주세요. 그래도 뜨지 않는다면 OLED 디스플레이와 보드 사이의 배선을 확인해야 합니다. 로고 화면이 지나가고 00:00 으로 시계화면이 표시되면 초기화 과정까지 정상적으로 된겁니다.

boot_test

블루투스를 확인 할 차례입니다. 안드로이드 폰에서 (설정 > 블루투스) 에 진입해서 블루투스를 on 상태로 바꿉니다. 이후 기기를 검색하고 블루투스 모듈이 보여야 합니다. 모듈이 보이지 않는다면 VCC, GND 배선이 잘못됐을 가능성이 큽니다. 전원만 들어가면 TX, RX 핀이 잘못 연결 되더라도 블루투스 모듈은 자체적으로 동작합니다. 블루투스 모듈이 정상적으로 보이면 pairing 단계를 진행할 수 있고 비밀번호 4자리(보통 초기값이 1234) 입력 후 연결됩니다.


안드로이드 앱 설치 & 소스 다운로드

안드로이드 소스 컴파일 및 수정 방법은 이 문서의 범위를 넘어서는 방대한 양이므로 다루지 않겠습니다. GitHub 페이지에서 받은 소스에서 (RetroWatch_Android\RetroWatch) 폴더를 보시면 됩니다.

마켓에도 앱을 등록했으므로 폰에서 직접 설치하셔도 됩니다. (RetroWatch 로 검색)

안드로이드 v4.3 이상 : Google Play download page

안드로이드 v4.0 ~ v4.3 : 준비중

아래 과정에 따라 RetroWatch 동작을 확인하세요.

앱이 설치 되었다면 먼저 블루투스의 전원을 on 시킵니다.(설정 > 블루투스) 이후 페어링 과정까지 완료하세요. 이제 RetroWatch 앱을 실행합니다. 상단 액션바에 등록된 두 번째 메뉴 (알림 액세스) 를 선택해서 RetroWatch 앱에 Notification 접근 권한을 설정해 줍니다. 액션바 첫 번째 메뉴 (연결할 장치 선택) 을 눌러서 페어링 된 아두이노를 선택합니다. 보이지 않는 경우 아두이노의 전원을 확인하고 블루투스 모듈을 확인합니다. 혹은 (장치 스캔) 메뉴로 수동 스캔을 시도합니다. 장치가 연결되면 최하단 장치 연결상태 표시영역에 "연결됨" 이 표시됩니다. 액션바 (...) 메뉴를 눌러 (시계로 데이터 전송) 메뉴를 선택합니다. 이 메뉴는 블루투스를 통해 시계에 표시할 데이터와 시간 정보를 전송합니다. 시계의 블루투스 모듈이 아두이노 보드와 정상적으로 연결 되었다면 시간 정보가 현재 시간으로 바뀌어 표시될 것입니다. 블루투스 연결은 정상이지만 시간이 표시되지 않는다면 TX, RX 배선을 확인하세요. 이제 나만의 스마트 워치를 활용할 모든 준비가 완료 되었습니다!! 아래는 여기까지 작업이 완료된 RetroWatch 의 모습입니다.

parts_work_well


Retro Watch 동작 구조

RetroWatch 안드로이드 앱

RetroWatch 의 자체 성능은 제한적이지만 다양한 데이터를 사용자에게 보여줄 수 있도록 몇 가지 장치를 마련했습니다. 그 중 가장 큰 특징은 사용자가 직접 시계로 보낼 메시지들을 필터링 할 수 있다는 점입니다. 또한 RSS 피드 기능을 추가해서 다양한 분야의 정보를 활용할 수 있도록 했습니다. 4개의 탭을 전환하면서 각각의 기능들을 테스트 해보세요.

메시지 목록 탭 : 메시지는 앱에서 수집하는 각각의 정보들 입니다. 긴급한 메시지 일부를 제외한 모든 메시지는 비활성화 상태로 설정됩니다. 비 활성화 상태에서는 시계로 메시지가 전송되지 않습니다. 필터링을 통해서 활성화 상태로 바꿀 수 있습니다.

필터 설정 탭 : RetroWatch 안드로이드 앱에서는 모든 메시지를 필터를 통해 제어합니다. 이 탭에서 필터를 등록, 수정, 삭제할 수 있습니다. 필터를 통해 메시지의 문자열을 바꿀 수 있고 (시계가 영문만을 지원하므로 한글 -> 영문으로 바꾼다던지..) 메시지가 보이지 않도록 삭제할 수 있으며, 문자열 변경 없이 활성화만 시킬 수도 있습니다.

RSS 탭 : 이 탭에서 RSS 를 등록하고 관리할 수 있습니다. RSS 피드를 통해 시계에 다양한 정보를 표시할 수 있습니다. 예를들어 날씨 정보를 보내주는 RSS를 등록하고 필터를 통해 문자열을 다듬으면 날씨 알림을 시계에서 받아 보실 수 있습니다!! RSS 등록을 편리하게 할 수 있도록 자체 제작한 RSS 검색 웹 페이지에 접속해서 RSS 를 검색하고 바로 앱에 등록 할 수 있습니다.

시계 컨트롤 탭 : 앱과 시계의 Style 과 기능을 제어할 수 있습니다. Gmail 계정을 여기서 적어주면 읽지 않은 메시지 갯수가 메시지 리스트에 등록됩니다. 여기서 Clock style 과 시계 indicator 표시 여부를 변경 할 수 있습니다. (절전을 위해 Display 간격이 조정되어 있으므로 시간차를 두고 적용됩니다.)

arduino_clock_style

RetroWatch 안드로이드 앱에서는 크게 3가지 데이터를 수집합니다.

Notification : 안드로이드 indicator bar에 등록되는 notification 입니다. 앱에서 Notification을 수집하기 위해서는 Notification service를 이용하는데 이게 안드로이드 버전 4.3 이상에서만 지원됩니다. 4.3 미만의 버전의 안드로이드 에서는 RetwoWatch LE 앱을 받으세요. LE 앱에서는 Notification 수집 기능이 빠집니다.

System info : 배터리 상태, RF(LTE, 3G) 연결 상태, WiFi 연결 상태, 충전 상태 등 시스템이 제공하는 정보를 수집합니다. 추가로 Gmail 계정을 설정하면 Gmail 에서 읽지 않은 메일을 카운트 해줍니다.

RSS feed : RSS 제목과 URL을 설정하면 RSS 피드 데이터를 주기적으로 읽어옵니다.

그 외의 특징은 아래와 같습니다.

  • 시계로 메시지를 보낼 때 Emergency message, Normal message 두 가지 종류로 구분해서 보냅니다. 하지만 사용자가 직접 메시지 종류를 지정할 수는 없습니다.
  • Filtering 을 할 때 시계에서 표시할 icon을 지정할 수 있습니다. 65 개의 아이콘을 사용할 수 있습니다.
  • 30분에 한 번씩 메시지를 모두 시계로 업데이트 합니다.
  • 앱을 종료 하더라도 백그라운드로 RetroWatch 서비스는 동작합니다.

RetroWatch 아두이노 시계

RetroWatch 시계는 아래와 같은 Mode를 순환하며 동작합니다.

시작 화면 : 아두이노가 부팅될 때 로고가 표시되는 단계입니다.

시계 화면 : 시간 정보를 표시하는 기본 화면입니다. 안드로이드 앱에서 시계 스타일을 변경 할 수 있습니다. 현재 Analog, Digital, Mixed 3가지 스타일을 지원합니다. 이 화면에서 버튼을 누르는 경우 Emergency message 화면으로 바로 전환됩니다. 메시지 화면에서 10분간 데이터 업데이트가 없는 경우에는 Idle 화면으로 전환됩니다.

Emergency message 화면 : 시계 화면에서 사용자가 버튼을 누르거나 Emergency 메시지를 새로 수신하면 이 화면으로 전환됩니다. 사용자가 버튼을 누르거나 10초간 메시지를 출력하면 다음 메시지로 전환됩니다. 모든 메시지가 출력 되었다면 Normal message 화면으로 전환됩니다.

Normal message 화면 : Emergency message 화면 출력이 끝나거나 사용자가 버튼을 누르면 이 화면으로 전환됩니다. 역시 버튼을 누르거나 5초의 메시지 출력 간격 후에 다음 메시지로 전환됩니다. 마지막 메시지를 출력하면 시계 화면으로 돌아갑니다. Idle 화면 : 시계 화면에서 사용자의 입력이나 메시지 업데이트 없이 10분이 경과하면 Idle 화면으로 전환됩니다. Indicator 와 시:분 만을 표시하면 최소 전력으로 동작하도록 화면 업데이트 간격 등이 조정됩니다. 새로운 메시지를 수신하거나 사용자가 버튼을 누르는 경우 시계 화면으로 돌아갑니다.

arduino_mode

RetroWatch 시계는 아래와 같은 특징이 있습니다.

  • Emergency message는 총 3개를 저장합니다. 3개를 초과할 경우 먼저 받은 메시지부터 지워집니다. RAM 2KByte로 운용하다보니 많은 데이터를 저장할 수는 없습니다.
  • Normal message 는 총 7개를 저장합니다. 마찬가지로 초과할 경우 먼저 받은 메시지부터 지워집니다.
  • 시계 스타일을 자신이 좋아하는 형태로 바꿀 수 있습니다. 물론 소스코드를 수정해서 직접 만들 수도 있습니다.
  • 65개의 아이콘을 탑재하고 있어서 안드로이드 앱에서 다양한 아이콘을 활용한 메시지를 보낼 수 있습니다. 물론 이 아이콘들도 직접 추가할 수 있습니다.
  • 인디케이터 표시 여부를 안드로이드 앱에서 변경 할 수 있습니다.
  • 내장 배터리는 얇은 140mAh 로 일반적인 상황에서 약 7시간을 버텨줍니다. 소스를 절전형으로 가다듬으면 좀 더 오래 버틸 수 있을 것 같습니다.

RetroWatch 최종 스펙:

  • 프로세서 : ATmega328 – 3.3v (8MHz)
  • 32KB Flash (2KB is shared for Bootloader), 2KB RAM, 1KB EEPROM
  • 크기 : Width x Height x Depth = 34mm x 32mm x 12mm
  • 배터리 : LiPo 140mAh (대기시간 7시간, 충전 1-2 시간)
  • 안드로이드 전용 앱과 연결 (v4.3 이상 지원)
  • Notification, 시스템 정보, RSS 피드 지원
  • 메시지 필터링 지원
  • Open source

패키징

RetroWatch Android, Arduino 모듈이 모두 완성되었고 동작에 문제가 없다면 마지막 단계는 패키징일 것입니다. 자신이 원하는대로 패키징 해보세요. 이것은 실패한 예에 가깝네요.

cover_image


마치며

스마트 워치 DIY 를 통해 오픈소스와 오픈 하드웨어의 경이로움을 느끼실 수 있을 것입니다. 공개된 기술로 저렴한 가격의 하드웨어들과 수 많은 사람들의 코드와 노하우가 공유되어 이젠 전문가가 아니더라도 자신의 아이디어를 직접 실현해 낼 수 있는 조건들이 갖춰졌습니다. 지금 도전 하세요!!

RetroWatch Android 는 Apache license, RetroWatch Arduino 는 GPL v3.0 을 따릅니다.

GitHub RetroWatch project page and source code

RetroWatch Arduino v1.0 circuit download

RetroWatch Android Application: v4.3 or over

RetroWatch LE Android Application (v4.0 ~ v4.3, Notification service removed) is not available yet.