quarta-feira, 7 de junho de 2017

Recuperando MXQ Android BOX (S805) com WIFI Realtek RTL8188etv (unbricking)

Este é um post rápido para ajudar quem possa estar com o mesmo problema que eu tive.

Atenção:
Realize este procedimento por sua conta e risco. Não me responsabilizo por eventuais danos causados ao equipamento. Este é um Post de exemplifica como resolvi meu problema e espero que possa te ajudar.

Bom um tenho um Android BOX simples, somente para assistir NETFLIX.

É este da foto abaixo.
Modelo S805
RAM:1GB
Armazenamento:4GB


É um equipamento simples, barato e funciona bem (para meus fins).
Bom recentemente decidi atualizar a Firmware para uma modificada. Aí começaram meus problemas. Instalar a nova firmware foi simples. Porém o WIFI não funcionava mais.

Após um dia realizando testes e pesquisando na internet finalmente encontrei a solução. Então deixo abaixo os passos e espero poder ajudar.

O que acontece é que os Firmware que eu instalava não suportavam a placa wifi presente em meu MXQ que era da Realtek RTL8188etv.


Após muitas buscas na internet encontrei um Firmware que resolveu meu problema. No meu caso, o MXQ não estava mais entrando em modo de recuperação. Então instalei a nova Firmware utilizando um cabo USB macho-macho (fácil de encontrar).

É necessário somente o software USB Burning TOOL para gravar a nova ROM.
http://androidpcreview.com/wp-content/uploads/2015/12/USB_Burning_Tool_v2.0.6.2_build2.rar

E a ROM compatível com a placa WIFI RTL8188ETV
https://cloud.mail.ru/public/7oSn/WunL7sMWW (baixe o arquivo aml_upgrade_package.img)


Importante: Você deve manter pressionado o push button atrás do jack de áudio durante tudo o processo. Coloque um palito ou algo que mantenha ele pressionado. Segurar com a mão é desconfortável.

Procedimento 1, para MXQ que esteja sendo reconhecido pelo software.
1º - Instale o software USB Burning Tool
2º - Baixe a ROM aml_upgrade_package.img do link acima.
3º - Abra o software USB Burning Tool e selecione a ROM baixada.

Deixe as configurações como abaixo.

Neste momento você não utilizará a fonte de alimentação, somente o cabo USB.

4º - Conecte o cabo USB à porta USB traseira do MXQ, a única que fica ao lado dos dois jacks. Imagem abaixo.


5º - Conecte a outra ponta do cabo USB ao PC.

Se tudo correr bem o software irá detectar seu MXQ.

6º - Click em start e aguarde a mensagem de sucesso.

Nota.: Algumas vezes pode ocorrer erros durante a gravação. Caso isto ocorra repita o procedimento de gravação.

Procedimento 2, para MXQ que não esteja sendo reconhecido pelo software.
Neste caso os passos são os mesmos citados acima porém com uma diferença.
Se após ligar o cabo ao PC, ele não reconhecer o aparelho será necessário realizar uma ponte momentânea entre os pinos 7 e 8 da NAND, como imagem abaixo.

Utilize algo metálico para relizar este procedimento. Você deve realizar esta ponte somente por 1 ou 2 segundos, já será suficiente para o PC reconhecer.


Espero que ajude.

quarta-feira, 1 de julho de 2015

Tocador de arquivos VGM com PIC16F877 / Stand-alone VGM player using PIC16F877

