Raspberry Pi に熱対策してみる

Raspberry Pi 熱対策(ヒートシンク)

Raspberry Pi へ熱対策としてヒートシンクを設置してみた結果に関して書いてみます。

はじめに

この暑さのせいか、オフィスの熱帯魚一匹が死亡し、他の魚に見事に白骨化させられた今日この頃、みなさま、いかがお過ごしですか?

Raspberry Pi ( 以下 rpi ) の熱が気になるようになってきたので、試しに熱対策をしてみました。

実際の効果に関してレポートしてみます。

Raspberry Pi の熱

rpi は CPU に 700MHz の ARM プロセッサを搭載しています。
ご存じの通り、CPUにはヒートシンク等の熱対策用の部品はついていませんが、触るとそれなりの温度になっています。

常時起動していないのであれば、それほど気にする必要もないかと思いますが、

  • サーバ用途等で常に電源が入っている
  • 夏場に冷房が入らない部屋で利用している
  • パフォーマンス重視でクロックアップして動作させている

といった場合、何らかの熱対策をしようかという気にもなってきます。

発熱する部品

rpi で実際に発熱する部品はどれか、実際に触って確かめてみる事にします。
触って頂けると判りますが、特に発熱が大きい部品は以下の赤字で書いてあるものです。

raspberry pi 発熱部品
  • CPU
  • LAN コントローラ
  • レギュレータ

CPU, LANコントローラは名前からどのような部品か判ると思います。
レギュレータ (RG2) は定電圧回路を構成するために利用される部品ですが、rpi では microUSB からの 5V から 3.3V ( 実際に rpi が動作するための電圧 ) を生成するために利用されています。

レギュレータは ( 入力電圧 - 出力電圧 ) x 電流 を熱損失という形で消費します。
つまり、rpi では 1/3 の電力は RG2 によって熱損失という形で消費されている事になります。

※rpi を電池駆動する場合等に低消費電力化を行う目的で、RG2のレギュレータを DC-DCコンバータに交換する強者もいるようです。

実際に熱対策を行う部品としては、CPU と LAN コントローラを対象にすればよいのではないでしょうか。
レギュレータも対象にしても構わないと思いますが、もともと発熱するのが前提の部品であり、基板上に放熱用のパターンが存在しているため、CPUやLANコントローラに熱対策をする場合に比べると効果は少な目ではないかと思います。
まあ、気になる方は対策すればよいのではないでしょうか。


追記

※rpi2からはここで紹介しているシリーズレギュレータ方式からスイッチングレギュレータ方式に変更されています。効率は良くなっていますが、方式的にノイズが載りやすいため、オーディオ用途等の場合B+までの旧方式に音質面でメリットがあります。volumio用途限定であればB+でもパフォーマンスで不満が出る事もあまりないでしょう。

熱対策の方法

熱対策の方法としてはヒートシンクを取り付ける事にします。

ネットで検索したところ、rpi のヒートシンンクセットなるものが売られていたりするようです。

中には、オーバークロックキットとして、ファンまでついているものがありますが、

  • ファンの電源を rpi から取るとなると、熱対策はできても消費電力が上がってしまう
  • そもそもファンもかなり小さいため効果がどの程度あるのか不明
  • 値段もそれなりに高い

という事で、比較的コストがかからず施工も簡単なヒートシンクを利用し、効果を検証する事にしました。

部品の調達

Raspberry Pi 用のヒートシンクとして売っているものをいくつか見てみると、

  • 大 13 x 13 mm 程度 - CPU用
  • 小 9 x 9 mm 程度 - LANコントローラ用

程度の大きさのものが使われているようです。 ( 高さは 5mm程度 ~ )
これはそれぞれの部品の大きさに併せてある感じだと思います。

銅製のものなどもあって、確かにアルミの二倍弱の熱伝導率があるわけですが、この大きさならば熱伝導率を上げるよりは、ヒートシンク自体の大きさを大きくした方が放熱効果は高いと思います。

という事で、上記サイズ程度のアルミ製ヒートシンクを取り付ける方向で探してみました。
会社から秋葉原が比較的近いため、秋月電子千石電商 等も探してみたのですが、結局以下になりました。

小型液晶関連やDSPラジオ関連等、他の電子パーツ屋さんとはちょっと一線を画す aitendo さんです。( 店舗は秋葉原というよりは末広町の近くにあります )

何れも、3個入りで 100円と格安です。

昼休みに食事ついでに行って買ってきました。

ヒートシンク

効果検証

