terça-feira, 9 de maio de 2017

Temperatura do Raspberry Pi 3 B. Preciso de um cooler ou dissipador? Jogando ar para dentro ou para fora?

raspberry pi 3 aquecimento
Imagem ilustrativa :)

Desde o primeiro Raspberry Pi vemos a utilização de acessórios para minimizar o aquecimento da placa.

Como já disse anteriormente, geralmente não havia a necessidade de dissipadores/coolers, a não ser que fossem fazer um overclock expressivo, colocar a placa em condições de alta temperatura externa ou algum outro motivo como aumentar sua vida útil.

Isso era válido até o Raspberry Pi 2 Modelo B. Com a chegada da versão 3B, posts e relatos pipocando de todos os lados em relação ao seu aquecimento apareceram. De todo modo, a resposta para a necessidade de refrigerar sua placa pode não ser tão simples.

 

O Raspberry Pi 3 Modelo B aquece mais?


A resposta curta para essa pergunta é: sim. Muito mais? A resposta é: depende.

Depende da aplicação e se você estiver exigindo muito do processador e GPU.

O Raspberry Pi 3 Modelo B não só trouxe uma CPU com clocks maiores que o Raspberry Pi 2 como também incrementou a frequência do core_freq, gpu_core e sdram_freq. Isso tudo ocasiona em um maior aquecimento, embora grande parte dele pareça ser mais do ARM do que das outras partes.

Vejam a diferença de clocks padrão:

arm_freq: 900Mhz no 2B contra 1200Mhz no 3B
core_freq: 250Mhz no 2B contra 400Mhz no 3B
gpu_freq: 250Mhz no 2B contra 400Mhz no 3B (embora h264_freq, isp_freq e v3d_freq permaneçam em 300Mhz)
sdram_freq: 400Mhz no 2B contra 450Mhz no 3B


A que temperaturas meu Raspberry Pi 3B pode chegar?


Consumindo o processamento total dos 4 núcleos do processador as temperaturas podem passar facilmente dos 80 graus. É claro que isso irá depender também da temperatura ambiente e algumas diferenças entre um chip e outro. Lembrando que aqui nem estou considerando a utilização massiva da GPU, o que iria piorar mais a situação.

Vejo pessoas dizendo que seu Raspberry Pi 3 não aquece. Em repouso ou pouca carga não irá mesmo. Vocês podem fazer um teste agora mesmo na CPU com a seguinte linha de comando abaixo:

# sysbench --test=cpu --max-requests=100000000 --num-threads=4 run

Se não tiver instalado:

# apt-get install sysbench

E vá monitorando a temperatura com:

# vcgencmd measure_temp

Lembrando que se você estiver tendo problemas com fonte (com aviso) o clock irá diminuir e a temperatura não vai chegar nessa mesmo.


Então isso é um problema para se preocupar?


Não há o que se preocupar em termos de queimar sua placa já que ao chegar aos 80 graus o firmware do Raspberry Pi está programado para começar a diminuir a frequência da CPU para consequentemente diminuir a temperatura. Isso acontece gradativamente, mas ao atingir a temperatura de 85 graus ou maiores o clock é derrubado para 600Mhz, metade do padrão.

Nesses pontos, um aviso irá aparecer na tela, que hoje é mais amigável, um termômetro. Ele irá aparecer na metade se a temperatura passar de 80C° e cheio se passar de 85C°.

aviso de aquecimento raspberry pi 3

O SoC foi projetado para esse tipo de temperatura e inclusive já foi testado em laboratório em algumas mais altas como 120C°. Segundo um dos engenheiros é possível ir até além, embora cause uma redução de vida útil.

O problema fica em torno do desempenho que irá cair cada vez mais conforme o clock é diminuído.


O Raspberry Pi 3 precisa de dissipador ou cooler?


Sem levar em conta alguns motivos como aumentar sua vida útil a diminuição do clock poderá afetar o desempenho de sua aplicação/sistema e a solução é refrigerar de alguma forma a placa.

O fato de realmente necessitar de refrigeração nesse caso é realmente complexo, algo que você só saberá testando ou pegando relatos de alguém que já rodou a mesma coisa que você (mas a temperatura ambiente também irá influenciar). Caso sua aplicação use totalmente os 4 núcleos do processador é bem possível que chegue em temperaturas altas.


Teste de temperatura sem case consumindo os 4 núcleos da CPU com sysbench


Nos testes iniciados a partir desse ponto, não foi considerado o consumo de recursos da GPU, em todos eles (salvo dos coolers) a placa só se encontrava em conexão com o cabo de energia, Wi-Fi ligado, sem qualquer periférico (nada de HDMI, RJ45 ou USBs). Os dados foram retirados do sensor de temperatura interno do SoC.

Nesse teste sem case o Raspberry Pi estava em cima de uma mesa de madeira.

Temperatura ambiente: 22C°
Temperatura do Raspberry Pi 3 após 50 minutos de uptime: 45,1C°

temperatura do raspberry pi 3

A temperatura chegou à 80,1C° após cerca de 3 minutos e 45 segundos. A partir desse momento a diminuição de clock passa a atuar, tornando cada vez mais difícil ela continuar subindo. Continuando a execução, em 30 minutos o máximo medido foi de 82,2C°. Como exemplo, em 81,7C° a frequência já estava em 1036Mhz.


Teste de temperatura com case consumindo os 4 núcleos da CPU com sysbench


No teste seguinte, utilizamos um case de acrílico (bem comum) com uma adaptação. Fechamos a parte referente ao fan para simular um case de acrílico sem furos para o cooler.


Sensor de temperatura

