1편 : https://www.clien.net/service/board/lecture/16405159?od=T31&po=0&category=0&groupCd=CLIEN
2편 : https://www.clien.net/service/board/lecture/16405208?od=T31&po=0&category=0&groupCd=CLIEN
지난 글에서 회로도까지 그렸습니다. 이번에는 PCB를 그려보겠습니다. 회로도가 PCB로 변환되는 형태인가봅니다. 저도 PCB 디자인을 처음하는거라 잘 모릅니다. :)
회로도에 심볼을 PCB의 그림으로 매칭하는 작업이 필요합니다. PCB에 그리는 그림을 풋프린트(footprint)라고 부릅니다.

상단 아이콘에서 무당 벌레 아이콘 옆에 있는 Assign PCB footprints to schematic symbols 아이콘을 클릭합니다.

뭘 의미하는지는 모르겠는데 아마 심볼에 번호를 어떤 순서로 매기는지 같은 것을 설정하는 것으로 보입니다. 잘 모르니까 그냥 Annotate 버튼을 누르겠습니다.

D0부터 D29까지 다이오드에는 풋프린트가 자동으로 할당되어 있습니다. 딱히 아무것도 안했는데 자동으로 할당되어 있으니 그냥 두겠습니다. 만약 자동 할당이 안되어 있다면 위 그림을 보고 할당해 주세요.

그 다음은 컨트롤러 보드를 꼽을 소켓 자리인데 이름을 봐서는 PinHeader보다는 PinSocket이 맞을 것 같습니다. 보드에 PinHeader가 있고 키보드PCB에 PinSocket이 있어서 꼽히는게 아무래도 맞지 않을까요? 아니면 뭐 어쩔 수 없고요..
문제는 제가 주문한 보드 핀헤더가 몇 mm짜리인지 모른다는 것입니다. 이게 아마 업계 표준이 있고 대체로 많이 쓰는건 뭔지 정해져 있는것 같은데... 제가 잘 몰라요..:)
https://stm32-base.org/boards/STM32F103C8T6-Black-Pill.html
구글 검색해 보니 위 링크에 스팩이 나와 있네요. 그냥 저걸 믿으렵니다. 예전에 사 놓은게 어디 있을텐데 찾아서 직접 재 보고 싶네요.

2.54mm 라고 합니다.

그래서 컨트롤러 보드를 꼽을 17칸 짜리 구멍은 PinSocket 2.54mm Vertical로 풋프린트를 설정합니다.

오른쪽 파트랑 연결용으로 만든 소켓 구멍과 UART용 연결 소켓은 사실 아무거나 해도 상관없습니다. 핀헤더 안들어가면 그냥 와이어 납땜해 버리면 되니까요. 그래도 그냥 2.54mm로 통일해서 PinHeader로 풋프린트를 설정합니다.

왼쪽 사이드 패널에서 MX_Alps_Hybrid를 선택하면 오른쪽 사이드 패널에 스위치 풋프린트 종류가 나옵니다. 1U, 1.5U, 1.75U 같은 이름으로 보아 키보드 각 키캡 크기 별로 풋프린트가 있는 걸로 보입니다. 그러면 스위치마다 적당한 풋프린트를 써야 합니다.
가운데 패널에서 MX1, MX2 … 이렇게 있는 심볼 이름을 하나씩 클릭하면서 회로도를 보면 어떤 심볼을 선택한 것인지 빨간색으로 표시됩니다.

MX10을 선택해 봤습니다. 그랬더니 회로도에서 MX10에 해당하는 스위치 심볼이 빨간색으로 표시되네요. 이런식으로 어떤 스위치인지 확인해가면서 적절한 크기의 풋프린트를 설정합니다.
MX1부터 MX7은 키보드에 ESC와 숫자 1부터6까지입니다. 모두 1U 키캡이죠. 그래서 shift 키를 누르고 MX1부터 MX7을 선택해서 1U 풋프린트를 할당하겠습니다.

1U에 NoLED로 설정된 풋프린트를 MX1부터 MX7에 할당했습니다.
2열에 MX8부터 MX13은 MX8이 TAB키입니다. TAB키는 1.5U이고 나머지 MX9부터 MX13은 Q, W, E, R, T로 1U입니다.

3열은 전통적 키보드에서 CapsLock으로 시작합니다. 저는 저 좋은 자리에 별로 쓰지 않는 CapsLock이 있는 걸 별로 안좋아해서 보통 Fn키로 씁니다. 어차피 펌웨어에서 리맵하면 되는거라 딱히 중요하진 않습니다. 아무튼 3열의 첫번째 키캡은 보통 1.75U입니다. 그리고 나머지는 다 1U입니다.
4열은 Shift키로 시작하고 왼쪽 Shift 키는 보통 2.25U입니다. 그리고 나머지는 다 1U입니다. 여기까지 한 번에 다 작업하고 5열을 생각하겠습니다.

