PC로 제어가능한 닌텐도 스위치 컨트롤러 제작기 - 1. 아두이노에 POKKEN CONTROLLER 펌웨어 설치하기
Posted 2020. 1. 31. 03:13, Filed under: 개발앞선 글에서, PC로 제어가능한 닌텐도 스위치 컨트롤러를 만드는 것을 간략하게 계획하고 부품을 주문했었다.
부품 도착
부품 도착!!! FT232RL USB to UART(Serial) 모듈과 아두이노 우노 R3 호환보드이다.
아두이노에 POKKEN CONTROLLER 펌웨어 설치하기
일단 가장 먼저 아두이노에 POKKEN CONTROLLER 를 역설계한 내용을 바탕으로 한 펌웨어를 설치해주어야 했다. 이를 위한 과정은 Youtube 의 Saravanan AL 가 업로드한 ARDUINO- Upgrading USB FIRMWARE using FLIP 라는 제목의 동영상을 참고하여 진행했다.
1. FLIP 다운로드 및 설치
아래의 링크에서 PC에 FLIP 을 다운로드 받아 설치했다.
https://www.microchip.com/developmenttools/ProductDetails/FLIP
본인의 PC 환경에 맞는 설치파일을 다운로드 받으면 된다. Windows 환경에서 본인 PC에 자바 런타임이 깔려있지 않거나 잘 모른다면 첫 번째 20MB 짜리 파일을, 자바 런타임이 이미 깔려있다면 두번째 5MB 짜리 파일을 다운받아서 설치하면 된다. (마인크래프트 자바 에디션 하는 사람은 다 자바 런타임 깔려있음)
설치 방법은 간단했다. 설치 파일을 실행한 후 Next 만 계속 눌러주다 보니 완료되었다.
2. 아두이노 우노 R3 를 PC에 연결
USB 케이블을 이용해 아두이노를 PC에 연결하니 장치관리자에서 아래와 같이 아두이노가 USB 직렬 장치로 잡힌 것을 볼 수 있었다. (환경에 따라 다르게 잡힐 수도 있다).
3. 아두이노의 DFU 모드 진입
아두이노의 펌웨어 업데이트를 위해서는 DFU 모드에 진입해야하고 방법은 간단했다. USB 연결이 되어있는 상태로 아래 사진처럼 아두이노의 RESET 핀과 GNU 핀을 드라이버 등을 이용해 잠깐 접촉해주면 된다. 아두이노 보드마다 생김새가 조금씩 다를 수는 있지만 저 위치에 가장 왼쪽 두 개의 핀을 접해주면 된다.
약 1~2초가 지나면 장치관리자에서 기존 장치가 사라지면 이 때 드라이버를 떼도 된다. 이후 1분 정도가 더 지나 모든 과정이 완료되니 알 수 없는 장치가 준비되었다는 메시지가 나타났다.
4. 드라이버 설치
장치관리자에서 [알 수 없는 장치를 우클릭] > [드라이버 업데이트] > [컴퓨터에서 드라이버 소프트웨어 검색] > [FLIP 설치 내 usb 폴더를 선택]하여 드라이버를 설치한다. 경로는 C:\Program Files (x86)\Atmel\Flip 3.4.7\usb 또는 C:\Program Files\Atmel\Flip 3.4.7\usb 이다.
경로를 설정한 후 다음 > 장치 소프트웨어 설치를 완료하자 아래와 같이 기존의 알 수 없는 장치가 사라지고 ATmega16U2 라는 이름으로 표시되었다.
5. FILP 실행 및 펌웨어 업데이트
1. 앞에서 설치한 FLIP을 실행하고, 칩셋 모양 버튼을 누른 후 ATmega16U2를 선택했다.
2. File - Load HEX File 에서 POKKEN CONTROLLER 펌웨어 파일에 해당하는 joystick.hex 파일을 선택했다. 이 파일은 다음 경로에서 다운받을 수 있다. https://github.com/ItsDeidara/CommunityController/tree/master/Arduino%20File (참고로 펌웨어 파일은 칩셋에 따라 달리 사용해야하며, 해당 링크에 있는 파일은 2020년 1월 31일 기준으로 동작하는 ATmega16U2 칩셋용 파일이다. 다른 칩셋용 파일은 이곳을 뒤지다 보면 찾을 수 있을 것이다.)
3. Settings - Communication - USB 를 누르면 뜨는 창에서 OPEN 을 눌러준다.
4. 그럼 아래 그림과 같은 창이 나타날텐데, Run 버튼을 누르면 펌웨어 덮어쓰는 것을 시작한다. 정상적으로 되었다면 창 좌측 하단에 Verify PASS 라고 표시될 것이다.
6. USB 재연결 및 POKKEN CONTROLLER 로 장치가 잡히는지 확인
PC와 아두이노 간 USB 연결을 해제했다가 PC에 재연결하여 DFU 모드를 해제했다. 만약 문제가 없다면 POKKEN CONTROLLER 의 드라이버가 설치되었다는 메시지가 나타날 것이다.
장치관리자에서는 아래와 같이 나타났다.
Window 키를 누르면 나오는 검색창에 [USB 게임 컨트롤러 설정] 라고 치면 나오는 제어판 메뉴에서도 확인할 수 있었다.
기존에는 없던 POKKEN CONTROLLER 가 새로 생겼다! 아두이노에 펌웨어 설치가 완료된 것이다!
다음 문서에서는 PC에서의 컨트롤러 제어를 위한 Python 개발 환경을 구축하는 것에 대해 정리하였다.