最近 NXP Smartphone Quick-Jack Solution というドキュメントを読んだ。要約すると

  • スマフォのオーディオジャックに繋ぐアクセサリについて
  • 電源を音量最大にしたヘッドフォン端子の R チャンネルからとる
    • チャージポンプダイオード昇圧 + LDO レギュレータで 3.3V を得る
  • L チャンネルをスマフォ → マイコンの通信経路とする
  • マイク入力をマイコン → スマフォの通信経路とする

というもので、特に電源をヘッドフォンジャックからとってしまおうというところが、自分の中では結構びっくりだった。確かにヘッドフォンを駆動しているわけで、多少の電流はとれるだろうけど、マイコン動かすほどとれると思っていなかった。

このソリューションの良いところは

  • 電源と信号線と一括で接続できてお手軽
  • オーディオ出力とマイク入力でコミュニケーションするので、WebAudio からでも応用可能

ウェブエンジニア的には後者は特に夢が広がるところで、デバイスを用意してもらって、繋いでもらえれば、普通のウェブページから直接ハードウェアを殆ど面倒な手続きなしで利用できる (マイク入力が必要な場合だけブラウザの確認画面がでるぐらい)。もし何かしら出力してマイコンに処理させたいだけならば、権限取得的なことが一切いらない (ただし、音量は上げてもらう必要がある…)

やってみた

やってみたといっても、特に気になる電源部分だけ。

手元にある HTC J butterfy (旧) を実際に使い、オーディオ出力を最大にして、どれぐらい電流をとれるか、LED を光らせることはできるか? を検証した。

気になるところ

とりあえず、無負荷時の出力をとっておいた。こんな感じで電圧は出ていた。

回路

回路図書かずにさくっとやってしまった。

NXP のドキュメントだとチャージポンプ+LDOなのだが、チャージポンプ部分で無極性10uFのコンデンサを要求しており、手元にないので、この通りやるのはさっそく面倒になった。

なので、効率は落ちると思われるが手元にあるもので

  • 普通に全波整流を行う
    • 一応ショットキーで4本で整流
  • 3.3V へステップアップするICに突っ込む
    • HT7733A というICで効率は最大でも85%

という方法で3.3Vを得た。

これに200Ωの抵抗と高輝度な白色LEDを繋いだところ、冒頭の写真のように十分 (というか眩しく) 明るく光ってくれた。最近のLEDは微小な電流でもクソ明るい…

LED 光らせてるて安定した状態でこんな感じだった。黄色はステップアップ後の電圧 (ちょっと3.3Vより下がってる)、赤色は整流後の電圧 (600mV程度になってる)。

結果

適当な大きめの抵抗負荷をかけてみた感じ、今回の構成では最大でも5mA程度が限界のようだった。

あとやっていて気付いたのだが、20kHz の出力を使うとなぜかしっかり電流がとれず、10kHz のほうが良い結果になるみたいな現象があった。ちょっとよくわからない。

今後

突発的にやる気を出して2時間ぐらいでやったので、もうちょっと検証したいが、またやる気がでたらにする。

NXP のドキュメントのように大きなチャージポンプを組むほうが効率が良い?のだろうと思うのでやる気がでたらやりたい。

WebAudio でのコミュニケーションは作ったらまぁできるだろうという感じだけど、これもやる気がでたら (つまり良いアプリケーションが思いついたら) やりたい。

  1. トップ
  2. tech
  3. よしお前ら!!! WebAudio で LED を光らせるぞ!!

KX3 は、自宅に置いてる間は ACC1 (シリアル接続) と RX I/Q を Mac に接続しており、普通に繋ぐとグラウンドループが発生する。(KX3 -> ACC1 -> Mac -> RX /IQ -> KX3 のループ)

純正のシリアルケーブルだとあまりノイズは気にならないのだけれど、他のシリアルケーブルを転用したところ、シリアル信号にあわせたノイズが激しく観測され、ちょっと我慢ならないレベルだった。そこで (効果があるかは定かではないが) まずグラウンドループを対策することにした。

使ったのは ST-71 (600Ω:600Ω) で、ステレオなので2個使って絶縁を行った。低周波領域は比較的ロスが大きいが、試したところそこまで気にならなかった。RX I/Q は現在 96kHz でサンプルしていて、ST-71 はオーディオ帯域 (20kHz) までしか特性が書いてなくてちょっと心配だったが、帯域も問題なさそう。

でもって、絶縁してみたところ、完全にノイズが消えてくれた。どうやら本当にここのグラウンドループが原因だったようだ。

やはり無線機から出るケーブルはできる限り全て絶縁するのが良さそう。もちろんコストはかかる (トランスは500円ぐらいして案外高価)。

この他、気になるところを全部やるとすると、アンテナ線以外で

  • オーディオ出力を絶縁
    • 自宅では常時接続している
    • オーディオセレクタでグラウンドも一緒のスイッチしているので、基本は必要はないが、中継コネクタなどでグラウンドが露出する部分があり、うっかりループを作りがち。ステレオ
  • マイク入力を絶縁
    • 基本繋いでないが、PC 出力を使いたいときは絶縁が必要そう。モノラル
  • シリアル接続を絶縁
    • ACC1 絶縁する
    • TTL USB Serial 変換と、フォトカプラだけでいけそう。
  • 電源をわける
    • 別の無線機と共通の電源を使いつつ、グラウンド共有の同軸切替器も使っているので、ここで大きなグラウンドループがある
    • コストがかかる。KX3 用の 最大 3A なら自作したほうが早そう。

現状では対処策はないので諦めるしかない。

ref.
https://github.com/RogueAmoeba/Soundflower/issues/19

  1. Audio MIDI 設定で機器セットを作り、使うデバイスをまとめる
  2. クロックソースを適当に設定する
  3. 「音ずれ補正」のチェックを全部はずす

をやるとプチプチノイズがなくなる