이렇게 되겠죠.
5열은 Ctrl, Win(Meta), Alt, 스페이스 바입니다. Ctrl, Alt 키들은 전통적으로 1.25U입니다. 스페이스 바는 원래 긴 키캡인데, 저는 키보드를 반으로 쪼갤 것이니까 대충 적당히 긴 키캡을 스페이스 바로 쓰면 됩니다. 지금 쓰고 있는 키보드로 왼쪽 스페이스를 눌러보니 대충 C와 V 사이 위치를 엄지로 누르네요. 그래서 크기가 어떻든 그정도만 커버하면 될것 같습니다. 그래서 2.25U 키캡을 스페이스로 쓰기로 하겠습니다.

이렇게 됩니다.

다시 PCB 디자이너 창을 실행합니다. (이 창 이름을 몰라서 제가 마음대로 부르는 겁니다. 정식 명칭은 뭘까요)

그리고 여기서도 무당 벌레 아이콘 옆에 있는 Update PCB from schematic 버튼을 클릭합니다.

뭔지는 모르겠으나 successful이라고 나오니 별 문제 없나봅니다. Update PCB를 누릅니다.

짜잔!
그러면 이렇게 무작위로 풋프린트가 깔려서 나옵니다. 딱 봐도 저 풋프린트 심볼들을 적절한 위치에 재배치를 해야 할 것 같은 느낌이 드네요.
일단 심볼을 선택하기도 어렵습니다. 그래서 이름으로 바로 심볼을 찾습니다. 저는 가장 명확한 J3을 위로 배치하려고 합니다.

Ctrl+F 키로 심볼을 찾습니다. 이름을 쓰고 Find Item 버튼을 누르면 심볼이 선택됩니다. 창을 닫고 단축키 m을 누르고 마우스를 움직이면 심볼을 이동할 수 있습니다. 그래서 J1, J2, J3을 의도한 배치대로 적당히 옮겨 놓습니다.

하얀 선은 각 핀에 연결되는 다른 핀을 알려주는 것입니다. 나중에 저 하얀 줄이 없어지게 wire를 그려줘야 합니다. 그래서 현 시점에서 보이는 저 하얀 선은 신경 쓰지 않아도 됩니다.
이제 노가다 반복작업이 남았습니다. 각 키보드 스위치를 쭉 정렬해야 합니다. 이게 이름 순서로 정렬하고 이런 기능이 있을 것 같은데, 전 KiCAD를 잘 쓸 줄 모르므로 노가다로 하나씩 옮기겠습니다.

와이어링 가이드 라인 (하얀 줄) 때문에 어지럽긴 한데, 스위치 30개를 의도한대로 배치했습니다. 아직 다이오드를 배치하지 않아서 다이오드쪽으로 연결되는 하얀 줄이 많이 보입니다. 그런데 아직은 제가 생각하는 최종 목표가 아닙니다.

저는 이렇게 꺽여 있는 키보드를 만들려고 하거든요. 저 각도는 어느정도가 적당할지 아직 모르겠습니다. 대충 사람 손의 길이 차이 만큼이면 될 것 같거든요. 집에 각도기가 있던가…
대충 25도에서 30도 정도면 될것 같네요. 각도가 커 봐야 별로 안 예쁠것 같으니 한 25도 정도만 꺽어 보겠습니다.

심볼 풋프린트를 선택하고 마우스 우클릭해서 나오는 컨택스트 메뉴에서 Properties를 선택합니다.

Orientation 쪽 박스에 보면 각도로 보이는 숫자가 있고 Other에 25를 넣어 보았습니다.

그랬더니 풋프린트 그림이 돌아갔습니다. 요렇게 하면 되겠군요. 그럼 쭉 해보겠습니다.

중간에 캡춰가 없는데, 25도는 너무 많이 꺽은 것 같아서 20도로 조정했습니다. 요정도로 꺽어서 배치하면 적당히 목적에 맞는 것 같습니다.이제 다이오드를 배치해야 겠네요.

MX4 스위치에 D4 다이오드를 배치한 그림입니다. 다이오드를 표시하는 D4라는 레이블이 거울 반사 모양이죠? 이것은 양면 PCB의 뒷면에 풋프린트를 그린다는 의미입니다.
아마도 뒷면에 납땜을 할 것으로 예상됩니다. 단축키 f를 누르면 앞면과 뒷면을 토글하면서 풋프린트를 배치할 수 있습니다.
스위치를 윗면에 꼽으면 다이오드를 꼽을 자리가 협소해 보여서 뒷면에 다이오드를 꼽는게 나아 보입니다. 예전 기억을 떠 올려보면 다이오드가 충분히 작아서 방해가 안될 것 같기도 한데, 그냥 안전빵으로 뒷면에 다이오드를 꼽겠습니다.

다이오드를 모두 배치했습니다. 다이오드가 모두 제자리에 있으니 이제야 좀 정돈되어 보이고 좋네요.
다음은 컨트롤러 보드를 꼽을 소켓의 간격을 알아야 합니다.
----------
그림 업로드 개수 제한 때문에 여기서 끊고...
다음편에 이어집니다.
그리고 거기엔 키보드 쪽으로 엄청 괴물같은 분들이 많이 계셔서 저같은 사람은 명함도 못 내밉니다.
EASYEDA는 웹버젼도 있고, 리눅스 64bit도 있습니다. 난이도는 하 입니다.
어지간한 알리의 모듈도 그려놓은게 많고, 써본중 제일 쉽긴하네요.
https://easyeda.com/page/download