2020年5月24日日曜日

TPA6120を5V単一電源で動かしてみた

3年ぐらい前に購入したTPA6120ボードを5V単一電源でどうにか動かしてみたいということで色々試してはや3年。
5Vから24Vぐらいに昇圧してレールスプリッタでは動いてたんだけど仮想GNDをつかう方法だと電源側と入力デバイスのGNDが共通だと使えないので…
5Vから-5V生成して±5V駆動にしようとしたら上下のバランスがおかしかったり…

ということで絶縁型DC-DCコンバータを使ってみた。
TBA 2-0523ってやつ。これは5V入力±15V出力の絶縁型DC-DCコンバータ。
とりあえず電圧は高いほうが音質良さそう的な安易な考えでTPA6120の最大である±15Vを選択。

ちなみに3年前に購入したTPA6120はこんなやつ。

抵抗の設定はもともとアンバランス受けに設定されていた。
Aliexpressで650円ぐらいだった

とりあえず試しに動かしてみた感じだと発熱的には問題なさそう。データシート的には電流値も最大でも50%ぐらいの余裕がありそうな感じ。試しにPCのUSBポートから電源をとってPCのオーディオ出力に接続しても問題なかった。

ボリュームどうしようかな…

2020年5月23日土曜日

BluepillでMAX31855を使ってみた。

BENQのGL2450を修理するときにFETの温度を測定しようと購入していた熱電対とMAX31855を発掘したのでBluepillで使ってみた。モータドライバのFETの温度を測ってみようかなと。

MAX31855はSPI接続の熱電対アンプなんだけど、出力しかないので基本的にはマイコンから32bitのデータを読み出すだけでいいっぽい。

ライブラリも色々あるみたいだけど、結構簡単に読み出せるらしいのでArduino環境で使えるようなスケッチを作ってみた。

bluepillのSPIはPA7がMOSI、PA6がMISO、PA5がSCLになっている。MAX31855はデータアウトプットしかないのでMISOとSCLとCSの3線で通信ができる。

#include <SPI.h>

#define CS0 PA4

void setup() {
  pinMode(CS0, OUTPUT);
  SPI.begin();
  Serial.begin(115200);
}

void loop() {
  SPI.beginTransaction(SPISettings(5000000, MSBFIRST, SPI_MODE0));
  digitalWrite(CS0, LOW);
  int32_t rawData = SPI.transfer16(0x0000);
  rawData = (rawData << 16) | SPI.transfer16(0x0000);
  digitalWrite(CS0, HIGH);
  SPI.endTransaction();
  float temp = (float)(rawData >> 18) * 0.25;
  Serial.println(temp);
  delay(500);
}

IC内のジャンクション温度や熱電対が未接続、GNDやVCCにショートのエラーステータスも確認できるけど今回は特に確認せずに温度だけ取得することができた。D3とD17が常時0なのでデータ通信がちゃんとできているかの確認にも使用できそう。

次回はそういったエラーチェックも一緒に実装してみたい。

2020年5月17日日曜日

Coov N100 Plusを買ってみた

ニンテンドースイッチでXbox Oneコントローラを使うためにCoov N100 Plusを買ってみた。

このアダプタ、Coov N100の無線タイプでBluetoothが内蔵されているよう。N100 ProだとBluetoothドングルをN100に挿していたけどPlusはスマートになった感じ。
3パターンの使い方ができて、Aモードはコントローラを無線化、Bモードではコントローラー用のレシーバとして動作、あとは有線で接続してコントローラー変換アダプタ(N100みたいな使い方)としてつかえる。

多分通常はBモードが便利かも。(Aモードだとコントローラー側にモバイルバッテリとか必要だし)

とりあえずまずはアップデートから
COOV Managerを公式サイトからダウンロードして解凍しておく。

CoovManager.exeを実行すると署名がないエラーが出るっぽい。
詳細情報をクリック

