YDiary

メモ的な

「サーマルスロットリングまできっちり回せ!!」 第12世代Intel Core i9-12900KFレビュー

メインマシンのCPUをi7-6700Kからi9-12900KFにアップグレードしたのでそのレビューです。

アップグレードのきっかけ

もともとのi7-6700Kで性能的には特に困っていなかったのですが、もう6世代も前だしAlder LakeからDDR5とかbig.LITTLEとか面白そうな要素がてんこ盛りで楽しそうなので思い切ってアップグレードすることにしました。

あと、一番大きな理由はi7-6700KがWindows 11でサポートされなくなったことです。 別にWindows 10のままでも当面は問題ないといえばないのですが、メインマシンが最新OSでサポートされないような古いPCというのも悲しい話なので……。

アップグレード先としてはAMDでも良かったのですが、せっかくならZen4が良いなーと思うとまだまだ先になりそうなので今回はIntelにしました。
Alder LakeとWindows 11の登場タイミングといいIntelとMSのマーケティング戦略的な何かを感じますね。

新マシンの構成

パーツ 型番 メモ
CPU Intel Core i9-12900KF
CPUクーラ Noctua NH-D15
メモリ ARK ARD5-U32G88MB-48B-D DDR5-4800 32GB (16GBx2)
マザボ MSI MPG Z690 CARBON WIFI
GPU ASUS DUAL-RTX2070-O8G-MINI 流用
GeForce RTX 2070 8GB
OSストレージ Transcend TS1TMTE220S 流用
PCIe M.2 SSD (2280) 1TB NVMe PCIe Gen3 x4 3D TLC
電源 SILVERSTONE SST-ST1200-G 流用
1200W 80PLUS Gold
ケース Cooler Master CM 690 II Plus 流用
OS Windows 10 x64 → Windows 11 x64

アップグレードなのでCPU、メモリ、マザボ周り以外は既存PCパーツの流用です。

f:id:YDKK:20211205140945p:plain
新規に購入したパーツはこれだけ。

パーツ選定

CPU

パーツ選定時点では第12世代Intel CoreのCPUとしては

型番 価格 スペック
i9-12900K 79,799円 16 (Pコア8+Eコア8) コア 24スレッド
i7-12700K 53,980円 12 (Pコア8+Eコア4) コア 20スレッド
i5-12600K 39,000円 10 (Pコア6+Eコア4) コア 16スレッド

という感じで、内蔵グラフィックス非搭載のF付きモデルが↑の価格-3,000円(i5のみ-2,000円)といったところでした。

「うーん、まぁこの価格差なら迷わず最上位でしょ」という感じでi9-12900Kをチョイスしたかったのですが、発売開始直後はi9-12900Kが品薄で全然手に入りませんでした。そこで仕方なく内蔵グラフィックス非搭載のi9-12900KFを購入。 3,000円差ならQSVでもいろいろと遊べるF無しの方が良かったのでちょっと残念。

今調べるとF無しの在庫も復活してるので、これに関してはもうちょっと待てば良かったかも。

f:id:YDKK:20211205231224p:plain
Intel Core i9-12900KF

CPUクーラ

さて、どうもi9-12900K/KFは爆熱らしいという噂をちょくちょく耳にしていたため、なるべく冷やせるCPUクーラにしたいなと最初は水冷を検討していました。

ただ、流用する予定のケースだとラジエータを外付けにしない限り240mmラジエータまでしか搭載できません。 いい感じの外付けラジエータも見当たらず、中途半端な240mm水冷でメンテナンスに苦労するぐらいならハイエンド空冷で良いのでは?と思い、空冷最強とも謳われるNoctua NH-D15をチョイス。 記事後半にベンチマークスコア等を載せていますが、結果的にこれで正解だった感じがします。

f:id:YDKK:20211205202722p:plain アップグレード前の虎徹と比較するとこんな感じで、幅は増えてるものの高さは低くなっておりメモリなどの周辺部品とも干渉しにくそうな作りでなかなか良さ気なCPUクーラです。

なお、2021年12月現在流通しているNH-D15にはLGA1700に対応したマウントキットが含まれていないため、別途 NM-i17xx-MP83 というマウントキットを入手する必要があります。 こちらのマウントキットは各ショップで1,000円程度で販売されていますが、NH-D15と第12世代Intel Core CPUもしくはLGA1700のマザーボードの購入証明があればNoctua公式から 無料 で届けてもらえます。

国際郵便なので多少日数はかかってしまいますが、DDR5メモリを気長に待ちながら少しずつパーツを揃えていくようなつもりであればNoctua公式に注文するのもおススメです。 すでにパーツが手元にそろっている場合は手持ち無沙汰になってしまうので1,000円払って購入したほうが良いでしょう。 自分が購入しようとしたときは入荷未定だったり転売屋が3,000円で売ってたりしたのでNoctua公式に注文しました。 11月9日に注文したところ11月28日に手元に届きました。

また、数か月以内にはCPUクーラに最初からLGA1700に対応したマウントキットが同梱されるようになると思います。

メモリ、マザーボード

さて、第12世代Intel Coreが発売されてから現在に至るまでの間、最も入手困難なパーツがDDR5メモリでしょう。 自分もCPUを先に確保したは良いもののDDR5メモリが全く手に入らず、年末ぐらいまでに手に入れば良いなぁと半ば諦めムードでした。

social.0ko.me

そんな中、お昼休みにTwitterを見ていると「ARKでDDR5の在庫が復活してる!」とのツイートを見つけます。 その場で確認してみると確かに在庫がある! CPUかマザーボードとの抱き合わせ販売ではあったものの、ちょうどマザーボードをまだ購入していなかったのでこれ幸いと即決で購入。 その後確認したところすぐに売り切れてしまったようで、ラッキーでした。

social.0ko.me

PCは据え置きで有線LAN接続するのでマザーボードWi-Fi機能は完全に不要で、その分もう少し安めのマザーボードが欲しかったのですが、Z690のちょっと良さ気なマザーボードにはほぼ必ずと言っていいほどWi-Fiが搭載されているのでそういうものだと割り切りました。
世の中デスクトップPCでWi-Fi接続したい需要ってそんなにあるんですかね……?

MSIマザーボードは初めてでしたが、今回購入したMPG Z690 CARBON WIFIはCPUの電源周りもしっかりとした構成で、i9-12900Kを十分活かせそうです。 組んでから日が浅いのでまだ何とも言えませんが、この調子で安定して長持ちしてくれれば文句なしです。

