2024年8月25日日曜日

KTV-FSPCIEの外付け化USBケーブルを作ってみた。

 昨日改造したKTV-FSPCIEラズパイ録画環境で使うべく、外付け化するためのUSBケーブルを作ってみた。まぁそもそもPCで使うにしても外付けで使おうと思っていたし。
ちなみに動作確認や書き換えのときはainexのケース用USBケーブルみたいなケーブルを使用していた。これだとなんかスッキリしないし…

KTV-FSPCIE上にあるUSBコネクタはJSTのPHコネクタの4Pinなので、これに純正のケーブルと同じピンアサインで作成すれば良さそう。PHコネクタはよくUSBマウスとかの内部接続で使われてたりすんだけども、ピンアサインはメーカーによってバラバラだったりするので注意かも。今回はたまたまマルツで売っていたZL2001-4PSというオスメスセットが余っていたのでこれを使ってみることに。

とりあえずテキトーなケーブルをカットしてコンタクトを圧着する。シールドケーブルの場合はGNDの黒いケーブルとシールドの部分を同時に圧着すれば良い(純正がそうだったので)。
圧着にはホーザンのP-706を使用した。

KTV-FSPCIE

ピンアサインは1番Pinから5V(赤)、D-(白)、D+(緑)、GND(黒)だった。ちなみにKTV-FSPCIE上でいうと1番PinはPCIEポート側(下側)。
これでだいぶスッキリ配線することができた。
ちなみに既製品でもPHコネクタがついたUSBケーブルがあるっぽいんだけど、画像を見る限りピンアサインが真逆になっているので、こいつを購入してピンを入れ替えるというのも手かも。カッターの刃とかを爪に入れてやれば外せるし。

USBケーブルが完成したのでとりあえずTvTestで動作確認がてら、MX版じゃないKTV-FSUSB2Nとの比較をしてみた。ちなみにアンテナはBSと混波されているCATVパススルー環境。分波器は使わずにとりあえず直結してみた。

KTV-FSUSB2(チューナーIC:NXP TDA18211HD/C2)のチャンネルスキャン。一応全てのチャンネルがスキャンされてる。
しかし分波器なし環境ではC20しか映らない…C20以下のチャンネルはTvTestだとワンセグに自動切替されてしまう。分波器を通すとC17以外はちゃんと映る。
そんでもってMX版のKTV-FSPCIE(チューナーIC:MAXLINEAR MXL136)のチャンネルスキャン。ほぼすべてのチャンネルで電波強度が高そう。分波器を通さなくても全てのチャンネルがちゃんと映る。C20での比較だと電波強度が5dBぐらい高い感じで、34~35dBは出ていた。
ちなみに分波器を通すとチャンネルスキャンはこんな感じ。ほぼすべてのチャンネルで電波強度がMAXだった。

ということでCATVパススルー環境ではMXL136を搭載したMX版が最強ということに。普通の地デジ環境ならどっちでもちゃんと映るんだけどね。S270(PX-S1UD V2.0)とかもCATVパススルーが苦手だったりするのでCATVパススルーでTS抜きUSBチューナーだとMX版のKTV-FSUSB2(K1103以上)かKTV-FSPCIE(K1102以上)がおすすめかな。ちなみにITE版もあるらしいけどどうなんだろ…

ちなみにCATVパススルー環境での問題なのでおそらく通常のアンテナを上げている環境だと電波が悪い地域以外はそこまで気にしなくても良さそう。

2024年8月24日土曜日

KTV-FSPCIEをWindows 10でTS抜き改造

 KTV-FSUSB2のK0806を使っているんだけども、分波器に繋いで電波強度の対策をしても一部映らないチャンネルが有ったので、チューナーICとしてMXL136が載ってるKTV-FSPCIEを見つけたのでポチってみた。K0806は中期型でチューナーがTDA18211HD/C2なんだけど、後期型のMXL136のチューナーが感度いいという噂があったので試してみたかったし。あとはKTV-FSPCIEのほうが外付けで使うにしてもアンテナ端子が直結なので感度が良さそうというのもある。ちなみにPCIEと言いつつ中身はUSB接続なので外付けで使う前提で購入。

