最近、新しいホームサーバーを構築しました。それは私のインフラストラクチャの大部分を保持する多目的ボックスであり、多くのハードドライブを備えたファイルサーバーです(そして将来的にはより多くのスペースがあります)これらのドライブはすべて非常に大きなマシンになったので、それらをすべて置くスペースがありました。 私はその中のもののトンのためのスペースを持っているケースのためのCaseLabsマグナムTHW10を取得してしまいました。 マシンは素晴らしい仕事をしていて、私が必要とするすべてをやっていますが、それには小さな問題が1つあります。 フロントファンは十分に速く回転していません。
ハードドライブは、フロントインテークファンの後ろにマウントされており、私は彼らがクールに保つことを確認したいです。 マザーボード上のPWMファンヘッダー、ASUS Z10PE-D16からのすべての出力は、CPU温度に結びついています。 しかし、Cpuはサーバーで実際には熱くなりすぎないので、ケースファンは(たとえそうであったとしても)最低速度を超えることはめったにありません。 この問題に対する私の通常の解決策は、lm_sensorsの一部であるfancontrol utiltityを使用することです。 ただし、lm_sensorsはマザーボード上のファンコントローラを検出することはできません。 これは、ファン制御がマザーボード上のBMCによって行われ、lm_sensorsがBMCをサポートしていないためだと思います。 私はBMCのwebインターフェイスでファン制御のオプションを見つけることができなかったので、私はわかりません。 いずれにしても、入力ファンのファン速度を手動で設定できるようにファンコントローラを構築する方がはるかに簡単であると判断しました。
ファンコントローラの構築
サーバーには、前面120mmファンが8個、背面120mmファンが1個、上部排気140mmファンが6個搭載されています。 しかし、マザーボードにはいくつかのファンヘッダーしかないので、私は2つのSilverstone CPF04パワードスプリッタを持っています。 前部8つのファンは1つのディバイダーおよび他に6つの上の換気扇に接続されます。 このプロジェクトのために私はちょうど私がファンに送信されたPWM制御信号を調整することを可能にするマザーボード4ピンファンヘッダーの間にコ これは、マザーボードからの電力を取り、それ自身の独立したPWM出力を生成するだけです。 スプリッタは独立して電源が供給されているので、マザーボードからファンに電源をルーティングすることを心配する必要はありません。
私が探していたものにかなり近いnoctua NA FC1のような商業的なソリューションがあります。 私のユースケースのためのNoctuaコントローラの問題は、マザーボードヘッダーが接続されていた場合、完全な手動モードを設定できないということでした。 私はPWMピンを接続していないカスタムケーブルを作成することができましたが、私は実際には望んでいなかった機能の束を支払うことになります。
コントローラの設計
ファンコントローラを構築することはほとんどユニークなことではないので、ほとんどの人が何をしていたかをgoogleで検索しました。 私が見つけたほとんどの例は、出力波形のデューティサイクルを調整するためのポテンショメータを備えた555タイマをastableモードで回路を構築しました。 だから私は同じことをすることにしました。 4線式PWMファンのIntel仕様を読んだ後、私は発振器の設計上の制約を理解しました。 回路は〜25kHzの出力周波数を持ち、5ボルトで動作する必要がありました。 これを考えると、私はこの回路に定住しました:
それは主に私が同様のプロジェクトのためにインターネットを検索して見つけた回路から借りていました。 しかし、私はファン制御仕様を満たすために部品の値のいくつかを調整する必要がありました。そこから、KiCadを使用してこの回路用のPCBを設計しました。 私はとりわけ穴の部品を通ってすべてを使用して集まり易いようにPCBを、設計した。 私は簡単に表面実装部品を使用して、それがはるかに小さくしている可能性がありますが、私はこれがちょうどはんだ付けを開始する人々のための良 これは非常に複雑なプロジェクトではなく、同様の必要性を持つ人々がそこにいるかもしれないように感じました。 しかし、この制約があっても、ボードはまだわずか35mm x44mmでかなり小さいです。 (主に単純な回路だからです。
このためのすべてのデザインはオープンソースであり、私のgithubで見つけることができます:
https://github.com/mtreinish/pwmcontroller
コントローラをまとめる
機能設計を終えた後、私はボードを製造するためにelecrowにそれを送りました。 数週間後、私はボードを配信しました。 (発送に時間がかかったので、板は<8131>1週間で製造されました。))
それから私は部品をボードにはんだ付けしました
それから私は私のサーバーに新しいコントローラーをインストールしました、そしてもちろんそれは動作しませんでした。 だから私は私のベンチにPCBを取り、オシロスコープ、ベンチ電源と予備のファンでそれをテストしました。 それは二つの問題があったことが判明しました。 まず、555タイマーは仕様で要求される5Vの代わりに3.8-4.2Vで出力していました。 第二の問題は、出力が本当に方形波ではなかったということでした:
2回目の試行
最初の試行で見つかった問題を修正するために、回路をわずかに変更し、出力にシュミットトリガを追加しました。 これには3つの利点があります:方形波をきれいにし、立ち上がりエッジと立ち下がりエッジをはるかに高速にし、安定した5V出力を確保します。 それは実際にはかなり面白いです、私はスイッチのデバウンスのためにschmittトリガーを使用する上で大学のクラスのための偽のアプリノートを書かなけ
回路図の修正は非常に簡単でした。 555の出力にシュミットトリガを追加し、それをファンヘッダに配線するだけです:
これに対する唯一の複雑さは、ボードのレイアウトに来ました。 私はスルーホールパッケージで単一のSchmittトリガーを見つけることができませんでした。 私が見つけた唯一のスルーホールschmittトリガー(私は徹底的な検索をしなかったことを認めました)は、DIP-14パッケージの4または6の方法でした。 これは、ボード上ではるかに最大のパッケージになります。 私はPCBをシンプルで小さく、半田を手に入れやすいものにしたかったのです。 これはもともとすべてのスルーホールを意味していましたが、DIP14とボードサイズまたは単一の表面実装コンポーネントを増やすことを選択したため、SMTコンポーネ 私は正直にはんだ付けするのが難しくないSOT-23-5パッケージでTIから1つを見つけることができました、それはほんの少しの忍耐を必要とします。 (拡大が役立ちます)
改訂されたボードレイアウトを終えた後(私はそれをたくさん縮小し、同時に物事をきれいにしました)、私は製造するためにOSH Parkに送:
それから私はすべてをはんだ付けしました:
私は新しいボードで一つの間違いを犯しました。 DC/DCコンバータのピン1と3の間の小さなbodgeワイヤは修正できませんでした。 (git repoのpcb設計はすでにこの修正で更新されています)それと新しいschmitt triggerのものは完全に機能しました:
そして、私のサーバーに入れて、今私は非常に簡単にファンの速度を制御することができます。
結論
このプロジェクトは、私たちが当たり前のように取り、完全に閉じたデザインである現代のコンピュータのマザーボード上のランダムなコントロー 私のサーバーのマザーボード上のものがどのように配線されているか、またはそれらが利用するプロトコル(少なくとも私が見つけることができたわけでは 私は私のデスクトップを含む私の他のコンピュータについて考え始め、どのように私はそこにファンや水ポンプのようなものを制御しています。 それはそこに同じ話です; 私はハードウェアとソフトウェアで焼かれたマザーボード(ASUS Rampage V Edition10)に頼っています。 私はチェックし、lm_sensorsはデスクトップ上のファンコントローラとも話すことができません。 しかし、私のサーバーとは異なり、デスクトップのUEFIは、温度入力を調整し、カスタムファンカーブを設定するために必要なレベルの制御を提供します。
私はこれらのデザインを活用しやすくするために開いて見たいと思いますが、私はそれがすぐにいつでも変更する可能性は非常に高いではない しかし、その間、私たちは必要な部分のためのオープンな選択肢を構築し続けることができます。 私は現在、これに対処しようとする私のデスクトップのための別のファンコントローラプロジェク 私はaquacomputer aqueroのようなものに似たマルチファンコントローラを構築するつもりです。 しかし、すべてのオープンな方法で、オープンで定義されたインターフェイスで構築されました。 あなたはここでその努力の進行中に従うことができます:https://github.com/mtreinish/openpwmそれはまだハードウェア設計の非常に早い段階であり、それは私が私の自由な時間に取り組ん