一つ気になる点は、UEFIのUIが独特な感じでやや使いにくく感じました。なんというか、Advanced Modeと言いつつEZ Modeの1項目の中に設定が全て詰め込まれている感じ、とでも言うのでしょうか。 あとはUEFIのアップデートがUEFI中からオンラインでできないのもちょっと不便に感じます。これに関してはむしろASUSの方が進んでいるんですかね。

I/Oパネルがマザーボードに付いていて取り付け不要なのはちょっと楽で良かったです。抑えのツメが変な位置に入っちゃってるのに気づかずに組み立ててしまったりすると面倒なんですよね。

ストレージ周りではM.2ソケットが4本もある上にヒートシンクまでマザーボードと一体となって標準搭載されており、ストレージの主役はもう完全にSATAじゃなくてM.2なんだなぁと感じました。

f:id:YDKK:20211205231521p:plain
DDR5メモリ(16GB)

f:id:YDKK:20211205231648p:plain
MSI MPG Z690 CARBON WIFI

組み立て

特に大きなトラブルもなくサクッと組みあがりました。

f:id:YDKK:20211205201458p:plain
こちらがアップグレード前の旧PCで、

f:id:YDKK:20211205201617p:plain
こちらがアップグレード後の新PCです。

CPUクーラは横向きの方がスペース的に余裕があるのですが、CPUクーラはヒートパイプがCPUパッケージの長辺と平行になるように設置した方が良いという記述を見かけたためそのように設置しています。 が、これに関してはヒートパイプの本数が少ないCPUクーラでなければそこまで大きな影響はないような気もします。

仮組した際の動作確認には例の格安USB HDMIキャプチャボード*1が大活躍しました。

f:id:YDKK:20211205214557p:plain
こんな感じで広いスペースで作業しつつその辺のノートPCをディスプレイ代わりに使えるので取り回しが非常に良いです。

性能

さて、お待ちかねのi7-6700K→i9-12900KFでどの程度性能が向上したかについてです。 単純なベンチマークスコアは検索すればいくらでも出てくると思うので、この記事ではi7-6700Kからの性能差i9-12900KFは空冷でも冷やしきれるのかといった点に焦点を当ててみようと思います。

CINEBENCH R23

まずは何も設定を変えていないCINEBENCH R23の10分ベンチマークのMulti Coreスコアです。
特にバックグラウンドアプリを落としたりせず、HWiNFO64でモニタリングしながらの結果なので本体の性能よりは多少低めの結果が出ていると思います。

旧PCではスコアを取っていなかったので、i7-6700Kはインターネット上で調べた参考値です。また、i9-12900Kも360mm水冷できっちり冷やしたらどの程度のスコアが出るのかを見る意味でインターネット上で調べた参考値を付けています。 CINEBENCH R23はCPUベンチマークなので、内蔵グラフィックスの有無の差しかないi9-12900Kとi9-12900KFは実質同スコアと見て良いでしょう。

CPU Multi Coreスコア
i7-6700K (参考値) 5,600程度
i9-12900KF (Windows 10、実測) 25,623
i9-12900KF (Windows 11、実測) 26,146
i9-12900K (Windows 11、参考値) 27,200程度

スコア参照元*2 *3 *4

i7-6700K→i9-12900KFで比較するとなんと4.5倍強もの数値が出ています。 これは普段使いでのコンパイルやビルド時間の短縮などにもつながりそうです。

また、Windows 10→Windows 11で2%程度ですがスコアが向上しており、Windows 11でのAlder Lake向けの最適化*5は確かに利いていそうです。 2%と書くと大した差ではないように見えますがCPU全コアをフルに使うベンチマークでの値なので、様々なワークロードを並行して走らせるような日常使いのパフォーマンスにはもっと大きな影響があるような気がします。

また、360mm水冷でのスコアと比較しても5%程度しかスコアの低下がないため、空冷のNH-D15でも十分性能を引き出せると見て良いのではないでしょうか。

ベンチマーク中のCPUクロック・温度・消費電力

f:id:YDKK:20211205171445p:plain

↑のグラフはCINEBENCH R23でのベンチマーク中(Windows 11でスコア26,146を記録した際)のCPU(Pコア)クロック周波数と温度、消費電力をHWiNFO64でモニタリングした結果です。

グラフから読み取れる通り、i9-12900KFとNH-D15でCINEBENCH R23を回すとCPU温度(黄色)が瞬時に100℃に張り付きサーマルスロットリングが発生します。 一方で、サーマルスロットリングが発生しているから性能がガタガタかというとそんなことはなく、Pコアのクロック周波数(灰色、オレンジ色)はほぼ4,788MHzを維持しつつ、冷却状態に応じて動的にクロック周波数を調節しているような動作が見受けられます。

この結果を見るに、i9-12900K/KFは「サーマルスロットリングが発生することを前提にしつつ、その状態でも冷却が間に合う限り最大限の性能を発揮する」というような設計思想になっていると思われます。 そのためサーマルスロットリングの発生をそこまで恐れる必要はなく、むしろサーマルスロットリングが発生するまできっちりCPU回すことで冷却性能に対する最大限の処理性能を得られるように感じます。 「爆熱で手が付けられないCPU」というよりは「冷却が間に合う限度まで性能を発揮するCPU」と捉えるのが適切でしょう。

それでもCPU温度が100℃になるのはちょっと……と感じる場合は、電力リミットや温度リミットの値を調整することで発熱を抑えた運用も可能です。 電力リミットや温度リミットのチューニングに関しては次の記事で詳しく紹介されているので、気になる方は参考にしてみるのが良いでしょう。

akiba-pc.watch.impress.co.jp

Battlefield 2042

さて、ベンチマークよりももう少し実用的なワークロードに対する性能として、先日発売されたばかりのBattlefield 2042をプレイした際のフレームレートとCPU・GPUの状態を比較してみましょう。

GPUASUS DUAL-RTX2070-O8G-MINI(GeForce RTX 2070 8GB)を使用し、画質オプションは低プリセット、画面解像度はFHD(1920x1080)でのプレイです。GPUドライバは GeForce Game Ready Driver 496.76 で、OSにはi7-6700KではWindows 10、i9-12900KFではWindows 11を使用しています。

i7-6700K

f:id:YDKK:20211205193441p:plain

まずはアップグレード前のi7-6700Kでの結果からです。

なんとRTX 2070を使用しているにも関わらず、FHDの低プリセットでもフレームレート(青線)が約18FPSしか出ていません。 それだけBattlefield 2042が 最適化不足な 重いゲームであることが見て取れます。 こんなフレームレートではまともにプレイできません。