Sempre fui fã de jogos antigos e de seus respectivos sons. Sempre me impressionou a qualidade do som de alguns jogos, estes apresentavam uma qualidade que exigia muito conhecimento e criatividade dos compositores da época. Pois os Chips de áudio da época eram limitados. Com o passar do tempo esses Chips foram sendo atualizados, ganhando novas funções e uma melhor qualidade. Eu tenho um conhecimento melhor quando se fala de consoles da Sega. Os sons gerados pelos consoles como Sega Master System, Sega Mega Drive utilizam um Chip de áudio para gerar os sons.
Somente para fins didáticos, irei estudar a arquitetura do Chip SN76489 que é o Chip responsável por gerar os sons no console Master System, e tentar criar um player stand-alone capaz de reproduzir sons armazenados em uma memória EEPROM. Os arquivos que o Player será capaz de reproduzir será o arquivo VGM, que é facilmente encontrado na internet em sites que abordam esse tipo de assunto, games antigos.
Toda a programação do Player será feita em um compilador Freeware e será utilizado Linguagem C. O Microcontrolador PIC16F877A foi escolhido por possuir portas I/O suficientes ao projeto, e por ser capaz de trabalhar à um clock suficiente para esse projeto, 20Mhz.

Material utilizado:
Microcontrolador PIC16F877A
CI SN76489 (Gerador de sons complexos)
CI AT24C512 (EEPROM 512K Serial)
CI LM386 (amplificador de áudio simples)
Oscilador 4Mhz

Primeiros passos:
O primeiro passo é estudar e entender a arquitetura e o funcionamento do Chip SN76489.
SN76489

Na imagem acima podemos ver a função de cada terminal. 
Os terminais 1,2,3,10,11,12,13 e 15 recebem os bytes de forma paralela.
Terminal 4 indica que o CI esta em ready state.
Terminal 5 habilita o CI para receber os dados.
Terminal 6 habilita o CI.
Terminal 7 é a saída de áudio.
Terminal 14 é a entrada de clock.

Se você olhar o datasheet orinal do componente, irá notar que os terminais que recebem os bits estão invertidos. Isso porque no início da eletrônica se adotava o bit 0 como MSB e o bit 7 como LSB.




Por enquanto não entrarei em detalhes sobre o funcionamento completo do CI SN76489. Com o tempo irei atualizar esse post com mais detalhes. Por enquanto deixo abaixo o link com todas as informações que eu utilizei.

http://www.smspower.org/uploads/Development/SN76489-20030421.txt

Abaixo segue o link onde é possível encontrar informações sobre como funciona a estrutura do arquivo VGM. Nesse link também esta disponível os arquivos para serem compilados e gravados no PIC.
https://drive.google.com/folderview?id=0B99rwmJ4DTXSMlNjTXM0Z1I3V3M&usp=sharing

Desenvolvimento:
Após toda a analise do Datasheet do CI SN76489 e também da documentação que descreve o funcionamento do arquivo VGM iniciei os primeiros testes no componente. Os primeiros testes são basicamente gerar sons simples enviando simples instruções ao componente (Primeira etapa).

Primeira etapa

Após a etapa anterior melhorei a programação do PIC incluindo novas interpretações do arquivo e já foi possível extrair áudio do arquivo VGM. É possível ouvir vários Glitchs durante a reprodução. Isso ocorre devido a várias instruções do arquivos serem ignoradas durante a interpretação (Segunda etapa).

Segunda etapa

Na Terceira etapa já é possível notar uma estabilidade na reprodução e melhora no áudio. Isso foi possível após a inclusão de novas interpretações do arquivo VGM.

Terceira etapa

Após a Terceira etapa o que faltava era basicamente melhorar a programação do PIC para uma total interpretação do arquivo VGM.
Na Quarta etapa incluí ainda mais interpretações do arquivo e também a capacidade de reproduzir vários arquivos armazenados na mesma memória EEPROM. Um LED de três cores nos mostra o status do hardware.
  • Verde - Arquivo VGM válido.
  • Azul - Reproduzindo.
  • Vermelho - Erro / EoF.
Ainda é possível notar que ao concluir a reprodução de um arquivo e gerado um resíduo. Isso ocorre devido a falta de uma rotina para zerar o SN76489. 
O hardware já encontra-se montado definitivamente em uma placa PCB. O projeto final conta também com um amplificador simples já incluso na placa, possibilitando assim a inclusão de um falante diretamente à placa.

