TL;DR

  • 오래된 iPod Classic의 헤드폰 출력부에 있는 미문서화 칩 Mikey의 버튼 프로토콜이 밝혀져, Rockbox에 기능이 추가됨.
  • Mikey는 Apple 유선 헤드셋의 마이크에 전원을 공급하고 세 개의 버튼 입력을 처리하는 두 가지 기능만 수행함.
  • 칩은 마이크 바이어스를 처리하며 I2C 버스에 연결돼 헤드셋 버튼 입력을 감시함.
  • 버튼마다 저항 부하가 달라 누를 때마다 선로 전압이 특정 수준으로 낮아지며, 칩은 이를 읽어 버튼 입력을 판별함.
  • 헤드셋과 iPod 사이의 핸드셰이크인 ‘chirp’를 디버거로 분석해 Rockbox에 구현했으며, 일부 iPod은 매우 추운 환경에서만 조건부로 작동함.

Mikey 칩과 버튼 프로토콜

  • 이 글에서 앞으로 iPod Classic으로 부르는 구형 iPod에는 Mikey라는 작고 문서화되지 않은 칩이 헤드폰 출력부에 탑재돼 있음.
  • 칩의 기능은 Apple 유선 헤드셋 마이크에 전원을 공급하고, 헤드셋의 세 버튼 입력을 처리하는 두 가지임.
  • 헤드폰과 iPod이 거의 20년 동안 존재했지만, 지금까지 오픈 소스 커뮤니티에서는 버튼에 사용된 Apple의 프로토콜을 밝혀내지 못했음.
  • Hemant는 16년 전 이 주제를 다룬 보관된 블로그 글 하나를 발견한 뒤 프로토콜을 조사했으며, 현대 기준으로 Mikey는 비교적 단순한 칩임.
  • Mikey는 마이크 바이어스를 처리하는 한편 I2C 버스에 연결돼 헤드셋의 세 버튼 입력을 감시함.
  • 버튼마다 고유한 저항 부하가 있어 버튼을 누르면 선로 전압이 특정 수준으로 낮아지고, 칩은 그 전압을 읽어 입력을 판별함.
  • 더 까다로운 부분은 헤드셋과 iPod 사이의 일종의 핸드셰이크인 ‘chirp’였으며, Hemant가 사용자 정의 Rockbox 펌웨어에 넣은 디버거를 이용해 분석함.

Rockbox 구현

  • chirp를 파악한 뒤 기존 Rockbox 버전에 기능을 구현하고, 향후 공식 빌드에 통합되도록 Rockbox 팀에 업데이트를 제출함.
  • 유선 헤드폰과 세기 전환기의 iPod을 계속 사용하는 이들에게 오래 기다린 기능이 추가된 셈이며, 일부 iPod은 현재까지도 작동하지만 매우 추운 환경에서만 조건부로 작동함.