今回入手したKTV-FSPCIEはシリアルナンバーがK1107で基板にISDBT-6005_V1Bというシルク印刷があるものだった。もはや10年以上も前の製品だけどもPCで地デジを見るならコスパいいと思う。純正状態ではWindows 7までしか対応していないので(Windows 8でも動くかもしれないけど)改造前提だけれども、TS抜き改造すればWindows 11でも使える優れ物。

K1102以降のKTV-FSPCIEはR19の抵抗(1005サイズ0Ω)を外してEEPROMを書き込み可にしたらあとはPC上の作業だけで完結できるらしい。チューナーがMaxLinear製に変更になった、いわゆる"MX版"と呼ばれる個体からはサルベージ配線が要らなくなってるっぽい。

ということでとりあえずR19の抵抗を取り外す。ハンダがない人はカッターとかで破壊したりするようだけど、今回は書き込み禁止に戻せるようにハンダで取り外した。

ソフトウェアの方は「FSPCIE-K1102のファーム書き換えツール2」を使用させてもらった。
(ダウンロードオプションの「オリジナルのファイルネームで保存する。」のチェックを外さないとダウンロードできなかったので注意かも。)

Windows 10とかWindows 11だとドライバの署名の問題ではそのままドライバが使えないんだけど、WinUSB1.9ベースのドライバのようなのでWinUSBをZadig経由でインストールしてみた。

まずはインストール用ファイルの準備。

[device]
Description = "ISDB-T DTV Tuner KTV-FSPCIE"
VID = 0x0511
PID = 0x0238
GUID = "{b35924d6-3e09-4a9e-9782-5524a4b79ba4}"

これをコピペしてメモ帳とかに貼り付けてfspcie.cfgで保存する。

[device]
Description = "EEPROM Writer (FSUSB2N)"
VID = 0xEB1A
PID = 0x2874
GUID = "{b35924d6-3e09-4a9e-9782-5524a4b79ba4}"

こちらもコピペして上と別ファイルでe2pwriter.cfgで保存しておく。2つともファイル名は何でも良い。

この2つのファイルを準備したら、KTV-FSPCIEをUSB接続している場合はUSBを抜いておく。

Zadigをダウンロードしてきて実行する。

左上にある「Device」をクリックし、「Load Preset Device」を開く。

そしたら先程作成したfspcie.cfgを読み込んで、WinUSBになっていることを確認して「Install Driver」ボタンをクリック。少し時間がかかる。

終わったら一旦Zadigを閉じてもう一度さっきの手順で今度はe2pwriter.cfgを読み込んでDriver Installをする。このときこちらの場合もWinUSBになっていることを確認すること。

2つともドライバーがインストールされたらKTV-FSPCIEをUSB接続し、ファーム書き換えツール2のセットの中に入っている「fwtool.exe」を実行する。ちなみにZadigでドライバをインストールするとデバイスマネージャー上では「ユニバーサル シリアル バス デバイス」の分類になる。

Zadigでドライバインストールが成功しているとこんな感じでデバイスが表示されるのでリストからデバイスを選択してから「開く」をクリック。
デバイスを開くと"妨害有"になっていたのでやっぱりこの個体は未改造だった。
ということで書き換えを進める。
「外ROM無効化」をクリック。
Errorが出ずに完了したらfwtoolを一旦閉じる。KTV-FSPCIEもUSBの接続を一旦取り外す。
取り外して10秒待ったらもう一度USBに接続する。するとEEPROM Writerとして認識するはず。ドライバは上の手順でZadigでインストールしてるのでそのまま認識するはず。
fwtoolをもう一度開く。
するとさっきとはVIDとPIDが違うデバイスで認識できてるはず。このデバイスをクリックして選択し、開くをクリック。
CRC32が0400E2AEになってることを確認して、「File書出[0]=26h」ボタンを押す。そしたらファイルの保存画面が出るので「eeprom.bin」として保存する。