Quarta etapa

Abaixo podemos ver o diagrama elétrico feito por mim. Esse diagrama é a montagem definitiva que esta na placa do vídeo acima.

Diagrama elétrico

segunda-feira, 18 de março de 2013

Caixa de Som Microcontrolada

    19/feb/2013
    Tenho essa caixa de som para o PC. No entanto, de uns dias para agora ela começou a apresentar problemas de super aquecimento. Na verdade essa caixa de som sempre teve problemas com aquecimento, como ela era nova aguentou essas altas temperaturas.


    O dissipador de calor da caixa é grande para o espaço interno disponível, então quando a caixa esta trabalhando com um som mais alto acontece o problemas de aquecimento exagerado. Como a caixa já tem uns bons anos de vida, a placa de circuito impresso já não esta lá com aquela qualidade original de fábrica. E com a exposição a altas temperaturas por muitos anos, foram os principais problemas.
    O problema que a caixa esta apresentando atualmente é de mau contato dos componentes. Quando o dissipador atinge altas temperaturas, a solda da placa aquece e ruídos aparecem junto ao som. Para tentar resolver tal problema, irei acoplar um cooler no interior da caixa de som, porém esse cooler não ficara ligado constantemente.

Placa do amplificador
    Acimo segue uma imagem da placa do amplificador. Onde pode-se notar que as trilhas já estão bem danificadas. A principal causa da degradação das trilhas foi o grande calor gerado pelo dissipador. Como pode-se notar, algumas trilhas tiveram que ser substituídas por Jumpers.    Para monitorar a temperatura usarei um microcontrolador que tem a habilidade de converter a temperatura em dados totalmente digitais, esse CI é o DS18B20. 

    27/feb/2013
    Esse Microcontrolador facilita muito o trabalho de obtenção de dados. Portado de somente três fios, alimentação, GND e data esse dispositivo é de fácil trabalho. Como os dados são transmitidos para o PIC diretamente em forma de dados digitais é muito simples estipular limites para a temperatura. Como o PIC a alimentação do DS18B20 pode ser de 3 a 5.5V, o que facilita muito o trabalho.
    Abaixo segue a tabela com exemplos dos valores de temperatura em decimal, binário e hexadecimal fornecidos pelo DS18B20.

    Os valores acima serão lidos pelo PIC e trabalhados pelo programa. A temperatura de acionamento do cooler será de 50ºC.
    O cooler utilizado é um cooler comum usado em informática para resfriar processadores. Utilizarei um cooler menor que era utilizado em computador mais antigos como por exemplo o 486.
Cooler 12V/100mA
    Abaixo o desenho da placa que será feita na Plotter PCB.
Layout da placa
    13/mar/2013
    Abaixo o diagrama elétrico do circuito. Como pode-se observar o circuito é de simples montagem e portado de componentes de fácil aquisição. O trabalho na verdade ficará sob responsabilidade do Microcontrolador. O qual fará a leitura da temperatura e trabalhará os dados, acionando ou não o cooler.
Diagrama elétrico
    Para simples efeito de monitoração. Instalei atrás da caixa de som um LED verde que pisca de acordo com a execução do programa e também de acordo com a temperatura. Quanto maior a temperatura mais rápido o LED irá piscar. LED piscando significa que o PIC esta rodando o programa normalmente, LED piscando lentamente significa que a temperatura esta baixa e LED piscando rapidamente significa que a temperatura esta alta. O LED pisca em várias velocidades diferente, para cada faixa de temperatura. Abaixo foto da parte traseira da caixa de som o LED de monitoração.
Parte traseira da caixa de som
    Abaixo imagem da parte interna da caixa de som. Já com a placa do Microcontrolador instalada. Foi necessário realizar um pequeno corte no duto de ar da caixa para alojar o Cooler corretamente no interior da caixa.