購入したヒートシンクの効果を検証してみましょう。
ヒートシンクの装着にあたっては両面テープを利用してチップに貼り付けました。

※熱伝導性両面テープなるものがあって秋葉原の電子パーツ店等でも売っています。

raspberry pi+ヒートシンク

温度計測方法

rpi のCPU温度は以下コマンドで計測する事が可能です。

$ cat /sys/class/thermal/thermal_zone0/temp

実行すると数値が表示されます。単位は 1/1000℃
出力結果が以下の場合は48.692℃という事になります。
( ※但し、温度は一定のステップで表示されるようで、0.1℃単位は誤差が含まれると思った方がよさげ。 )

$ cat /sys/class/thermal/thermal_zone0/temp
48692

温度

上記コマンドで計測を行った結果を示します。計測に関しては以下の方法で実施しました。

  • 5回計測を行い、上下を除外した3回の結果を記載
  • ヒートシンク装着、脱着後は1分以上経過後計測
  • CPU負荷は Raspberry PiでApache Tomcat - JavaのWebアプリを動かす(2) に書いたパフォーマンステストを実施。
    top コマンドで 95%超 のCPU使用率 ( java + mysqld ) を確認
    負荷試験実施後1分程度してから計測

ヒートシンク装着前 ( 無負荷 )

No温度(1/1000℃)
148154
247615
347615
平均47794.7

ヒートシンク装着後 ( 無負荷 )

No温度(1/1000℃)
147078
246540
347078
平均46898.7

ヒートシンク装着前 ( 高負荷 )

No温度(1/1000℃)
149230
249230
349768
平均49409.3

ヒートシンク装着後 ( 高負荷 )

No温度(1/1000℃)
147615
248154
348154
平均47974.3

今回の計測結果では、装着前後での温度差は1~1.5℃という感じでした。

オーバークロック動作時の温度

上の結果は非オーバークロック動作時 (700Mhz) の計測ですが、950Mhzでの動作時も計測してみました。
オーバークロックする場合、raspi-config コマンドを利用します。( Raspberry PiでApache Tomcat - JavaのWebアプリを動かす を参照)

オーバークロック動作しているかどうかは以下コマンドで確認できます。

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

950Mhz 動作していれば 950000、 700Mhz 動作であれば 700000 が表示されます。
尚、低負荷状態になると 700Mhz 動作になってしまうため、高負荷時の結果のみ計測しました。

ヒートシンク装着前 ( 高負荷 )

No温度(1/1000℃)
153533
253533
354072
平均53712.7

ヒートシンク装着後 ( 高負荷 )

No温度(1/1000℃)
152996
252458
352996
平均52816.7

まとめ

装着した効果はあると言えばありますが、劇的に温度が下がる感じはしませんでした。( -1 ~ -1.5℃ )
同等の大きさのヒートシンクであれば、効果は同程度と考えてよいかと思います。

ヒートシンク装着直後は一時的に3℃程下がるのですが、ヒートシンク全体に熱がまわってくるとそれ以上下がらず、元の温度-1℃から-1.5℃で安定する感じでした。
ヒートシンク自体がかなり小さいものを利用したので、これは仕方ないところでしょう。


オーバークロック動作を常に行っている場合等で、ヒートシンクでの放熱効果を高めたい場合には、より容量の大きなヒートシンクを利用する等の対策が必要になると思われます。
この場合、ヒートシンクがCPU周りのチップコン等に接触してしまうと故障する可能性が高いので、装着する場合には、接触しそうな部分は絶縁する等適当な対策をとる必要があると思われます。


私が購入したヒートシンクであれば、缶ビール1本我慢すれば ( 3台分 ) 購入可能値段なので、試しに購入してみる価値はあるかと思います。

透明ケースに入れている場合、ヒートシンクによっては、装着していないものよりも

「なんとなくかっこよく見える」 気がしないでもない

ので、見た目重視で取り付けてもいいかもしれません。


本気で熱対策するなら、

  • 大き目のヒートシンクつける
    ヒートシンクケース使うとかもいいかも
  • エアフロー改善する
    ファンの設置や、扇風機で風を当てる:-p 等

といった方法を採るのがよさそうです。


以下追記
  • 現在では実際に そういったケース も発売されている。

  • 私的にはプラスチックケース ( これ とか ) を加工して小型ファンを取り付けたりしている。温度を検知してのON/OFF・風量制御をしないのであれば、GPIOの5V(あるいは3.3V)-GNDで接続すれば常時定速回転するファン付きケースとなる。
  • 上記小型ファンを利用したアルミケースも売り出されてた。