Temperatura ambiente: 23C°
Temperatura do Raspberry Pi 3 em repouso após 10 minutos de uptime: 48,3C°

temperatura do raspberry pi 3

A temperatura chegou à 81,7C° após cerca de 3 minutos e 45 segundos. Continuando a execução após o teste, vários minutos depois executei uma cópia do device /dev/urandom para um arquivo, a temperatura pulou para 86C° levando a frequência do processador à 600Mhz.

Se em um dia meio frio (23C°) a temperatura chegou nesse patamar rapidamente, imagine em um dia quente.

Em testes em que a temperatura do SoC já marcava 83,8C° a temperatura do AR dentro do case já estava na casa dos 44,7C°.

Temperatura dentro do case
Temperatura dentro do case

No gráfico abaixo é possível ver a comparação com e sem case. Além de aquecer um pouco mais com case, o incremento de temperatura de acordo com o tempo é maior.

temperatura do raspberry pi 3


Tempo até a temperatura começar a estabilizar em repouso novamente


temperatura do raspberry pi 3


Teste de temperatura com case e cooler (ar para dentro) consumindo os 4 núcleos da CPU com sysbench


Os testes seguintes utilizam um fan (ou cooler como preferir) nomeado "Pi-Fan", testes com outros tipos deverão causar diferenças, mas vamos lá.

Algumas pessoas tem a dúvida se jogar ar para dentro é mais eficiente do que jogar para fora, testamos nesse case de acrílico as duas formas. Primeiramente vamos começar jogando ar para dentro.


Temperatura ambiente: 22C°
Temperatura do ar dentro do case com sistema em repouso: 22,5C°
Temperatura do Raspberry Pi 3 após 12 minutos de uptime: 33,2C°

temperatura do raspberry pi 3

A temperatura chegou à 55,3C° após cerca de 3 minutos e 45 segundos. Continuando a execução do sysbench após o teste, depois de um tempo a temperatura máxima medida foi de 56,9C°. A temperatura do AR dentro do case na carga máxima ficou em 24C°.


Teste de temperatura com case e cooler (ar para fora) consumindo os 4 núcleos da CPU com sysbench



Temperatura ambiente: 22C°
Temperatura do ar dentro do case com sistema em repouso: 22,5C°
Temperatura do Raspberry Pi 3 após 12 minutos de uptime: 35,4C°

temperatura do raspberry pi 3

A temperatura chegou à 60,1C° após cerca de 3 minutos e 45 segundos. Continuando a execução do sysbench após o teste, depois de um tempo a temperatura máxima medida foi de 60,7C°. A temperatura do AR dentro do case na carga máxima ficou em 23C°.

No gráfico abaixo é possível ver a comparação dos dois últimos testes, ar para dentro e para fora. Foi constatado que ventilando para dentro a temperatura do SoC fica menor, entretanto a temperatura do AR dentro do case é 1C° maior nesse caso. Esse teste (somente SoC) foi realizado uma segunda vez só para confirmar.

temperatura do raspberry pi 3


Conclusão


No gráfico abaixo podemos ver a comparação entre todos os testes.

temperatura do raspberry pi 3

Como dito, a necessidade de refrigeração vai de cada caso, utilize seu Raspberry Pi da forma como quer e monitore as temperaturas.

Esse é um fato de conhecimento da própria fundação Raspberry Pi, no próprio post de perguntas e respostas do fórum oficial há a indicação de utilizar algum tipo de refrigeração caso necessário. Como nem sempre é o caso, adicionar algum dissipador de fábrica só iria aumentar o custo para todos, o que não fazia sentido. Um detalhe em relação ao futuro Raspberry Pi 4 é que o processo de fabricação do SoC deverá ser modificado também para diminuir o aquecimento. Isso foi informado em uma antiga entrevista onde Eben Upton comentou que já estavam no limite térmico do processo de 40nm.

Infelizmente não fizemos testes com dissipadores e outras configurações que levariam a uma bateria bem complexa de combinações (quem sabe uma outra hora).

Os testes como apresentado, levaram em conta somente o consumo total da CPU. Em testes em que a GPU também é consumida, há uma grande probabilidade dessa curva de temperatura ser diferente (para pior). A curva certamente será diferente também para os fãs de overclock.
 
Uma última observação: Há uma forma de desabilitar o limite/aviso de temperatura entretanto você perderá a garantia.

E na sua placa, qual a temperatura para seu uso?

Referências adicionais:
https://www.raspberrypi.org/forums/viewtopic.php?t=137932&f=63
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=138383 
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=138193
https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md
https://www.raspberrypi.org/documentation/configuration/warning-icons.md

10 comentários:

  1. Uso como media center. Com dissipador e sem cooler chega a 61° e com o cooler em 3.3v fica em torno de 41° então valeu a pena. Acho que pode ajudar a otimizar a vida útil da placa.

    ResponderExcluir
    Respostas
    1. Está ótimo! Obrigado pelo feedback!

      Excluir
  2. Excelente artigo! O meu Rasp 3 trabalha na faixa de 30C e 40C.

    ResponderExcluir
  3. Parabéns pelo artigo. Muito esclarecedor. Irei fazer as medições no meu rasp 3.

    ResponderExcluir
  4. Uso a minha Pi3 com games. No meu caso ela chega ao máximo aos 53º com processos mais pesados, como por exemplo os emuladores do PSP e do Nintendo DS. Fora isso, ela fica na faixa dos 45ºC.

    ResponderExcluir
  5. Lembrando que se o ar entrar, vai também entrar poeira mais facilmente na placa E poeira pode causar curto devido a eletricidade estática que se forma na placa.

    ResponderExcluir