Circuito instalado
   
    18/mar/2013
    Segue abaixo trechos dos códigos que realizam a monitoração da temperatura e acionamento do Cooler.

...
float temperature;
int y;
int16 x=1000;
while (1)
{
  temperature = ds1820_read();
...
}

    Trecho acima utiliza a rotina ds1820_read() para receber os dados do DS18B20. Esse dados são armazenados na variável temperature. Após o valor armazenado na variável, basta realizar as ações desejadas.


  if(temperature > 50.0){
  ...
}


    A possibilidade de ações é imensa. No meu caso usei o valor maior que 50 para acionar o cooler e piscar o LED verdade de monitoração de temperatura.

sexta-feira, 8 de fevereiro de 2013

Sensor de Movimento SMS

    08/feb/2013
    Estou com essa ideia já faz algum tempo porém o que falta é tempo para fazer, mas dessa vez espero conseguir chegar até o final do desenvolvimento do projeto.
    A ideia principal seria desenvolver um circuito capaz de enviar e receber mensagens SMS através da rede GSM, onde eu receberia avisos em meu celular caso algum movimento fosse detectado no interior da minha residência. Para tal, seria necessário um modem que trabalhasse com comandos AT, para tornar mais fácil o trabalho. Já adquiri esse modem pela internet. Segue abaixo a foto:

Modem GSM - AT commands
     Com o modem GSM da imagem acima é possível enviar e receber Mensagens de Text (SMS) através de comandos AT utilizando uma porta de comunicação Serial, como o Microcontrolador PIC16F628A tem disponível portas de comunicação Serial, irei utiliza-las para estabelecer a comunicação entre o PIC e o Módulo GSM. O módulo funciona com uma tensão de 12V e consome 1A de corrente quando esta transmitindo ou recebendo informação. Como os sensores de movimento que pretendo usar trabalham com 12V, poderei utilizar somente uma fonte de 12V e abaixar essa tensão para o restante do circuito que trabalha com TTL.
PIC16F628A
     Eu gosto muito de trabalhar com o PIC16F628A, acho que dentre os CIs da família PIC é o melhor custo-benefício, possui uma boa memória para programas curtos, uma boa quantidade de RAM e EEPROM e também um processamento relativamente bom. Agora, uma característica que gosto muito nesse PIC é o fato de poder optar pelo oscilador interno, o PIC 16F628A possui um oscilador interno bem preciso, eliminando assim alguns componentes que seriam usados externamente no PIC, esse oscilador é ótimo, já utilizei o PIC para transmitir dados Seriais utilizando somente o oscilador interno e nunca tive problemas com isso. Outra característica valiosa nos Microcontroladores é um conversor AD, que infelizmente o 16F628A não possui. Mas se você necessita de um conversor AD em um PIC opções é que não faltarão.
    Nesse projeto irei utilizar o PIC trabalhando a 4MHz, portanto ele levará 1uS para executar uma instrução completa. Tempo que acho mais que suficiente para realizar todas as tarefas de manipulação dos dados. Se por ventura a velocidade de 4MHz não seja suficiente o PIC16F628A tem a possibilidade de trabalhar em velocidade de 20MHz com oscilador externo.
   
Segue abaixo o Chatflow da ideia inicial do projeto. Por enquanto é somente uma ideia inicial, provavelmente irei modifica-la posteriormente.


     

    11/mar/2013
    Infelizmente após uma ligação incorreta do Módulo GSM, o mesmo foi danificado. Estou providenciando um novo módulo para dar continuidade ao projeto.

   19/mar/2013
    Enquanto o novo módulo GSM não chega, vou adiantando outras partes do projeto. Como obter as informações necessárias. Analisando a documentação do módulo TC35 obtive muita informação útil. Dos quais estou separando os comandos necessário para acessar os dados no módulo.

    O comando abaixo é usado para configurar o modo que o módulo reporta o status da rede. Por exemplo, se o mesmo esta registrado na rede ou não, ou se não há rede disponível no momento.

