앨범 커버를 보며 음악을 들으려고 PCB, 3D 프린팅, 임베디드 C를 바닥부터 배운 개발자

앨범 커버를 보며 음악을 들으려고 PCB, 3D 프린팅, 임베디드 C를 바닥부터 배운 개발자

메이커음악PCB3D 프린팅HardwareDIY

데이터 소스:HN + web research · HN

앨범 커버를 보며 음악을 들으려고 PCB, 3D 프린팅, 임베디드 C를 바닥부터 배운 개발자

“저는 예전에 샀던 CD와 LP의 앨범 아트를 눈으로 보고 손으로 만지는 것을 진심으로 좋아했습니다. 하지만 결국 디지털 스트리밍의 편리함에 물들어 커버 아트가 없거나 우표만 한 화면에 만족하며 살아왔죠. 최근 들어 그 시절의 감성이 너무나 그리워졌고, 직접 무언가를 해보기로 결심했습니다. 그렇게 스트리밍 음악 플레이어를 만들게 되었습니다.”

— Marton, Pentaton LP 제작자

한 소프트웨어 개발자가 남긴 솔직한 마음입니다. 그는 전자공학 엔지니어도, 하드웨어 덕후도, 산업 디자이너도 아닙니다. 그저 음악을 들을 때 앨범 커버를 실물처럼 보고 싶었던 한 사람이었습니다. 그리고 이 한 마디 문장은 그를 일반적인 소프트웨어 개발자라면 가보지 않을 길로 이끌었습니다. 바로 스스로 하드웨어를 만들기로 결심한 것입니다.

창업을 위해서도, 수익 창출을 위해서도, 논문을 쓰기 위해서도 아니었습니다. 오직 노래를 들을 때 예전 LP 판을 손에 쥐었던 것처럼 앨범 아트를 제대로 보고 싶다는 이유 하나 때문이었습니다.

결국 그는 몇 달에 걸쳐 PCB 설계, 3D 모델링 및 프린팅, 임베디드 리눅스 커널 컴파일, GPU 가속 프로그래밍을 기초부터 익혔습니다. 회로 기판은 4번이나 수정되었고, 케이스는 3D 프린터로 출력을 반복하다 초창기 시도작을 모두 폐기해야 했습니다. 마침내 LP 판 커버처럼 벽에 걸어두는 스트리밍 음악 플레이어 Pentaton LP가 탄생했습니다.

이 이야기는 Hacker News에서 166개의 추천과 35개의 댓글을 받았습니다. 하지만 숫자만으로는 이 프로젝트가 주는 울림을 다 설명할 수 없습니다. 이것은 본질적으로 무언가에 대한 ‘진심’에 관한 이야기입니다.

핵심 갈등: 세상에 존재하지 않는 제품을 원했던 사람

Marton의 요구 사항은 간단해 보였습니다. 벽에 걸 수 있는 음악 스트리밍 플레이어, LP 판 커버 크기인 약 12인치 정사각형 화면, 앨범 아트 표시 기능, AirPlay를 통한 음원 스트리밍 재생. 그 외의 불필요한 기능은 전혀 필요 없었습니다.

하지만 그는 곧 시중에 이런 제품이 존재하지 않는다는 사실을 깨달았습니다. AirPlay를 지원하는 스트리밍 수신기는 제대로 된 디스플레이가 없었고, 화면이 달린 스마트 액자는 음원 스트리밍 프로토콜을 지원하지 않았습니다. 두 기능을 합친 제품은 아무도 만들지 않았습니다. 시장이 너무 작았기 때문입니다. 앨범 커버를 보겠다는 이유만으로 수백 달러를 지불할 소비자는 공장 최소 주문 수량을 채우기에 턱없이 부족했습니다.

결국 Marton은 선택해야 했습니다. 현실을 받아들이고 스마트폰의 우표 크기 커버로 만족하거나, 아니면 직접 만들거나. 그는 후자를 선택했습니다.

학습 곡선 첫 번째 단계: PCB 설계

Marton의 첫 번째 과제는 적절한 하드웨어 플랫폼을 찾는 것이었습니다. 고해상도 디스플레이를 구동할 수 있고 AirPlay 프로토콜을 지원하며 크기가 작고 전력 소비가 적은 컴퓨터가 필요했습니다. 결국 그는 디스플레이포트(eDP) 인터페이스를 갖추어 화면을 직접 구동할 수 있는 단판 컴퓨터인 Radxa CM3 계산 모듈을 선택했습니다.

하지만 Radxa CM3를 사용하려면 전원, USB, 네트워크 인터페이스를 제공하는 **캐리어 보드(기판)**가 필요했습니다. 시중에 판매되는 캐리어 보드는 모두 두꺼워서, LP 커버처럼 벽에 밀착시키려는 그의 기준을 충족하지 못했습니다. 그래서 그는 보드를 직접 설계하기로 결정했습니다. “이전에 이런 일을 해본 적이 없어서 기초 전자공학부터 고속 신호 배선까지 배워야 할 것이 정말 많았습니다.”라고 그는 회상했습니다.