また、GPU Core Loadが15%程度なのに対してTotal CPU Utilityが70%~80%前後を推移しており、CPU負荷がボトルネックとなってGPU性能を活かしきれていなそうなことが読み取れます。

i9-12900KF

f:id:YDKK:20211205194009p:plain

アップグレード後のi9-12900KFでは、GPUを変更していないにもかかわらずフレームレート(青線)が大幅に改善しており、45FPS程度とi7-6700Kの約2.5倍ものパフォーマンスが出ています。 Total CPU Utilityが70%~80%→30%~40%程度に落ち着いた代わりに、GPU Core Loadが15%→35%と増加しており、i7-6700KよりもGPU性能を引き出せていることが確認できます。(それでもまだGPU性能を活かしきれていない感じがしますが。)

また、CPU温度に注目すると、ベンチマークといった極端な例とは異なりゲームプレイといった一般的な用途であればサーマルスロットリングは発生しておらず、NH-D15の空冷でもi9-12900KFを冷やすのに十分な冷却性能があることが見て取れます。 もっとも、Battlefield 2042がi9-12900KFのマルチコア性能を十分に活用しているかは大分怪しい気がするので、CPUのマルチコア性能をしっかりと使うゲームではまた別の結果となる可能性があります。

ところで、快適に遊ぶためにはもう少しフレームレートが欲しいところなのですが、これはGPUをアップグレードするべきなのかDICEによる最適化が進むのを待つべきなのか……。

その他

スリープ復帰後に不安定になる?

どの部分に原因があるのかをイマイチ切り分けられていないのですが、PCをスリープ状態にしてから復帰させた際にWindowsが不安定になる(新しいプロセスを何も立ち上げられなくなり、シャットダウンや再起動もできなくなる)現象がちょくちょく発生していました。

アップグレード前の古いドライバが悪さをしているのかと思い、デバイスマネージャから 非表示デバイスの表示 で出てくる色の薄いデバイスをすべて削除してみたところ再現しなくなった気がするので今はそれで様子を見ています。

Windowsのライセンス認証、外れる

流石にWindowsのライセンス認証は一旦外れてしまいました。

ただ、MSアカウントにライセンスを紐づけていたため ライセンス認証のトラブルシューティングこのデバイス上のハードウェアを最近変更しました とすることで無事に再認証されました。

大幅なハードウェア構成の変更前にはWindowsのライセンスをMSアカウントに紐づけているかどうかを事前に確認しておくのがおススメです。

MSIの製品登録の罠

今回初めてMSI製品を購入したのですが、マザーボードの製品登録を行う際にシリアル番号だけではなく マザーボード上のシールにしか記載されていない CHKというコードが必要でした。当然製品登録はPCを組み上げて問題なく動作することを確認してから行うものだと思っていたので*6、いざ製品登録を行おうとしたところでCHKコードの存在を知り膝から崩れ落ちました。

social.0ko.me

幸いCHKコードが記載されたシールはATX電源ソケットの側面に貼り付けられていたため、頑張って斜めから覗き込むことで辛うじてCHKコードを読み取ることができ、無事に製品登録を行えました。 これがマザーボードの裏に貼り付けられていたりしたら完全に詰んでいたのでそのまま製品登録を諦めていたと思います……。

MSIさん!今からでも遅くないのでマザーボードと一緒に「組み立て前に製品登録用のCHKコードを控えろ!」ってデカデカと書かれたメモを同封するなり何なりしたほうが良いですよ!

おわりに

今回Windows 11でCPUのサポートが切れることを主なきっかけとしてCPUをi7-6700K→i9-12900KFにアップグレードをしましたが、思っていた以上の性能向上が実現できてとても満足しています。

というわけで、以上i9-12900KFのレビューでした。

今回の記事に関連するパーツのAmazonアフィリンクを貼っておきます。 記事が参考になった場合は踏んでもらえるとありがたいです。

*1:Amazonとかアリエクとかで「USB HDMI キャプチャ」みたいなキーワードで探すと出てくるやつ。どうせ1080p30Hzしか出ないので買うなら700円ぐらいの一番安いやつで十分。

*2:https://pcrecommend.com/cpu/cinebench-r23/

*3:https://btopc-minikan.com/cpu-hikaku.html

*4:https://www.gdm.or.jp/review/2021/1104/414061/4

*5:https://pc.watch.impress.co.jp/docs/news/1344898.html

*6:そうじゃない場合は製品登録以前に初期不良でそのまま交換対応になりますよね?

VPNを使うとWSLからTLS接続ができなくなる

問題について

タイトルの通りです。
リモートワーク等でWindows標準のVPN機能を利用すると、何故かWSL内からTLS接続ができなくなるという現象が発生していました。

完全にインターネット通信が出来なくなる訳ではなく、例えばpingや平文HTTPなどは問題なく通信できます。

> ping google.com
PING google.com (172.217.174.110) 56(84) bytes of data.
64 bytes from nrt12s28-in-f14.1e100.net (172.217.174.110): icmp_seq=1 ttl=117 time=51.8 ms
64 bytes from nrt12s28-in-f14.1e100.net (172.217.174.110): icmp_seq=2 ttl=117 time=69.8 ms
64 bytes from nrt12s28-in-f14.1e100.net (172.217.174.110): icmp_seq=3 ttl=117 time=40.1 ms
64 bytes from nrt12s28-in-f14.1e100.net (172.217.174.110): icmp_seq=4 ttl=117 time=66.1 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 40.121/56.953/69.763/11.801 ms
> curl http://google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

ところがTLSHTTPS)接続を試してみると…。

> curl -vvv https://google.com
*   Trying 172.217.174.110:443...
* TCP_NODELAY set
* Connected to google.com (172.217.174.110) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: Connection reset by peer in connection to google.com:443
* Closing connection 0
curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to google.com:443

このように途中でコネクションがリセットされてしまいます。

TLS接続だけかと思いきや、 apt install のような一部のHTTP通信でも通信できなくなる場合があります。

解決策

とりあえずWSLとVPNに関する通信関連のトラブルについて探してみると下のドキュメントがヒットします。

VPN に接続されると、bash のネットワーク接続が切断される
WindowsVPN に接続した後、bash のネットワーク接続が切断される場合は、bash 内からこの回避策を試してください。 この回避策により、/etc/resolv.conf を使用して DNS 解決を手動で上書きできます。

Windows Subsystem for Linux のトラブルシューティング | Microsoft Docs

