SIO2Arduino – Emulando drive para seu Atari 8 bits com Arduino

logotipo AtariComprei a tempos atrás a MyIDE, cartuchinho do caramba! Pra quem é usuário de Atari 8-bits ele é simplesmente tudo o que você precisa pra ser feliz. Porém, contudo, todavia… não é muito barato, e ainda tem o tempo que demora pra chegar, as prováveis Dilmadas que você levará de taxas, além da nova taxa de resgate de R$12 que os CUrreios começaram a cobrar desde o dia 02/06.

Nesse interim, um amigo perguntou se eu não queria vender a interface a ele, pois havia adquirido um Atari 8-bits, e não tinha nada para carregar seus jogos prediletos. E lá fui eu para o Google procurar alternativas baratas para ele, e me deparei com o projeto de SIO2Arduino, que é a reimplementação em código do SIO2SD, um emulador de drive para o micro. Mãos à obra, e vamos ver se funciona…

Nem preciso dizer que não funcionou de primeira não é? Algumas LIBs depois, um pouco de wireups na minha breadboard, umas googladas atrás da pinagem da porta de expansão do Atari, pequenas correções e ajustes no código… UFA! O negócio bootou!!! Funciona de verdade!!! Com algumas restrições claro.

  • Não tem suporte a subdiretórios no modo autônomo
  • Apenas 1 botão para seleção das imagens ( que não funciona no código original )
  • Sem suporte a nomes longos de arquivos ( restrição da LibFAT )
  • Um pouco mais lento que o original
  • Necessita de LIBs de terceiros para funcionar
  • No modo SDrive subdiretórios estavam bugados
  • Necessitava de ao menos 1 botão para carregar o SDrive inicialmente
  • Apenas 1 únidade virtual ( no original são 4 )
  • E alguns outros pequenos problemas corrigidos

Falei de modo Autônomo e SDrive, vamos explicar eles.

Modo Autônomo

Nesse modo, você terá um emulador de drive com display e botão de seleção de imagens ( apenas 1 ). Assim sendo, você não precisa ligar o micro para escolher o disco a ser inserido na unidade virtual, basta seleciona-lo com o micro desligado mesmo, e ao ligar o micro este será carregado.

Como o foco é facilitar a vida, essa montagem é um pouquinho mais complexa, e requer paciência, uma breadboard, jumpers e mais jumpers, experiência pra resolver conflitos ( acredite, existirão! ) e outros N problemas, que com certeza acontecerão antes de tudo funcionar bem, como o esperado. Sendo assim, não ensinarei essa montagem, quem quiser pode seguir as instruções no site oficial, porém com meus códigos corrigidos.

Dificuldade da montagem: Média

Modo SDrive

No modo SDrive, tudo o que você precisará, são de 4 fios, 1 Arduíno e um Ethernet Shield com SD acoplado ( Caso vc não tenha, ensinarei a montar um Shield MicroSD caseiro ). Junto a montagem, será necessário o software SDrive  que usa o próprio Atari, para selecionar as imagens. Após a seleção, você é obrigado a pressionar RESET ou desligar e ligar o micro.

Eu particulamente adorei esse modo, a interface é simples, fácil de usar, bem fácil de implementar e muito mais barato!!! E é exatamente esse modo que vou ensinar aqui…

Dificuldade da montagem: Alzheimer Monkey

Material necessário

Bem… agora é a hora de fazer você gastar um pouco de dinheiro ( acredite é pouco!!! )

  • Arduino Uno ou Mini Pro 16Mhz
  • Shield SD ( ensinarei a fazer um ) / Ethernet Shield com SD
  • Adaptador SD-MicroSD ( caso você vá fazer seu próprio Shield SD )
  • Os programas que listarei abaixo, incluindo as bibliotecas
  • 10 fios / Jumpers ( ou 4 apenas, se você usar o Ethernet Shield com SD )
  • Paciência e cuidado

Como dica, você pode comprar tanto o Arduino Mini Pro e o Shield SD, por menos de US$ 6.00, nos respectivos links ( tá no nome, basta clicar 😀 ).

Shield MicroSD DIY

Apesar de ser extremamente barato, de repente você está com presa, já tem um arduino, e não quer esperar uma eternidade a chegada do Shield ( agradeça 80% da demora aos nossos CUrreios ). Bem, se você tem um mínimo de habilidade com o ferro de solda, e tem componentes sobrando em casa, pode montar seu próprio ShieldSD com os componentes abaixo:

  • Pedaço de placa universal ou uma breadboard
  • 3 Resistores de 4K7
  • 3 Resistores de 10K
  • 1 Adaptador de SD -> MicroSD
  • Fios e/ou barra de pinos

A montagem é simples, pois os sinais já existem no adaptador MicroSD ( DataIN, DataOut, Clock, Command, GND e VCC ). Basicamento o trabalho é reduzir/regular os 5v que vem do arduino pelo pinos digitais para 3v, com os resistores acoplados jogando para GND como no esquema abaixo, e usar a mesma LIB corrigida que está no .ZIP com o projeto ( Link no final ). Segue o esquema:

Shield caseiro para MicroSD

Shield caseiro para MicroSD

Como pode ser visto, o esquema é bem simples e pode ser montado em uma pequena placa. Funciona tão bem quanto o Shield, e melhor ainda, se você tiver um pouco mais de habilidade, pode fazer uma placa única, com o Arduino Mini Pro soldado nela e com um pouco de carinho, enfiar dentro do seu Atari de forma tão discreta, que só um especialista conseguiria identificar a alteração. Alias, isso me deu ideias!!!! rsrsrsr

