JBL Pebblesの爆音問題の解決

JBL Pebbles はUSB接続のアクティブスピーカーだ。 USB一本で電源と音声両方を送れるところが便利そうだなと思い、中古で¥3,000 くらいだったところを購入した。

このスピーカーは音量が非常に大きくて、パソコンのモニタの左右に並べて置いて使う感じだと、パソコン側の音量調整が0–100まである中で、4の設定ですでにうるさすぎるという状況だった。 こうなると、音量を調整できるのが消音を除いて1, 2, 3 の3段階になってしまう。実用上もキーボードの音量調整ボタンを押すとすぐ爆音になるなど不便が多い。 スピーカー側に音量調整ダイヤルがついているが、これはハードウェア的なボリュームではなく、パソコン側のミキサーの音量が変わるので、ちょっとでもダイヤルが回るとすぐ爆音だ。

インターネットを調べてみると、この機種で似たような問題の書き込みは複数あるものの、全てのJBL Pebblesで該当するわけではない雰囲気もあり、もしかしたら一部ロットでこの問題があるのかなという印象を受けた。 見ていた中で、X で soshiro_omote氏が

デジタルアンプ入力前でオーディオ信号を分圧して1/10程に下げたらイイ感じになった。 [x.com]

と書き込んでらっしゃっていて、写真も掲載してくださっているのを見つけてしまった。 これはやるしかないなと思い、手元でも開けてみたのだった。

分解

分解手順は 1056氏のブログ JBL Pebblesの分解方法 [mandalakasa.com]が参考になった。 手元での実施した感じだと、

  1. 網を外す。素手でがんばって引っ張れば、特に工具などなく取り外せた。戻すときも押し込むだけ。
  2. 側面のプラスチックを外す。両側とも引っ張るだけで外れる。 ボリューム側はグリスがたっぷり塗ってあるので手を汚さないよう注意。
  3. ケースを固定しているネジを外す。スピーカーのネジも外す。
  4. ここまででケースは開く。
  5. 基板を固定しているネジを外す。
  6. ボリュームを固定しているナットを外す。これで基板が動くので、コネクタを外す。

といった感じで、比較的簡単に分解して綺麗に戻すことができる構造であった。

基板の様子

私のJBL Pebbles に入っていた基板はPEBBLES2-01-A0D(20170320)とシルクされていた。 メインのプロセッサはMVsilicon AP8048CというCortex-M3 搭載のマイコンだ。

PCB PEBBLES2-01-A0D(20170320)
基板(改造前)

問題の、分圧するとイイ感じになるという箇所は、元々はC49, C51 でAC 成分だけになって、R56, R58 (470Ω) を通って、もう一回C5, C9 を通ってからアンプに入っているようだった。 雰囲気的にR52, R53 にチップ抵抗を置けばGND に好きな抵抗値で落とせそうで、ここはなぜか未実装になっている。 どこの家庭にもある不要な基板から適当にちょうど良いサイズのチップ抵抗を剥がしてきて移植するとこんな感じになる:

あまり上手ではない付け方の例

今回は合いそうな感じの抵抗値のものが20Ωしかなかったのでそれを使ったが、だいたい近ければ同じような結果になりそう。

結果

Windows からは0–100 の幅でちょうどよい大きさの音量に調整できるようになった。 モニタの横に置く場合で50 から100 の間のどこかでちょうどよいところが見つかる感じなので、もっとスピーカーから離れる環境なら47Ωとか100Ωとかにした方がよいのだろう。

Linux でもalsamixer から音量0-100 の調整がうまく使えるようになった。 Pipewire はUSB のディスクリプタにあるdB を信じているので、Pipewire とAlsa のミキサーの値が一致してないし、Pipewireだと90–100くらいの間で調整しないといけない感じだった。 /etc/xdg/wireplumber/wireplumber.conf.d/ignore-db.confにこんな設定を入れて:

monitor.alsa.rules = [
  {
    matches = [
      {
        device.name = "~alsa_card.*"
      }
    ]
    actions = {
      update-props = {
        api.alsa.ignore-dB = true
      }
    }
  }
]

systemctl --user enable wireplumberとしたところうまいこと0–100の範囲で音量が調整できるようになった。

Line入力で使う場合、このスピーカーのボリュームはソフトウェア的な制御で、電源を切ると設定を覚えていてくれない。 無改造だと、電源を入れた直後は必ず爆音になって不便だったところ、この改造を行った後はちょうど良い感じの音量になるようになって便利になった。

他気づいた点として、以前 Raspberry Pi 3BとかLenovo IdeaPad Flex 3 Chromebook など一部のマシンに接続した際に、再生時にかなりノイズが乗っていて使い物にならなかったのが解消して、問題なく使えるようになった。

ここまでの挙動を見る感じ、R52, R53が未実装なのが何らかの誤りなのではないかという気がしてきて、もしかしたら製造過程の何らかのミスで一部のロットだけで未実装なのかも?と思うようになってきた。 実際はどうなのだろう。