症状的には似ていますが、どうやらDNSサーバを手動で設定する方法のようです。
今回の症状は、先に述べたようにpingやHTTPが通っているためドメイン名の名前解決自体は何の問題もなく行えています。
そのため、この対処法は今回のトラブルとは無関係でしょう。

さらに探しているとmicrosoft/WSLリポジトリのissueで次のようなコメントを見つけます。

May this could be a fix for you:
Set MTU to the value of the VPN interface:
sudo ifconfig eth0 mtu 1350

While connected to VPN the curl command hangs up · Issue #4517 · microsoft/WSL · GitHub

あー、なるほど。MTU値が原因ね。

というわけでMTU値を調べてみます。

まずはWindows側から

> netsh interface ipv4 show subinterfaces

   MTU  MediaSenseState  受信バイト   送信バイト  インターフェイス
------  ---------------  -----------  ----------  -----------------
  1376                1    1484402     847609  VPN
//...

ふむふむ。次はWSL側

# ip link show
//...
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
//...

はい、ビンゴです。
VPNによってMTU値が減少していたのが正しくWSL側に伝わっておらず、1376バイトを超えるパケットが経路上で破棄されていたため上手く通信できていなかったのでしょう。 pingやHTTPが通ったのはパケットのサイズが1376バイト以内に収まっていたからだと考えられます。
一方で、HTTP通信であるのも関わらず apt install が通らなかったのは、パケットのサイズが1376バイトを超えていたからでしょう。

対処法は上のコメントの通り、WSL側のインタフェースにも適切なMTU値を設定することです。
そうすることで、次のようにVPN経由でも問題なくインターネット通信が行えるようになりました。

# ip link set eth0 mtu 1376
# curl https://google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>

めでたしめでたし。

新しいEdgeでChromecastを使う

新しくなったEdge

2020年1月16日にChromiumベースの新しいEdgeがリリースされましたね.
自分はWindows Updateで適用されるのを待とうと思ってたのですが,どうも日本に対してはその稀有なIT事情*1に考慮して,Windows Updateでの配信は4月以後となるようです.
なので,早めに試してみたい場合は公式サイトからサクッとインストールしてしまいましょう.

Download New Microsoft Edge Browser | Microsoft

なんか環境によってLPは英語なのにライセンス条項がフランス語だったりするみたいですが,インストーラはちゃんと日本語のようです.

拡張機能

さて,ご存じの通りChromiumベースになったので,Chromeの機能が多数使えるようになっています.その中でも拡張機能は基本中の基本ですね.

パッと見Microsoft Storeにある拡張機能しかインストールできないような雰囲気ですが,拡張機能ページの左下にこっそりと配置されているスイッチをオンにすることで,なんとChrome Web StoreからGoogle Chrome向けの拡張機能を直接インストールできるようになります.

f:id:YDKK:20200118183645p:plain
f:id:YDKK:20200118183936p:plain

いやー,他社のインフラにそのままタダ乗りするスタイル.すごく良いですね.

ただし,ほとんどの拡張機能はそのまま動くようですが,Googleアカウントを用いた認証を行うような拡張機能*2などは上手く動作しないようです.おそらくその辺はChromiumではなくChrome側にある独自実装などと連携して動作しているのでしょうね.

Chromecast

さて,拡張機能の他にも,Chromiumベースになったことで使える機能に,Chromecastがあります.
ご存じの通り,Chromecastとはブラウザで再生してる動画や音声などをChromecastデバイスに対してキャストする機能です.例えば,SoundCloudの音楽を,Chromecast Audioを接続したスピーカで再生する,という風に便利に使えます.*3

ところが,どうも公式リリースされたEdgeでは,このChromecast機能が動作しないようです.

f:id:YDKK:20200118190028p:plain
SoundCloudのプレーヤ部分(上:Chrome,下:Edge)

自分はInsider版の頃から新しいEdgeを使っていたのですが,だいぶ前からChromecastには対応しており,技術的にEdgeがChromecastに対応可能であるのは間違いありません.

f:id:YDKK:20200118185547p:plain
Chromecast対応を伝えるInsider向け更新情報

単なるバグなのか,はたまたGoogle側と折り合いがつかなくなって削除されたのかなどは定かではありませんが,ともかく今のEdgeではChromecast機能が使えなくなっています.

EdgeでChromecastを使えるようにする

それでは不便なので,今回はEdgeで使えなくなっているChromecast機能を使えるようにする方法を探してみます.

とりあえずそれっぽいところを探してみると, edge://flags 内に #cast-media-route-provider という項目があり,コレを Enabled にすることで メニュー→その他のツール→メディアをデバイスにキャスト が使えるようになります.

f:id:YDKK:20200118190727p:plain

ただし,コレによって有効になるのはメディアのミラーリング*4のようで,WebサイトのCastボタンは相変わらず表示されないのでメディアのソースをキャストすること*5は出来ません.

ただ,ミラーリングだけでも使えるようになったことから,この辺のコンポーネントがChromecast機能に絡んでいることは間違いなさそうです.そこで,説明文中にある the Media Router component extension とやらについて調べてみます.

すると,どうもそのChrome Media Routerという組み込み拡張機能がChromecast機能の中核を担っているようです.
恐らく,Edgeではこの組み込み拡張機能が削除されたり,無効化されてしまっているのでしょう.

となれば話は早いもので,Chromecastが使える他のブラウザからこの Chrome Media Router 拡張機能を取ってくればいいのです.

Chromecastが使えるブラウザと言えばChromeですね.早速インストールしましょう.

Chrome内では,Chrome Media Router 拡張機能pkedcjkdefgpdelpbcmbmeomcjbeemfm というIDでインストールされているようです.Chromeのプロファイルディレクトリの中(たぶん %LocalAppData%\Google\Chrome\User Data\Default\Extensions あたり)を見てみると,同名のディレクトリが見つかると思います.

f:id:YDKK:20200118192608p:plain

このディレクトリを適当な場所にコピーしましょう.

そして,Edgeの 拡張機能 ページの左下から 開発者モード を有効化し,右上の 展開して読み込み ボタンからコピーした先のディレクトリ内にある 7919.1028.0.0_0 みたいな名前のフォルダ*6を指定して拡張機能を読み込みます.

f:id:YDKK:20200118193027p:plain

するとこんな感じで Chrome Media Router が読みこまれるので,この状態でChromecastに対応しているサイトにアクセスすればちゃんといつものCastボタンが表示され,きちんと機能するはずです.*7

ブラウザ起動時に表示される警告を抑制する

さて,コレで一件落着かと思いきや,ブラウザを再起動すると毎回こんなダイアログが表示されることに気が付くと思います.