保存したeeprom.binを書き換えツール2のKTV-FSUSB2.patが入ってるところに移動して、
Quick Beを起動する。
「ファイル」→「パッチファイル実行」を開いて、パッチファイルのところで参照ボタンをおしてKTV-FSUSB2.patを指定して実行する。パッチを適応したeeprom.binをfwtoolと同じところにおいて(書き換えツール2を使えば自動的に同じところにあるはず)fwtoolを起動。
先ほどと同じようにデバイスを選択して開いたら、「Original書込」ボタンが押せるようになってるはずなのでこのボタンを押す。
意外と時間がかかるので待つ。このときにUSB抜き差しとかするとKTV-FSPCIEが壊れたりするので注意。
書き込みが完了したら次は「Patch書込」ボタンを押す。
書き込みが無事成功したらfwtoolを閉じて、一旦KTV-FSPCIEをUSBから取り外す。

次はKTV-FSUSB2Nの手順でドライバをインストールする。PIDの部分も"PID = 0x0029"のままでOK。というのもKTV-FSUSB2.patの中身を見てみると、このパッチを当てたファームウェアを書き込むとPIDがKTV-FSUSB2 K0905と同じになるっぽい。(0000006A、0000006Bの箇所)

あとはTvTestとBonDriverで視聴できるようになってるはず。Windows 11対応になってts抜きもできる様になってる。もはやこの改造はTS抜きするためだけじゃなくて新しいPCとかLinuxで使う場合にもだいぶ有効な手段かも。ツールも軽いし。

例によってこのチューナーは、マンションやアパートではよくあるBSアンテナと混波されてる場合は分波器を間に挟んだほうが電波強度が高まるっぽいので装着することをおすすめする。

ついでにKTV-FSUSB2N化できてしまったので、このままChinachuが入ったラズパイのKTV-FSUSB2Nと差し替えて使用できそう。

2024年8月3日土曜日

HDMI非対応な楽ナビでFireTV Stickを使ってみた。

 知り合いがプライムセールでFireTV Stickを買ってカーナビにつけたいというのでナビを確認してみた。するとHDMI非対応な楽ナビだったのでHDMIをコンポジット(RCA)に変換して繋いでみることに。

ナビの品番はAVIC-MRZ09だった。この世代のナビは3.5mmの4極端子からコンポジット入力に対応している模様。RCA入力端子を使うにはCD-VRM200っていうオプションケーブルが必要らしい。3.5mmの4極端子は統一規格がないんだけど、カロッツエリアは昔のiPodとかラズパイと同じ規格らしい。なので例によってカモンの435A-RF3なら黄色と赤色端子を逆に繋げば使えそう。

そんでもってRCAにHDMIを入力するためにはHDMI→コンポジット出力変換アダプタが必要なんだけど、最近は結構安いのが出ているみたい。MINI HDMI2AVってのがFireTVだと電源不要でRCA出力できそうだったのでこれを購入。(HDMIの5V信号を使用している?)カロッツエリアのピンアサインの3.5mmジャック→RCAケーブルがどうしてもメスしか見つけられなかったのでこいつ自体を改造して4極の3.5mmジャックを出すことにした。

というわけで早速分解。蓋は爪でハマっているだけなのでヘラを突っ込んで角にある爪が4個はずれれば簡単に開く。

HWH-AV003
中身はとてもシンプルな感じ。MS1836Sの1チップ構成っぽい。

まずはしてRCAの端子とNTSC/PAL切り替えスイッチを取り外す。基板はNTSC固定でジャンパしておいた。

