다이오드 모두 실장 완료했습니다.
아.. 정말 쫌스러운 작업입니다. 덕분에 SMD납땜은 뭘 가져다 줘도 할 수 있을거 같은 기분이 팍팍 드는군요.
다이오드가 내장된 스위치(예를들어 MX8000)를 사용한 키보드라면 삽질은 좀 줄어들겠습니다.
대략 시간은 스위치 모두 분리 -> 분해 -> 윤활 -> 재조립 의, 흔히 하는 "스위치 윤활" 정도 걸리는 것 같습니다. 작정하고 주말 하루정도 잡으면 103키 정도는 해치울 수 있을 것 같군요.


오글오글오글오글오글... 개미떼들. 손가락도 같이 오글오글..
이 작업으로 얻어지는 효과는 다음과 같습니다.

위 매트릭스에서 보시듯, A, S, Z, X는 매트릭스 상에 사각형으로 위치하기 때문에, 저들 중 세 개의 키가 입력되면 고스트 현상이 일어나게 됩니다. 따라서 LIMKB를 비롯한 많은 컨트롤러들은 저러한 현상을 막고 있습니다. 즉, 매트릭스 상에 사각형으로 분포하는 네 키가 모두 입력되면, 처음 입력되어 있던 두 개의 키만을 인식하고 나머지 키들은 무시해버리지요.
다이오드를 심어 각 스위치를 독립시키면, 오른쪽 Key test에서 볼 수 있듯 세 개의 키 동시 입력이 가능해집니다. (펌웨어를 고치지 않은 상태입니다) 펌웨어를 고쳐 위에서 설명된 block 알고리즘을 빼 버린다면, 모든 키 조합에서 키 충돌이 일어나지 않는, 흔히 이야기하는 N-key rollover 키보드가 되는 거지요. 다만 인터페이스가 USB라는 원죄 때문에, 6+1 개의 입력밖에 받을 수 없습니다만, 이 정도면 리듬게임을 하지 않는 이상 실 사용에서는 충분하다고 생각합니다.
나중에 여력이 되면 PS/2 버전 LIMKB도 개발해볼.. 지도 모르겠습니다. (시간이 날 지는 모르겠군요)