파이프라인이 뚫렸으니 진짜 보드로 옮겨갈 차례였습니다. 대상은 실제로 만들어 팔고 있는 8채널 릴레이 출력 보드. 부품 60개짜리입니다.

목표는 “비슷하게”가 아니라 1

재설계. 같은 부품, 같은 연결, 같은 크기. 그래야 자동화가 진짜로 되는지 알 수 있습니다.

PADS 원본에서 설계 의도를 뽑아내기

PADS 설계 파일에서 필요한 걸 꺼내야 합니다.

원본꺼낼 것
.asc (설계 ASCII)부품 배치 좌표, 배선, 보드 외형
LOGIC 넷리스트어느 핀이 어느 핀에 붙는가
라이브러리 .d풋프린트(패드 모양·위치)
PL 엑셀부품 값, 정격, 품번

넷리스트는 세 군데에서 뽑아 교차검증했습니다. 한 군데만 믿으면 파싱 오류가 그대로 설계에 들어갑니다. 세 개가 다 같으면 그건 맞다고 봐도 됩니다.

PADS ASCII 좌표 단위 — 여기서 사고가 났다

PADS ASCII 좌표는 정수입니다. 예를 들면 43714500 85875000 같은 값. 이게 무슨 단위인지 파일 어디에도 “이건 몇 나노미터다”라고 안 적혀 있습니다.

파일 헤더에 BASIC 이라고 쓰여 있고, 값의 크기를 보면 나노미터 같았습니다. 그래서 1nm 로 읽었습니다. 부품 피치를 계산해 보니 그럴듯했습니다. 전부 그럴듯했습니다.

  • 부품 60개 좌표 전수 일치
  • 배선 152쌍 전수 일치
  • ERC 0건, DRC 0건
  • 넷리스트 3중 교차검증 통과

그런데 보드가 1.5배 컸습니다.

내부 게이트가 스케일 오류를 못 잡은 이유

내부 검증 게이트는 전부 제가 만든 것이라, “제가 뽑은 값”과 “제가 만든 값”을 비교합니다. 파서가 1.5배로 읽으면, 좌표도 1.5배, 보드 크기도 1.5배, 부품 간격도 1.5배로 사이좋게 일치합니다. 비율이 유지되니까 내부 검증은 전부 통과합니다.

이걸 잡은 건 파일 밖 기준이었습니다. 제조용 CAM 데이터의 파일 이름에 보드 크기가 (51x81) 이라고 적혀 있었습니다. 제 결과는 76×121 이었습니다.

51 × 1.5 = 76.5. 81 × 1.5 = 121.5. 정확히 1.5배.

BASIC 단위는 2/3 나노미터였습니다. 즉 1,500,000 으로 나눠야 mm 입니다.

43714500 / 1,500,000 = 29.143 mm   ← 맞다
43714500 / 1,000,000 = 43.71  mm   ← 내가 하던 것

부품의 표준 피치(2.54mm, 3.5mm, 1.27mm)와 맞춰봤으면 훨씬 빨리 잡혔을 텐데, “내부 검증이 다 통과했으니 맞겠지”에 기대고 있었습니다.

더 나빴던 건 그 다음 — 외부 증거를 예외로 치부했다

숫자를 발견하고 나서 제가 처음 한 말이 이거였습니다.

“그 CAM 은 아마 다른 리비전일 겁니다.”

외부 증거를 예외로 치부한 것입니다. 제 값이 맞다는 전제를 놓기 싫어서. 다행히 다른 보드의 CAM 도 같은 비율로 어긋나 있어서 금방 뒤집혔지만, 저 한마디가 몇 시간을 더 잡아먹을 뻔했습니다.

그래서 규칙을 하나 더 박아 넣었습니다.

외부 증거가 제 값과 다르면, 제 쪽을 먼저 의심합니다.

배율을 고친 뒤 다시 만든 라이브러리와 배치

좌표 배율을 고치고 다시 돌리니 보드 크기가 원본과 맞았습니다. 그런데 이미 그 1.5배 오류를 안고 다음 단계까지 가 있었기 때문에, 라이브러리도 배치도 전부 다시 뽑아야 했습니다. 틀린 걸 늦게 잡으면 그만큼 되돌리는 양이 늘어납니다.

치수를 바로잡은 보드의 상면 — 외형·패드·실크

배율을 고친 뒤의 상면입니다. 바깥 테두리가 보드 외형이고, 아래쪽에 단자대가 줄지어 있습니다. 1.5배로 부풀었을 때는 이 외형이 원본보다 한 뼘 컸는데도 내부 게이트는 전부 통과했습니다 — 부품과 보드가 같은 배율로 함께 틀렸으니까요.

이 경험 이후로 새 보드를 시작할 때 제일 먼저 하는 일이 생겼습니다.

  1. 원본의 제조 CAM 에서 보드 실측 치수를 확인합니다
  2. 부품 몇 개의 핀 피치를 재서 표준값(1.27 / 2.54 / 3.5 / 5.08)과 맞는지 봅니다
  3. 그 다음에 파이프라인을 돌립니다

내부 검증이 전부 통과해도, 파일 밖의 실측 치수와 맞춰보기 전까지는 맞는 보드가 아닙니다.


다음 편은 라이브러리입니다. PADS 라이브러리 1,214개 풋프린트와 857개 심볼을 KiCad 네이티브로 다시 짓는 과정에서, 역슬래시 한 글자 때문에 라이브러리 전체가 안 읽히는 일이 있었습니다. 그리고 3D 모델 위치를 세 번 연속으로 잘못 추측한 이야기도.

▶️ 3부: 라이브러리를 새로 짓고 127부품을 배치하다

🔧 이전 편: 1부 — PCB 아트웍을 자동화하기로 했다

문의