4.37 AT+CREG Network registration

AT+CREG=[<n>]


<n >
0 disable URCs
1 enable URC +CREG:<stat> to report status of network registration
2 enable URC +CREG:<stat>[,<lac>,<ci>] to report status of network registration including location information. Please note that optional parameters will not be displayed during call.
<stat>
0 not registered, ME is currently not searching for new operator
1 registered, home network
2 not registered, but ME is currently searching for a new operator
3 registration denied
4 unknown
5 registered, roaming

    O comando abaixo é usado para Deletar uma mensagem em uma posição específica da memória.

5.2 AT+CMGD Delete SMS message

AT+CMGD=<index>

<index> integer type; value in the range of location numbers supported by the associated memory
Exemplo:
AT+CMGD=1

    O comando abaixo é usado para selecionar o formato das mensagens. Essa configuração deve ser feita antes de tentar receber dados do módulo. No caso do meu projeto, usarei as mensagens no formato texto, por se tratar de um formato mais comum e de fácil tratamento.

5.3 AT+CMGF Select SMS message format


AT+CMGF = [<mode>]


<mode>
0 PDU mode
1 text mode

    O comando abaixo é usado para Ler uma mensagem em uma posição específica da memória.

5.5 AT+CMGR Read SMS message

AT+CMGR=<index>


<index> integer type; value in the range of location numbers supported by the associated memory
Exemplo:
AT+CMGR=1

    O comando abaixo é usado para enviar mensagem de texto utilizando a rede GSM na qual o módulo encontra-se conectado.
    
5.6 AT+CMGS Send SMS message

If text mode (+CMGF=1): +CMGS=<da> [,<toda>]<CR> text is entered <ctrl-Z/ESC>

<da> GSM 03.40 TP-Destination-Address Address-Value field in string format; BCD numbers (or GSM  efault alphabet characters) are converted into characters; type of address given by <toda>

    20/mar/2013
    Antes de trabalhar com os dados após a leitura do módulo TC35 vou armazena-los em uma memória de de velocidade superior a da memória EEPROM. Como o PIC não porta uma quantidade satisfatória de memoria RAM irei utilizar uma memória RAM externa. Após requisitar os dados do módulo TC35 primeiramente irei armazena-los nesse memória externa. Pois não seria possível tratar os dados ao mesmo tempo que recebo-os. Na verdade nem seria possível, pois primeiramente devo receber para depois trata-los.
    Irei utilizar a memória RAM V53C16258HK50, que tem 256K x 16bits e é mais que suficiente para essa aplicação específica, comparando com a memória RAM do PIC, pouco mais de 240 bytes. Essa memória pode ser encontrada no mercado facilmente, e seu valor não ultrapassa R$2,00.
    Para saber como trabalhar com os dados adquiridos do módulo, irei realizar algumas leituras de dados e analisar sua estrutura. Isso será necessário para saber como meu programa irá trabalhar com os dados recebidos. Posteriormente postarei exemplos dos dados lidos do TC35.

05/abr/2013
Abaixo a imagem do novo módulo GSM. Ele é similar ao antigo, com mudanças somente na alimentação que passa agora a ser de 5V ao invés de 12V e algumas modificações nos jumpers de configuração. Mas como o base do módulo continua sendo o TC35 não mudará em nada os comandos de leitura e escrita no módulo. O módulo trabalhando nativamente com 5V é melhor para aplicação aqui proposta, não sendo necessário elaboração de circuitos extras.
Módulo GSM (TC35)
Abaixo vemos o diagrama elétrico do bloco responsável pela comunicação serial do módulo com o PC.
Bloco Serial
Irei utilizar somente as entradas RXD_PC e TXD_PC. Que são reservadas para utilização do módulo com microcontrolador.
Abaixo o bloco que mostra as ligações do TC35.
TC35 diagrama de ligação
Eu gostaria muito de trabalhar somente com o PIC16F628A, porém após uma analise melhor da quantidade de portas necessárias para o projeto, optei por substituir um dos PICs pelo PIC16F877A. Que basicamente é igual ao PIC16F628A, porém com mais portas IO e com alguns recursos extras.
Como o PIC18F877A é portado de mais memória interna e também é capaz de trabalhar em velocidades superiores ao 628A, não será mais necessário implementar bancos de memória RAM externas. Deixando assim o projeto mais claro e simples.

