GP2040-CE와 RP2040을 사용해서 작고 얇은 히트 박스를 만드는 과정을 간단하게 정리해 봤습니다.

준비물

항목내용비고링크
펌웨어GP2040-CE필수Link
컨트롤러 보드RP2040 Zero필수Link
액정SSD1306 0.96 128×64옵션
스위치선호하는 키보드 스위치 17개필수
LEDLED Strip 등옵션
납땜 및 연결 도구인두기 및 테프론 랩핑 와이어 등필수

펌웨어와 컨트롤러 보드는 당연히 필수로 구입하셔야 하고, 부품 연결을 위한 납땜 도구 및 랩핑 와이어도 필수로 준비하셔야 합니다.

작고 얇은 히트박스를 만들어보기로 했으므로 스위치는 Kailh Choc V1 (1350)을 사용했습니다. Start나 Home 버튼 같은 경우 작은 버튼을 많이 사용하시는 것 같았지만, 저는 모두 같은 스위치를 사용했습니다.

펌웨어 GP2040-CE

GP2040-CE는 히트 박스 자작을 위해 가장 핵심적인 소프트웨어입니다. 굉장히 빠른 인풋 레이턴시를 가지고 있어서 누구보다 빠른 입력이 가능 합니다. (하지만 제 손은 ㅜ.ㅜ ).

그리고 Xinput, DirectInput, Nintendo Switch, PS3를 지원하며, 액정도 사용할 수 있고, LED 도 사용할 수 있습니다. 게다가 웹 설정도 지원하기 때문에 설정도 매우 간편하게 바꿀 수 있습니다.

이 모든것을 현재 무료로 공개하고 있기 때문에, 아주 감사하게 생각하고 있습니다.

공식 사이트

공식 소스 페이지

RP2040-Zero

소프트웨어를 준비했으면, 소프트웨어를 구동 시킬 수 있는 하드웨어가 필요합니다. RP2040-Zero는GP2040을 사용할 수 있는 여러개의 컨트롤러가 있지만 가장 작아 보여서 선택 했습니다.

GP2040-CE 에서 사용가능한 컨트롤러

RP2040-Zero 핀배열

작다고 해서 기능이 빠진것은아니고 액정과 LED까지 모두 사용이 가능 합니다. (다만 주문한 LED가 도착하지 않아서 아직 LED는 연결해보지 않았습니다.)

“핀배열”은 납땜해야 하는 핀개수라고 생각하시면 됩니다. 액정과 LED 스트립까지 사용한다면 위에 표시된 모든 라인을 납땜한다고 생각하시면 됩니다.

GP0 , GP1, GP2 이렇게 숫자가 있는데요, 연결해야 하는 위치를 이렇게 따로 적어 두시면 납땜 하실 때 편리합니다.

버튼 레이아웃은 히트박스 레이아웃을 가지고 왔습니다. LB/RB 위치는 이해가 잘 안가네요.. (게임하면서 자주 쓰는 키가 RB이기 때문이라고 합니다. 새로운 정보를 알게 되었네요.)

Button Layous on hit box

3D Printed Case Draft

케이스는 3D 프린터로 만들었고 PCB가 아닌 전선으로 연결할 예정이기 때문에 스위치를 잡아줄 부품도 별도로 만들었습니다.

작은 히트박스이기 때문에 손이 자연스럽게 각도를 이루도록 버튼을 배치 했습니다. UP 버튼은 엄지 손가락으로 자연스럽게 누를 수 있는 위치에 위치 하게 됩니다.

스위치에 직접 납땜을 하는 것 보다는 핫스왑 소켓 사용하는 것을 선호 합니다. 스위치 교체하기도 편하고, 무엇보다 핫스왑 소켓이 스위치 보다 저렴하거든요.

랩핑 와이어로 선을 이어줍니다. 이 작업을 하고 kicad 강좌를 다시 보고 PCB를 제작해서 주문 넣었습니다. ㅜ.ㅜ

아직 LED 스트립은 장착하지 않았지만, 버튼도 잘 작동하고 액정도 잘 작동합니다. 물론, 납땜을 잘못해서 다시 연결하기도 하고 우여 곡절이 많았습니다.

참고로 PCB 버전을 만들 예정이기 때문에 3D 프린트 파일은 PCB 버전에 맞게 추후 공개할 예정입니다.

PCB 버전은 만들고 있지만, 요청하시는 분이 있어 3D 프린트 파일을 올려두었습니다.
M3 인서트 너트와 M3 볼트를 사용해야 합니다.

Hand Wired Hitbox STL Download

펌웨어 넣기 및 액정 설정

여기까지 오시면서 가장 중요한 부분이 빠져있었죠? GP2040-CE를 어떻게 RP2040에 넣는지와, 액정 설정을 하나 더 해야 합니다.
그런데 이 부분을 일부러 빼놓은 분들이 계시더라구요?

펌웨어 다운 받기

GP2040-CE를 공개하고 계신 능력자분들께서 필요한 파일을 모두 다운받을 수 있게 제공하고 계십니다.

GP2040-CE download

저는 RP2040Zero를 사용했기 때문에WavesahreZero.uf2를 다운 받았습니다.

펌웨어 넣기 준비

RP2040 zero를 컴퓨터와 연결한 후, 기판에 있는 스위치 2개를 동시에 누릅니다. 만약, 스위치 2개를 동시에 누르는것이 안된다면 왼쪽 Boot라고 표시된 버튼을 누른채로 다시 연결하시 R02040 Zero가 이동식 디스크로 연결 됩니다.

잠시 후 탐색기에서 RPI-RP2라는 디스크가 보이실 텐데요, 거기에 다운 받아둔 WavesahreZero.uf2 를 복사하면 알아서 재부팅되고, 펌웨어 넣기는 끝납니다. 매우 간단하죠?

액정 설정하기

저는 “128×64 0.96인치 I2C OLED SPI OLED”로 검색하면 구입할 수있는 액정을 구입했습니다. SDA/SDL 핀을 26/27을 사용했기 때문에 맞게 바꿔주고, I2C Block을 웹 설정에 표시된 것처럼 바꿔줬습니다. 만약 다른 액정이라면 값을 바꿔가면서 테스트를 해보시면 되는거겠죠?

그럼 여기는 어떻게 들어가느냐?

S2를 누른 상태로 컴퓨터와 연결하고, 인터넷 브라우저 주소창에 http://192.168.7.1 을 넣으시면 됩니다.

가장 어려운 펌웨어 부분을 능력자분들이 잘 만들어 주셨기 때문에, 나머지는 조립의 영역인 것 같습니다.

여기까지 하셨으면 이제는 게임할 때 즐겁게 사용하시는 것만 남았습니다. 수고하셨습니다.!!!

부품 구매 정보

  • 아래 링크는 제휴 링크로, 아래 링크를 클릭하여 상품을 구매하시면 저에게 소정의 수수료가 지급 될 수 있습니다.
  • 알리익스프레스 특성 상 제품 가격이 매번 달라지기 때문에, 구매하시기 전에 가격을 검색 해보시는 것을 추천드립니다.
  • 제품에 대한 문의는 해당 제품 판매자에게 문의해 주시기 바랍니다.
제품명Link
RP2040 Zeroaliexpress
Kailh choc v1 switchaliexpress
Kailh choc keycapsaliexpress
Kailh hotswap socket for 1350aliexpress