필름 현상기를 직접 만들기로 했다, 설계 초안부터
예전에 JOBO CPP-3를 사려다 그만둔 이야기를 적었다. 신품은 없고 중고는 100만 원 안팎이었다. 그 뒤로도 로터리 현상기 생각이 계속 났다. 그래서 비슷한 기계를 직접 만들어 보기로 했다.
아직 부품은 하나도 사지 않았다. 이번 글은 설계 초안이다. 필름 종류별로 기계가 어떻게 움직여야 하는지 정리하고, 구성도와 프로그램, 화면 초안까지 만들어 봤다.
로터리 현상기가 하는 일
로터리 현상기는 세 가지 일을 한다.
- 약품과 탱크의 온도를 맞춘다. 따뜻한 물을 채운 수조(water bath)에 약품 병과 탱크를 담가 둔다.
- 탱크를 굴린다. 롤러 위에 누운 탱크를 모터가 돌려서 약품이 필름 전체에 고르게 닿게 한다. 이걸 교반(agitation)이라고 한다.
- 단계별 시간을 알려준다. 현상, 표백, 정착 같은 단계를 순서대로 안내한다.
만들려는 건 JOBO CPE-2·CPP-2 같은 방식이다. 약품은 사람이 직접 붓고 비운다. 약품을 펌프로 자동으로 넣고 빼는 JOBO ATL 계열과는 구조가 다르다.
참고한 자료
자료는 두 가지를 봤다. 하나는 JOBO ATL-1000 사용설명서, 다른 하나는 1984년판 JOBO CPP-2 서비스 매뉴얼(수리 설명서)이다. 둘 다 종이를 스캔한 PDF라서 글자 인식(OCR)을 돌려 읽었다.
ATL-1000은 약품 주입 방식이 다르지만, 필름별 온도와 단계별 시간은 약품 쪽 규칙이라 그대로 참고할 수 있었다. 회전 방식과 안전장치는 CPP-2 매뉴얼에서 확인했다.
필름마다 달라지는 것
집에서 현상하는 필름은 크게 세 가지다. 컬러 네거티브(C-41), 컬러 슬라이드(E-6), 흑백(B&W). 아래 표는 ATL-1000에 들어 있는 표준 프로그램 기준이다.
| 항목 | C-41 (컬러 네거티브) | E-6 (컬러 슬라이드) | 흑백 |
|---|---|---|---|
| 수조 온도 | 38.0 °C | 38.0 °C | 24.0 °C 또는 실온 중 높은 쪽 |
| 약품 병 수 | 2개 (현상, 표백정착) | 6개 | 4개 (현상, 정지, 정착, 수세 촉진제) |
| 전체 시간 | 18분 15초 | 32분 30초 | 27분 (현상 5분 기준) |
| 수세에 쓰는 물 | 약 6 L | 약 11 L | 약 10 L |
| 따로 챙길 것 | 안정액(스태빌라이저)은 기계 밖에서 처리 | 리버설 약품은 60 %로 희석, 컬러 현상은 5분 | 현상 전에 물로 5분 적시기(프리웻) |
출처: JOBO ATL-1000 사용설명서 Program #1·#7·#9, Note 1·2·4·5 (인쇄면 53·59·61·67~68쪽). 전체 시간은 단계별 시간을 더한 값이다.
컬러 필름은 예열 방식이 재미있었다. 약품이 36.0 °C보다 차가우면 수조를 41.0 °C까지 올려서 약품을 빨리 데운다. 약품이 36.5 °C가 되면 수조를 38.0 °C로 내린다. 약품이 37.5 °C를 넘으면 현상을 시작한다(ATL-1000 설명서 4.4절). 이 방식을 그대로 가져오기로 했다.
흑백은 반대로 식혀야 할 때가 있다. 여름에 실온이 24 °C를 넘으면 히터만으로는 온도를 맞출 수 없다. CPP-2는 찬물을 넣는 밸브(냉각 솔레노이드 밸브)를 달아 이 문제를 풀었다. 그래서 냉각 밸브는 선택 부품으로 넣었다.
기계 구성도 (P&ID)
P&ID(Piping and Instrumentation Diagram)는 물이 흐르는 길과 센서, 밸브, 모터를 약속된 기호로 그린 그림이다. 기계를 만들기 전에 무엇이 어디에 붙는지 한눈에 보려고 그렸다. 필름 종류마다 약품 병 수와 쓰는 라인이 달라서 세 장으로 나눴다.

그림에 들어간 부품은 이렇다.
- 수조(TK-101): 약품 병과 현상 탱크를 담그는 물통
- 순환 펌프(P-101)와 히터(EH-101): 수조 물을 빨아들여 데운 뒤 다시 뿜어낸다
- 온도 센서 2개: 하나(TE-101)는 데워진 물이 나오는 곳, 하나(TE-102)는 첫 번째 약품 병 안
- 수위 스위치(LSL-101): 물이 모자라면 히터를 끈다
- 모터(M-101)와 롤러: 탱크를 정방향·역방향으로 번갈아 굴린다
- 폐액통 2개: 일반 폐액과 은이 섞인 폐액(정착액, 표백정착액)을 따로 모은다