Abaixo o primeiro teste como o PIC16F877A no protoboard realizando uma transmissão serial para o computador.




O protótipo da placa já esta pronto no computador. Agora falta transferir a imagem para uma placa.
O Layout acima é da parte do circuito responsável por receber os comando via Módulo GSM e executa-los seja sim ou não através de transmissão wireless.



A imagem acima é do teste no Protoboard da comunicação entre o PIC e o Display de LCD 16x2.
Os passou abaixo mostra a confecção da placa PCB, os passos para transferência da imagem Layout acima para uma placa.

Primeiro passo. você deve imprimir os Fotolitos, no meu caso como foram impressos em impressora a jato de tinta. Imprimi duas imagem, para realizar a sobre posição, reforçando assim o tom de preto. Para quem for imprimir em impressora a Laser, não é necessário fazer duas imagens iguais como eu fiz.

Segundo passo. Aplicação da tinta fotossensível sobre a placa. Para uma aplicação uniforme o método mais recomendado é realizar a centrifugação da placa após a aplicação. Abaixo podemos ver a placa já com a tinta fotossensível aplicada e a corrosão já realizada.






















Continua.....

Plotter PCB


    08/feb/2013 
    Depois de muitas dificuldades e decepções tentando fazer Placas PCB decidi montar (tentar) uma plotter PCB para facilitar esse trabalho chato de fazer placas em casa. Primeiramente quando tive a ideia, eu queria fazer algo de baixo custo, para tal resolvi montar a Plotter a partir de peças usadas de sucata de impressoras. Na cidade onde moro é fácil encontrar esse tipo de material.
     As peças que foram aproveitadas da impressora são:
  • Pino linear
  • Guias para pino linear
  • Timing Belt
  • Motor de passo

Guias para pino linear
     Então para que essas peças focem iguais foi necessário encontrar duas impressoras de marca e modelo idênticos.
Timing belt
Motor de passo
Pino linear de impressora
     A estrutura da Plotter eu pensei em fazer de várias maneiras diferente. Metal, madeira, plástico. Mas todos esses materiais tinham um problema que era a precisão. Como seria eu quem iria cortar o material e eu não tenho equipamento correto para realizar esse tipo de procedimento, estaria pecando no ponde de precisão dos cortes. O que causaria muito dificuldade na realização dos ajustes para colocar a Plotter para funcionar.
     Depois de muito pesquisa e teste sobre o tipo de material que iria utilizar para fazer a estrutura da plotter, acabei optando por fazer de acrílico com cortes a Lase. Como o acrílico não é um material muito caro, e os cortes a Laser são precisos, seria uma ótima saída para contornar o problema da precisão das peças.
    Para cada peça retirada da impressa fiz um desenho específico. Como pode-se ver abaixo a peça para os Guias e Marcador Permanente.

Guide holder
Permanent Pen Holder
     O próximo passo era fazer um esboço de como seria a forma da plotter. Essa parte foi um tanto complicado para fazer. Não me decidia se faria a caneta se deslocar nos eixos X e Y com base fixa, ou se optava pela caneta se movem pelo eixo X e a base pelo eixo Y. Pois eu sempre encontrava um problema que poderia acontecer se eu adotasse tal tipo de estrutura. Mas depois de mudar o desenho inúmeras vezes acabei decidindo fazer a caneta se movimentar somente em um eixo e a base no outro. Como a estrutura seria toda de acrílico isso evitaria flexão do material acrílico.
    A única parte da Plotter que não usaria Barra Roscada nem Timing Belt seria o eixo Z. Pelo menos na minha ideia não usaria. Para o eixo Z eu pensei em fazer algo diferente para evitar possíveis imperfeições na Placa PCB, pensei em fazer algo portado de mola para compensar esse possível desvio. De acordo com o desenho abaixo.

