마지막 1건과의 전쟁 — 자동화가 제일 어려운 곳은 끝이다

6부에서 4층으로 갈아타고 배치를 압축했다. 지표는 크게 좋아졌다 — DRC 12→5, 미연결 3→1, 우회율 3.07→2.08배. 그런데 그 “마지막 몇 건”이 안 없어졌다.

이 편은 그 마지막 몇 건과 싸운 기록이다. 자동화에서 제일 오래 걸리는 곳은 처음 90%가 아니라 마지막 1건이라는 걸 몸으로 배웠다.

왜 계속 조금씩 남는가 — 도구의 다섯 가지 결함

“남은 거 다 처리해”라는 말을 듣고 도구들을 다시 보니, 전부 같은 병을 앓고 있었다.

#결함실측
1모따기 크기를 한 가지만 시도크기를 6단계로 낮추니 직각 절반 해결
215개 배치 일괄 판정 — 하나 나쁘면 14개 동반 폐기배치 3으로 줄이자 7개→50개 생존
3첫 실패에서 전체 중단(break)건너뛰기로 바꾸니 뒤의 쉬운 건들이 풀림
4탐색 범위 ±12mm 고정돌아가는 길이 밖에 있으면 영영 못 찾음
5비아 후보를 한 점만 시도주변 나선 탐색으로 0.3~0.6mm 옆에서 발견

패턴은 하나다. 탐색 공간을 좁혀놓고 “안 된다”고 결론짓는 것. “모든 후보 무효”라는 로그를 보면 이제 후보가 몇 개였는지부터 의심한다.

판정 기준이 만든 감옥

도구들은 전부 “적용 → 검사 → 나빠지면 되돌리기”였다. 문제는 모든 지표를 같은 무게로 본 것이다.

미로 탐색이 마지막 미연결을 뚫고 미연결 0을 만들었는데, 클리어런스가 3건 늘었다고 그 결과를 내 도구가 취소했다. 한참 뒤에야 알았다.

미연결은 회로가 동작하지 않는 것이고, 0.02mm 간섭은 제조 여유 문제다. 연결을 얻고 간섭은 따로 잡는 게 맞다. 반대로 단락은 미연결보다 나쁘다 — 미연결은 안 움직일 뿐이지만 단락은 회로를 망가뜨린다.

우선순위를 단락 > 미연결 > 클리어런스로 정하고 나서야 “한 걸음 물러서서 두 걸음 나가는” 수가 가능해졌다.

측정이 또 흔들렸다 — 존이 겹치면 DRC는 비결정적

5부에서 “DRC가 보드를 덮어쓴다”를 잡았는데, 이번엔 사본으로 재도 값이 흔들렸다. 같은 파일을 3번 재니 8/7/7.

원인은 겹치는 존이었다. GND 포어 위에 전원 평면을 하나 얹었더니 존 채움이 실행마다 달라졌다. 평면이 없는 보드는 6/6/6으로 완전히 결정적이었다.

이 상태에서는 “고쳤더니 나빠졌다”는 판정 자체가 노이즈다. 좋은 수정을 버리고 나쁜 수정을 채택한다. 대응은 두 가지 —

  1. 판정용 DRC는 3회 재서 최악값을 쓴다
  2. 백업 파일 이름에 측정값을 박는다 (_BEST_e5u1s0.kicad_pcb). “final”, “verified” 같은 이름을 붙였다가, 실제로는 단락 2건짜리였던 파일 위에 작업을 쌓은 적이 있다

전원은 면으로? — 층의 성격을 읽어야 한다

미연결 +5V를 한 방에 풀겠다고 내층에 전원 평면을 깔았다. 양산 보드가 내층을 전원면으로 쓰는 걸 실측으로 확인했으니까.

결과는 참사였다. 단락이 실행마다 0~4건으로 출렁였다.

내가 놓친 것: 그 양산 보드는 내층 배선이 21mm뿐인 순수 평면층이었고, 내 보드는 내층에 배선이 1,755mm 깔린 배선층이었다. 배선이 빽빽한 층에 평면을 얹으니 채움이 배선 사이를 비집다가 불안정해진 것이다.