次に4極の3.5mmジャックにケーブルをハンダ付け。ピンアサインは先端から白(L音声)、赤(R音声)、GND、黄色(映像)なので、この端子だとケーブルにかしめる部分がコンポジット信号になってしまうのでカプトンテープなどを貼って絶縁してから固定した。
ケーブルは映像と音声のシールドケーブルで一応分けておいた(3芯のシールドケーブル持ってなかっただけ)
ケーブルを基板にはんだ付けしたあとに一応ホットボンドで固定しておいた。しかし車内で使うならホットボンドは温度的にあんまり良くなかったかも…
NTSC/PAL切り替えスイッチの穴からケーブルを出すといい感じに固定されてちょうどよかった。一応HDMI2AV MINIの方の電源はFireTV Stickからうまく供給されてそうだった。HDMIデバイスによってはうまく供給できなくてチラついたり映らなかったりするらしいのでそのときはUSBから給電する必要があるらしい。

AVIC-MRZ09の場合はUSBとミニジャックのケーブルが一緒に延長されている(CD-UV020M)のでそのケーブルをダッシュボードに出して、ミニジャックに先ほど作成したアダプタを刺して、USBからFireTVの電源を取ってみた。結構スマートに収まった。

画質的にはコンポジットなので文字が少し潰れるけど映像を再生する分には問題なさそう。一応FireTV Stickの設定は720pにしておいたほうがいいかも。

2024年7月21日日曜日

Fire TV StickのWiFi接続改善してみた。

 FireTV Stickを更新してもう3台目ぐらいになるんだけど一向にWiFiでは不安定。というか電波が弱い。今まではLANケーブルで接続してたんだけど、実は位置が悪いんじゃね?ということで改善してみた。

事の経緯はFireTV Stickがテレビの後ろにあるとホコリまみれになるのでテレビ台のなかにぶち込んでやろうと思ったんだけど、もしかしてテレビ台は木製なのでテレビの後ろにあるより電波環境が良くなるんじゃない?ということでやってみた。

HDMI延長ケーブルの1.5mのやつ。Twozohっていうよくわからないメーカー製のHDMI2.0対応品。結構表面がザラザラしている。ケーブルが硬いんだけどテレビ台の中を通すのは逆にやりやすいかも。
これがもともとテレビの後ろにつけていたFireTV StickとLANアダプタ。自作のUSB変換アダプタを使って接続している。結構ホコリまみれになっていた。
さっそく延長ケーブルに接続してWiFiのスピードテスト。(Silkブラウザ使用)11axだとこの距離だと30Mbpsしか出ない…しかし2.4Ghz帯の11nで繋いでみると75Mbps。これは許容範囲かも。やっぱり遠いところだと2.4Ghzのほうが速いのねぇ。いままでUSB2.0経由のギガビットLANなので300Mbpsぐらい出ていたんだけどFireTV Stick 4Kなら75Mbps出てれば上出来でしょう。
ちなみに裏表でもスピードが結構変わったのでいろんな向きで試してみるといいかも。

2024年7月14日日曜日

ラズパイ3Bで11ac無線LAN子機を使ってみた。

 ラズパイ3B(+じゃないほう)を未だに録画環境として使っているんだけど、TSファイルの転送が遅いのが気になる。3BはLANが100Mbpsまでしか対応していないし、内蔵WiFiもそんなに早くない。

というわけでOrange Piで使用していたTOKAIZ TWA-001を使用してみることに。このWiFiアダプタは11ac対応で433Mbpsの1ストリーム対応なのでラズパイに繋いでどのぐらい出るのかなということで。まぁギガビット対応のUSB LANアダプタを使ったら300Mbpsぐらいは出るらしいんだけどね…

ラズパイ3Bに現在入ってるOSはbullseye(カーネル6.1.21-v7+)で、試しにTWA-001を指してみたけど反応なし。bullseyeにはrtl8811cuを動かせるモジュールは入っていないっぽい。ビルドしないといけないな…

8821cu-20210916
今回はこのモジュールを使用することに。RTL8811CUとRTL8821CUは同じモジュールで動いて、RTL8821CUにBluetooth 4.2がついてるだけの違い。このモジュールは一応Raspberry Pi OS対応なのでそのまま動くはず…