소프트웨어 개발자가 처음부터 PCB 설계를 배우며 고속 차동 신호, 전원 무결성, 전자기 적합성(EMC) 등 임베디드 엔지니어조차 어려워하는 문제들을 해결해 나갔습니다. 하나의 기판에 계산 모듈, 전원 회로, USB-C 포트, 기가비트 이더넷, 오디오 트리거 인터페이스를 담으면서 두께를 최소한으로 유지해야 했습니다.

결과는 어땠을까요? 모든 기능이 정상 작동하기까지 4번의 수정 과정을 거쳐야 했습니다. 매 수정마다 설계, 레이아웃, 시제품 제작, 납땜, 테스트, 오류 발견, 설계 소프트웨어 수정이라는 전 과정을 반복했습니다. 하지만 Marton은 “모든 것이 정상 작동하는 데 4번의 수정이 필요했습니다.”라며담담하게 써 내려갔습니다.

학습 곡선 두 번째 단계: 3D 프린팅과 곡면 모델링

회로 기판을 해결하자 케이스 제작이라는 새로운 도전이 기다리고 있었습니다.

Marton은 매끄러운 표면과 아름다운 곡선을 가진 케이스를 원했습니다. 매개변수 기반 모델링을 위해 FreeCAD를 선택했지만, 이 방식이 매끄러운 곡면 연출과 잘 맞지 않는다는 것을 알게 되었습니다. 그의 해결책 역시 소프트웨어 개발자다운 방식이었습니다. 원하는 곡면 형태를 생성하는 커스텀 FreeCAD 매크로를 직접 작성한 것입니다.

외관 디자인이 완성된 후, 그는 제작을 위해 새 3D 프린터를 구입했습니다. 그리고 곧바로 현실의 벽에 부딪혔습니다. “제조를 위한 설계, 특히 3D 프린팅을 위한 설계에는 많은 경험이 필요합니다.”라고 그는 담담하게 말합니다. 3D 프린팅에 입문한 사람이라면 누구나 경험하는 뒤틀림, 실뜨기 현상, 레이어 분리의 좌절을 그 역시 겪었습니다. 차이점이 있다면 다른 사람들은 작은 장난감을 출력할 때, 그는 벽에 걸어둘 음악 플레이어의 대형 외형을 출력하고 있었다는 점입니다.

그는 벽 두께, 지지대 각도, 열수축 보상 등 설계 규칙을 익히는 데 추가 시간을 투자했습니다. 초기 출력물은 모두 폐기물 형태가 되었지만, 결국 그는 만족스러운 결과물을 얻어냈습니다.

학습 곡선 세 번째 단계: 임베디드 리눅스와 GPU 프로그래밍

하드웨어가 완성된 후 소프트웨어 단계에 접어들었습니다. 소프트웨어 개발자인 그에게 이 부분은 본래 익숙한 영역이어야 했습니다. 하지만 임베디드 리눅스 개발은 단순히 애플리케이션 코드를 작성하는 것과는 완전히 달랐습니다.

그는 매우 가벼운 배포판인 Alpine Linux를 선택했습니다. 단판 컴퓨터에서 이를 구동하려면 부트로더 설정, 디바이스 트리, 커널 컴파일(드라이버 설정 및 GPU 지원 활성화), 디스플레이 백라이트 제어(PWM), 전력 관리(대기 전력 2W 미만 달성), 그리고 이 경량 시스템에서 shairport-sync(AirPlay 오픈소스 구현체)를 구동하는 등 수많은 로우레벨 설정이 필요했습니다. 모든 단계가 수많은 문서 탐색, 커널 패닉 디버깅, 시리얼 포트 부팅 로그와의 씨름을 의미했습니다.

그리고 가장 핵심적인 부분이 찾아왔습니다. 앨범 커버 표시 기능입니다.

“성능이 평범한 단판 컴퓨터에서 400만 화소 이미지 두 장을 초당 60프레임으로 크로스페이드 처리하는 것은 결코 쉬운 일이 아니었습니다.” 17인치 디스플레이의 1920×1920 해상도는 이미지 해상도 변환이나 전환 효과 계산을 제외하고 단순 화면 렌더링에만 약 620 MB/s의 메모리 대역폭을 요구했습니다.

Marton의 해결책은 GPU 가속이었습니다. Alpine Linux 환경에 GPU 드라이버를 설정하고 하드웨어 렌더링을 활용하는 애플리케이션을 작성하여 부드러운 커버 전환 효과를 구현했습니다. 소프트웨어 개발자가 오직 ‘앨범 커버를 보여준다’는 목적 하나를 위해 임베디드 GPU 프로그래밍까지 배운 것입니다.

더 재미있는 점은 AirPlay 프로토콜 자체가 약 500×500 화소의 저해상도 앨범 커버만 전송한다는 사실이었습니다. 그래서 그는 음악 플레이어 클라이언트 내부에 대역 외(out-of-band) 프로토콜 확장을 구현하여, 고해상도 앨범 커버가 별도 채널을 통해 전송되어 표시될 수 있도록 했습니다. 프로토콜 자체를 확장한 셈입니다.

