요즘 스플릿 키보드에 빠져있는데 많은 프로젝트가 오픈소스화 되어있는데, 이것저것 찾다보니 실제로 해볼까 하게 되네요.
PCB를 직접 만들어서 몇개의 납땜만으로 자신만의 키보드 디자인을 만들수도 있고, 펌웨어도 직접 만들수 있다는게 흥미롭더라고요.
프로젝트 중에 3w6가 가장 디자인도 괜찮고 펌웨어도 배울점이 많아서 더 관심이 가네요.
다이오드 없이 만들수 있는 키보드도 많은데 이건 다이오드가 필요한 종입니다.
3w6 v2.1 - 다이오드 필요, choc v1 핫스왑안됨
코드 : https://github.com/weteor/3W6
포럼 : https://www.reddit.com/r/ErgoMechKeyboards/comments/pyvl83/3w6/
거버 : https://cart.jlcpcb.com/quote/gerberviewThree/?qs=2fc6e5a19d694becb90823169ec30546_1_0_4_0_0.html
케이스 : https://github.com/weteor/3W6/tree/main/prod/Rev2/3d%20Print
BOM
- USB C Mid Mount, ATmega32U4-AU 뺀 Assembled PCB x1 : $39(5set)
- ATmega32U4-AU x2 : $1(1set)
- USB C Mid Mount x3 : $2(1set)
- 3d 프린트된 케이스 x1 : $3(1set)
- 트랙볼PIM447 x1 : $19(1set)
- 3x6x2.5mm SMD Micro Switch x2 : $2(20 pcs/10set)
- *** choc v1 purple switch 1u x41 : $20(1set)
- *** chosfox keycap 1u x34 1.5u x2 : $10(1set)
(*qmk 소스코드 유용함, 부품 총합 $57, 트랙볼빼면$38,키캡스위치빼면$8)
제품 디자인이 핫스왑은 안되지만 아직 기판을 수정할 능력이 안되기 때문에 일단은 그대로 사용하는 수밖에 없습니다. 일단 Kicad를 깔고 JLCPCB 데이터를 뽑아낼 수 있는 Fabrication Toolkit을 설치합니다.
그리고 위 프로젝트를 받아서 프로젝트를 열고, pcb 편집 화면을 열고, 도구-외부 플러긴에서 Fabrication Toolkit을 실행하면 bom과 cpl파일을 뽑아냅니다. 그걸 JLCPCB 웹사이트에 올리면 견적을 뽑아줍니다.
PCB 제작은 기판제작(PCB)과 기판조립(PCBA) 과정으로 나뉘는데 위 프로젝트 거버를 올리면 최소수량 5개 올리는데 $15.41 이 나오고, PCBA 이코노미로 $23.34 이 나옵니다. 대신 ATmega 칩셋과 USB 소켓, 키보드 스위치는 직접 땜질 해야합니다. 땜질하기 힘든 작은 저항은 다 해서 나옵니다. 스탠다드 서비스로 하면 전부 해주기는 하는데 가격이 두배 이상 나옵니다.
이렇게 하면 1개 만드는데 $65 정도 소요가 되네요. 기성품보다는 1/3 되는 가격이지만 그래도 작은 가격은 아니네요. 다이오드가 전혀 필요없는 cantor mx같은 프로젝트는 한 $45 정도 나오겠네요. 배울점은 3w6 프로젝트가 더 많지만 일단 cantor mx로 가서 제가 써보고 싶은 kailh choc v2 1353 phantom switch를 구성해 봐야겠네요.
아래는 혹시 관심이 있으신 분들이 있을지 몰라 재료를 구매할 수 있는 링크 남깁니다.
기타링크
아래 페이지에 다른 흥미로운 프로젝트도 많이 있습니다.
기계식키보드 목록 : https://github.com/help-14/mechanical-keyboard
기계식키보드 만드는법 :
인두없이 납땜하기 :
자동으로 디자인하기 :
Rollover, blocking, ghosting and NKRO :
거버파일 리버스엔지니어링 : https://forum.kicad.info/t/reverse-engineering-kicad-project-from-gerber-files/30903
거버파일 리버스엔지니어링 :
PCB디자인 :
USB키보드 신호분석 :
키보드 작동원리 :
키보드 매트릭스 스캐닝 타입 : http://www.openmusiclabs.com/learning/digital/input-matrix-scanning/index.html
RP2040 Pulse Width Modulation : https://github.com/khoih-prog/RP2040_PWM?tab=readme-ov-file#prerequisites
ZMK(ESP32-C3) Kscan :
https://zmk.dev/docs/development/boards-shields-keymaps
https://github.com/zephyrproject-rtos/zephyr/blob/5600ae335b104f6ba088693946ee3e60b63161b9/samples/drivers/kscan/src/main.c
RP2040 Keyscan : https://vanhunteradams.com/Pico/Keypad/Keypad.html
플레이트 케이스 만들기 :
제품링크
아래는 프로젝트에 필요한 제품 링크 목록 입니다. 세부정보 누르시면 나옵니다.
실리콘 받침 5*2mm x 100pcs : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.791.44f974840M2qYq&id=643257331493
리셋스위치 3*4*2mm x 20pcs : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.781.44f974840M2qYq&id=617370940069
Type C 커넥터 : https://detail.tmall.com/item.htm?_u=t2dmg8j26111&id=580366058155&spm=a1z0k.7628869.0.0.663337deFokgga
PJ320A x 10pcs : https://detail.tmall.com/item.htm?spm=a1z0d.6639537/tb.1997196601.772.44f974840M2qYq&id=756599475077
핫스왑 어댑터 x 110pcs : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.762.44f974840M2qYq&id=641818783290
밀맥스 어댑터 : https://item.taobao.com/item.htm?_u=a20fp8hdsd020a&id=610357545435&spm=a1z09.2.0.0.8e542e8dVYLg95
3.5mm TJRS 케이블 : https://detail.tmall.com/item.htm?spm=a1z0d.6639537/tb.1997196601.736.44f974840M2qYq&id=676192726469
스위치고무링 : https://item.taobao.com/item.htm?_u=920fp8hdsdcfb8&id=545017116875&spm=a1z09.2.0.0.2ed52e8dT1FOqE
실리콘쿠션 150*150*3mm or 150*150*5mm: https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.726.44f974840M2qYq&id=524959956007
포론쿠션 123.8*428.5*2.5mm or 123.8*428.5*3.5 : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.708.44f974840M2qYq&id=678433160792
TR쿠션 123.8*428.5*3.5 : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.708.44f974840M2qYq&id=678433160792
EVA쿠션 123.8*428.5*3.5 : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.708.44f974840M2qYq&id=678433160792
LEOBOG 그린옐로 mx스위치 x110 : https://detail.tmall.com/item.htm?spm=a1z0d.6639537/tb.1997196601.145.44f974840M2qYq&id=703677817619
LEOBOG 흑색 mx스위치 x100 : https://detail.tmall.com/item.htm?spm=a1z0d.6639537/tb.1997196601.139.44f974840M2qYq&id=715589406515
카일 1350 choc v1스위치 x70 : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.674.44f974840M2qYq&id=731811763614
카일 1350 choc v1스위치 : https://item.taobao.com/item.htm?spm=a1z0k.7628869.0.0.49e437de0I8GQO&id=773186118499&_u=t2dmg8j26111
카일 1350 choc v1 보라 스위치 : https://detail.tmall.com/item.htm?_u=t2dmg8j26111&id=695590547756&spm=a1z0k.7628869.0.0.663337deFokgga&sku_properties=122216346:21959
카일 1353 choc v2 스위치(Phantom) : https://detail.tmall.com/item.htm?id=734673007674&spm=a1z0k.7628869.0.d4919233.49e437de0I8GQO&_u=t2dmg8j26111
chosfox choc 키캡 x5 : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.666.44f974840M2qYq&id=678927387084
ATMEGA32A-AU Chip only : https://item.taobao.com/item.htm?_u=t2dmg8j26111&id=599930708222&spm=a1z0k.7628869.0.0.49e437de0I8GQO
ProMicro RP2040 16M : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.614.44f974840M2qYq&id=762102743863
Raspberry Pi Pico RP2040 16M Copy : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.622.44f974840M2qYq&id=674979514172
STM32F401CC Copy : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.590.44f974840M2qYq&id=709672815579
XIAO RP2040 Copy : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.550.44f974840M2qYq&id=766274159050
XIAO ESP32C3 Copy : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.534.44f974840M2qYq&id=729993445465
XIAO ESP32C3 2Port Copy : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.542.44f974840M2qYq&id=692312068881
ProMicro Atmega32U4 : https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.606.44f974840M2qYq&id=524959723677
쿠션넣는법
아래는 호평받는 제품들이 쿠션을 넣는 방법입니다.
==상판==
실리콘샌드위치매트(상판과 기판사이) 3~5mm | 직접 잘라서 부분적으로 사용
ixpe샤프트언더패드(스위치바닥구멍, 스위치와 기판사이) 3mm | 잘라져있는 기성품 사용
==PCB기판==
포론베이스코튼(핫스왑파트, 칩 구멍, 기판과 하판사이) 3~5mm | 직접 잘라서 부분적으로 사용
==하판==
그런데 써 놓으신 정보중에서 어쿠스틱 튜닝하는건 MX 스위치에서나 가능할겁니다. 제가 CHOC을 사용하지 않아서 데이터시트를 보지 못했는데 로우프로파일 스위치는 공간이 안나올겁니다. (게이트론 경우 여유 공간이 2mm가 안됩니다.) 또한 CHOC은 키 캡을 선택하기가 참 어려워서 .... (MBK라는 키캡이 괜찮다고 하지만 가격대비 투자 가치가 있나 잘 모르겠네요)
또한 핫스왑 기판은 스위치를 고정하기 위해서 보강판을 필수적으로 만들어야 합니다. 그래서 제작비용이 더 올라가고 디자인이 복잡해지는 것 같습니다.
추가로 CHOC의 경우에 기판 두께가 그대로인지 모르겠군요. 예를 들어 게이트론 KS-33은 1.2mm기판을 써야 하고, 보강판 역시 1.2mm여야 하는 것 같더라구요. 또한 CHOC은 키 사이즈가 애초에 다릅니다. 19.05mm가 아니라 더 작구요.
그래서 CHOC 기판을 무료로 받을 수 있는 기회가 있었는데 빌드를 포기했습니다.
그리고 그냥 한번 만들어봤습니다. 잘 돌아갈지 현재로선 미지수지만... ㅋ 저는 게이트론 KS-33(로우프로파일 v2)을 사용하고 핫스왑 되게 만들어서 일단 페리스 스윕처럼 PCB에 범폰 붙여서 쓰는 쪽을 생각해보고 있습니다. 게이트론 스위치는 누피나 키크론의 키캡을 사용할 수 있기 때문에 비용을 감수할 수 있다면 그래도 퀄리티 있는 키캡도 쓸 수 있고, 카우베리나 알로에 같은 특주축 선택지가 가능한 이점이 있어서 괜찮을지도 모르겠습니다.
어쿠스틱 튜닝 부분은 사실 아직도 잘 모르겠습니다. 봤던거중에 cantor mx 하고 classic이 있는데 classic이 choc v1만 지원하고 mx가 choc v1,v2, mx 다 지원합니다. 두개 배열그림 비교한거 보면 mx가 키간 사이가 넓더라고요. 그리고 classic 는 mbk 밖에 못쓰는데 mbk키캡이 타오바오에 없습니다. 유일하게 파는 키캡이 chosfox CFX키캡이네요. 3d 프린팅할 수 있는 키캡도 있긴 있더라고요.
https://github.com/pseudoku/PseudoMakeMeKeyCapProfiles
https://github.com/namnlos-io/choc_keycaps
핫스왑 보강판이라는게 좌우로 흔들리지 말라고 하는거죠? 저는 그게 탑케이싱 혹은 상판인줄 알았습니다. 그게 역할이 있는거였군요. 그러면 3w6는보강판이 없으니 핫스왑을 사용할수가 없는거군요. 만들때 보강판을 같이 만들거나 해야겠네요.
찾아보니까 다들 보강판도 PCB판 FR-4로 하는군요. 아~ 그래서 플레이팅을 카이캐드로 만들었군요. 몰랐네요.
choc v1, v2, mx는 모두 1.6mm 기본 쓰는것 같아요. 위에 보강판도 1.6mm로 통일되어 있더라고요. 근데 JLCPCB의 3d 프링팅 서비스는 2.0mm가 최소두께라 2.0mm로 해봤는데 그냥 버리게 되었네요. ㅎㅎ
ks-33은 사이즈가 다르군요. 오픈소스 키보드에서 잘 안보이는 이유가 있었네요. 제 첫 기계식 키보드(redragon tl84-1)가 ks-33인데 이번에 오픈소스 키보드 보면서 다들 choc v1만 쓰길래 뭐가 다른지 한번 보려고 주문해봤습니다.
저도 경험하는셈치고 바로 도전했습니다. ㅋㅋ 여러 좋은말씀 감사합니다~
JLCPCB에서 벽 두께 1mm면 출력이 가능하던데 저는 sls로 출력해서 그런지도 모르겠습니다. 0.56mm는 무너진다길래 확인해보니 모따기하면서 0.56이 나오는 구간이 있길래 설계 변경해서 1.2로 맞춰서 보냈습니다. Sls, mjf두개 다 준수하게 왔습니다. 대신 sls도 fdm처럼 패턴이 남더군요 ㅡㅡ
SLS도 좋아보이네요. 저도 나중에 한번 시도해 봐야겠네요.
제가 어제 조립 완료한 매크로패드도 경험치를 쌓으려고 pc보강판을 했는데 가능은 합니다. Step으로 뽑아서 보내주니 만들어 왔는데 보강판 퀄은 좀 그렇더군요. 보강판을 별도로 찍은 사진이 없어서 ㅡㅡ
대신 3d 프린터, pcb, cnc모두 공장이나 공정이 달라서 그런지 배송료가 다 별도입니다. 한꺼번에 merge안된다고 확인도 받았구요.