View on GitHub

UART through earphone jack on Android devices

Nexus4やNexus5ではイヤホンジャックからUARTが出てるということだったので、他のAndroidデバイスでも試してみた。

準備

参考にしたサイトによるとイヤホンジャックに挿したケーブルがUARTだと認識されるためには、MIC入力に3.3Vが必要らしい。
また、UARTの信号レベルは1.8Vでないといけないらしい。
というわけで、3.3Vの電源と信号レベル1.8VなUSB-シリアル変換ケーブル、イヤホンジャックに接続する3.5mm 4極ステレオミニプラグを用意することにした。

実際に使用したパーツ

実際に使用したパーツは以下のとおり。
1.8Vな信号レベルが出ているUSB-シリアル変換ケーブルは探した限り1つしかなかった。
残念なことにこのケーブルの電源電圧も1.8Vだったので、それを3.3Vにするためレギュレータも必要になった。

  1. 1.8VなUSB-シリアル変換ケーブル
  2. 3.5mm 4極ステレオミニプラグ
  3. 3.3Vステップアップ電圧レギュレータ

つなぎ方

結果

電源を入れるとログが取れた機種は以下

L-01F

電源ONから電源OFFまでの全ログ
Nexus4やNexus5ではbootloaderのログも取得できているみたいなのに、L-01FではLinuxカーネルが起動してからのログしか取れなかった。
ただ、カーネルのcmdlineに uart_console=detected と出ているので、bootloaderもUARTケーブルが挿さっていることは認識しているよう。

LGL22

電源ONから電源OFFまでの全ログ
L-01Fと同じくLinuxカーネルが起動してからのログしか取れていない。

SC04D

電源ONからLinuxカーネルが起動するまでのログ
L-01FやLGL22と違い、Linuxカーネルが起動する前のPBLのログから取れた。
SC04DはUSBからもイヤホンジャックからもUARTが出てるちょっと変わった機種だということが分かった。

参考にしたサイト