Pen Car
    Como pode-se ver no desenho acima, para o eixo Z eu utilizei um Servo Motor 9g (azul no desenho). Esse servo motor é ligado a parte móvel do eixo Z através de uma mola (não visível). Foi necessário montar um circuito a parte para o controle desse Servo Motor. Utilizei os sinais de Direction que o Software de controle fornecia para movimentar o eixo Z para as direções superior e inferior. A posição inicial e final do eixo Z é controlada pelo tempo de pulso. Parte superior polso de 1700uS e parte inferir pulso de 1900uS. Esses pulsos são gerados pelo Microcontrolador PIC16F628A, o qual capta os sinais de Direction do Software e transforma em PWM para o Servo Motor.

Eixo Z
    Na imagem acima podemos observar melhor a posição do Servo Motor no carro móvel do eixo Z. Como eu trabalhei com acrílico em todo o projeto, muitas partes foram unidas com cola Araldite. Uma ótima cola e com ótima resistência, mesmo em superfícies lisas.

     Optei fazer uma mudança do projeto original, substituindo as Timing Belt por Fusos. Para o movimento dos eixos usaria fusos, porém como não era necessário muita força mecânica na Plotter, por se tratar de apenas movimentar uma caneta, optei por utilizar Barra Roscada no lugar dos Fusos. A Barra Roscada é muito inferior se comparada ao Fuso, sua linearidade também deixa muito a desenhar. Porém é uma ótima opção para trabalhos que não necessitam de um alto grau de precisão. Na imagem abaixo podemos ter uma ideia de como ficaria a parte inferior da Plotter.

Parte móvel da base com a barra roscada ao invés da Timing Belt
    O problema foi que ao montar a Plotter percebi que pelo fato da Barra Roscada não sendo linear e a base móvel não tendo uma boa fixação, causava muitos movimentos indesejáveis, deixando o desenho com imperfeições.

Barra Roscada na base móvel
Barra Roscada na base móvel 3D
    09/feb/2013
    Outro fato que também notei foi o longo período exigido para realizar a Plotagem, pois os motores que utilizei não são para altas velocidades. Então quando aumentava a frequência dos pulsos para aumentar a velocidade dos motores, muitos passos eram perdidos. Tive então que redesenhar a Plotter, optando por perder na precisão, mas ganhar na velocidade e acuracidade.
    O que decidi fazer foi substituir as Barras Roscadas pelas Timing Belts, voltando novamente a ideia do projeto original.

Plotter final project
    Na imagem acima pode-se notar como ficaria o projeto final.
    Abaixo são algumas imagem das peças em acrílico já prontas para a montagem.

Base mounting (old version)
    A imagem acima mostra a minha primeira tentativa em montar a base móvel da Plotter que seria deslocada pelo pino Roscado.

Base Holder
    Usando uma mini morsa para segurar firmemente o acrílico. Os acrílicos cortados a Laser tem a limitação de serem 2D. Ou seja, os cortes são todos no plano X,Y. Sendo assim todos os furos e cortes no eixo Z devem ser feitos manualmente.

Threaded Rod and Bering
    Na ideia original havia um Bering Holder que seria utilizado como suporte para a Baring e a Barra Roscada.

Base Side Adjust
    A base móvel tem um corte especial. Fiz o desenho de maneira que quando fosse encaixado nas guias laterais, a base feita em acrílico exerceria pressão nos guias laterais. Isso foi possível, pois o desenho foi feito deixando uma pequena parte do acrílico em excesso. Dessa maneira a parte em excesso trabalharia como uma "mola". Facilitando a retirada de folgas.