A minha ficou assim…

  • SoldagemMontagem caseira de um Shield MicroSD para Arduino
Soldagem1 2 3 4 5
jquery slider by WOWSlider.com v5.4m

Montagem do Arduino

Bem, é aqui que começa o início do fim… Esquema de ligação mais simples que essa, só comprando pronto!!! Primeiro de tudo, conhecer a pinagem do conector de expansão do Atari 8bits ( No meu caso aqui um 800XL ). São 13 pinos, cada um com suas funções descritas abaixo. O desenho mostra o conector macho, visto nas costas de seu Atari…

Obs.: Como disse, no caso do Ethernet Shield com SD, basta abrir no projeto, o arquivo config.h, e descomentar a linha “#define ETHERNET_SHIELD“.

    2 4 6 8 A C      1 - clock in
    -----------      2 - clock out
   /o o o o o o\     3 - data in
  /o o o o o o o\    4 - GND
 -----------------   5 - data out
   1 3 5 7 9 B D     6 - GND
                     7 - command
                     8 - cassette motor control
                     9 - proceed
                     A - 5V+/ready
                     B - audio in
                     C - +12V ( Atari 400/800 )
                     D - interrupt

Como pode ser visto no conector, até a alimentação do Arduino pode vir de lá ( não testei, mas deve funcionar 😛 ). Visto o esquema acima, tudo o que usaremos são os pinos 3,4,5 e 7, e caso você queira testar, use o 6 e o A para alimentar o Arduino pelo próprio micro. A ligação dos pinos fica como abaixo:

ATARI  ->   ARDUINO UNO/MINI
Pino 3       Pino digital 1 ( TX )
Pino 4       Pino GND ( qualquer do Arduino )
Pino 5       Pino digital 0 ( RX )
Pino 7       Pino digital 2

Além da conexão com o Atari, temos que conectar o Arduino no Shield SD, temos 3 opções para isso… O Ethernet Shield com SD, o Shield SD, e o Shield DIY que ensinamos à fazer acima. Tanto o Shield SD quanto o caseiro, a ligação se procede da mesma forma, já o Ethernet Shield é o mais simples de todos, pois ele encaixa em cima do Arduino UNO perfeitamente, não necessitando nenhuma conexão com fios, apenas temos que mexer no código e descomentar uma opção. Vamos lá…

Conexão com ShieldSD / DIY

SD Shield      ->   Arduino
Command (CS)       Pino digital 10
DataIN  (DI)       Pino digital 11
DataOUT (DO)       Pino digital 12
Clock   (CL)       Pino digital 13
5V      (Vdd)      5V no Arduino
Ground  (GND)      GND no Arduino

Feita as ligações, estamos prontos para subir o software e fazer os primeiros testes… Conselho de amigo, cheque as conexões 2x antes de ligar qualquer coisa! o perigo é mínimo, mas sempre existe a possibilidade de você torrar alguma coisa :)

Programando o Arduino

Não vou ensinar ninguém à fazer isso!!! nem adianta chorar… o máximo que vou fazer é postar um LINK ensinando a programar um MINI pelo UNO, caso você não tenha um programador FTDI ( meu caso ), cortesia do Filipe Flop. Só um adendo, ele não fala no POST, mas você tem que sacar fora o ATMEGA 328P do UNO pra funcionar.

Tudo o que você vai precisar agora é do pacote que está lá na seção de LINKs, chamado SIO2Arduino.zip, dentro desse arquivo temos a SDFatLib que deverá ser copiada para dentro do seu diretório de bibliotecas do Arduino, o arquivo AUTORUN.ATR que deverá ser copiado para a raiz do SD, e o projeto em si na pasta SIO2Arduino. Reparafraseando o já citado :)

  1. Copie a SDFatLib para seu diretório de bibliotecas do Arduino
  2. Copie o arquivo AUTORUN.ATR para dentro da raiz do seu MicroSD
  3. Abra o projeto SIO2Arduino, compile e envie para seu Arduino ( CTRL+U )

E agora? Agora, enfie uma tonelada de imagens de disco no seu SD, e aproveite! Abaixo tem o link do Youtube mostrando como usar o SDrive + SIO2Arduino.

SIO2Arduino

SIO2Arduino #2

Abraços a todos, e até o próximo post! :)

Links relevantes

Projeto original

Gravando Arduino mini

SIO2SD Original

Software Shrive

Pinagem do Atari

SIO2Arduino.zip

Arduino, Retro Computação , , , ,

7 responses to SIO2Arduino – Emulando drive para seu Atari 8 bits com Arduino


  1. Pingback: Faça você mesmo: um emulador de drive para os Atari 8 bits | Retrocomputaria Plus

  2. Rick

    muito interessante mesmo! quem sabe um dia crio coragem e faço (ou tento fazer) uma implementação destas!
    c concordo com você…esses CUrreios são uma empresinha safada mesmo, o nome da taxa já diz tudo: taxa de RESGATE….coisa de sequestradores, BANDIDAGEM mesmo!! esses CUrreios são uma pedra no sapato dos FUDEBEIROS do interior que precisam comprar quase todas matérias primas para suas FUDEBAGENS de outras cidades/estados!! Abraço!

  3. mrTacho

    SIO2Arduino.zip no funciona… saludos.

    muy buen trabajo

  4. daniel Venticinco

    Amigo, tem como fazer alguma modificação para ser ligado em um msx “hot-bit ou expert”. A muito procuro ago assim, mas com material mais facil de se achar… Talvez usando a interface de drive e o seu leitor de cartão ?

    At Daniel

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>