f:id:YDKK:20200118193446p:plain

コレは文字通り,非正規の方法でインストールされた拡張機能*8は危険な可能性があるため,必要が無ければ無効化するように促すものです.

Chromeは少し前からChrome Web Store以外からの拡張機能のインストールを完全にブロックする方針であり,Chromiumを使ったEdgeもそのままこの実装に倣っています.先ほど Chrome Media Router をインストールした方法は,開発者が開発した拡張機能をテストするための方法であり,一般ユーザが野良拡張機能インストールの抜け道として使わないように毎回しつこく警告を出しているものです.

さて,このままでは毎回ブラウザを起動するたびにうっとおしいので,Chromecast機能が正式にサポートされるようになるまでのつなぎとして,少しでもこのダイアログの表示を抑制する方法を考えます.

調べてみると,Edgeの実行バイナリを書き換えて当該のダイアログを表示するコードを無効化する方法があるようですが,実行バイナリを書き換えた場合,DRMモジュールであるWidevineの呼び出し元バイナリの正当性検証が通らなくなってしまい,Amazon Prime VideoなどをはじめとするWidevine DRMを利用しているサイトのコンテンツが閲覧できなくなってしまいます.

なので,ここでは Chrome Media Router 拡張機能マニフェストを書き換えて,拡張機能をバックグラウンド実行するように改変します.

先ほどコピーしたディレクトリ内にある manifest.json ファイルを開き,permissions 配列の中に "background" を追加し,拡張機能をインストールし直しましょう.

f:id:YDKK:20200118195144p:plain

コレによって,ブラウザを閉じても Chrome Media Router 拡張機能がバックグラウンドで動作し続けるようになります.

f:id:YDKK:20200118195249p:plain

結果的に,警告の表示頻度がブラウザを起動する度たびから,PCを再起動するたびまで減るので,何とか実用に耐えうるんじゃないかと思います.

なお、Chromeの場合グループポリシで拡張機能のIDをホワイトリストに登録することでこのダイアログを抑制できるようですが、EdgeではグループポリシテンプレートがChromeのものと異なっており、同じ方法は使えませんでした。

フィードバックを送ろう

こんな面倒な作業をしなくても済むように,みんなで早く公式でChromecastをサポートするようにお願いするフィードバックを送りましょう.

f:id:YDKK:20200118195826p:plain

*1:日本のお客様に対しては、確定申告への影響を考慮し、Windows Updateを通じた新しいMicrosoft Edgeの配信は令和2年4月1日以降、順次開始される予定です。 https://blogs.windows.com/japan/2020/01/16/new-year-new-browser-the-new-microsoft-edge-is-out-of-preview-and-now-available-for-download/

*2:例えば,Google Keep Chrome 拡張機能など

*3:関係ないけどChromecast Audio再販してほしいな….

*4:ブラウザ内で再生した音声・動画を転送すること.帯域を多く使うし不安定.

*5:動画や音声のソースURLを送信して,Chromecast内で再生してもらうこと.

*6:多分一つしかないはず.

*7:edge://flags から設定を変更してた場合は元に戻しておきましょう.

*8:いわゆる野良拡張機能

SlackからLINEを使う

はじめに

個人的にLINEが嫌いなので普段は使ってないのですが,その場合LINEで形成されてしまったコミュニティの情報にアクセスすることができなくなってしまいます.

そこで,SlackのチャンネルとLINEのグループなどとの間でメッセージを相互にやり取りするツールを作成し公開しました.

github.com

コレを使うことによって,Slackを使っている人はSlackのチャンネルに,LINEを使っている人はLINEのグループなどにそれぞれメッセージを投稿することで,もう片方のプラットフォームを利用していない場合でも相互にコミュニケーションを図ることが可能になります.

仕組み

f:id:YDKK:20191101220243p:plain

仕組みは単純で,上の図のようにSlack側はIncoming/Outgoing Webhooksを,LINE側はMessaging APIを利用してそれぞれのメッセージを相互に転送することで実現しています.

スクリーンショット

Slack側
f:id:YDKK:20191101223418p:plain

LINE側
f:id:YDKK:20191101223428p:plain

実際に利用している際のスクリーンショットは上のような感じで,お互いにプラットフォームの違いを意識することなくシームレスに利用することが可能です.
(アイコンやスタンプに対応していなかったりはしますが.)

おわりに

実はモノ自体はかなり前から出来ていてずっと使っていたのですが,急いで実装したので他のサービスに相乗りしていたうえに,IDなどがコード中にベタ書きというひどい状態でした.

公開したものは,今後ちょっと使用機会が増えそうだったので,関連付けを拡張しやすいように一から作り直したものです.ちょうど自宅サーバを移行してたり .NET Core 3.0 が出てたので触ってみたかったりというのもあります.

おまけでDockerにも対応してみました.ちょうどGitHub Package Registryもリリースされたので試しに置いてみたのですが,どうもパブリックリポジトリにも関わらずpullするにはGitHubアカウントでの認証が必要なんですね.Actionsとかから使う分には問題ないんでしょうけど,一般に公開する用途だと普通にDocker Hubに置くのが良さそうだなーという気がします.この辺ひょっとしたら自分の理解不足で実はどっかから認証外したりできるのかもしれませんが.

というわけで,SlackからLINEを使うツールでした.

第二種電気工事士を取得した

social.0ko.me

先日,第二種電気工事士試験に合格し,第二種電気工事士を取得*1しました.

IPA試験なんかと違い,業務独占資格なので持ってると一般用電気工作物の工事を行うことが出来るという特典があります.一般用電気工作物とは,ざっくりいうと普通の家などの600V以下の電圧で受電する電気設備のことを言います.

つまり,これを持ってると合法的に家のコンセントやスイッチなんかを弄れるわけです!壁のコンセントを増やしたり,USB給電が可能なソケットに付け替えたり,壁のスイッチをIoTスイッチに取り換えたり,インターホンを交換したりすることなどなどを業者を呼ばずに自分でできるようになるのです.夢が広がりますね.

さて,せっかくなのでそんな便利な資格を取るまでに必要な手順や勉強したことなどを紹介したいと思います.

タイムライン

上期試験に申し込んで合格するまでの流れはこんな感じです.

日付 できごと
3月14日 試験申し込み
5月20日 筆記試験の受験票が届く
5月31日~ 勉強や写真の準備を始める
6月2日 筆記試験
7月4日 技能試験の受験票が届く
7月15日~ 技能試験の勉強を始める
7月20日 技能試験
8月19日 結果発表

