
iPod Classic'in belgelenmemiş Mikey çipinin tersine mühendisliği
Apple'ın kablolu kulaklıklarındaki kumanda Rockbox altında hiç çalışmamıştı. Bir meraklı kulaklık girişinin arkasındaki belgelenmemiş Mikey çipini inceledi, mod yazmacının 256 değerini taradı ve üç tuşu da çalıştırdı.
Apple'ın kablolu kulaklıklarındaki kumanda, Rockbox çalıştıran iPod Classic'te hiçbir zaman çalışmadı: ortadaki oynat/duraklat düğmesi ve ses tuşu bu oyuncu ailesinin tamamında tepki vermiyor. Projenin ses sürücüsü bunu bir yorumda kabul ediyor, aksesuar algılama ve kumanda tuşu desteğini açık işler olarak listeliyordu. Yedinci nesil bir iPod Classic'te Rockbox kullanan bir meraklı ikisini de kapatmaya karar verdi.
Adı Mikey olan bir çip
Kulaklık girişini, Apple'ın yazılımının Mikey dediği küçük ve özel bir denetleyici yönetiyor. I2C veri yolu 0'da 0x72 adresinde duruyor, 8 yazmaç sunuyor ve iki iş yapıyor: kulaklık mikrofonuna güç vermek ve kumandadaki tuşları çözmek. Rockbox çipin varlığını biliyordu ama onu yalnızca mikrofon ön gerilimini yükseltmek için kullanıyordu. Geri kalanı hiç belgelenmedi: freemyipod topluluğunda Mikey sürücüsü ve yazmaç tablosu yok, Rockbox'ın Gerrit'inde yarım kalmış deneme bulunmuyor.
2010 notları ve yazmaç taraması
Bilinen tek ön çalışma, aynı aksesuar donanımını kullanan iPod shuffle 3G'nin kulaklık kumandası üzerine David Carne'ın 2010 tarihli yazısıydı. Carne'ın ölçümleri, kumandanın seri bir protokol konuştuğu fikrini çürüttü: orta tuş mikrofon hattının düz bir kısa devresi, ses açma ve kısma ise o hattı yaklaşık 2,08 volttan 1,68 ve 1,52 volta düşüren sabit direnç yükleri. Tek akıllı kısım, açılıştan 8,1 ms sonra gelen ultrasonik kimlik cıvıltısı ve oyuncunun verdiği 4,8 ms'lik yanıt.
Bir giriş denetleyicisine hata ayıklayıcı bağlanamayacağı için yazar Rockbox'ın içine kendi ekranını kurdu: ekran 8 yazmacın tamamını 20 ms'de bir okuyor, her değişimi /.rockbox/mikey.log dosyasına yazıyor ve otomatik tarama modu 0 numaralı yazmacı 256 değerin tamamından geçiriyor. Cevap 0x2f oldu: alt üç bit kayıt yolundaki mikrofon ön gerilimini taşıyor, 0x28 dedektörü kuruyor, ses ve orta tuş olayları da 5 ve 4 numaralı yazmaçlarda tanımlı seviyeler olarak görünüyor.
Donanım yalan söylüyor
Günlük kullanım, zıplayan bir kontaktan daha tuhaf bir şey ortaya çıkardı. Tuş etkinliği olmadan yaklaşık beş saniye geçince çipin olay motoru uykuya dalıyor: basma 4 numaralı yazmacı yine anında değiştiriyor, ama bırakma 1,7-1,8 saniye gecikmeyle bildiriliyor.
Bu yüzden sürücü orta tuşu yalnızca tıklama olarak işliyor ve her basmada sabit 60 ms'lik bir darbe gönderiyor. Değişiklik upstream'e Gerrit 7677 numarasıyla, «ipod6g: Add inline earphone remote support» başlığıyla gönderildi: 8 dosyada 318 satır ekleyen tek bir commit ve hâlâ incelemede. Sürücüyü içeren hazır bir Rockbox imajı, ipod6g-mikey-v1, Classic 6G ve yedinci nesilde çalışıyor.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.