インストール手順も書いてあるとおりにコマンドを実行していくだけで簡単だった。

sudo apt-get install raspberrypi-kernel-headers build-essential bc dkms git
mkdir -p ~/src
cd ~/src
git clone https://github.com/morrownr/8821cu-20210916.git
cd ~/src/8821cu-20210916
sudo ./install-driver.sh

こんな感じでインストールスクリプトを実行すると10分ぐらいでビルドが完了する。最後に設定変更するか聞かれるけどとりあえず設定はデフォルトで問題ないと思うのでnでそのまま終了した。

インストールもやってくれてるっぽいので、ラズパイを再起動してifconfigをするとインターフェースが増えてる!エラーも出ずに意外とあっさりビルド完了してびっくりだ…

この録画用ラズパイはCUI運用なのでCUIからWiFiに簡単に繋げられるように設定してみた。

sudo raspi-config

で設定ツールを開いて

Advanced Optionsを選択
Network Configを選択
NetworkManagerに設定

これであとはコマンドラインに戻って
sudo nmtui

をするとNetworkManager TUIでWifiに接続できるようになる。
Activate a connectionを開くと

こんな感じでUSB Wi-Fiという項目が追加されている。あとはつなぎたいネットワークを選択してエンターを押すとパスワードを入力する画面が出るのでこちらから簡単に接続できるようになった。

速度比較をやってみた。SMBサーバでTSファイルをPCに転送するときのスピードを測定。
まずはLANポート。こちらは11.1MB/sぐらい。
次は内蔵WiFi(11n)。LANの半分以下で4.5MB/sぐらいしか出ていない。
次はTWA-001(11ac)。LANの2倍の22.2MB/sぐらい出ていた。
ちなみにWiFiは廊下挟んで隣の部屋に親機がおいてある感じ。理論値433Mbpsに対して180Mbpsぐらい出ていた。もしかしたら2ストリームのRTL8821cuだったらもうちょっと出るかも。

とりあえず速度が二倍になったのでこれで運用してみようかな。DKMSも勝手に設定してくれるっぽいのでアップデートしても安心だし。

ちなみに別なラズパイ3BにBookwormを入れてみたら最初からカーネルモジュールが入っているっぽくて指すだけで認識した。こちらはDesktop環境を入れているんだけどちゃんとWiFiデバイス2つ分表示できる。BookwormからDebianベースのカーネルパッケージに切り替わったからカーネルモジュールも結構いろいろはいってるのかな?Armbianでもそのまま認識したし。
テレビ録画環境もBookwormを入れたいけどChinachu関連がちょっと古いので入れにくそうな感じするし、とりあえずビルドしても簡単に入れられるので問題ないかな。

2024年7月6日土曜日

Xboxコントローラが操作不能になるので対策してみた。

 先日Xbox ワイヤレス コントローラを買い替えて、PCとはマザボ内蔵のBluetoothで接続しているわけだけども、時間がたつとプレイ中でもたまに接続が切れるので対策してみた。

