생각하게 된 계기
커스텀 스플릿 키보드를 하나 만들려 생각중이다. 그런데 신경써야 하는 것들과 알아야 하는 것들이 너무 많다.
1. PCB
핸드와이어링을 사용하는 경우 스위치와 와이어를 납땜한다. 따라서 스위치와 하우징을 바꾸기 위해서는 납땜을 풀어줘야 하는데.. 이는 미관상 그닥일 뿐만 아니라 스위치 하나 바꾸자고 와이어링을 다시 하는 것은 아닌 것 같다. 따라서, 가능하다면 PCB 기반에 핫스왑 소켓을 사용하는 편이 좋다.
그럴려면 PCB 기판을 설계할 수 있어야 한다. 그러나 기본 지식 없이 PCB 기판 설계를 위해서는 PCB의 기본에 대해 알고 있어야 한다. 회로는 어떻게 짜는지, 풋프린트(외관)은 어떻게 하는지, 하우징과 체결은 어떤 부분에 할 것인지, 칩 위치는 어디에 배치할 것인지, 내가 짠 회로가 맞는지 검증은 어떻게 할 것인가?
PCB 기판은 또 어떻게 설계하는가. 프로그램을 써야겠지? 일반적으로 KiCAD같은 것을 사용한다.
2. 키보드 레이아웃
PCB 기판의 외관을 바꾸기 위해서는 키보드 레이아웃을 먼저 설정해 주어야 한다.
http://www.keyboard-layout-editor.com/
위 링크의 경우 키보드 레이아웃을 직접 짤 수 있고, 그 결과로 나오는 raw data를 사용할 수 있다. 사실상 이 사이트 하나만 이용하면 편리하다.
3. 하우징
PCB도 만들었고, 키보드 레이아웃도 만들었다면 키보드 외관인 하우징을 신경써 주어야 한다. 하우징은 어떻게 디자인하나? 뭐.. PCB 기판에 바로 아크릴 등을 세워서 층층이 올릴 수도 있고, 아니면 어고노믹 스타일인 경우 직접 CAD로 그린 후 그 위에 올려야 할 것이다. 그러면 CAD도 쓸 줄 알아야 하겠지.
4. 납땜
위 항목들이 모두 준비되었다면 핫스왑 소켓, 다이오드, 칩을 PCB에 납땜해야 한다.
5. QMK 등 펌웨어
납땜까지 끝났다면 칩에 펌웨어를 올려야 한다. 하나하나 매핑해서 올려주는 방식으로, 매우 번거롭고 귀찮다.
그럼 뭘 만들어야 할까?
이 일련의 단계를 반자동화 할 수 있는 툴이 있으면 좋을 것 같다.
- 키보드 레이아웃 작성
- 사이트를 이용하든, 다른 툴을 만들든 할 수 있을 것이다.
- 해당 레이아웃을 바탕으로 PCB 설계
- PCB 설계 - KiCAD 사용보다 레이아웃에서 와이어링만 하면 자동으로 회로가 그려지고, 레이아웃을 기반으로 배선이 자동으로 이루어지면 편하지 않을까? 레이아웃에 올려져 있는 모든 키들에 대해 테스팅 도구를 만들어 사용자는 해당 PCB에 대한 검증만 할 수 있으면 좋을 것 같다.
- 하우징 설계
- CAD를 구현해야 하는데... 이는 사실상 불가능에 가깝고, PCB 기판을 CAD로 출력하는 식으로 만들면 되지 않을까? 그러면 사용자는 형식에 맞춰진 PCB 기판에 얹어질 3D 모델만 만들면 된다.
- 나머지 주문, 납땜은 사용자가 해야겠지?
- 이후 키보드 펌웨어... 설계된 키보드 레이아웃을 바탕으로 키 매핑을 할 수 있으면 좋겠네.
그러면 급해 보이는 것은
- 키보드 레이아웃 raw data를 기반으로 PCB 설계 및 테스팅, CAD 형식에 맞춰 출력해 주는 툴
- 가능하다면 키보드 펌웨어를 자동화해서 키 매핑 반자동화
정도겠네. raw data 기반 PCB 설계 및 테스팅 툴을 만들 수 있으면 좋겠다.