팁 & 테크
안녕하세요. 기계식흑설탕이라고 합니다.
직접 만들 수 있는 ADB-USB 컨버터를 소개해드리려 합니다.
바로 아래에 Settle님도 만드셨지만 사실 제가 먼저 만들고 Settle님에게 전수(?)해드렸습니다.
ADB란 애플 데스크탑 버스의 약자로 애플 IIGS에 처음 탑재된 애플의 전용 규격입니다.
단자 자체는 PS/2와 유사하고 S-Video하고 동일합니다만 바로 꽂아서 쓸 수 없는 관계로 컨버터가 필요합니다.
시중에 iMate라는 컨버터가 있긴 하지만 나온지 오래되어 구하기가 어렵습니다.
Settle님이 애플디자인 키보드(M2980)을 입수하셔서 보관중이던걸 낼름 집어와서 검색해보니
GitHub에 Teensy 보드를 이용한 컨버터 소스가 있어 도전하였고 성공했습니다.
기본적으로 PJRC Teensy 2.0를 사용하지만 동일 컨트롤러를 사용하는 아두이노 클론 보드도 사용할 수 있습니다.
저는 아두이노 레오나르도 클론 보드인 DFRobot Beetle을 사용하였습니다. 크기도 작고 저렴합니다. 1.2만원 정도.
필수 준비물-
ADB 키보드
ATmega32u4를 사용하는 USB AVR 보드
1K 저항
(탈착식인 경우)자투리 전선
납땜 도구
리얼머신/가상머신에 설치된 리눅스/유닉스 기반 운영체제(ex. 우분투, OS X...)
옵션-
세척 용구
USB (연장) 케이블
대부분의 내용은 https://github.com/tmk/tmk_keyboard가 원본입니다. 같이 보시면 좀 더 수월합니다.
이 글은 터미널을 만져본적이 없는 평범한 윈도우 사용자 입장에서 쓰여졌습니다....
필요하다면 먼저 키보드를 세척합니다. 전 락스에 담궈버렸습니다.
와이어링-
세가닥을 연결해야 합니다. +5V(VCC), GND, DATA(ADB). POWER는 쓰이지 않으므로 연결하지 않으셔도 됩니다.
사진은 암 커넥터이니 수 커넥터는 방향이 반대임을 유의하세요.
보드에 +,-로 표시된 부분에 각각 VCC와 GND를 연결하시고 DATA는 원하시는 곳에 연결하세요. 비틀 기준 D9을 추천합니다.
그리고 DATA와 VCC 선 사이에 병렬로 1K 저항을 연결해주셔야 합니다. 풀업 저항이라는데 이유와 원리는 잘 모르겠습니다 -_-;
펌웨어 빌드-
위에 리눅스/유닉스라 적었는데 윈도우에서도 cygwin같은 프로그램으로도 가능하지만 번거롭고 어렵습니다. 저는 말이죠...ㅜㅜ
저는 해킨토시로 작업했지만 여전히 어렵더군요.
https://github.com/tmk/tmk_keyboard로 접속하셔서 오른쪽 메뉴의 Download ZIP를 눌러 다운 받으세요.
압축을 푸시고 해당 폴더\converter\adb_usb로 들어가 config.h를 텍스트 에디터로 열어 다음 부분을 수정해주세요.
/* ADB port setting */
#define ADB_PORT PORTB
#define ADB_PIN PINB
#define ADB_DDR DDRB
#define ADB_DATA_BIT 5
D,9 대신 B, 5를 쓴 이유는 아두이노의 경우 보드에 프린팅된 이름이 실제 이름과 다르기 때문입니다. 각 보드의 회로도를 참고하세요.
비틀의 회로도는 http://www.dfrobot.com/image/data/DFR0282/Beetle%20Sch.pdf
저장 하시고 터미널로 다시 해당 폴더로 들어가 make clean과 make를 입력하면 폴더에 hex파일이 생성됩니다.
(에러가 발생하면 구글링하여 해당 에러를 해결하셔야 합니다. 죄송합니다 어떻게 했는지 기억이 나질 않네요)
보드에 이 파일을 업로드하려면 별도의 프로그램이 필요합니다. 윈도우즈에서는 X-Loader, OS X에서는 AVR Tools를 이용하시면 됩니다.
(X-Loader의 경우 파일 수정이 필요합니다. http://russemotto.com/xloader/#comment-12316 참조)
먼저 보드를 부트로더 모드로 진입시켜야 합니다. 보드 마다 방법이 다릅니다. 비틀은 뒷면에 6개의 접점이 모여있습니다. 바깥쪽 2개를 쇼트시켜 주시면 LED가 부드럽게 점멸되며 몇초동안 부트로더 모드가 됩니다. 이 때 hex파일을 업로드하세요.
업로드가 끝나면 키보드가 작동하는지 확인하시면 됩니다.
부록-
이렇게 만들어진 컨버터는 바이오스나 도스등에서도 사용이 가능합니다.
포함된 문서를 읽어보시면 아시겠지만 키 변경, FN의 구현이나 다중 키맵(레이어) 구성이 가능합니다.
https://www.pjrc.com/teensy/hid_listen.html 이 링크의 프로그램을 이용하여 디버깅이 가능합니다.
아래는 제가 작업한 사진입니다.
이 게시물은 수정 중입니다.
궁금하신 점은 댓글을 달아주시면 답변해드리겠습니다.
hasu님과 기여해주신 분들에게 감사의 말씀을 드립니다.
Settle 님 보다 더 구체적인 내용의 투토리얼이네요. 기계치라 어디서부터 손을 대야할 지 무모함이 앞서지만, 그래도 도전해 보고픈
마음이 생깁니다. 비틀이 100키 이상의 키보드도 넉넉히 감당하는 거죠?
좋은 글 잘 보았고 참조하겠구요, 감사합니다^^