탱크는 이렇게 굴린다
CPP-2 매뉴얼에 회전 방식이 자세히 나와 있었다. 모터가 한쪽으로 돌다가 방향을 바꿀 때가 되면 전압을 낮춰 거의 멈출 때까지 느려진다. 그다음 방향을 바꾸고 다시 천천히 원래 속도까지 올린다. 탱크가 덜컥거리지 않게 하려는 장치다(CPP-2 서비스 매뉴얼 2.3절).
만들 기계는 스텝 모터(NEMA17)를 쓴다. 가속과 감속을 프로그램으로 조절할 수 있어서 같은 동작을 흉내 낼 수 있다.
아쉽게도 매뉴얼에 나온 속도 숫자는 최저 속도를 맞출 때 쓰는 25 rpm 하나뿐이었다(10.3.1절). 최고 속도와 몇 바퀴마다 방향을 바꾸는지는 적혀 있지 않았다. 이 부분은 직접 돌려 보면서 정해야 한다.
대신 현상이 잘못됐을 때의 대처법은 있었다. C-41에서 릴 가운데 쪽 필름이 덜 현상되면 회전을 빠르게 하고, 얼룩이나 줄무늬가 생기면 느리게 하라고 한다. 탱크가 물에 둥둥 뜨면 줄무늬가 생기니 수조 물 높이를 낮추라는 내용도 여러 번 나온다. 그래서 수위 스위치 위치는 탱크가 뜨지 않는 높이로 잡기로 했다.
프로그램 흐름
제어는 ESP32 보드로 한다. 프로그램 초안은 아래 순서로 움직인다.
- 필름 종류(레시피)를 고른다
- 예열한다. 약품 온도가 맞으면 부저가 울린다
- “약품을 부으세요” 화면에서 기다린다. 약품을 붓고 버튼을 누르면 타이머와 회전이 함께 시작한다
- 단계가 끝나기 10초 전에 부저가 울린다
- 시간이 끝나면 탱크가 멈추고 “약품을 비우세요” 화면이 뜬다. 비우고 버튼을 누르면 다음 단계로 간다
물과 전기를 같이 쓰는 기계라 안전장치를 먼저 넣었다. 펌프가 돌지 않거나 물이 모자라면 히터를 켜지 않는다. 이것도 CPP-2가 쓰던 방식이다(2.1절). 수온이 45 °C를 넘거나, 히터를 켰는데 한참 동안 온도가 오르지 않으면 히터를 끄고 경보를 울린다. 히터 전원에는 소프트웨어와 별도로 기계식 온도 퓨즈도 단다.
코드는 컴파일(프로그램을 보드용으로 변환하는 과정)까지만 통과했다. 실제 보드에서는 아직 돌려 보지 않았다.
화면 초안
화면은 가로 20칸, 세로 4줄짜리 문자 LCD다. 이 종류의 LCD는 한글을 기본으로 표시하지 못해서 영어로 적었다. 다이얼(로터리 엔코더) 하나로 돌려서 고르고 눌러서 확인한다. 길게 누르면 취소다.

계산해 보니 히터가 약했다
처음 생각한 히터는 80 W였다. 물 10 L를 20 °C에서 38 °C로 올리는 데 걸리는 시간을 계산해 봤다. 필요한 열량은 물의 양 × 물의 비열 × 올릴 온도(Q = m·c·ΔT)다.
- 10 kg × 4,186 J/(kg·K) × 18 K = 753,480 J
- 80 W 히터: 753,480 ÷ 80 = 약 9,418초, 약 157분
- 400 W 히터: 약 31분
- 620 W 히터: 약 20분
물이 식는 건 빼고 계산했고, 10 L는 가정한 값이다. 수조 크기가 정해지면 다시 계산해야 한다. 그래도 80 W로는 현상 한 번 하려고 두 시간 넘게 기다려야 한다는 건 분명했다.
아직 정하지 못한 것
- 탱크 회전 속도와 몇 바퀴마다 방향을 바꿀지
- 롤러와 현상 탱크의 지름 (탱크를 정하고 재야 한다)
- 수조 크기와 히터 용량
- 온도 제어 값(PID 게인). 로그를 남기게 해 두었으니 실제로 데워 보며 맞출 생각이다
- 흑백을 24 °C가 아닌 온도로 현상할 때 시간을 얼마나 바꿀지
- 다 쓴 수세 물을 어떻게 처리할지 (지자체 규정 확인)
다음은 수조 크기부터 정해야 한다. 그래야 히터와 전원 용량이 정해진다.