같은 “4층”이라도 내층이 평면층인 보드와 배선층인 보드는 다른 물건이다. 남의 설계를 인용할 때는 수치만 보지 말고 층의 성격까지 봐야 한다.

평면을 걷어내니 결정성이 돌아왔고, 미연결은 결국 배선으로 풀었다.

비아는 모든 층을 뚫는다 — 같은 실수 네 번

4층에서 제일 많이 밟은 지뢰다. 2층에서는 비아를 놓을 때 앞뒷면만 보면 됐지만, 4층에서는 비아가 내층 배선까지 관통한다.

이걸 알고 스킬 문서에 기록까지 해놓고, 새 도구를 만들 때마다 또 빠뜨렸다.

회차어디서결과
1미연결 지점에 비아 배치In1의 다른 넷 관통 — 단락
2우회용 비아동일
3미로 탐색의 시작·끝 비아 (중간 비아만 검사)단락 2
4벽 절개점의 우회 비아단락 10

교훈은 “기록했으니 됐다”가 아니었다. 비아를 만드는 코드가 여러 벌이면 검사를 빠뜨리는 코드가 반드시 생긴다. 비아 생성을 전층검사가 내장된 헬퍼 하나로 모으는 것이 답이다.

검시 — 실패 상태를 보존하고 실물을 본다

“경로를 깔았는데 미연결이 안 줄어든다”가 세 번 반복됐다. 매번 원인을 추측으로 바꿔가며 고쳤는데(끝점 비아 → 층 인식 → 스티치), 세 번째에 방법을 바꿨다. 실패한 상태를 되돌리지 않고 보존해서, 추가된 구리와 DRC가 지목하는 두 점을 좌표로 대조했다.

10분 만에 다 나왔다.

추측 세 번보다 검시 한 번이 쌌다.

포위전 — 벽을 옮기고 창을 낸다

마지막 1건이 제일 오래 걸렸다. 고아가 된 +5V 조각의 비아가, 다른 넷 배선 두 줄(위·아래) 사이 1.7mm 골짜기에 갇혀 있었다. 0.15mm 격자 미로 탐색이 137노드 만에 포위될 정도로.

오토라우터도 못 푼 자리다. 이유는 간단하다 — 자동 도구는 전부 기존 배선을 불가침으로 두고 빈틈만 찾는다. 빈틈이 없으면 끝이다.

사람은 이럴 때 방해되는 선을 들어서 옆으로 옮긴다. 그걸 트랜잭션으로 만들었다.

  1. 막는 배선(벽)을 임시로 들어낸다
  2. 갇힌 조각을 잇는다
  3. 들어낸 벽을 다른 경로로 재배선한다
  4. 전체 검사 — 하나라도 나빠지면 통째로 원복

벽을 통째(25.6mm) 들어내면 재배선이 안 됐다. 그래서 필요한 폭 2.4mm만 창을 내는 방식으로 바꿨다 — 창의 양끝만 우회로 다시 이으면 되니까. 첫 시도에서 실제로 미연결 0이 찍혔다 (절개점 비아가 단락을 내서 원복됐지만 — 그게 위의 네 번째 반복이다).

이 시점의 스코어보드

항목2층 최종4층 마감전
DRC error124
미연결31
단락00
임의 각도17개5개
우회율 최대3.07배2.08배
측정 재현성결정적 (3회 동일)

미연결 1건은 위의 포위전이 진행 중이다. 도구 결함을 하나씩 걷어낼 때마다 한 건씩 풀렸으니, 이것도 결국 도구 문제다 — 보드 문제가 아니라.

이번 편의 교훈 한 줄씩


▶️ 8부 — 완성: DRC 0, 임의각 0 — 마지막 4건과 0.1mm

🔧 이전 편: 1부 · 2부 · 3부 · 4부 · 5부 · 6부 — 2층으로는 안 되는 거였다

댓글

로그인 없이 이름만 적고 남기실 수 있어요. 남긴 댓글은 바로 게시됩니다.

댓글을 불러오는 중…