すると実行ボタンが出る(多分大丈夫だけど実行は自己責任で…


起動したら中国語はわからないのでEnglishを選ぶ。
そしてコントローラーなのでHandleをクリックした。

そんでもってCoov N100 Plusの赤いボタンを押しながらPCに差し込む。
そうすると青色LEDが一瞬点灯してUSBメモリとして認識される。
今回届いたやつはバージョン1.5だった。


COOV Managerに戻ってScript Centerをクリック。

Firmware Updateをクリックすると現在ダウンロード可能なファームウェア一覧が表示される。
Updateボタンを押すとファームウェアが書き込まれる。
とりあえず日付が新しいのを入れたら1.6になった。バージョン情報はUSBメモリとして認識されてるときにinfo.txtの中に記載されている模様。

あとはNintendo SwitchのDockに接続するとBモードになって緑色のLEDが点滅しだすので、赤いボタンを押してペアリングモードに変更する。(すると点滅も早くなる)
コントローラ側をペアリングモードに変更する。
あとは自然とペアリングが終わって使えるようになるはず。

どうもXbox Oneコンがペアリングできないので先程のファームウェアアップデートから2019-12-02のFix X1S joypad update bugっていうのを入れたら治った。これを入れてもv1.6のままだったのでセッティングデータを更新したのかな?

Proコンも持っているけどこれで複数人プレイにもつかえるしね。
Proコンみたいにスタンバイ解除とかはできないっぽい。

N100のときもやったけど分解してみた。
爪で引っかかってるだけなのでかんたんに開く。

メインマイコンはnuvotonのNUC505YLA2Y、Bluetooth用にRDA 5875Yを使用しているみたい。さすが中国プロダクトだ…安いしなぁ

ちなみにこれ、PCにコントローラーをワイヤレスでつなぎたいときにもドングルとして使えるっぽい。

2020年5月14日木曜日

USB PD対応のLightningケーブルを買ってみた

Lightningケーブルなんだけど、USB PD対応しているとiPhone 8以降や2019年以降のiPadで急速充電が使えるっぽい。
そしてたまたま50%オフのクーポンコードと15%オフクーポンがあったのでRampowというメーカーのMFi認証なUSB Type C Lightningケーブルを購入してみた。
どうやら今月末まで使えるらしい。
1598円の65%オフで559円だった。
前見たときより販売価格が高くなってる気がするけど、気のせいかな…
まぁ純正品だと2000円ぐらいするし、そもそも標準のType AのMFi認証付きケーブル絡みても安い。

ちなみにMFi認証されていないUSB Type C Lightningケーブルは今のところUSB PD非対応品しか出回っていない(本体側で制限かけてたらダメそう?)ので急速充電したい人はMFi品を購入したほうが良い。
このケーブル、Lightning側の端子が純正より大きいのでアルミケースとかだと刺さらない…
純正のPD対応のケーブルとかどうなんだろうなぁ

2020年4月25日土曜日

ラズパイでSoftetherをセットアップしてみた

ラズパイでVPNが使いたかったのでDD-WRTで使っていたSoftetherを入れてみた。Windowsの管理ツール便利だし。

とりあえずラズパイでSoftether VPNをビルド。
wget https://jp.softether-download.com/files/softether/v4.34-9745-rtm-2020.04.05-tree/Linux/SoftEther_VPN_Server/32bit_-_ARM_EABI/softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-arm_eabi-32bit.tar.gz
tar zxvf softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-arm_eabi-32bit.tar.gz
cd vpnserver
make
makeすると同意するか聞かれるので同意する場合は1を三回押せば良い?
ビルドするバージョンによってダウンロードURLとかファイル名を適宜…

makeが終わったらとりあえずsudoできどうしてみる
sudo ./vpnserver start
これでSoftetherが起動したはずなのでWindows側の管理ツールで設定してみる。
管理ツールはSoftether VPNのページから
こんな感じで選択するとZIPでダウンロードできる。
vpnsmgr.exeを起動して
新しい接続設定を作成する。とりあえずラズパイで使ってなさそうな5555で接続してみた。ホスト名でもIPアドレスでも接続可能っぽい。
初回接続時にパスワード設定を求められる。次回設定画面にログオンするときに必要なので忘れないように。
ウイザードに従って設定する。とりあえず仮想ハブ名はVPNで進めた。
DDNSも使えるのは便利。とりあえずアドレスはあとからでも変更できるのでvpnなんとか.softether.netのアドレスだけメモってそのまま進める。
iPadからも使用した買ったのでL2TP over IPsecにチェック。iPadのVPN設定に必要なのでIPsec 事前共有鍵は忘れないように。

VPN Azureは無効にしておいた。

最後にユーザーだけ作っておいた。LinuxだとVPN経由だと鯖自分自身にアクセスできないのでローカルブリッジは後で設定する。
とりあえずこれでウイザードは完了。
あとはローカルブリッジ設定で仮想HUB "VPN"を選んで、新しいtapデバイス"vpn"と入力してローカルブリッジを追加をクリック。
上の表で動作中になれば完了。





2020年4月19日日曜日

SSD1309な2.42インチOLEDモジュールのI2C版

2.42インチのSSD1309なOLEDモジュールがAliexpressでやすかったのでポチってみた。
SSD1309なOLEDモジュールはSPI接続が多くてI2Cで使う場合はジャンパで変更したり改造したりしないといけないイメージだけど、最初からI2Cなやつが売っていた。
1.3インチとかだと袋だったりするけど、2.42インチはケースに入って送られてきた。まぁお値段も倍以上するしな…
付属のピンヘッダをハンダしてみた。縦置きと横置きのどちらでも使えるようにピンヘッダを取り付けるところは2箇所あるっぽい。このモジュールはI2Cのみ対応なので4Pinしかない。
裏面にはI2Cアドレス変更ジャンパが存在する。
Arduinoのライブラリだと0x78にジャンパをセットすると0x3C、0x7Aにセットすると0x3Dになる。
あとD2のところに「ACK responseが必要なときはD2をショートしてください」と書かれてる。前回改造した1.54インチOLEDモジュールは普通にジャンパしていたところだとおもうけど…

とりあえずそのままの状態でArduinoで試してみた。
使用したライブラリはThingPulse OLED SSD1306ライブラリ
SSD1309とSSD1306は制御コマンドが同じなのでSSD1306のライブラリがそのまま使用できる。

この状態ではサンプルが動かない…
ということで先程のACK応答が出る仕様に改造してみた。
D2のダイオードを取り外して、かわりに75Ωの抵抗を実装してみた。ショートと書いてあるので0Ωの抵抗とかでも大丈夫だと思う。逆に抵抗値が高すぎるとうまく動かなそうなので無難にショートの方がいいかも。

そうすると先程のライブラリで画面が映るようになった!
ACK応答を見ないでじゃんじゃんデータを送るようなプログラムだと多分この改造がいらないのかもしれない。

ちなみにThingPulseのライブラリで他のI2Cデバイスと共存させたい場合は初期化のところを
SSD1306Wire display(0x3c, SDA, SCL, GEOMETRY_128_64, I2C_ONE, -1);
にしておくといいかも。
その場合は
display.init();
の前に
Wire.begin(SDA,SCL);
も忘れずに。(SDAとSCLを変更する場合はdefineも忘れずに)
これならESP32でHW I2Cを使ってLCDとその他センサ類を共存できた。

やっぱり2.42インチ、大きくて見やすい。この解像度で0.96から2.42まであるけど2.42まで行くとドットのあらさが目立つようになるのでフォントもそれに合わせて選定するとよりかっこいいかも。

ちなみにI2C版のモジュールも何種類か存在するみたいで、今回購入したのはRESET回路が内蔵されているタイプだったけど、RESETピンが出てる5ピンタイプも存在してた。この場合はマイコンからリセットするか、リセット回路を内蔵すれば良さそう。SSD1309って結構リセットがシビアな感じがするのであえて外に出しているのかな…

2020年4月12日日曜日

HAKKO FX-600を買ってみた。

しばらく前から一応はセラミックヒーター式のハンダゴテを使っていたのだけども、会社で使っているハンダゴテがすごく良かったので購入してみた。一応ステーションもあるんだけどこっちのほうがサクッと出してハンダできて愛用していたので。
HAKKOのFX-600ってやつ。
Amazon限定のクリアモデルにしてみた。

コテ先はT18-CF2をチョイス。T18-C2も使ったことあるんだけど面のみのコーティングのほうが自分的には使いやすかったので。
まぁ半田するものにもよるんだろうけど、コテ先交換面倒なのでオールマイティーな感じのやつに。

温度調整が手元でできるの便利だし、電源入れてすぐに使えるのがすごく便利。
もっと早めに買っておけばよかったかもしれない…