Como tudo começou

Os recordes

Os desafios

VCC

Comparação com o dissipador anterior

O bloqueio dos 1600Mhz

É com alegria que anuncio nosso recorde mundial decom. Não somente isso, ultrapassamos o primeiro lugar em pontos do HWBOT prime para o SoC BCM2835!Há alguns dias eu postava em nossas redes sociais a imagem abaixo com a legenda "Hoje é dia de maldade", a maioria pensou que o componente havia caído, mas na realidade ele foi removido de propósito. Era o início de uma modificação de hardware para overclock.Há alguns meses atrás realizei testes preliminares de overclock no Raspberry Pi Zero, ainda sem qualquer modificação de hardware. Em 1100Mhz o sistema pareceu estável, já em 1200Mhz só completava o boot ocasionalmente (vcore em 1,4v).O recorde anterior de overclock até onde se tem conhecimento era do Niuulh com 1550Mhz (mas baixa pontuação, somente 608.5 pps).Nossa configuração bateu não somente esse recorde como diversos outros do SoC BCM2835, além de bater o recorde de pontos no HWBOT com! O primeiro lugar em frequência desse SoC continua sendo do RRainbo com 1620Mhz (Raspberry Pi B+) mas com menor pontuação (um detalhe é que ele cita ter utilizado frequências de memória 600Mhz e core 600Mhz).Nosso recorde inicial enviado para o HWBOT havia sido de 1560Mhz, com memória à 700Mhz, core_freq à 625Mhz e 844,01 pontos Mas queríamos mais, muito mais. Eu não estava satisfeito com tanto trabalho e tempo para chegar somente até aí.Foi então que atingimos a marca dena CPU,na memória,core_freq,gpu com a melhor rodada do hwbot marcando! O que o software HWBOT prime faz é calcular quantos números primos por segundo se consegue calcular (pps). O resultado pode ser conferido aqui Não foi uma tarefa fácil. A barreira inicial para ir bem além dos 1200Mhz estava no vcore, a alimentação da CPU. Com tensão controlada via software, o máximo que se consegue ir nesse SoC é 1,4v com over_voltage configurado em 8.A saída é alimentar diretamente a CPU, com uma fonte de energia externa. Para realizar isso no Raspberry Pi Zero é necessário remover uma bobina SMD perto do SoC marcada como L3. Após removida temos dois contatos, sendo um da saída do SMPS do SoC, VDD_OUT e a outra a entrada de alimentação da CPU VDD_CORE.No esquemático abaixo do antigo Modelo B rev 2.1 é possível ter uma ideia de como é feita a ligação.Para minha infelicidade, não possuo uma fonte precisa dos seus 6 dígitos. Resolvi utilizar um regulador do tipo step down LM2596 e com entrada de 5V. O VCC (+) foi ligado no local apropriado e o GND no pino mais próximo possível (pode ser visto em outra imagem). É possível notar também a solda da conexão TV, que foi nosso output em um LCD com conexão RCA para saber o que estava ocorrendo.Os primeiros testes foram realizados até mesmo sem dissipador, começando em 1300Mhz (com tensão ainda meio baixa), subindo para 1400Mhz. Posteriormente adicionei um dissipador e refrigeração simples. Nesse ponto lembro-me de ter conseguido já chegar na casa dos 1500Mhz-1510Mhz com cerca de 2-2,05v. A temperatura embora subisse rápido, não era alarmante (ao menos para o sensor do SoC) e não me recordo de ter passado de 45 graus. Obs: adesivo do dissipador foi removido e utilizei pasta térmica comum.Apesar de conseguir ir além dessa marca no boot, não era possível rodar o hwbot acima disso sem que a placa travasse, sistema desse crash, kernel panic, etc.Segundo informações antigas do engenheirono fórum do Raspberry Pi, testes em laboratório levaram a descoberta de que a cada 100mV de tensão era possível subir cerca de 100Mhz. Embora não seja uma conta exata, percebi mais ou menos isso em certas ocasiões. Outro detalhe é que eles testaram o SoC até 2,3v sem fritar.Voltando ao nosso overclock, temos cerca de 1500Mhz à 2,05v. Para aumentar a frequência basta eu aumentar a tensão correto?! Entretanto há um pequeno problema, acima de 2,08v o SoC não dava mais boot, nem a imagem colorida de testes da GPU aparece. Outros que já realizaram esse tipo de modificação lidaram com problemas parecidos, mais ou menos nessa faixa de tensão.A partir daí o papo de resfriamento do SoC começa a ficar sério. Há algum tempo atrás comprei uma pastilha peltier TEC12706 , um dos motivos foi justamente para esse overclock, adquiri também um outro Raspberry Pi Zero especificamente para isso. Uma forma barata de se atingir baixas temperaturas sem ter que lidar com nitrogênio líquido, embora a nossa opção também trouxesse problemas, como a condensação Uma questão que não havia percebido é o fato do slot microsd ser ligeiramente mais alto do que o SoC e estava me causando problemas para encaixar no peltier. Resolvi o problema cortando um pedaço de alumínio para ficar entre eles, não ficou em um tamanho perfeito (foi no olho mesmo) mas serviu.Na foto abaixo é possível ver o suporte já com pasta térmica dos dois lados e o GND soldado que não vimos antes.Para se atingir temperaturas realmente baixas é necessário um bom dissipador do lado "quente" do peltier, utilizei um antigo dissipador que era do Athlon XP 2600 stock. Inicialmente utilizei um fan pequeno fixado de um dos lados. Para se trabalhar melhor com todo o esquema (gambiarra? a ideia aqui é bater recorde e não beleza :) ) produzido deixei tudo na posição contrária.Posteriormente com a necessidade de melhor refrigeração, troquei o fan por um maior.Em uma dessas últimas configurações (já com peltier) foi que o recorde de 1560Mhz (já batendo o recorde do Raspberry Pi Zero anterior de 1550Mhz) foi atingido. O problema da condensação ainda era leve, sendo mais em cima da pastilha peltier do que outra coisa.A partir daí subir mais a frequência se tornava cada vez mais complicado, embora até realizasse o boot, em geral o sistema ia para o brejo antes ou na hora do benchmark do hwbot. Eu precisava resfriar muito mais. Substituir o dissipador por um maior ou melhorar a ventilação eram algumas das opções, entretanto eis que tive uma ideia e pensei: Por que não mergulhar toda parte de baixo do dissipador em água gelada salinizada?! Para quem não sabe, a água comum tende a congelar em cerca deentretanto a água salgada dependendo da mistura pode chegar à congelar somente em -20 C° graus! Eu realmente não calculei a mistura, só adicionei o tanto que achei necessário e deixei líquido suficiente para conseguir mergulhar o dissipador nele.No primeiro boot com essa solução consegui 2,4 C° no SoC. Obs: Ignore os volts, isso é do over_voltage interno, estamos alimentando externamente.Com essas temperaturas, a condensação com o tempo começou a ficar crítica.Criei um script no boot para retornar algumas informações com o vcgencmd (ferramenta mais confiável para ler a frequência, etc) e para executar o HWBOT. Uma observação é que nem toda execução do HWBOT irá retornar exatamente o mesmo resultado, embora tenha que ser próximo.Com essa configuração, em uma das execuções conseguimos bater o recorde de pontos no HWBOT prime, com. As imagens da tela não estão muito legais pois na hora eu só queria um output, além de ser uma tela pequena de resolução baixa ( utilizei meu antigo LCD ) não configurei uma fonte maior. O software de benchmark grava um arquivo onde é necessário enviar no site para validação dos pontos.A tensão utilizada nesse momento era cerca de 2,06-2,07v. A temperatura como pode ser vista na imagem estava em cerca de 15 C° e 16,4 C° após a execução. Nesse ponto dos testes percebi que o sistema de refrigeração atual estava conseguindo manter a temperatura nos 15 graus mesmo após eles.Atualização: Finalmente saiu um vídeo sobre o overclock:Ir além dos 1600Mhz e bater o recorde do SoC era também um objetivo. Há três problemas atuais para se fazer isso.1- O firmware que antigamente era bloqueado para os 1500Mhz hoje está com limite em 1600Mhz2- O firmware modificadofornecido em 2014 não funciona (ao menos atualmente) no Raspberry Pi Zero apesar de ter o mesmo SoC (eu testei).3- Segundo o engenheirohaveria um limite no PLL de 3.2GHz sendo necessário ao menos um divisor por 2, o que faria com que frequências acima de 1600Mhz na teoria não funcionarem. De todo modo na teoria há um recorde de 1620Mhz.No momento estou satisfeito com os recordes atingidos, não somente por representar o EverPi como também o Brasil.Posteriormente irei tentar conseguir um firmware atual desbloqueado ou talvez o aumento de limite no stock para ver se realmente será possível ir além.Ainda não comprou um Raspberry Pi? Veja aqui nossas dicas e indicações para comprar seu Raspberry Pi Referências:Emoticon utilizado na imagem: https://s-media-cache-ak0.pinimg.com/originals/31/fb/09/31fb09b4799d8d5ba2821d93303517b5.png