症状はというと、コントローラー側のLEDは点灯していてちゃんとつながっているようなフリをしているんだけど、実際コントロールが効かなくなる感じ。電池を抜いてXboxコントローラを再起動してやると今度はLEDがずっと点滅していてBluetoothの接続先が見つからない感じになる。つまりXboxコントローラじゃなくてPCのBluetoothアダプタ側の問題?ということでPC側の設定を変更してみることに。(一応コントローラのファームウェアアップデートとかも試したけどだめだった

マザボはGIGABYTE B550I AORUS PRO AX [Rev.1.1]を使っているんだけれども、これにはWiFiモジュールといっしょにBluetoothが内蔵されているのでこれでいつもプレイしていたんだけどもシェアボタンがついてないバージョンのコントローラー(Model 1708)だと問題なく使えてた。Model 1914でBluetooth周りが変わっているらしい(BLEのみの対応になった)ので、とりあえず試しにBluetoothアダプタ周りの設定を変更してみた。

RZ608
マザボに内蔵されているBluetoothアダプタはRZ608が使われていて、Bluetooth 5.2に対応している。このアダプタ自体では電源の管理の設定タブが無かったので上位デバイスの設定を変更してみる。
デバイスマネージャーでBluetoothのところのRZ608を選択した状態で、上のバーの「表示」をクリックして、「デバイス(接続別)」に切り替える。
そうするとRZ608の上位デバイス(RZ608のBluetoothアダプタが接続されている先)がわかる。
よくあるM.2接続のWiFi&BluetoothモジュールはWiFiはPCIEに接続されていてBluetoothはM.2スロットのUSB配線部分に接続されている事が多いんだけどRZ608もそのパターンみたいでUSBに接続されていた。ということでRZ608がつながっているUSBルートハブを右クリックしてプロパティーを開く。
するとRZ608にはなかった電源の管理タブがあるのでここの「電力の節約のために、コンピューターでこのデバイスの電源をオフにできるようにする」のチェックを外す。

とりあえずこの設定にしてゲームをプレイしてみているけど今のところ途中でコントローラが切れたりしていないので大丈夫そう。

このパターンはよくあるっぽいのでBluetoothマウスが途中で動かなくなったりBluetoothイヤホンが切れたりする場合もこんな設定を試してみるといいかも。

もしBluetoothの設定で治らなかったらXbox Wireless Adapterでも購入してみようかなとかも思っていたんだけども、遅延を測定している人によるとXboxワイヤレスコントローラのBluetoothの遅延ってそこまででもないみたい。自分のプレイするようなゲームだとわざわざ購入する必要もないような感じだったので今回この設定だけで治ってよかった…

2024年6月28日金曜日

Raspberry Pi Zero 2 WでKlipperを使ってみた。

 友人が3DプリンタをKlipper化したいといっていたのでラズパイZero2WにOctoprintとKlipperをインストールしてみた。

ラズパイZero2Wはスイッチサイエンスが送料無料だし一番安そう?SDカードはオーバークロック実績アリのKIOXIAにしてみた。
Zero2Wは3Bより性能上がってるらしいのに小さい。Allwinner H3でもOctoprintとKlipperが動いていたので大丈夫そうかな。
OSはとりあえずRaspberry Pi OS Lite(64bit)にしてみた。Bookwormなのでちょっと心配だったけど。(Python2が入ってない)

OSインストールが終わったらconfig.txtでSDカードを125Mhzに
dtparam=sd_overclock=125
これで正常に起動したので大丈夫そう。
あとはディスプレイを使わないでWifiに接続できるようにheadless Wifi設定ツールをインストール。今回はComitupを使用した。
wget https://davesteele.github.io/comitup/deb/davesteele-comitup-apt-source_1.2_all.deb
sudo dpkg -i davesteele-comitup-apt-source_1.2_all.deb
sudo apt-get update
sudo apt-get install comitup
このツールを入れておくとWifiにつながっていないときはSoftAPで立ち上がってきてそのAPにスマホとかで接続してWebUIでWiFiを設定することができるので便利。

Octoprintの方はフォーラムのとおりにインストールを進めたらとりあえずインストールできた。途中wheelでうまくいかなかったんだけどなんかいかやっていたら通った…

Klipperの方はインストールマニュアル通りにやってもPython2が入っていないのでそのままだとインストールできなかった。
install-octopi.shの中身を少し書き換える必要があった。
python-devをpython-dev-is-python3に置き換えて、python2をpython3に置き換えて保存。これで実行したらとりあえずインストールできた。
ファームウェアのビルドも問題ない感じ。

とりあえず一通りのソフトウェアはインストールできたのであとはラズパイZero専用USBハブを使って3Dプリンタ側に繋いでみるしか無いかな。