BOSE SoundLink mini をハックする（途上）

# はじめに

知人から「しばらく使ってると止まるんだけど、使ってみる？たぶんバッテリー替えたら直ると思うから」と言われて、[BOSE Soundlink mini](https://www.bose.co.jp/ja_jp/support/products/bose_speakers_support/bose_portable_speakers_support/soundlink_mini.html) を貰いました。面白そうだったので。はい。
試してみると、確かにいい音で鳴るのですが、30分くらい経つとバッテリー警告？かな？が出て、停止してしまいます。しばらく待ってからでないと起動できません。
パッシブラジエーターがついててモノとしては良いので、これをなんとか使えるようにするために少し（趣味的に）格闘してみました。

### 現在の到達点

* 電源ボードとパワーアンプボードを仮組み状態で直結して鳴らすことができた (2021/2/11)
* フラットケーブルで両者から信号を引き出し、ブレイクアウトボード上で結合して組み込んで使える状態にできた（2021/2/24）

### 野望

* ボリューム（音量調整）を入れたい（そのためにはプリアンプを入れる必要あり）
* 操作パネルのボタン群を活かしたい（そのためには何かコントローラを入れる＋基板製作の必要あり）

ここまでなんとか到達して、Qiitaらしくコンピュータ関連の作例として見られるようにしたい。。。まだまだ道半ばですが、とりあえず出します。

### 注意

鳴らなくなった SoundLink mini をお持ちの方で、このドキュメントを見ながら自分もやってみよう、と思われた方は、まず先に「[おわりに](#なんやと)」を一読いただいてから、先へお進み下さい。仕組みに興味が無く配線だけが知りたい方は「[組み込み](#組み込み)」まで飛ばすのが良いと思います。そして最後に、筆者はオーディオのことを全く分からないまま「つなげば鳴るだろう」程度でやっています。錯誤もたくさんあると思いますのでその点ご注意ください。

# 回路について

## 全体の構成

全体は4枚のボードで構成されています。
<img width="700" alt="System Structure" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/6a148bf1-43bd-830f-fc2a-21b01b95d9d9.png">
図の左から並べてみます。

* 電源回路ボード (iFixit では Audio/USB board)
* コントローラ・ボード（LED やボタンが基板の裏側についています）
* バッテリーを接続している謎のボード
* パワーアンプの載っているボード

実機ではこのようなレイアウトで収まっています。（赤黒の電源線が見えていますが、これは私が作業のために取り付けたもので、製品にはありませんので念のため。勿論バッテリーもカバーされています。）
<img width="600" alt="board layout" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/43b1467e-2701-94db-f8f9-5b47348ad4f9.png">
ケーブルの接続が見えるように全体を90度起こした状態を出します。フラットケーブルの配置がわかるでしょうか。
<img width="600" alt="board layout" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/f90a2cfa-760f-3f04-cce1-a72d6ed06483.png">
他にも [iFixit](https://www.ifixit.com/Device/Bose_Soundlink_Mini_II) に分解写真があります。それぞれのボードの形などが把握できるでしょう。[YouTube](https://youtu.be/TPe3dURR3A8?t=848) にも幾らかボードのレイアウトが分かるものがあります。

今回はバッテリーとコントローラを取り外して使うことを想定し、電源ボードとアンプボードについて調べました。つまり、もともと以下のような構成になっているボード群の中心にある、コントローラボードを外して、電源ボードとアンプボードを直結しようとしているのです。

<img width="600" alt="board layout" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/baa07eb7-af24-f41c-5ae9-d84ed4c9b2e6.png">


## 電源回路ボード

一枚目（ボード裏側写真）の左上からオーディオ入力、その下に電源コネクタ、下辺にクレイドルとの接点があります。
<img width="294" alt="Power board (back)" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/5fcaf85d-12ed-e9e9-03df-d3ee5d8159f1.jpeg"> <img width="300" alt="Power board (front)" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/154deeb5-b950-b820-64b7-29d163b38863.jpeg">

### 端子

いずれもプリント基板上にピン番号のプリントがあります。

オーディオ入力（3.5mm stereo mini-jack）
* Pin 1 - GND
* Pin 2 - Right
* Pin 3 - Left (top) 
* Pin 4 - フレーム (non connection)

電源コネクタ （5.6mm DC jack （内径未計測））
* Pin 1 - VCC (+12V)
* Pin 2,3 - GND

クレイドル端子
* Pin 1 - NC （基板上は何かにつながれているかもしれないが、クレイドル側には電極なし）
* Pin 2 - NC （同上）
* Pin 3 - GND
* Pin 4 - +12V

USB端子
* Pin 1 - VCC (VBus)
* Pin 2 - - Data (D-)
* Pin 3 - + Data (D+)
* Pin 4 - Non Connection?
* Pin 5 - GND

### USB 端子

これはファームウェアアップデートのためなどで、電源供給のためのものではありません。ともあれ、GND は基板全体の共通 GND につながれており、それを含めて D-, D+ とともにフレキシブルケーブルにそのままつながれています。

### オーディオ入力

基板裏側の写真でキレイに見えているとおり、オーディオ信号 L, R が、それぞれコンデンサ（3011 ってどう読むの？）をはさんで、フレキシブルケーブルにそのままつながれてます。Gnd もフレキシブルケーブルに出ています。

### 電源回路

Texas Instrument の、**BQ24172** とラベルされたチップがあります。これ、バッテリ充電と電源供給を兼ねたもののようです。

#### 資料

* [製品情報](https://www.tij.co.jp/product/jp/BQ24172)
* [データシート](https://www.tij.co.jp/lit/ds/symlink/bq24172.pdf) （[日本語版](https://www.tij.co.jp/jp/lit/ds/symlink/bq24172.pdf)もあります、が、微妙に訳が危ないです）

上記データシートからリファレンス回路を引用しておきます。
<img width="500" alt="BQ24172 typical application" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/f5980a56-6d2f-bde7-82bc-d23156858d05.png">

#### 出力電圧の確認

ざっと読んだところ、PVCC と PGND の間に、所定の電圧が出る、とあります。SoundLink 付属の AC アダプタの定格は 12V 0.8A でしたが、このボード単独でこのACアダプタを接続すると、PVCC - PGND 間には 11.8V 程度が出ていました。
これが正しい値なのか、バッテリーなどが接続されていないためにこのような値になったのか、ちょっと分かりません。
逆にすべてのボードとバッテリーを接続し（音が鳴る状態で）、アンプ基板に掛かっていた電圧は 8.4V でした。2 cells 向けには 8.4V が typical だとあるので恐らくそれが正常なのだと思いますが、ひょっとしたらこのシステムが何かしら故障していたためにそのような値になっていた（だから30分ほどすると動作が止まる）のかも分からない状態です。

#### 制御入力

データシートを見ていると、制御入力として気になるピンが幾らかあります。コントローラ・ボードから信号を出して動かしていたでしょうから、それを取り外すためには代わりに適切な信号を与えてやらないといけません。

##### TTC

"Safety Timer and termination control" とあり、つまりこの先のコンデンサを充電して、高速充電について時間制限を掛けるもののようです。時間は30分に固定、とある。もしこの機能を切りたければ TTC を Low に Pull down せよ、とあります。

**Datasheet:**
Connect a capacitor from this node to AGND to set the fast charge safety timer(5.6 min/nF). Precharge timer is internally fixed to 30 minutes. Pull the TTC to LOW to disable the charge termination and safety timer. Pull the TTC to HIGH to disable the safety timer but allow the charge termination.

##### TS 

TS ピンにサーミスタをつけて温度監視をするとあります。データシートには103AT 推奨と書かれており、そこにある回路例で TS = 0~45°C と設定されており、高くても低くても動作しないように保護されるようです。
[Semitec AT サーミスタ](http://www.semitec.co.jp/products/thermo/thermistor/at/) の資料によると、103AT は25度で10KΩとあるので、まあここに 10KΩほどでも接続しておくか、あるいは本当に103ATを接続するのが良いかと思います。
なおバッテリーにサーミスタは付いていましたが、ラベルは S3DD3 となっていて
103AT ではないような感じです。
（ただ、基板上にはリファレンス回路同様に分圧のための抵抗があって、そこにサーミスタをつなげばそのまま機能しそうに見えます。つまりサーミスタが存在しないと異常と判断されそうなのですが、なぜサーミスタ無しでちゃんと動くのか。。）

**Datasheet:**
Temperature qualification voltage input. Connect a negative temperature coefficient thermistor. Program the hot and cold temperature window with a resistor divider from VREF to TS to AGND. The temperature qualification window can be set to 5-40°C or wider. The 103AT thermistor is recommended.

#### 動作確認

下のように、PVCC と PGND 線をつないで電圧を計測しました。
（最も作業しやすいのは恐らく IC の上にあるチップコンデンサの両端でしょう。）
<img width="250" alt="BQ24172 pin assignment" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/da4560b6-d7a4-5181-387a-e421e1c217f9.png"> <img width="250" alt="PVCC/PGND wired" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/3dc960c7-bd9e-a56f-a39f-91107a5575d0.png">
結果、11.8V - 11.6V 程度でおよそ安定して出ている事が分かりました。このとき、1 時間以上回していたのですが、TTC あるいは TS の影響と思われる出力低下・停止はなく、ずっと安定して電圧を出していることがわかりました。
負荷が掛かるとTTCが機能したりするかも？と 100Ω 程度を負荷としてつないでみましたが、変化はありませんでした。つまり TTC/TS はそのまま（開放）で放っておけば良いようです。

### フレキシブルケーブルによる接続

SoundLink にはパッシブラジエータがついているので、スピーカーのエンクロージャは気密されています。この電源基板は気密領域の外にあり、配線の入り口から空気が漏れないようにゴムでフレキシブルケーブルの入り口を塞いであります。写真の指の向こう側が電源ボード、手前側がコントローラボードです。
<img width="300" alt="rubber packing" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/ec4a1bd8-4735-b6f0-d5af-3b193920b8ab.png">
この仕組みを活かすため、コントローラボードがあったところ、つまり気密領域の中に 0.5mm ピッチ 34pin FFC / FPC コネクタのブレイクアウトボードを置いて接続します。パワーアンプボードとの接続もこのフレキシブルケーブル越しにやりましょう。

* [34pin（要半田付け）](https://www.aitendo.com/product/19566)
* [半田付け済みだが38pin](https://www.aitendo.com/product/4171)

#### フレキシブルケーブルのピンアウト

少なくともPVCC, PGND, Audio (L, R, GND) そして USB まで、必要な信号が 34 pin のフレキシブルケーブルに出ている事を確認しました。
<img width="400" alt="Power supply board FFC pin assign (on breakaout board)" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/2c58863a-99c2-ce83-8b52-d415ea69fdb7.png">
但し上の図は、下図のように電源回路ボードに接続したフレキシブルケーブルの先につないだ、ブレイクアウトボード上でのピン番号（と配置）で示しています。フレキシブルケーブルの#1 pinに相当する線を赤くしておきました。二つの基板上での対応に注意してください。
<img width="300" alt="Power supply board and breakout board" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/1f9fe077-3cc6-4777-cce4-cfa99dc23ebc.png">

## パワーアンプボード

左にスピーカー接続端子、上辺にバッテリー接続ボードとのジョイントになるコネクタがあります。
<img width="300" alt="Amp board (front)" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/e45000a8-90a2-6119-3775-c0c0293253f9.jpeg">　<img width="300" alt="Amp board (back)" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/34646cff-ce9b-dccf-8abe-a62e78c074c7.jpeg">

### アンプ回路

**TPA3118** とラベルされたチップがあります。Texas Instrument のパワーアンプですね。
30W x2 とかなり大きな出力が出せる Class-D アンプとのこと。良いですね。

#### 資料

* [製品情報](https://www.ti.com/product/TPA3118D2)
* [データシート](https://www.ti.com/lit/ds/symlink/tpa3118d2.pdf) 

上記データシートからピン配置図と、簡単な使用例を引用しておきます。
<img width="200" alt="TPA3118 pin assignment" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/eb33b34c-ec16-d32f-b4af-b970afcc45e2.png"> <img width="400" alt="TPA3118 Simplified application" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/6913cf9f-3762-cbdf-2ad3-cfc1b2af9df7.png"> 

### 制御信号

上記データシートから、主要な制御関連の信号を捜します。おおよそ上のブロック図にあるものがそれですね。つまり、以下のピンについて検討します。

* SDZ (Shutdown control)
* FAULTZ (Fault report)
* MUTE
* GAIN

#### SDZ (pin 2), FAULTZ (pin 3)

SDZ は Shutdown logic input for audio amp で、Low のとき出力がハイインピーダンスになり、High のとき出力可とあります。
FAULTZ は異常時に High になり、正常時は Low となります。ちょっと厄介なのは、異常の種類によっては状態をラッチすることで、これは SDZ を Low にすることでリセットされるとあります。
で、これがポイントですが、データシート 7.3.10 (p.17) には「単純にリセットしたいなら SDZ と Fault を直結せよ」とあります。同ページの Figure 31 には、ラッチされた Fault 信号が SDZ によってリセットされるタイミングが示されています。ついでに MUTE を FAULTZ の反転として取れば良いよ、とも示されています。
<img width="300" alt="GAIN control" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/1d7b9419-78cc-c3fc-0047-299dfaff06cb.png">
というわけで、SDZ とFAULTZ を短絡して、PVCC 側に Pull Up することにします。

#### MUTE (pin 12)

一般に言うミュートそのもので、High のとき出力がハイインピーダンスになり、Low のとき出力可とあります。
このピンはこのボード内ではどこにも接続がなく、オープンになっており、これでは全く鳴りません。

今回は単純に GND 側に Pull down することにします。

#### GAIN (pin 8)

データシート 7.3.1 (p.13) を読むと、どうやらこのアンプは増幅率が 20, 26, 32, 36 dB の 4 段階にしかセットできないようです。そのどれにセットするかを二つの抵抗による分圧で指示する（see; p.14 Table 1）、と。同ページの Figure 27 には、R1, R2 の位置関係が示されています。
<img width="250" alt="GAIN control" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/6a7f144a-6b74-aa56-16e2-236312f35efd.png">
基板を調べると、R1 の位置には実際に 5.6KΩ が付いており、R2 は Open に見えます。つまりこのボードではどうやら 20dB にセットされているようで、このピンの入力については放置しておけば良さそうです。（オーディオの知識がない私は、はじめこれでボリュームコントロールしているのかと思ったのですが、それはプリアンプでやるべきことなんでしょうね。）

### 配線の取り出し

このアンプ IC の幾つかのピンについて、幾つか配線を取り出す必要があります。以下に列挙しておきます。

* PVCC (pin 18, 19, 31, 32)
* GND (pin 9, 22, 25, 28)
* SDZ (pin 2)
* FAULTZ (pin 3)
* MUTE (pin 12)
* GAIN (pin 8)
* RINP (pin 4, Positive Audio Right input)
* RINN (pin 5, Negative Audio Right input)
* LINP (pin 10, Positive Audio Left input)
* LINN (pin 11, Negative Audio Left input)

基板を当たって、これを取り出すことが可能そうなポイントを捜してみました。
<img width="350" alt="contact points" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/cd6dc5a3-487f-352b-1166-f365b644af4f.png">
電源 PVCC, GND については基板上に Pad があり、ここは問題ないのですが、それ以外の信号については基板上のかなり小さなポイントから取るしか無さそうです。
私は半田付けなどをちゃんと練習した事がないので、とりあえず無理矢理半田付けするとこんな感じになります。
<img width="300" alt="wired amp board" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/0c611909-ccb1-697f-1bb5-974c24d191ee.png">

### 動作試験

上に示した半田付け状態で、上に示した二点（SDZ と FAULTZ を短絡してPull upし、MUTE を Pull down）について適当に作って、電源ボードの出力（11.8V近辺）と接続し、音楽プレイヤーが出すミニプラグの（おそらくはヘッドフォン）出力に接続してみました。
<img width="500" alt="dry run" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/045977ca-77b4-7bad-0969-e4059f498614.jpeg">
問題なくそれなりの音で（ラジエータなどが開放なのでかなり乾いた音で）、クリアに鳴りました。一時間半ほど鳴らしたのですが、問題無いようです。precharge timer (30min) で電源供給が止まることもありませんでした。
あとはこれをパッケージングするだけです。

### コネクタ （アンプボード画像下端）

さすがに上の半田付け状況はかなりひどいので、画像下側にあるコネクタ ( [ヒロセ電機 DF-12, 30pin](https://jp.rs-online.com/web/p/pcb-headers/7793291/) ) から取り出したいなあ、と思うのですが、スペースの関係上かなり難しい感じです。とりあえずパターン上を当たってみた結果だけ今は出しておきます。
<img width="200" alt="Audio board pinout" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/4b44d868-cbce-5909-fdc7-5100471d1c87.png">
残りのオーディオ入力系などの pinout を突き止められれば（コンデンサが入っているようで、上のコンタクト・ポイントに直結されている接点はありません）、このコネクタから取りだしてみる努力をしても良いかと思っています。

## バッテリーボード

すぐ上に書いた、アンプボードの DF-12 コネクタは加工がかなり難しそうでしたが、ふと考えると、もともとここに接続されていたバッテリーボード側には 32pin フレキシブルケーブルが出ていることを思い出しました。このバッテリー接続ボードはおおよそバッテリーの充放電関連以外のことは介入しておらず、各種信号線がそのままコントローラボード向けのフレキシブルケーブルに出ていることが想像されます。
<img width="200" alt="Battery connection board (front)" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/2449c032-51a6-668e-2f69-47a1f850d2db.png"> <img width="195" alt="Battery connection board (rear)" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/db0cfa99-08db-0d94-8255-753d8923f9ae.png">
左側画像、上端にあるのが、アンプボードの DF-12 コネクタの相手です。裏側を見ると、32pin FFC コネクタが出ています。電源関連のものはともかく、制御信号や音響信号はこの二つのコネクタ間をそのまま直結しているはずです。

### フレキシブルケーブルのピンアウト

調べてみると、果たして、キレイに信号線が出ていました。
<img width="350" alt="Battery connection board FFC pinout" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/258ccbbf-076d-d9e4-d25a-04034083394a.png">

* [32pin（半田付け済）](https://www.aitendo.com/product/19568)
* [32pin（要半田付け）](https://www.aitendo.com/product/19650)

但し上の図は、下図のようにバッテリーボードに接続したフレキシブルケーブルの先につないだ、ブレイクアウトボード上でのピン番号（と配置）で示しています。フレキシブルケーブルの#1 pinに相当する線を赤くしておきました。二つの基板上での対応に注意してください。
<img width="350" alt="Battery connection board and breakout board" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/552e8cc6-d40b-340a-0723-90016282476e.png">
ただしこのPVCCには、私の手元の実機では（つまりコントローラボードからは）DC 8.4Vが供給されていました。私はここに 11.8V をつなごうとしています。本来、電源ICのPVCC-PGND間には、バッテリー充電用に調整された8.4Vが出ているように思うのですが、今はもうこの11.8V をそのままつないでしまおうと思います。

#### FAULTZ配線の加工

ところでFAULTZ ですが、データシートのリファレンス回路に提示されているような SDZ と FAULTZ を短絡するパターンにはなっていませんでした。基板を見ると、FAULTZ (pin 3) の先にはチップ抵抗がはさまっており、その先のランドはフレキシブルケーブルの pin 9 に直結していました。（下図、左側）
<img width="500" alt="SDZ and FAULTZ pattern" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/9d65c7da-eccb-2c8b-8443-6d54c2a5058c.png">
というわけで、上の図の右側のように「チップ抵抗を取り除いて、そこを短絡させる」ように改造します。これでフレキシブルケーブル（ブレイクアウトボード側）の pin 9, 11 を短絡して、二つとも VCC に Pull Up します。

### 動作試験

フレキシブルケーブルから電源以外の信号を取れることが確認できたので、動作確認を行いました。アンプボード側のリード線を電源以外はすべてバッテリーボードのフレキシブルケーブルから取り出して、ただしく鳴ることを確認しました、。

<img width="500" alt="dry run #2" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/db5ae09e-3d90-a74e-a6b9-a95736079376.png">

アンプボード上の信号線を使わず、フレキシブルケーブルのブレイクアウトボード上の配線だけでうまく鳴らせていることがわかります。

#### L-R逆転？

なお、上のフレキシブルケーブル上での Audio In の L, R 接続は、アンプICである TPA3118 のデータシートに書かれている Left, Right の設定に従った記述でしたが、動作試験をしているときに、このLR が逆転していることに気が付きました。つまり IC の R チャネルに信号を入れると、L （向かって左側）のスピーカーが鳴ります。
特に LR を入れ替えることで問題が出るとは思えませんが、多層基板を使ってここまで信号を遠くまで届けるのですから、LR 逆転を直すチャンスは幾らもあったと思います。不思議です。

# 組み込み

### 結線

これまでに全ての信号・電源線がフレキシブルケーブル上に出ており、必要な線を直結するか、幾つかの制御信号線については Pull-up あるいは Pull-down すれば正しく動作する事が分かっています。
フレキシブルケーブルのブレイクアウト基板を二つ並べて、以下のように配線すれば良いはずです。
<img width="300" alt="wiring plan of breakout boards" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/60185988-0b64-40ef-2fd2-69351bcc74b1.png">
先述したとおり、[L-R が途中で入れ替わっている](#L-R逆転？)ことにご注意下さい。また、[FAULTZに接続された抵抗を取り外している](#FAULTZ配線の加工)点にもご注意。


### 実装

こんな感じでやってみました。
<img width="300" alt="wiring of breakout boards" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/0431fa49-3ed5-7648-d765-322ddf493d0a.png">

### 動作確認

前節のとおりに配線したブレイクアウトボードを仮組み状態で動作させてみました。
<img width="400" alt="wiring plan of breakout boards" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/f951dbae-39dd-0dff-62d1-5f146fd15bcf.png">

### 組み込み

実際にケースの中に組み込んでみたところ、こんな形になりました。かなり狭い空間に入れることになるので、フレキシブルケーブルの取り回しがなかなか難しいです。ブレイクアウトボードは底蓋、つまり元の電池ケースの背板に接着したアームに留めています。組み込み順序としては、裏蓋を組み付けた後で、最後にフレキシブルケーブルをブレイクアウトボードに接続し、底蓋をネジ留めする形になります。
<img width="400" alt="breakout board mount" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/6118c161-83b9-f9b1-c019-c8e1a26da404.png">
組み込む直前はこんな感じになります。
<img width="400" alt="breakout board mount" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/28a9267c-cd46-c5f8-344f-611795c86032.png">
写真で見えているフレキシブルケーブルの長さは以下の通りです。取り回しが難しく、結構な長さが必要でした。何かうまく折りたたむ工夫が要りそうです。

* 34p （電源ボード側）は 15cm（これは13cmくらいでも足りる）
* 32p （アンプボード側）は 10cm 

なんとか収まりました。フラットケーブルもパッシブラジエータに干渉せず済んでいるようです。
<img width="400" alt="behind the mesh panel" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/6e8202c0-fbb9-460b-0179-9dad14383615.png">

### （ひとまず）できあがり

<img width="400" alt="all done" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/6c7aec66-8ece-8cf8-3e87-df8878987798.png">
元の電源ボードを活かせているので、そのままクレイドルに AC アダプタを差して使えています。電源ON/OFFは、このクレイドルに座らせるか、浮かせるか、で操作することになりそうです。

# 今後の展望（野望）

まあ実際にこれ以上やる気になるかどうかは謎ですが、とりあえず調べた事は書いときましょう。誰かやってくれる人が居るかも知れないから。

## コントローラボードの復元

### ボタン操作 （ボリューム調整機能など）

ESP32 あたりを組み込んで、ボタンによる操作ができるようになると良いかなと。と言うか、そこまで行かないとソフトウェアの話になりません。（Qiitaでコンピュータと関係無い話はかなり場違い、、）

ボタンの並びは以下の通りです。

1. Power ON/OFF (LED large)
2. MUTE (LED)
3. Volume -
4. Volume +
5. Bluetooth (LED)
6. AUX (LED)

機能割り当てとしては、こんな感じでしょうか。

* Power ON/OFF を長押しで対処できるように（SSR か何か？）
* MUTE を toggle できるように（普通に GPIO pin を割り当てれば済む）
* Volume を操作するためにはプリアンプが必要
* プリアンプを買うなら Bluetooth 受信機を使うのが良い？
* うまくすると Bluetooth / AUX の切り替えができる？

いまどきは何でも安いですね。このあたりでしょうか。

* Pt2314 Audio controller ( [Banggood, 641円](https://jp.banggood.com/PT2314-Sound-Quality-Adjustment-Module-Voice-Module-IIC-6V-10V-Audio-Processing-Module-p-1264218.html) )
 * これ入力が 2ch x4 あって、I2C 使って[コマンドで切り替え](https://github.com/andykarpov/PT2314)ができる模様。
* Bluetooth receiver ( [Banggood, 427円](https://jp.banggood.com/M18-bluetooth-4_2-Audio-Receiver-Module-Lossless-Car-Speaker-Headphone-Amplifier-Board-Wireless-Refit-p-1476791.html) )
* Bluetooth Audio module ( [aitendo, 499円](https://www.aitendo.com/product/14711) )
 * これは単体動作できるもので、AUXとの切り替えも可能な模様。ESPなど入れずこれだけで良い？

### 基板作成

ボタンをつけるためにはこのコントロールボードと同じ大きさの基板を作るしかありません。

<img width="400" alt="Controller board back" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/0613c321-b861-8e44-ee56-8418ee0076b2.jpeg">
<img width="400" alt="Controller board front" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132859/de9b96e3-69bb-07f8-482d-134164ae3ad8.jpeg">

タクトスイッチはアルプスの [5.2mm角薄型タイプ(表面実装) SKQGシリーズ](https://www.monotaro.com/g/01030439/) を使っている模様。位置決めをうまくすればそのまま相当品が作れるか。

なおこのコントローラボード、裏側のチップはこんな感じでした。

* 左上 CSR 57H6 - 恐らく Bluetooth チップ
* 左下 Microchip 16F723A - 8bit PIC ([Datasheet](https://www.microchip.com/wwwproducts/en/PIC16F723A))
* 右上 AKM AK5381 - 24Bit 96kHz 2ch ADC ([Datasheet](https://www.digikey.jp/htmldatasheets/production/1745153/0/0/1/AK5381.pdf))
* 右下 Cirrus Logic CS4350-DZZ - 24Bit 192kHz 2ch DAC ([Datasheet](https://statics.cirrus.com/pubs/proDatasheet/CS4350_F4.pdf))

PIC や Bluetooth チップにアナログ処理部分が何かあるのかも知れませんが、ADC/DAC があるところを見ると、デジタル処理でプリアンプ的操作を全部やってるのかも。（この分野の事をまったく知らないのですが）
（なお転がってた SoundLink mini II のフィールドマニュアルらしきものにはパーツリストに U700 は STM32F030C6 で ARM 32bit SoC とあり、なかなか謎）

最近は基板製作も安くて、フレキシブルケーブルとか扱うぶんには作る方が楽なようにも見えて、[Fusion PCB などに手を出すのが良い](https://voltechno.com/blog/fusionpcb/
)のか？とも思います。
元のボードからスイッチとチップ LED の位置をきっちり測って作ったら、操作感を含めたコピー版を作れそうではあります。

# おわりに

#### なんやと

このドキュメントを作るために資料を探していて、"[A final fix for a Bose Soundlink II Bluetooth speaker that is blinking red](https://www.youtube.com/watch?v=4yRAaIZDpxQ)" などというものを見つけてしまいました。
どうも firmware にバグがあるっぽい。。。これを入れ替えれば直る可能性があった模様。でももう後戻りできない（したくない）ので、見なかった事にしましょう。はい。

良い子の皆様は、開ける前に検索しましょう！

以上です。