夏ころにPCを自作して1台新調していました。
まえにGIGABYTE製のGTX1080搭載グラフィックカードを購入して使っていた感じから結構イイじゃん!と思い、新調したPCにはGIGABYTEマザー(H370 HD3)を調達してサブマシーンとして使っておりました。(ものすごい久しぶりにGIGABYTE製のマザーを購入しました。486系PC以来かもしれませんw)
で、、、特に問題もなく使えてはいたのですが、1点だけ不満点がありました。
それは、サスペンドすると電源ランプが消灯してしまう問題!
その他に持っているPC(HP, ASUS, ASRock, MSI)ですとサスペンドすると電源ランプが点滅してサスペンド中であることが分かるのですが、こいつは分かりません。
設定の問題か?と調べたりすると、どうやらGIGABYTEマザーだけは伝統的?に点滅しないみたいです。
マジかよ!って感じです。(;´Д`)
んで、電源ランプ以外は特に問題なかったのでサブから開発用のメインへ昇格させたのですが、日常的にサスペンドを使っている身からするとメインマシーンでこの状況は辛くなってきました。
さてどうしたもんか?と無い知恵を絞ってひらめいたのが、サスペンド中でもUSBからの電源が供給されている。電源を切る(シャットダウン)とUSBの電源は落ちる。
って、事は、USBになにかデバイスを付けるLED点滅ユニットを作ればイケるんじゃね?って思いつきました。
ただのLED点滅だけのブツなので、とにかく安く仕上げるのに調べました。
STM32F103を積んだこのモジュールだと数百円で買えます。しかもUSBモジュールとしても動作するみたい。早速入手!
STM32系の開発は多少慣れているのでさくーっとファームウェアを作ります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ちょっと前からなのですが、STM32の開発環境が無償で使えるようになりました。
ユーザー登録のみでSTM32の統合環境(日本語も対応しているよ)が揃えられます!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
で、、、これだけだとWIndowsがサスペンドしたのか?シャットダウンしたのか?がデバイス側で分からないので、デバイスへ通知する常駐ソフト(ドライバー?)も開発。
あと例によって3Dプリンターでケースも作成!
出来ました♪
ちょっと粗削りなところがありますが、目的が達成されたので満足です!(;´∀`)
STM32のPWM機能を使ってじゅわ~っとLEDを点滅させているので自己満に浸っていますw
一式おいておきますネ。以下のセットがZIP圧縮して入っています♪
①STM32のファーム
②Windows10用の常駐ソフト
③ケースの3Dモデルデータ
STM32F103C8T6モジュールの「A3ピン」に砲弾型LED(5V 5mm)のアノード(+)、「GNDピン」にLEDのカソード(ー)を繋げて下さい。
必要に応じて抵抗も必要です。自分は面倒なので秋月電子の抵抗付きLEDを使っています。
http://akizukidenshi.com/catalog/c/cregled/
【①STM32のファーム】
STM32F103のファームを書き込むには、ST-LINK V2(書き込み装置)とSTM32 ST-LINK Utility(Win用ソフト)が必要です。
書き込み装置は、パチモンが安く売っているようです。特に問題なく使えるらしい?です。
自分はパチモンが出る前にクソ高い純正品を買っていたので、そちらを使いました。(^_^;)
ソフトは、以下からダウンロードできます。ユーザー登録が必要です。
https://www.st.com/ja/development-tools/stsw-link004.html
接続はこんな感じにします。
また、自分の場合は認識させるのにUSBからの電源供給も同時に行いリセットボタンを押さないとダメでした。
モジュールのリセットボタンを押した直後(素早く)にST-LINKUtilityの[Connect]ボタンを押します。(※↑この画像では、表示設定を8bitに変更してあります)
認識されたらあとはゆっくりとメニューから[Target]→[Program &Verify...]を選んでファーム"Stm32F103_LedUnit.hex"を書き込み(Download / Start)ます。
USB機器として認識させるWindows用のドライバー(STM32 Virtual COM PortDriver)は、次の場所からダウンロードできます。
https://www.st.com/ja/development-tools/stsw-stm32102.html
【②Windows10の常駐ソフト】
どこでも良いので任意の場所にSleepLedDriver.exeを保存します。
初回のみPC起動時に自動実行させるためのレジストリを書き換えるので「右クリック」して『管理者として実行』で起動します。
タスクトレイに出ますので、右クリックして「SETTING」を選びます。
AUTO RUNの項目にある[Enable]ボタンを押すと自動実行のレジストリを書き換えます。
※[Disable]を押すとレジストリを削除します。アンインストール時に押してください
なんと見ての通り、LEDの発光パターンを3種類も切り替え出来ます!
大した違いはありませんが・・・(笑)
内部的には、30秒間隔でLEDデバイスに状態を通知するプログラムになっています。
Windowsのメイン処理に負荷をかけない作りにしています。
あとついでにBIOSのErP項目も変更しておいてください。シャットダウンしてもUSBに常に電機が入りっパになるとLEDが点滅しちゃいますので・・・w
【③ケースの3Dモデルデータ】
おなじみのFusion360で作っています。ケースの上(ふた)と下(本体)の2つのパーツに分かれています。
※ふたを止めるネジだけは、ホームセンター等でM3サイズのを確保してください
LEDの穴は、ギリギリのサイズにしてあります。LEDが入らない場合は、中くらいの+ドライバー(大体のものは5mmサイズなはず!?)を差し込んで「くりくり」して、調整しながら穴を大きくしてください。
3Dプリンターを持っている人は、そのまま印刷を・・・。
持っていない人は、Win10のPaint 3Dアプリからオンラインで注文ができるみたいです。
ただし見積りでクソ高いです。見積金額『ふた\1639』+『本体\1923』と出ています・・・。
こんなのだれが頼むのでしょうか!?(;´Д`)
ここからは余談ですが、3Dプリンターって、なんでも簡単に出来る!って思う人が多いですが実際には結構シビアです。小さいですが今回のケースを全部プリントアウトするにも3時間ほどかかります。
また、先のケース画像をよく見てもらえば分かると思うのですが、バリや平面が波打っていたりします。
これをきちんと3Dプリント出来る装置は民生用ではありません。
自分は妥協してそのまま使用しちゃいますが、本当に綺麗にしたい場合など最終的にはパテを盛って削ったり塗装し直すなどの手作業が存在します。大元となる3Dデーターを作るのも大変ですしね。
なんでも簡単に出来ちゃうと思われる3Dプリントですが、結構、手間暇(経験も!)が掛かります。
何で報道とかはきちんとしてくれないのでしょうか?ちょっと調べれば分かる事なのに…技術立国日本と叫んでいる割には実情は情けないですw
以上です。
GIGABYTEマザーでサスペンドしても電源ランプが点滅しなくて寂しい人は、試してみる価値があるかも!?自分は大満足です!!!(;´∀`)
【補足1】
多少のラグが存在します。マザー本体の機能ではないのであくまでも疑似的?なサスペンド点滅処理になっています。この点を理解の上、使ってみたい方はトライしてみてください。
【補足2】
個人の作成なのでUSB IDがSTMicro社製の開発用IDのままとなっています。
これで特に問題ないとは思いますが、ほかに同じ様な作りのUSB機器があった場合、USB IDが重複して使えなくなる可能性があります。
これの対策には、高いお金を払ってUSB機器の認証等を行わないといけないので、個人ではとても無理です。ハイ!