Left and Right Sides
    Acima podemos ver os cortes que servirão como base para o motor e as Barras Lineares. Foram cortadas em acrílico 10mm para evitar flexão do material.

Base
Side holder
Pen and guide holders
    Pode-se notar na imagem acima que os suportes para os Guias e para a caneta são em cortes abertos. As peças foram projetadas dessa maneira para que tanto os Guias quanto a Caneta ficassem bem justas quando os parafusos de ajustes fossem apertados.
Guide holder

Z axis guide
    A peça acima é o guia do eixo Y. Como esse eixo tem somente uma barra roscada como guia. É necessário a instalação desse guia para evitar movimentos em torno do próprio eixo.
    Abaixo podemos ver as imagens que constituem o eixo Z, e também a montagem do mesmo.

Movable Z axis
Servo and Z axis
Pen holder


Z axis mounting
Z axis 
Z axis final mounting
Final Plotter Mounting
    Acima a foto de todas as peças juntas, plotter montada. Porém ainda falta a parte eletrônica. Que deixei para fazer no final.
    Para a parte eletrônica realizei alguns testas antes com Drivers para motor de passo, o que achei mais conveniente foi a união dos CIs L297 com o L298. No próprio Datasheet dos componentes já tem um circuito que pode ser montado para movimentar motores de passo.
Driver para os motores de passo
    Eu montei o circuito acima e não tive problemas para colocar para funcionar. O circuito acima faz interface diretamente com a porta paralela do PC, sendo de boa prática implementar também alguns acopladores ópticos ao circuito, no intuito de proteger a porta do PC. Os dois únicos pinos que serão utilizados no CI são os pinos de CLOCK e CW/CCW. O restante dos pinos de configuração do CI podem ser japeados de acordo com a necessidade de cada um.
    Como eu não gosto de montar placas de circuito (acho a pior parte). Montei todo o circuito em duas placas padrão.

Driver do motor de passo
    Após os circuitos montados na placa padrão, fixei os dois dentro de uma caixa, para melhorar a aparência e também evitar contato com os fios que ficam expostos.

Conexão com a porta paralela
    Abaixo segue foto da caixa driver já selada e pronta para funcionamento. Instalei um LED verde para visualização de quando os drivers estão energizados, e também uma chave alavanca para ligar e desligar o driver. A conexão com fios coloridos, são os fios que veem dos motores de passo, eles são conectados na parte frontal da caixa driver. A qual envia os comandos para os motos realizarem os movimentos.

Driver da Plotter
    No interior dessa caixa driver temos somente os driver que controlam os eixos X e Y. Pois como eu disse anteriormente o eixo Z tem uma forma de controle especifia. O eixo Z não necessita do Clock proveniente da porta paralela para trabalhar, ele necessita somente do sinal de Direction, os limites de subida e descida são controlados por um Microcontrolador.
    Como o drive para os eixos X e Y já estavam prontos, decidi montar o controle do eixo Z no protoboard e colocar a máquina pára desenhar a placa do eixo Z.

Z axis controller

    Abaixo já podemos ver o resultado da placa PCB desenhada pela Plotter.
    Percebe-se que fica razoavelmente boa. Como a tinta da caneta é resistente a água, não acontece problemas como por exemplo trilhas trincadas, faltando ou com qualquer outro tipo de defeito. Após a corrosão basta passar um algodão com álcool que a tinta sai facilmetne.



    Após a corrosão, trabalhei a placa cortando o excesso das laterias e lixando. Para dar uma característica um pouco mais profissional. Abaixo o resultado final da placa controladora do eixo Z.

Z axis controller board
    Bom, acho que é isso. Para quem quiser ver um vídeo da Plotter trabalhando segue abaixo.





...