Um amigo da PICLISTBR, comprou a um tempo atras um daqueles netbook de 7″ que roda Windows CE que tem no Deal Extreme para dar de presente para filha, porem este notebook nunca funcionou.
Esse amigo, o Francisco Frambrini (que a gente chama de 0xFF) tentou trocar o netbook mas o custo do frete para manda-lo de volta para a china já inviabilizaria a troca. O Deal Extreme então sugeriu outras formas como um bônus para usar na compra de outro produto e ver se conseguia consertar o netbook por aqui no Brasil mesmo.
O 0xFF então desistiu do netbook, e eu me ofereci para adquiri-lo na base do “AS-IS” como dizem os americanos, corresponde ao que nos brasileiros conhecemos como “venda no estado”.
Eu literalmente comprei a briga com este netbook, ou seja, na pior das hipóteses se não desse pra recuperar, eu rachava ele em pedaços e vendia no mercado livre ou aproveitava o que desse das peças pra fazer algum brinquedo.
Mas a idéia original era consertar mesmo, descobrir que raios acontecia com ele.
Assim que o netbook chegou lá em casa (foi quando eu estava de repouso por causa do tornozelo, mas já sem o gesso) eu o desmontei e analisei com as ferramentas que tinha a mão, e não tirei muitas conclusões. O fato era que ligava-se o netbook pela primeira vez e este apresentava a tela de abertura escrito “Wirelesse Book” e em baixo a mensagem “Loading OS Image…” e cerca de 2 segundos dessa tela aparecer, tela preta e nada mais.
E não adiantava tentar desligar ou re-ligar netbook pela tecla power que nada mais acontecia. Só removendo a bateria e colocando de volta para ele repetir o que esta descrito acima.
O mais curioso é que por duas vezes aleatórias ele ligou e inicializou certinho, cheguei a entrar no windows ce… mas depois disso… nada mais.
Resolvi desmontar e ver como era a barrigada dele. Olha que miudinha é a paca-mãe dele:
Sim, essa foto é enooooorme, eu bem que queria uma igual pra comparar…Ah… aquele led vermelho no pendrive, fui eu que coloquei ali, pra ver se tinha atividade de acesso a ele. Tem o lugar para o led na placa mas não tinha o led.
Pelo fato de travar na tela “Loading OS Image…” eu achei que poderia ter algum problema com a flash disk que na verdade é um pendrive sem o conector USB. Tratei de fazer um adaptador e ligar isso em uma USB e ver se tinha algo lá dentro.
E de fato, havia o Windows CE 6.0 em inglês lá dentro. Tratei de fazer uma cópia desse conteúdo todo e guardar. O mais curioso é que o pendrive dizia ter apenas 256Mb, sendo que o informado pelo fabricante é que tem 2Gb de USB DISK. Estranhei no inicio mas depois descobri que na verdade o danado é particionado, tem 3 partições nele, sendo a primeira FAT32 e a segunda e terceira em exFAT. A segunda partição é outro “disco” de 256Mb e fica o kernel e a tela de boot, e a terceira sobra os 1.5Gb que são a flash disk que o usuário tem acesso pra gravar suas coisas.
Feito este backup, vamos a analise. Fiz uma sugestão que o Lip deu, medir a tensão da bateria pra ver se não estava arriando, liguei um multímetro e fiquei monitorando a tensão da bateria durante a tentativa de boot… nada… ela se matinha 100% estável. Logo não era bateria, mas por desencargo de consciência eu ainda testei com uma fonte externa ligada no lugar da bateria, tudo a mesma coisa.
Dai parti para o trabalho “braçal”. Comecei a ler sites e fóruns que discutem a respeito desse netbook. O fato é que 100% dos fóruns em português é muito blá blá blá e especulações de recover em torno de software e nenhum aborda os aspectos do hardware em si. Lendo daqui e dali, resolvi tentar um recover como sugerem, vai que tem algum arquivo corrompido?
Baixei um pacote contendo a imagem do Windows CE 6 em inglês, segui as instruções e nada… o net aparecia tela e morria. E não parecia se quer tentar o boot pelo cartão. Testei também uma imagem contendo o Android 1.5 portado pra esse netbook e nada.
Como o problema definitivamente não era de software, comecei as pesquisas em torno da placa-mãe. Como o defeito aparentava ser intermitente (já que ele deu boot completo por duas vezes) decidi ressoldar boa parte a placa no ferro de solda mesmo e nada mudou. Nisso passou o tempo e eu obtive alta médica. Logo que eu pude começar a sair de casa, eu catei a placa-mãe do netbook e levei na loja de informática de um amigo que tem uma estação para fazer reflow em placa de notebook, uma estação IR. Fiz reflow do ARM e da memoria DDR.
Nisso resolvi passar aqui no cafofo pra lavar a placa com álcool isopropílico, pois eu a lambuzei de fluxo de solda para fazer o reflow. Tirei o pendrive e lavei a placa com um pincel e botei pra secar. Na hora de ir embora pra casa (já que o resto do net estava lá em casa) fiz o favor de esquecer o pendrive aqui.
Como estava difícil pra voltar aqui (tornozelo doendo um pouco) eu resolvi pelo menos ligar ele sem o pendrive e ver o que acontecia, se pelo menos ligava e desligava normalmente. Ai aconteceu um problema inesperado…
Eu esqueci dentro do slot, um cartão SD com a imagem do Android 1.5 e assim que liguei, o netbook deu boot pelo cartão e começou a instalar o android. Nisso eu pensei… e agora? Que que eu faço? Na hora, no apavoramento puxei a bateria fora, e nesse exato momento pipocou na tela a mensagem dizendo: “Updating U-boot and W-Loader, please keep power and conecter external power”.
Pronto… tava feita a cagada, puxei a bateria no momento exato que ele estava atualizando o U-boot. Depois disso ele não ligou mais.
Dai pensei… ferrei o bootloader dele. E agora? Dai eu percebi que os fóruns em português não ajudariam em nada, pois eu precisava de uma imagem da flash que contem o U-boot e o W-load original deste netbook. Dai passei a revirar os fóruns e sites em inglês e mesmo assim as coisas andavam mais ou menos como nos em português… depois de muito, mas muuuuuuuito procurar, eu fui achar uma imagem da flash em um fórum russo! Sim.. russo! Sempre os russos que vão mais a fundo no quesito “futucar hardware”…
Baixei a imagem e vamos gravar isso de volta. Segundo problema… a flash alem de SMD é SPI, será que o Wellom (o gravador de eprom chines, usb) grava? Necas… não tem suporte pra flash SPI. E agora José? Dai lembrei adivinha de quem??? Do velho Willem, aquele gravador paralelo que até os cachorros conhecem… E ele grava flash SPI!
Dai… toca a fazer uma maracutaia pra gravar essa flash, pois ela é SMD e eu estou sem adaptador SOIC8 -> DIP8, os meus estragaram de tanto solda/dessolda. Preciso fazer novos ou comprar um adaptador ZIF SOIC logo de uma vez.
A flash SPI em questão é uma 25G40. No Willem eu gravei como sendo uma flash Winbond W25x40, é compatível com essa estranha 25G40.
Ok… gravada a flash, toquei ela de volta no netbook e nada… nada de boot. Nisso comecei a olhar torto para um furinhos na placa que são de uma porta serial (3V3, TX, RX e GND)… Fui ler a respeito desse conector faltante e ele é uma porta serial de debug, que você tem acesso ao console do bootloader e outras cositas más… Catei um cabo de celular Nokia (um cabo CA-42 que uso pra esse tipo de debug via seral), soldei um conector ali, conecto o cabo, abro o terminal serial e vamos monitorar. Acerta os parâmetros da serial (115200 8n1) e vamos lá…. o gozado que ao ligar nada acontecia, nenhuma atividade, mas ao desligar aparecia um “lixo” na tela do monitor serial.
Futuquei a placa por um dia e nada… o mais curiosos é que nessa futucação, ao manipular a placa ligada medindo tensões e analisando alguns pontos com um mini-osciloscópio lcd, ele ligou e entrou… e vi que isso aconteceu quando eu estava sondando uns sinais da flash SPI, pra ver se tinha atividade nela… depois de muito bater testa, e eu apelei para o velho método do dedão molhado com cuspe e ir passando ele por cima das soldas.
E quando passava o dedo bem em cima de um local bem ao lado da flash SPI, o U-boot dava de inicializar, ora inicializava completo, e até entrava no Windows CE… uma doideira. Sei que mexi mais uns dois dias sem sucesso,
Nisso desconfiei que poderia ser alguma coisa relacionada com a própria memoria flash SPI, fui atras de sucata e consegui algumas memorias destas de 4Mbit em sucatas de PC. Na garimpagem encontrei uma SST25LF040A que serve no lugar. Gravei o mesmo bootloader e anda, se comportou igualmente a flash antiga… dai resolvi encostar ele. Isso foi na segunda feira da semana passada.
Pula quase uma semana.
No domingo a noite, apos eu ter voltado da cozinha e ter assado uma fornada de pão-de-queijo e sem quer ir ver TV, fui mexer mais um pouco no netbook. Nessa hora eu resolvi fazer uma analise mais minuciosa. Catei um cotonete umedeci com água e fui cutucando a placa… encostava o cotonete num ponto e dava um reset, fui fazendo isso até chegar em um ponto bem especifico da placa, em cima de dois capacitores cerâmicos e dois resistores de 10K.
Neste ponto, era só segurar o cotonete ali e dar um reset que ele entrava bonitinho. E toda atividade do U-Boot W-Load sendo monitorada pela serial. Bom… e agora? Cheguei a estimar a resistência apresentada pelo cotonete molhado e até pendurei resistores de valor próximo ali em cima dos capacitores, fazendo de conta que tinha um cotonete ali e nada… podia resetar o quando quisesse que não entrava. Mas bastava por o cotonete que funcionava. Nisso pensei… será que esses capacitores estão ruins? Tem algo errado com eles? Resolvi medir… ambos era se não me engano de 1nF. Tirei os capacitores e substitui por novos e… nada…
Dai meio no tapa, no improviso, resolvi apelar… será que o cotonete molhado esta fazendo algo em cima dos resistores? Dei uma analisada como os resistores estavam ligados e vi que eles estavam em série com pinos da flash SPI. Da pensei… vamos apelar para a base do tudo ou nada.
Removi os capacitores e botei um pingo de solda curto-circuitando cada um dos resistores. Liguei e nada… mas dei um reset pela chave e…. Entrou! Deu boot completo e certinho!
Os componentes que removi, já com a placa sem gambiarras, substitui os resistores por jumpers SMD:
C4 e C7 caíram foram… os dois Zero Ohm na marca vermelha é onde estavam os resistores de 10K
Dai liguei de desliguei o netbook, um reset logo em seguida, e funcionou sem problemas. Repeti isso umas 50 vezes e em nenhuma delas falhou. Ai pensei… bom… o que fazer? Porque funciona resetando? Levantei o circuito de reset e é o circuito clássico:
Analisando grosseiramente o que acontece, parece que o reset tava meio rápido… não dando tempo de inicializar a flash. Dai o que fazer pra atrasar esse reset um pouco??? Basta aumenta o valor do capacitor! Qual foi a via mais rápida? Botei um 47uF de tantalo em paralelo com a chave.
É esse componente amarelo soldado ao lado da chave SW1. A barrinha de 4 pinos ao lado, é a porta serial de debug/console, esse conector já vai ficar a pra sempre… cortando um pequeno pedaço de plástico no compartimento da bateria, da pra acessar ele a qualquer momento, bastando remover a tampa da bateria. eheh.
Bom… feito isso funcionou direitinho, sem precisar de dar reset, basta ligar e usar. Mas eu não me contentei… fui ver onde iam estes pinos na memoria SPI… passei o teste de continuidade na placa, e cada um dos resistores fica em série com os pinos 3 e 7 da flash SPI.
Agora vem a parte que não da pra entender e não faz sentido…
Olha o que são os pinos 3 e 7 desta flash… E como os capacitores e resistores são ligados:
Dai eu pergunto… QUE DIABOS tema ver os pinos /HOLD e /WP, a remoção destes componentes e o alongamento do reset?
Sim… eu testei aplicar uma coisa de cada vez, em separado e não funciona… não adianta por exemplo só alongar o reset, ou só remover os componentes do pino 7 ou só do pino 8 e ainda os dois juntos ou um ou outro combinado com o reset… tem que ser tudo ao mesmo tempo…
E ai? Bom… lembrei do solucionador de problemas: A bagaça funciona? Sim? Então, nem rela! Sem problemas.
Olha o bichinho funcionando:
Sim… eu hackeei a tela de boot do netbook
Jabá…
Não da pra ver na foto, mas eu também atualizei o Windows CE 6 para a versão em português.
Pagina da Piclistbr
Opa… já é 7 de setembro.
Mas eu sou um cara que não gosta de ficar sem saber o que acontece. Em uma próxima oportunidade, eu vou voltar os resistores de 10K no lugar e fazer algumas medições, e tentar entender o que acontece.
Edit em 15 de Julho de 2012:
Fiz um post com todos os arquivos que usei para recuperar meu WM8505:
https://www.crashcomputer.com.br/?p=3654