완성품: Pentaton LP

이 모든 과정을 거쳐 Pentaton LP가 탄생했습니다. 핵심 사양:

  • 17인치 IPS LCD 디스플레이, 1920×1920 해상도(1:1 픽셀 매핑)
  • Radxa CM3 계산 모듈 탑재, 자작 캐리어 보드 결합
  • Alpine Linux 구동, shairport-sync를 통해 AirPlay 오디오 수신
  • 대기 전력 2W 미만, 스트리밍 재생 시 약 24W
  • USB-C PD 전원 공급, 12V 트리거 신호로 앰프 자동 온/오프
  • 외장 DAC 지원(제작자는 FiiO KA17을 Pro-Ject Amp Box SE에 연결하여 사용)

기기는 항상 온라인 상태를 유지합니다. 화면이 꺼졌을 때 소비 전력은 2W 미만입니다. 음악 스트리밍이 감지되면 자동으로 절전 모드에서 깨어나 화면을 켜고 12V 신호로 앰프를 작동시킵니다. 전체적인 경험은 마치 벽에 걸린 앨범 커버가 소리를 내는 듯한 느낌을 줍니다.

이 이야기가 읽을 가치가 있는 이유

우리는 원하는 대부분의 물건을 즉시 구매할 수 있는 시대에 살고 있습니다. 소비의 편리함은 우리로 하여금 ‘만드는 행위’ 자체의 가치를 잊게 만듭니다. Marton의 이야기가 울림을 주는 이유는 현대 사회에서 점차 사라져가는 가치, 즉 **‘진심’**을 보여주기 때문입니다.

그가 집착한 것은 기술 그 자체가 아니었습니다. 음악을 틀었을 때 눈앞에 펼쳐지는 앨범 커버 한 장이었습니다. 스트리밍 시대에 대부분의 사람이 재생 버튼만 누르고 눈길조차 주지 않는 그 요소에 대해, 그는 몇 달의 시간을 쏟고 4가지 생소한 분야를 익히며 여러 장의 회로 기판과 재료를 소모할 가치가 있다고 믿었습니다.

Hacker News의 한 댓글은 이 감정을 훌륭하게 표현했습니다:

“옛날에 CD와 LP를 사서 커버를 손에 쥐고 요리조리 살펴보고, 속지와 가사집을 읽던 시절이 떠오릅니다. 스트리밍은 정말 편리하지만, 우리는 그 과정에서 무언가를 잃어버렸습니다.”

Marton은 행동으로 이에 답했습니다. 잃어버린 것을 아무도 만들어주지 않는다면 직접 만들면 됩니다.

이것은 ‘기술이 세상을 어떻게 바꾸는가’에 대한 거창한 이야기가 아닙니다. ‘한 사람이 작은 것에 진심을 다해 스스로를 어떻게 변화시켰는가’에 대한 이야기입니다. 그가 음악 산업의 흐름을 바꾸지 못할 수도 있고, Pentaton LP가 상업적으로 큰 성공을 거두지 못할 수도 있습니다. 하지만 그는 몇 달 동안 기초부터 기술을 배워 자신이 정말 만족하는 기기를 만들어냈습니다. 그 사실 자체만으로도 충분히 아름답습니다.

에필로그

Marton은 현재 킥스타터(Kickstarter) 크라우드 펀딩을 고려하고 있습니다. 관심 있는 독자는 pentaton.app에서 자세한 내용을 확인할 수 있습니다.

이 기기가 양산에 이를지 여부와 상관없이, 필자의 기억 속에는 한 가지 장면이 오랫동안 남아있을 것입니다. 늦은 밤 스탠드 불빛 아래에서, 갓 납땜을 마친 회로 기판에 전원을 연결하고 다섯 번째 설계가 이번에야말로 정상 작동하는지 간절히 바라보는 한 소프트웨어 개발자의 모습입니다. 그는 세상을 바꾸려던 것이 아니었습니다. 그저 음악을 들을 때 그 앨범 커버를 보고 싶었을 뿐입니다.

참고 링크:

  • Pentaton LP 발표 글 (pentaton.app)
  • HN 토론 (item?id=49022355)
  • Radxa CM3 단판 컴퓨터
  • shairport-sync AirPlay 구현체

Pentaton LP PCB Carrier Board Design 사진: Marton이 자작한 Radxa CM3 캐리어 보드 PCB. 정상 작동까지 총 4번의 수정을 거쳤다.

Pentaton LP Back View 사진: Pentaton LP 완성품 후면. USB-C 전원, 기가비트 이더넷, 3.5mm 오디오 트리거 단자가 보인다.

Pentaton LP Enclosure CAD Wireframe 사진: Marton이 FreeCAD로 설계한 케이스 와이어프레임 모델. 매끄러운 곡면 연출을 위해 커스텀 매크로까지 작성했다.