3月14日 申し込み

social.0ko.me

兎にも角にも申し込みをしないことには始まりません.逆に言えば,申し込みさえしてしまえば(受験料を無駄にしたくないという思いから)大抵は何とかなります.

取ろうか迷っている資格がある場合はとりあえず申し込みましょう.

5月20日 筆記試験の受験票が届く

social.0ko.me

申し込みをすると,忘れた頃に筆記試験の受験票が届きます.この辺から,そろそろ試験勉強を意識し始めます*2

5月31日~ 筆記試験の勉強や写真の準備を始める

social.0ko.me

social.0ko.me

social.0ko.me

流石にノー勉で試験に臨むのはまずいので,ぼちぼち筆記試験の勉強を始めます.受験票に貼る写真のサイズが45mm×35mmとやや特殊なので,注意しましょう.

6月2日 筆記試験

social.0ko.me

social.0ko.me

social.0ko.me

筆記試験の会場は立教大学の池袋キャンパスでした.

受験票には「会場には時計が無い場合があります」って書いてありましたが,大学の教室なので流石に時計ぐらい置いてあるだろうと思って何も持たずに行ったら*3本当に置いてありませんでした.普段どうやって授業してるんですかね.

social.0ko.me

自己採点

無事に筆記試験を終え,良さそうな手ごたえを感じつつ帰宅.気になるので解答速報を調べたら,その日のうちに上がってたのでそれをもとに自己採点.

social.0ko.me

自己採点の結果は84点でした.

social.0ko.me

筆記試験の合格ラインは6割なので,この時点で勝ちを確信します.

social.0ko.me

7月4日 技能試験の受験票が届く

social.0ko.me

また忘れた頃に技能試験の受験票が届きます.そろそろ技能試験勉強を意識し始めます*4

7月15日~ 技能試験の勉強を始める

social.0ko.me

social.0ko.me

技能試験問題を初見で解いた結果がこちらです.まだ保護被覆を剝く長さなどが全く頭に入っていないため,えらく不格好です.ジョイントボックス部分は短すぎるし,ランプレセクタプル部分は長すぎです*5

また,試験本番では40分で作らないといけないのに1時間以上かかっています.流石に少し焦ります.

そのまま2問目へ

social.0ko.me

一度手を動かすと大分イメージが湧くようになるので,一回目よりはだいぶ出来が良くなります.ジョイントボックス部分なども,作業しやすいように長めに保護被覆を剥くようになってます.時間も大分短縮できましたが,40分ちょうどぐらいかかっているので,まだ時間的余裕は全くありません.

技能試験の候補問題は全部で13問あり,当日はその中から一つが出題されるという形式なので,あと11問練習しないといけません.ただ,問題全体を通してみると結構共通な部分*6も多く,解けば解くほど上達を実感できるようになっています.

ここから先は解くのにかかった時間をダイジェストで紹介します.

問題 解いた日 時間 完成品
問題01 7月15日 1時間以上 https://social.0ko.me/@YDKK/102441374227779059
問題02 7月15日 40分 https://social.0ko.me/@YDKK/102441641722367053
問題03 7月17日 38分 https://social.0ko.me/@YDKK/102455492652853436
問題04 7月17日 37分 https://social.0ko.me/@YDKK/102455988453483141
問題05 7月17日 N/A*7 https://social.0ko.me/@YDKK/102456932539931680
問題06 7月18日 34分 https://social.0ko.me/@YDKK/102457533691344191
問題07 7月18日 33分 https://social.0ko.me/@YDKK/102461166953585129
問題08 7月18日 28分 https://social.0ko.me/@YDKK/102461561626475823
問題09 7月18日 25分 https://social.0ko.me/@YDKK/102461766856934354
問題10 7月18日 24分 https://social.0ko.me/@YDKK/102462490827191781
問題11 7月18日 30分 https://social.0ko.me/@YDKK/102462875989746670
問題12 7月19日 30分 https://social.0ko.me/@YDKK/102463127827432830
問題13 7月19日 25分 https://social.0ko.me/@YDKK/102463371556710799

怒涛の追い上げですね.人間やればなんとかなるものです.

問題8を過ぎたあたりから安定して30分を切るようになり,多少安心感が出てきました.

7月20日 技能試験

social.0ko.me

試験会場はTOC五反田でした.滅茶苦茶広いホールを3, 4セクションぐらいに分けて使ってました.

立教大学で時計が無かった件を学習したので,ちゃんと親から腕時計を借りて臨みました.

social.0ko.me

出題されたのは問題12番でした.面倒くさいのでアウトレットボックスを使わない問題が良いなーと思ってたらドンピシャで来ました.残念.

技能試験は誤りや欠陥が一つでもあったら不合格です.途中退室もできないので,これでもかってぐらいに見直しをしましょう.

試験会場には確かに独特の雰囲気がありますが,事前にちゃんと勉強してれば特に問題なくこなせるはずです.

social.0ko.me

手ごたえはバッチリでしたが,自己採点のしようがないので後はひたすら結果発表まで祈るだけです.こっから結果発表までの1カ月がまた長いんですよね….作品群をどこかに運ぶのは難しいと思うので,当日その場で採点するんでしょうけど,それなら結果発表まで1週間もあれば十分な気がします.

8月19日 結果発表

冒頭のスクショトゥートに戻ります.

ここでようやく合格を確認できました.あとは改めてはがきが届くはずなので,それを使って免状発行の申請をすれば晴れて第二種電気工事士となります.

かかった時間や費用など

自分が試験勉強に費やした時間はトータルで20時間程度でした.筆記試験勉強に7時間,技能試験勉強に13時間といったところです.筆記試験と違って,技能試験の勉強は実際に手を動かして作品を作る必要があり,勉強時間を圧縮*8できないのがつらいところです.

費用に関しては,ざっとこんな感じです.

項目 金額
受験料 9,300円
HOZAN 工具セットなど 12,000円ぐらい
技能試験練習用電線&器具セット 15,500円
友達から借りた参考書 0円
免状申請手数料 5,200円
--- ---
合計 42,000円

ちょっと高い感じもしますが,電気工事を5回ぐらいすれば元が取れるんじゃないですかね.多分.4万円でコンセント弄り放題と思えば安いもんです.

工具

工具については,試験本番でも持ち込みですし,終わった後も手元に残るので良い工具を買うのがおススメです.私はこのHOZANの工具セットを買いました.

特にP-958 VVFストリッパーが滅茶苦茶使いやすいです.のの字曲げもこれ一本で完璧です.

電線&器具

