Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AirPods Max Sensor Logger

AirPods Max에서 Apple이 공개한 헤드폰 모션 데이터를 iPhone으로 수집하고, 세션 데이터를 Mac으로 전송하는 프로젝트입니다.

현재 MVP 목표

  1. 실제 AirPods Max 연결 여부와 모션 API 사용 가능 여부 확인
  2. 처리된 헤드폰 모션 데이터 수집
  3. 세션 단위로 안정적으로 저장
  4. iPhone에서 Mac으로 세션 파일 전송
  5. 센서별 지원 범위와 누락 데이터를 명확히 표시

현재 구현 상태

  • 앱이 활성화되면 공식 헤드폰 모션 연결을 진단하고 자동 수집을 시도한다.
  • 화면에는 권한·연결 감시·모션 업데이트·샘플 수신 상태를 각각 표시한다.
  • startDeviceMotionUpdates 호출 성공만으로 수집 중이라 판정하지 않으며, 첫 실제 샘플이 들어온 뒤에만 실시간 수집 중으로 전환한다.
  • callback이 전달되지 않는 경우를 구분하기 위해 deviceMotion polling fallback을 함께 사용하고, 시작 후에도 샘플이 없으면 권한/활성 상태별 진단 메시지를 표시한다.
  • 연결 이벤트가 늦게 도착하면 모션 요청을 다시 동기화한다. handler 방식이 4초 동안 무응답이면 공식 polling-only 방식으로 한 번 전환하며, 로그의 modeconnectedEvent로 두 경로를 구분한다.
  • 수신 중에는 회전 속도, 중력, 사용자 가속도, Euler 자세, quaternion과 최근 시계열 차트를 표시한다.
  • callback으로 받은 전체 샘플은 직렬 파일 writer를 통해 JSONL에 기록하고, UI는 최대 20Hz로 갱신한다.
  • 종료된 세션은 앱 내 목록에 나타나며 공유 시트에서 AirDrop 또는 Files로 Mac에 보낼 수 있다.
  • 실제 AirPods Max 수신, 장시간 누락률, 화면 잠금 동작은 물리 iPhone 검증 전이며 아직 관찰 증거가 없다.
  • 앱 background 연속 수집과 Mac companion 실시간 스트리밍은 지원하지 않는다.

문서

현재 결론

Apple의 공식 Core Motion API인 CMHeadphoneMotionManager로 AirPods Max의 처리된 device-motion 데이터를 받을 수 있습니다. 이 API는 자세(attitude), 회전 속도(rotation rate), 중력(gravity), 사용자 가속도(user acceleration)를 제공합니다.

AirPods Max의 모든 내부 센서 원시 스트림, 착용 감지 원시값, ANC 내부 상태, 펌웨어 내부 telemetrics까지 공개하는 API는 아닙니다. 따라서 제품 문서와 UI에서는 “지원되는 헤드폰 모션 데이터”와 “접근 불가한 내부 센서”를 구분합니다.

물리 기기 무응답 진단

권한이 승인되고 available=true, active=true인데도 샘플이 0이면 다음 순서로 확인한다.

  1. AirPods Max를 착용하고 iPhone을 실제 오디오 출력 대상으로 선택한다.
  2. 음악을 재생한 상태에서 제어 센터의 공간 음향을 머리 추적으로 설정해 시스템 머리 추적이 동작하는지 확인한다.
  3. 앱을 다시 실행하고 헤드폰 연결 이벤트수신됨인지 확인한다.
  4. 로그에서 mode=handler와 뒤이은 mode=polling 모두 active=true인지 확인한다.
  5. 두 방식 모두 샘플이 없으면 iPhone 모델/iOS 버전, AirPods Max 세대/펌웨어 버전을 함께 기록하고 Core Motion 런타임 또는 기기 연결 문제로 분류한다.

About

iOS app for logging and visualizing official AirPods Max headphone motion data

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages