domingo, 17 de janeiro de 2010

Por dentro do Pense Bem da Tectoy

Atualizado em 07/01/2011: Veja no final do texto.

Sempre tive a curiosidade de saber o que tem dentro de um Pense Bem da Tectoy. Essa curiosidade vem desde o lançamento do brinquedo em 1988. Lembro das propagandas da época na TV e nos gibis mas nunca tive a oportunidade de desmontar o aparelho. Na verdade nem ao menos tinha visto um de perto até semana passada quando consegui comprar este aqui.

Pense Bem da Tectoy
O Pense Bem foi o segundo brinquedo lançado pela Tectoy (o primeiro foi a pistola Zillion) e foi eleito o brinquedo do ano de 1988. Ele vem com 8 jogos de matemática e dois de tons, sendo um deles parecido com o Genius da Estrela. O teclado possui 32 “teclas” de membrana incluindo as de ligar e desligar. O grande trunfo do brinquedo eram os livros que podiam ser comprados separadamente com jogos de perguntas e respostas. Para usar um livro bastava ligar o aparelho, apertar a tecla “Livro”, digitar o numero do livro e depois o grau dificuldade das perguntas. Como o numero do livro é composto por dois dígitos o sistema comportaria no máximo 99 livros diferentes (Fuçando no brinquedo descobri que o número máximo de livros possíveis é de 81 ou 162, preciso fazer mais testes para chegar a resposta correta, aguardem ). Infelizmente não encontrei uma lista de todos os livros lançados. Outra informação que não consegui encontrar é se o aparelho foi projetado no Brasil pela Tectoy ou era licenciado. Resumidamente podemos dizer que o Pense Bem é um ancestral destes notebooks infantis que vemos hoje nas lojas de brinquedos.

Parte de baixo do Pense Bem
O vendedor afirmou que não havia testado e provavelmente não funcionava mais e não tinha conserto. Isso não fazia muita diferença, pois eu só queria ver ele por dentro mesmo. Dei uma olhada nos parafusos e como não estava faltando nenhum e nem haviam marcas de desgastes provavelmente o aparelho nunca havia sido aberto. Como pode ser visto na foto acima o Pense Bem é alimentado por 6 pilhas médias (9 V). Há também um conector na parte traseira para ligar uma fonte externa de 9 V, 300 mA com positivo central. A caixa do brinquedo é muito bem feita e aguenta tranquilamente o uso “normal” por uma criança, algo que não se pode dizer dos brinquedos de hoje. Este aqui inclusive tem as marcas da tentativa de troca de cores das teclas feita provavelmente com lápis de cera.

Para minha decepção ao ligar o aparelho numa fonte externa tudo funcionou de primeira. Não faltou nada: teclado, som, display e programa, tudo normal. Assim não havia motivo algum para poder abrir o aparelho senão o de ver o que tem dentro (e documentar pra este post, claro). A base da caixa é fixada por seis parafusos e o teclado por meio de dois menores que não precisam ser retirados para abrir. O que encontramos após retirar a base é isso aqui:

Pense Bem da Tectoy aberto
Como podemos ver o teclado é um teclado de membrana comum, conectado a placa principal logo acima. O aparelho possui outra placa com os displays que ficam protegidos por um visor vermelho. Retirando os quatro parafusos que prendem a placa a caixa podemos ver o buzzer para o som e os displays:

Vista interna do Pense Bem
A parte de baixo da placa principal é assim:

Placa do Pense Bem - Lado da Solda
Ambas as placas são de face simples. A principal é de fenolite e a dos displays é de fibra. O display é feito com dois módulos separados, um com dois dígitos e um caracter alfa-numérico e outro com 4 dígitos de sete segmentos e um sinal de igualdade.

Placa do Display do Pense Bem
Olhando mais de perto a placa principal vemos que há apenas um chip da Zilog e 15 transistores. Os 8 transistores com aquela meleca (cola quente) perto do display servem para o sistema de multiplexação dos LED’s e são todos BC557 (PNP). Já os 7 restantes são BC338 (NPN) e servem para os circuitos de ativação do Buzzer, regulador de tensão (com o zener Z1 de 5.6V) e de liga-desliga pelo teclado de membrana.

Placa de circuito do Pense Bem
O coração do sistema é um chip de 28 pinos da Zilog marcado como Z0860008SC. Na mesma peça vem marcado Z8 (correspondente ao core) e 2k ROM (a capacidade de memória. Trata-se de um parente do famoso Z80 em versão MCU (série Z8). Zoom no CI:

Processador do Pense BemUPDATEAgora em vídeo:


Update 07/11/2011: Consegui um dos livros do Pense Bem (Thor, o guerreiro invencível) e a partir das informações de copyright descobri o fabricante e o nome originais do brinquedo. Lá fora o Pense Bem era chamado de Smart Start (depois virou uma linha de brinquedos com o mesmo nome) e era fabricado pela VTech (Video Technology Electronics LTd.). Encontrei um site com fotos da versão original e um anúncio antigo graças ao Googlebooks
Vtech Smart Start Ad

16 comentários:

  1. Voyage, é copia do importado, como praticamente tudo que a tec toy fez. Interessantissimo o bicho por dentro, parabens pelo post e, por favor, faça mais posts como esse!

    Isso me lembra que preciso atualizar o tabajara labs...

    ResponderExcluir
  2. Alexandre,

    Eu até procurei se ele era uma cópia, mas não consegui encontrar nada sobre o assunto.

    Realmente o Tabajara-labs tá precisando de umas atualizações.

    ResponderExcluir
  3. Cara... eu fiz exatamente a mesma coisa que você alguns meses atrás. Mas eu abri o meu PenseBem da infância mesmo.

    Eu sou programador e me interesso muito em desenvolvimento de software livre e, em particular, gosto de lidar com código de emuladores. Comecei a escrever um emulador de PenseBem baseado na infraestrutura de código do MESS (parente do MAME).

    Como o PenseBem é super simples, basta fazer um dump da ROM desse Z8 aí e rodar ele num emulador de Z8 interfaceado com uma arte que represente o PenseBem.

    O MESS já tem um emulador de Z8. E eu já fiz todo o esqueleto do emulador de PenseBem. Só falta extrair a ROM e testar.

    Entretanto... como se faz para extrair uma imagem da memória ROM interna de um Z8?

    Existem algumas técnicas para extração de ROMs. Uma delas é escrever um programa que acesse sucessivamente os endereços de memória da ROM interna e vá jogando o conteúdo para fora por meio de algum pino de i/o. Aí grava-se esse programa numa mamória externa e basta induzir o microcontrolador a executar esse código - normalmente fazendo ele bootar pela memória externa.

    Para ver se essa técnica é possível, fui atrás dos datasheets do Z8. Mas eu tive 2 problemas principais:

    1) Não consegui achar o datasheet correto para o modelo específico de Z8 usado no PenseBem. Achei vários datasheets de variantes do Z8, com 2k, 4k, 8k, 16k, 32k de ROM e com outras características diferentes também. Olhando a pinagem dos DIP28 nesses datasheets nada parecia ser coerente com o circuito que estou analisando na placa do PenseBem. Os pinos 9 e 10 do microcontrolador parecem estar sendo usados como pinos de I/O no PenseBem. Entretanto, nos datasheets eles constam como sinais de osciladores de cristal (XTAL1 e XTAL2). Preciso de ajuda para tentar descobrir qual é o microcontrolador que está de fato sendo usado no PenseBem. Teoria da conspiração: será que a TecToy escreveu um nome errado nos chips de propósito pra dificultar a engenharia reversa?

    2) Caso seja mesmo um Z8, com base numa leitura rápida dos datasheets, me parece que não há como bootar o Z8 a partir de uma memória externa. Me parece que esses microcontroladores vêm de fábrica já com o software que o cliente tiver encomendado já gravado na ROM. Ou então que a memória só pode ser escrita uma vez, mas não lida. Eu posso estar equivocado (espero), mas essa é a primeira impressão que tive ao ler rapidamente os diversos datasheets que analisei.

    Adoraria poder contar com você para descobrir mais coisas a respeito do PenseBem e quem sabe conseguir fazer funcionar um emulador :-)

    Felipe "Juca" Sanches
    http://jucablues.blogspot.com/

    ResponderExcluir
  4. Juca,

    O Z8 usado no Pense Bem é OTP e parece não possuir endereçamento externo. Para fazer o dump da memória interna acho que só com ácido e leitura direta na pastilha de silicio.

    Gostei da idéia de emular o brinquedo a partir da ROM original.

    ResponderExcluir
  5. Você sabe fazer isso? Ou está falando só por que ouviu falar que tem gente que sabe fazer? Por que isso eu também já ouvi dizer.

    Se você souber fazer, topa tentar? Eu acho que seria sensacional documentar uma experiência dessas.

    São 2kbytes de ROM. Ou seja, precisaríamos descobrir 2048 valores... Eu acho que isso é bem difícil de se fazer usando a técnica intrusiva que você está sugerindo. Parece tarefa para gente muito profissional e com equipamentos bem sofisticados.

    Será que não tem algum outro jeito?!

    ResponderExcluir
  6. Felipe,

    Saber fazer? Depende... hehe... Eu sei quem faz mas nunca precisei. Existem empresas no Brasil que fazem isso (na verdade só mandam pra China) . Conheço pessoas que já usaram serviços do tipo. Precisa de equipamento que eu não tenho. Meu outro problema é tempo pra fuçar mais nessas coisas. A vida tá dura... hehe.

    ResponderExcluir
  7. Adorei esse PenseBem na época de minha infância. Eu acho que nunca usei-o sem os livros (acho que foi até o 30). Lembro que eu tinha menos de 10 anos quando descobri que os livros nada mais eram que um "seed", pois a ordem das respostas se repetiam após N livros (testei, na época, com o livro noventa-e-tantos e funcionou - perdeu a graça logo após :). Quem quiser simular o PB, bastaria descobrir a fórmula base, sem precisar de dumps da ROM.

    ResponderExcluir
  8. Um emulador falso de Pense Bem pode ser feito sem acessar a ROM. Basta simular as funcionalidades básicas do Pense Bem (os joguinhos de cálculos e musicais), e reproduzir o conteúdo dos livrinhos. O número do livro é um hash para um vetor de X posições (sendo X o número de perguntas no livro) e 2 bits (4 alternativas), bastaria ir digitando código por código e deixando o Pense Bem "dar" as combinações. Quando chegasse no primeiro ciclo, era só repetir os números dos livros na sequência.

    ResponderExcluir
  9. Alguém sabe como consigo 'calcular' as respostas dos livros de Pense Bem ?

    ResponderExcluir
  10. Muito interessante esse post. O Juca parece estar bem "mergulhado" dentro do universo da emulação, contudo apesar dos pontos que ele expôs estarem corretos, eu acho que a idéia de emular diretamente o hardware empaca pelos seguintes motivos:
    - Como ele mesmo disse (e tbm o Voyage), normalmente os fabricantes de microcontroladores produzem duas versões distintas de cada modelo, sendo uma delas a versão para desenvolvimento, que admite endereçar memórias externas (EPROM) e outra chamada "OTP" (que significa "One Time Programming"), a qual é destinada a implementação no produto final - esta última é propositalmente desabilitada (no silício mesmo) de qualquer possibilidade de acesso externo (seja para interfacear uma EPROM externa, seja para se conseguir acesso à ROM OTP interna). Basicamente, a ROM interna (normalmente 2K ou 4K apenas) é diretamente conectada ao processador na própria pastilha. Eu não conheço nenhuma forma de se conseguir interfacear o chip OTP (nem acredito que ácido vá resolver, pois é impossível conter a corrosão, e é muito mais provável que a coisa toda vá pro brejo).

    - Nas máquinas Arcade (mesmo as atuais) se usa a arquitetura "von Neumann" (= acesso externo a memória de programa - ou seja, EPROM), pelo fato de os programas serem "imensos" (normalmente acessando bancos de ROMs paginados e criptografados) e também a complexidade dos softwares exigir um poder de processamento muito grande. Isso impossibilita a utilização de microcontroladores com ROM interna, pois estes não são projetados para oferecer grande desempenho nem controlar hardware muito complexo. Já numa aplicação como o Pense Bem é mais apropriado o uso de microcontroladores, pois como apontado pelo Ricardo, o algoritmo de cálculo das respostas é bastante simples, sendo até possível calclulá-las sem a necessidade de se ter acesso ao código da ROM.

    Concluindo, apesar dessa ser uma discussão extremamente interessante Juca, acho que o "approach" que você pensou (mesmo sendo muito saudável em termos de aprendizado), não é o mais adequado no caso do que você está querendo emular. Acho mais simples e direto você seguir a orientação que o Ricardo nos deu, que irá lhe garantir a precisão do resultado final tanto quanto seria se vc tivesse acesso ao programa original.

    (Essa idéia, na verdade até já foi/é utilizada. Veja por si mesmo algo muito parecido com o que você quer fazer: http://www.speaknspell.co.uk/speaknspell.html)

    ResponderExcluir
  11. wmoecke,

    Obrigado pelo comentário, muito bom mesmo.

    ResponderExcluir
  12. De nada, meu camarada. Gostei muito de ter achado o seu blog. Acho muito legal o trabalho q vc faz.

    ResponderExcluir
  13. Cara curti muito o seu blog.Alias esta adicionado na minha lista de blogs.(thenandgate.blogspot.com)
    Não gosto muito do Z80 e familia, prefiro os Atmel e PIC mas seria interessante estudar esse microprocessador.Acho que é possivel fazer um circuit bent no Pense Bem, para ele executar outras tarefas.Bom eu nunca tive um desses, então resolvi comprar um qdo vi esse artigo.Abraço

    ResponderExcluir
  14. Olá amigo. Tenho um pense bem e alguns leds de alguns displays estão falhando. será que é o modulo com defeito? Percebi que um dos leds fica piscando, como se fosse mau-contato. Ressoldei e não adiantou. Tem alguma dica? Abraços.

    ResponderExcluir
  15. Olá amigo, o meu pense bem está falhando alguns leds dos display. Já ressoldei a placa e não adiantou. Tens alguma dica? Abraços.

    ResponderExcluir
  16. caramba meu, que legal esse site, eu sempre tive curiosidade de saber como e o pense bem por dentro, o meu nao funciona desde 92, quando minha irma ligou uma fonte de 12 volts e deve ter queimado alguma coisa dentro, pois desde entao ele nao funciona, voce sabe me dizer mais ou menos como arrumar? foi meu primeiro brinquedo, minha mae me comprou para mim melhorar na escola, pois sempre fui ruim de memoria e de matematica principalmente! levei para um cara que conserta aparelhos eletronicos aqui na minha cidade(itatiba-sp) e ele nao quis mexer por ser um brinquedo e talz, e nao achei nimguem que mexesse, se puder me ajudar, tenho multimetro aqui em casa, mas nao manjo muito! meu email é tonycelano@hotmail.com, obrigado desde ja!se voce puder me ajudar agradeceria muito! ou se conhecer algum lugar que arrume!

    ResponderExcluir

1. Alguns comentários são moderados automaticamente. Caso isso ocorra pode levar algum tempo até que eu veja e o libere.
2. Comentários fora do assunto do post podem ser apagados.
3. Não, eu não posso consertar os seus aparelhos!

Related Posts Plugin for WordPress, Blogger...