電線と具材に関しては,このセットがおススメです.ちょうど一回分の電線と具材が過不足なく入っています.自分は二週目の練習をする時間がありませんでしたが,もしする場合でも電線をちょっと短めに切断して再利用すれば全然足りると思います.

勉強方法について

筆記試験

筆記試験に関しては,自分は友達から参考書を借りたのと,HOZANのサイトを見ながら勉強しましたが,ぶっちゃけ6割取るだけならHOZANのサイトを見るだけで十分です.とても良くまとまっていますし,解説動画も分かりやすいです.

技能試験

技能試験に関しては,電気技術者試験センターの公式サイトで過去問(候補問題)が全部公開されているので,それを印刷して臨むだけです.複線図の書き方や細かい解説なども全部HOZANのサイトにあります.

おわりに

というわけで,4万円と20時間ぐらいの勉強で無事にコンセント弄り放題の夢が広がる資格を取得することが出来ました.HOZANのサイトのおかげもあって,取得までのハードルは見かけ以上に低いので,興味のある人は是非挑戦してみると良いんじゃないかと思います.

おまけ

social.0ko.me

*1:正確には,まだ手続き中ではあるものの

*2:まだ意識するだけ

*3:手元にスマートウォッチしかなかったため

*4:相変わらずまだ意識するだけ

*5:多分これだとカバーが閉まらないので欠陥

*6:ランプレセクタプルとかほぼすべての問題で出てくるし

*7:途中でストップウォッチが止まってしまってたため不明

*8:筆記試験の場合,6割を超えれば合格なので,合格できる程度に勉強の手を抜くこと

令和CTF 感想とWrite-up

あけまして?おめでとうございます.

令和CTFお疲れさまでした.

CTF初心者なのでバイナリ問題解けません.

f:id:YDKK:20190501021740p:plain

858人中27位でした.

一応Write-upみたいなのを書いておこうと思います.

フラグの例は

submitするだけ.

bREInWack

brainfuckなので適当にそれっぽい記号に置き換えて実行してみる.

f:id:YDKK:20190501022131p:plain

https://ideone.com/AYIxSP

零は?

ncでつなぐと数式を出されるので答えが0になる?を答える.

root@Main-PC:/mnt/c/Users/Admin# nc zerois-o-reiwa.seccon.jp 23615
[1/100]
0=?-85
?=85
[2/100]
0=64*34-?
?=2176
...

タイムアウトまで十分に時間があるのでWolfram Alphaとかに投げれば手動でも解けそう. ただ,どんどん数式が長くなるのでクエリ長が問題になると思う.

自前で数式パーサ実装しようとして無限に時間を溶かしてたけど,普通にライブラリ使えばいいんですね. mXparser というライブラリを使いました.*1

gist.github.com

適当に書いて,例外出たところでコンソールを見るとフラグが出てた.

[99/100]
0=36*95-27+65-26+98*2*95+89-54*92-36+41*55+73-11+50*32-36+38-71*23-35*21+5-91+33*78*55+19-11+43*22-21*48-59+51+7*52-91-85+82*0+44-85*55-91+75*35-15*65+21*29+54-80+68*47-32-69*2+90*72+19-58+20*63-55-92*80+58-93+99*87-11+79*42*1+33-97*45+82-10+71-17*49*41+1-85+75*50-13+45-27*2+?*0-51-35+12-138234
0
[100/100]
0=42+89*64-35*67+59-50*51-39+8*4-34+23*10-45+48-27*69+17-65*16+3-87+58*68-72+56*65*65+70-22+88-96*83-27*98+86-46*43+46-26*79+11-16+11*74+42-62*14*74+30-92+27*54-1+53*93-18-8+28*48-2*15+56-55*81+18+42-37*70-89*48+59+95-86*51-71+40*26+46-99*56*41-16+34+5-96*29-77*95+82+96*71-98*34+95-0*?+30-18+79676
0
Congratulations!
The flag is SECCON{REIWA_is_not_ZERO_IS}.
NaN
nter RETURN key if connection is not disconnected)

元号発表

PDFファイルが落ちてくる. Acrobat持ってるのでマスク外して終わりかと思ったらQRコードが「令和」で白抜きされてる.

f:id:YDKK:20190501023439p:plain

「これ知ってる!strong-qr-decoderとかに投げるやつでしょ!」 とか思いながら頑張ってtxtファイルに起こして投げてみるも全然デコードできない.

モード指示子:   0100 (8ビットバイト)
文字数: 11
デコードされたデータ: ['0x54', '0x68', '0x65', '0x20', '0x66', '0x6c', '0x61', '0x67', '0x20', '0x69', '0x73']
残りのビット列: 0010000000111110011100000101000001000000000000110111110001001000000111000110011101110010011000010110000000000000011010010101100101010000011000010111010001100101011100100110110001100001011100000101111101101111011101100110010101110010011001010111001001000001011111010000111011000001001100000000000000001111000101100101111000000000000111100000000000000000000000000000111010000000010110100000000100001110100000010001
デコード済み文字列: The flag is

モード指示子:   0010 (英数字)
文字数: 7
Traceback (most recent call last):
  File "./sqrd.py", line 1052, in <module>
    data.extend([ord(alphanumeric_table[num])])
IndexError: list index out of range

おっかしいなーと思いながら問題を見直したら結構な人数が解いてるので,もう一度PDFファイルを見直してみる.

f:id:YDKK:20190501023843p:plain

何かあるし

f:id:YDKK:20190501024015p:plain

最前面に持ってきてピッタリ重ねたら普通にQRコードリーダで読める :innocent:

f:id:YDKK:20190501024114p:plain

reiwaVote

パスワード付きzipが落ちてきて,解凍したらめっちゃ.NET製っぽいバイナリが出てくる. f:id:YDKK:20190501024334p:plain 「Web問??」って感じだったけど実行したらブラウザが起動してユーザ登録と投票フォームが出てくる.

どうやら新元号を決めるための投票ページで,令和に決定したらフラグが出てくるっぽい.

普通にユーザを作って令和に投票しても謎の力で安晋の票が伸びて1位になれない.

SQLiteだしDBファイルどっかにあるのかなーとか探したりしたけど特に見当たらず.

ならまぁSQLインジェクションだろうと,基本中の基本の ' or 1=1-- みたいなユーザIDで登録してログインしたら shinzo としてログインできた.
そのまま「令和」に投票して期日を迎えたら無事に令和に決定.

f:id:YDKK:20190501024929p:plain

f:id:YDKK:20190501024943p:plain

予想以上にあっさり解けたけどネタ満載で面白かった.

ただ,これWindowsじゃない人は実行するのに苦労したのでは?
ちなみにdnSpyとかで中覗いてみたけどしっかり難読化してあって全然読めなかった.すごい.

感想

しばらくの間全くCTFに触れてなかったのでリハビリみたいな感じで楽しく解けた.
スコアサーバにアクセスするところから戦いは始まってる感があって,お祭りみたいで楽しかった.

Web問の初期配点が少しだけ高かったら嬉しかったけど,簡単だったし仕方ないね.
というのも,Web問のバイナリを奇跡的に開始直後にダウンロードできて2番目にsubmitできてたので.

バイナリ問題解けるようになりたいけど,何から始めるのが良いんだろう.

*1:ライブラリの使い方が分からずにまたしばらく時間を溶かした

Proコンのジャイロを(自分で)修理する

はじめに

皆さん,Splatoonしてますか?
私はよく遊んでますが,ちょっと前までよく一緒にプレイしてた人がみんなスマブラとかポケカとかに流れてしまって悲しいです.
誰かリグマにでも誘ってください.

さて,そんなSplatoonの操作に重要なのがProコンであり,Proコンによる操作の中でも特に重要なのがジャイロ操作です.

先日,Splatoon 2発売当初から使っていたProコンが故障してしまいました.
症状としては,ジャイロ操作の入力と違う動きをしたり,Proコンを静止していても少しずつ左方向にAIMが動き続けたりする感じです.

1年間の保証期間は過ぎているため,修理するにしても有償修理になってしまいそうです. Proコンの参考修理価格を調べたところ,4000円強+送料程度かかってしまいそうです.
f:id:YDKK:20190408174555p:plain

修理の参考価格 Nintendo Switch|サポート情報|Nintendo

せっかくなので,アナログスティックが粉を吹きまくる件や十字キーが誤入力しまくる件などが改善されているのかどうかも気になった*1ので,新しいProコンに買い換えました.

普通ならばここで話は終わりなのですが,残ったジャイロが壊れたProコンをどうするかという問題があります. スマブラなどのジャイロを使わないゲーム用にしてしまうのも良いのですが,せっかくなので自分で修理してみることにしました.

修理を行う際は,自己責任でお願いします.

Proコンのジャイロセンサ

症状からしてジャイロセンサの故障っぽいので,そいつを交換してやれば治りそうです.

そのために,Proコンで使われているのと同様のジャイロセンサを入手する必要があります. とりあえずProコンを開けてジャイロセンサを確認してみます. Proコンの分解方法はググればいっぱい出てくると思うので,適当に調べてください.結構簡単に開きます.

さて,ジャイロセンサというぐらいなので,恐らくProコンの中心あたりに配置されていそうです. 実際に見てみたところ,チップの大きさや基板の配線パターンからして,赤い丸で囲ったチップが怪しそうです.

f:id:YDKK:20190408181048p:plain

チップの刻印を確認してみると,次のような感じでした.

f:id:YDKK:20190325042401j:plain

うーん,これだけだと何の型番なのかよく分かりません.

そこで,Joy-Conに使われているジャイロセンサについて調べてみることにしました. 同じ製品群なので,使われているジャイロセンサも同一のはずです.

調べたところ,Joy-ConにはLSM6DS3という6軸ジャイロセンサが使われているようです.

There are 2 SPI devices on the bus, one 4Mb MX25U4033E flash memory and one LSM6DS3 6-axis MEMS accelerometer and gyroscope.

GitHub - dekuNukem/Nintendo_Switch_Reverse_Engineering: A look at inner workings of Joycon and Nintendo Switch

Amazonで当該の型番を検索し,出てきた商品画像が次の通りです.

f:id:YDKK:20190325223915p:plain

WINGONEER LSM6DS3モジュール6自由度ブレイクアウトIIC/SPI転送デジタルセンサ振動センサ加速度センサ

チップの刻印からして,どうやらビンゴのようです. 微妙に数字が違うのは,ロット番号や通し番号だったりするのでしょう.

必要な部品が分かったので,Aliexpressで注文します.

f:id:YDKK:20190408183223p:plain

送料込みで200円もしません.ちょっと早い便にしたので注文してから2週間ぐらいで届きました. 今回の用途ではチップ単体で十分なのですが,1個単位で売ってるストアが見つからなかったので変換基板に実装済みのやつにしてます.

ジャイロセンサの交換

さて,いよいよProコンのジャイロセンサを新しいものと交換します.

ジャイロセンサはQFNタイプの表面実装部品なので,流石にはんだごてで交換を行うのは難しそうです.

f:id:YDKK:20190408184717p:plain

そこで,どこの誤家庭にもあるこのようなドライヤ*2を使用します.別名ヒートガンとかヒーティングガンとも言うそうです.

今回は,白光のFV-310を使いました.

表面実装部品のような小さな部品に対して使う場合,次のような細いノズルがあると便利です.

チップに向けて熱風を当て,20~30秒程度熱してからピンセットでチップをつかむと,このようにポロっと外れます.

f:id:YDKK:20190408195059p:plain

同じことをProコンに対しても行うのですが,このとき,Proコンのメインボードをちゃんと取り外してから熱風を当てましょう. 私は面倒くさかったのでそのままやったのですが,はんだが溶ける前に周りのプラスチック部品がすごい勢いで溶けていきます*3

最低でもこんな感じでアルミホイルなどでマスキングしてから行った方が良いです.

f:id:YDKK:20190408210113p:plain

取りつける際は,そのままだと風で飛んで行ってしまうので,位置を合わせたうえで上からピンセットなどで軽く押さえて加熱すると良いです.

部品の交換が終わったら,Proコンを元に戻してSwitchの設定から ジャイロセンサーの補正 を行います.
ジャイロセンサがちゃんと交換できていれば,このように補正できるはずです.

f:id:YDKK:20190408221623p:plain

試しうちをしてみると…

ちゃんとジャイロ操作できます!やったね!

修理後のProコンについて

Proコンは特定無線設備にあたるため,今回のように個人で修理した場合技適から外れ,そのまま無線通信をした場合,電波法違反に問われる可能性があります. そのため,有線通信機能を有効にしたうえで常にSwitch本体と有線接続し,無線通信機能を使わないようにしましょう.

f:id:YDKK:20190408223055p:plain

*1:結果として,相変わらず粉を吹きますが十字キーは改善されてました.

*2:ちなみに,このタイプのドライヤで髪を乾かすのは推奨されないそうです.

*3:当たり前だ