납땜할 때 같은 값 부품을 한 번에 찾기: PCB 파일로 만든 납땜 도우미

수작업 납땜은 보통 릴 단위로 합니다. 1kΩ 릴을 하나 뜯어서 1kΩ 자리를 전부 채우고, 다음 릴로 넘어갑니다. 부품표에는 그 자리가 R6 R8-9 R22-25 R31 R38 R42-45 R51 R58 처럼 적혀 있습니다. 문제는 이 번호들이 보드 어디에 있느냐입니다.

0603 칩저항 열다섯 개가 보드 뒷면 여기저기 흩어져 있고, 실크 글자는 작거나 이미 붙인 부품 밑에 가려 있습니다. 양면 보드면 더 헷갈립니다. 보드를 뒤집어 들면 좌우가 바뀌는데, 아트웍 화면은 윗면 기준이라 머릿속에서 한 번 더 뒤집어야 합니다. 결국 부품 붙이는 시간보다 자리를 찾는 시간이 더 걸립니다.

그래서 보드 파일을 넣으면 같은 값 부품을 보드 그림 위에 한꺼번에 표시해 주는 도구를 만들었습니다.

같은 값 부품을 묶어 보드 그림에 표시한 화면 — 4.7kΩ 묶음이 뒷면에 주황 동그라미로, 이미 붙인 부품은 초록으로 보인다

만든 것

뒷면을 확대한 모습 — 남은 4.7kΩ 은 주황, 붙인 R35·R55·R62 는 초록 점선 동그라미

붙인 부품은 클릭(또는 스페이스)으로 표시하고, 한 묶음을 다 붙였으면 목록의 체크 상자 하나로 묶음 전체를 표시합니다. 붙인 부품은 다른 묶음을 볼 때도 초록으로 남아서 보드 전체 진행 상황이 한눈에 보입니다. 진행 상태는 브라우저에 저장되니 내일 이어서 붙여도 됩니다.

묶음 목록 — 다 붙인 묶음은 ✓, 일부만 붙인 묶음은 –

값은 한 곳에 있지 않았다

처음엔 간단할 줄 알았습니다. PADS .asc 안에 부품마다 Value 속성이 있고, 저항·캐패시터는 98% 정도가 채워져 있었습니다. 표기가 제각각인 건 정규화로 풀었습니다. 같은 1kΩ이 102, 1K, 1K0 으로, 같은 100nF가 104, 0.1uF 로 적혀 있어서, 숫자만 3·4자리면 항상 EIA 코드로 읽는다는 규칙을 정해 하나로 묶었습니다.

그런데 회로도를 같이 넣기로 하면서 이런 말을 들었습니다.

회로의 값이 2D 라벨로 되어 있는 경우도 있으니까 그것도 감안해서 만들어줘

열어 보니 정말 그랬습니다. 확인한 PADS 회로도 10장 모두에 값이 부품 속성이 아니라 부품 옆에 따로 쓴 글자로 들어 있었습니다. LED 색(RED, GREEN), 다이오드 품번(1N4148), 트랜지스터(BSS138), 크리스탈(12MHz), 릴레이 코일 전압(PA1A-5V) 같은 것들입니다.

게다가 이 글자가 속성보다 정확했습니다. CB08 보드의 부품표와 대조해 보면 이렇습니다.

부품파일 속성회로도 글자부품표
Q13Part Number BSS123LT1BSS138BSS138
IC5파트타입 MAX485MAX13487EMAX13487EESA
U3파트타입 KPC18T1TLP291TLP290GB
D22보드 값 SS361N4148LL4148

라이브러리 부품을 가져다 놓고 실제 부품은 바꾸면서, 바뀐 이름은 회로도에 글자로만 적어 둔 겁니다. 그래서 값을 고르는 순서를 회로도 값 → 회로도 글자 → 보드 값 → Part Number → 파트타입 으로 정했고, 출처끼리 값이 다르면 ⚠ 를 붙였습니다.

글자를 어느 부품에 붙일까 — 첫 방식은 틀렸다

글자는 그냥 글자라서, 어느 부품 것인지는 위치로 추측해야 합니다. 처음엔 “글자에서 가장 가까운 부품 원점”으로 붙였는데, 결과가 엉망이었습니다. RED 가 저항에 붙고, 1N4148 이 릴레이에 붙었습니다.

글자 종류로 후보를 좁히는 것까지 넣으니(다이오드 품번은 다이오드에만, 주파수는 크리스탈에만) CB08은 다 맞았는데, 릴레이 보드에서 또 틀렸습니다.

원점 거리로 붙이면 릴레이 사이 글자 두 개가 모두 K3로 가고 K2는 빠진다. 몸체 사각형 간격으로 하나씩 짝지으면 K1~K4에 하나씩 붙는다

릴레이 사이에 PA1A-5V 가 두 개 붙어 있는데, 하나는 위 릴레이 아래쪽, 하나는 아래 릴레이 위쪽 글자입니다. 원점 거리로 재면 둘 다 아래 릴레이(K3)가 가깝습니다. 그래서 거리를 심볼 몸체 사각형과 글자 사각형 사이의 간격으로 바꾸고, 글자 하나는 부품 하나에만 붙도록 보드 전체에서 가까운 짝부터 확정하게 했습니다. 그 뒤로 CB08 글자 38개가 부품표 기준 정답에 모두 붙었고, 릴레이 보드 두 장도 K 번호마다 하나씩 붙었습니다.

몸체 사각형을 구하려면 회로도 심볼의 회전·반전을 알아야 합니다. 이건 짐작하지 않았습니다. 후보 규칙마다 심볼 핀 위치를 계산해서 회로도 배선 끝점과 몇 개 겹치는지 세었고, 10장 약 4,000핀이 전부 맞는 규칙만 남겼습니다. 중간에 LED 몇 개만 계속 어긋났는데, 반전 필드에 X·Y 둘 다 뒤집는 3 이라는 값이 있었기 때문이었습니다.

위치가 맞는지는 파일 밖 기준으로

보드 그림이 틀리면 엉뚱한 자리에 납땜을 하게 됩니다. 그래서 위치는 우리 코드끼리가 아니라 다른 프로그램이 계산해 둔 값과 대조했습니다.

KiCad 양면 보드 — 4.7kΩ 묶음이 윗면 8개, 뒷면 19개로 나뉘어 보인다

써 보면서 고친 것

단면 릴레이 보드 — 릴레이 8개가 테두리로 표시된다

부품표와 대조했더니 나온 것

도구는 파일에 적힌 대로 보여 줍니다. 그래서 거꾸로, 파일과 부품표가 어긋난 곳이 드러났습니다.

D22 에 마우스를 올리면 출처별 값이 보인다 — 회로도 글자 1N4148, 보드 값 SS36

이런 건 도구가 판단할 수 없어서, 출처별 값을 보여 주고 ⚠ 로 표시하는 데서 멈췄습니다.

결과

배운 건 두 가지입니다. 값은 한 곳에 있지 않다 — 보드 속성, 회로도 속성, 회로도 글자, 부품표가 서로 조금씩 다릅니다. 그리고 규칙은 짐작이 아니라 파일 밖 기준과 대조해서 정한다 — 회로도 핀 약 4,000개, 보드 핀 4,466개를 맞춰 보니 짐작했으면 틀렸을 규칙이 둘 나왔습니다.

댓글

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

댓글을 불러오는 중…