Conectar una commodore 64 a una PC Windows emulando un drive 1541 a través de arduino

Paso a paso en castellano por uctumi/PVM

 

 

Antes que nada cabe aclarar que este proyecto tiene sus limitaciones, aunque si se le dedica el tiempo de desarrollo necesario potencialmente sería lo mismo funcionalmente que un SD2IEC o al menos un MMC2IEC del más básico.
PARA QUÉ SIRVE AL DIA DE HOY:
Levanta PRG sueltos e imágenes de disco (D64) de muchos juegos y programas, los que no requieran fastloaders. La funcionalidad es similar a 64hdd pero mediante puerto USB en vez de puerto paralelo.
VENTAJAS:Es más económico que un SD2IEC armado, es muy fácil de armar a nivel hardware y no requiere ir consiguiendo componentes difíciles, el Arduino Nano y Uno se consiguen en nuestro país con relativa facilidad.
PARA QUÉ NO SIRVE (POR AHORA):
No soporta fastloaders, o sea algunos juegos y la mayoría de las demos de la demoscene no corren. Tiene algunos problemas para guardar y cargar archivos desde aplicaciones, por ejemplo en el SidWizard, o con SIDPLAY64. Puede tener bugs no documentados. No me hago responsable de cualquier problema que puedas tener en tus equipos (PC, C64, etc.) debido a seguir esta guía.
Es un proyecto desarrollado por Lars Wadefalk, el sitio del desarollo eshttps://github.com/Larswad/uno2iec
Los pasos son en base a las instrucciones del autor y tomé algunas cosas dehttp://www.retrowork.com.br/uno2iec/
Este paso a paso es para Windows solamente, pero según el autor este proyecto funciona en Linux, MacOSX y Raspberry Pi. La información y hasta los binarios para esas otras plataformas están disponibles en los enlaces ya citados.
Las instrucciones son para quién no tiene nada instalado en su máquina, ni arduino, ni entornos de programación como QT creator o MSVC, etc.

 

El hardware


Es lo más sencillo, necesitamos un cable de 4 o 5 hilos, un conector DIN 6, un arduino Uno o Nano (en mi caso un Nano que compré a 120 pesos en mayo de 2016), y un cable USB acorde al arduino que estemos usando.

ar01


Se conecta la ficha DIN 6 según el diagrama, el pin RESET es opcional, y obviamente los colores varían según el cable que tengas. Los pines en el arduino pueden ser cualquiera de los pines digitales, después se configura qué pin es cuál en la PC que hace de host de los archivos.

conexion

En este caso seguí una línea consecutiva de pines D6, D5, D4, D3 y el GND (tierra) puede ir a cualquier GND del arduino.

nano1

nano2

 

Mi soldadura en la ficha DIN da asco, así que si con esta soldadura funciona, cualquiera lo puede hacer

ficha din

 

Así se supone que tiene que quedar más o menos el cable terminado, después cada uno lo cubre y decora a su gusto :)

Cable terminado

 

Software

 

FLASHEAR EL ARDUINO

Descargamos del sitio del desarrolladorhttps://github.com/Larswad/uno2iec/releasesel release 0.5.0.0 (Source code.zip)que es en el que está basado este paso a paso. Lo descomprimimos en algún lugar de nuestra PC. (Por las dudas si por algún motivo desaparece, lo encuentran aquí)
Descargamos de la página de arduinohttps://www.arduino.cc/en/Main/SoftwareInstalador para Windows, lo ejecutamos, le damos a todo que si, que instale los drivers, todo YES, OK, DALE PA ADELANTE.

ard

 

Conectamos el arduino por USB a la PC, todavía no enchufemos nada a la C64. Le damos tiempo porque empieza a buscar el driver y dejamos que lo instale tranquila. Una vez que terminó de instalar. Entonces vamos a la carpeta donde descomprimimos el archivo del desarrollador y va a haber una sub-carpeta uno2iec, allí hay un archivo llamado uno2iec.ino con el ícono de arduino. Le damos click y nos abre el proyecto.

ard2
Nos cercioramos de que esté seleccionado en Tools el modelo de Arduino que tengamos (Uno o Nano), en este caso Nano.
Y nos fijamos que esté bien seleccionado el puerto (COM1 o COM el que fuere) para que la PC se comunique con el Arduino.

 

Si no vamos a usar la pantallita LCD opcional seleccionamos la solapa global_defines.h y ahí comentamos la parte que dice #define USE_LED_DISPLAY para que quede deshabilitada.

 

ard3

 

Entonces ya está, le damos a la flechita para que compile y lo suba al arduino, ahora tienen que parpadear las lucecitas y en un ratito está subido, y queda encendido un led verde y otro led que se enciende a intervalos regulares. Si no encendió es porque está mal tu cable. Si encendió pero no carga el programa es porque hay algún problema de conexión lógica, fijate de cambiar el puerto COM y probá de nuevo.

ard5

 

APLICACIÓN HOST


Acá hay dos opciones, o la compilan ustedes mismos o usan el que ya está compilado. En el segundo caso el paso a paso ya terminó, solo tienen que descargar el binario ejecutable que hice para windows en un archivo .zip desde acá, lo descomprimen en cualquier lado, abren la carpeta uno2iec_host y ejecutan el archivo uno2iec.exe.
Para las versiones en binario linux y MAC OSX dirigirse al blog de Sander Souza (en portugués).

La opción 1 implica bajarse el QT CREATOR (pesa 1GB) y compilarlo, para eso están las instrucciones más abajo(anexo compilar...).
El ejecutable al correr tendría que verse de esta manera (la ventanita que parece C64 tiene look configurable, en mi caso elegí el tema PLUS 4, es solamente para mostrar el listado de los archivos de la imagen de disco). (Gracias Lars, es muy bonita y funcional.)

exito

Tenemos que configurar en el menú Main > Settings, ahí nos aseguramos de tener bien seleccionado el puerto, la velocidad "Serial speed" tiene que coincidir con la que figura en el archivo global_defines.h del proyecto de arduino, por defecto viene en 57600. Y seleccionamos los pines que conectamos a nuestro arduino. También elegimos la carpeta raíz de la que la aplicación toma las imágenes de disco D64. Si queremos que lea todo tipo de archivos agregamos ,* a la lista de extensiones, así nos aseguramos que lea incluso archivos sin extensión.
Naturalmente en este punto la Commodore 64 ya debe estar conectada (mejor que esté apagada cuando conectas todo).
Puede ser necesario reiniciar la aplicación hasta que reconozca y se comunique con el arduino.

exito2

 

Y LISTO!! Este es el resultado conectado a una tablet x86 que corre windows 8.1

tabl

 

 

ANEXO: COMPILAR APLICACION HOST CON QT CREATOR

 

Lo que tenemos que hacer es descargar el entorno QT CREATOR. Vamos a https://www.qt.io/download-open-source/ y bajamos el instalador online, DOWNLOAD NOW

 

qt1

Una vez que lo bajamos puede que te pida unos DLL que faltan para correrlo, a mi me los pidió. Los buscamos en google, los bajamos y los ponemos en la misma carpeta del archivo que descargamos, y funciona. Por ejemplo del sitio que aparece en la imagen. Si no te los pide, genial.

 

msv

 

Corremos el instalador de QT CREATOR. Carga unas cosas y nos pide registrarnos de forma gratuita con mail y clave. LE damos a todo que sí y en la parte de "Select components" vamos dentro de TOOLS y tildamos MINGW 4.9.2. Ahí le damos NEXT y dejamos que descargue y se instale todo. Acá armate de paciencia porque es una descarga larga, como de 1GB.

 

QT

 

Una vez instalado todo, vamos de nuevo a la carpeta que descargamos de github, en el directorio raíz de la carpeta está el archivo rpi2iec con el ícono "PRO". Le damos dobleclick y nos va a abrir el QT creator con el proyecto abierto.

 

gt4

 

En la parte de Build and Run destildamos Shadow Build.

 

qt6

 

 

En el iconito de computadora seleccionamos RELEASE

qt5

 

Es importante que en la parte de Tools > build&run nos aparezca el compilador MINGW que es un compilador gratuito para windows que por eso lo seleccionamos en la instalación. La otra opción es si ya tenemos instalado Microsoft Virtual C, en ese caso podemos usar eso. Pero estas instrucciones son para quien no tiene nada instalado.

qt7

Entonces en el QT CREATOR lo que hacemos de darle al botón verde de PLAY que significa build and run (compilar y ejecutar).

qt9

 

Si nos da un error, a mi me dio error de parámetro /MP que el compilador MinGW no entiende. Eso hay que arreglarlo, meterse en la carpeta donde está el proyecto, buscar "makefile.Release" y editarlo con bloc de notas, borrar /MP donde sea que esté. Entonces le damos de nuevo al botón build.

 

qt8

 

Si todo sale bien tendría que aparecer una pantalla similar a esta, en realidad la parte de C64 sería en azul, yo elegí otro motivo que se puede elegir que es el de PLUS 4. Eso da lo mismo, ahí es donde nos muestra el listado del directorio de la imagen de disco.

exito

Tenemos que configurar yendo a Main > Settings, ahí nos aseguramos de tener bien seleccionado el puerto, la velocidad de acuerdo al proyecto que le cargamos al arduino, por defecto 57600. Y seleccionamos los pines que conectamos a nuestro arduino. También elegimos la carpeta raíz de la que la aplicación toma las imágenes de disco D64. Naturalmente en este punto la Commodore 64 ya debe estar conectada (mejor que esté apagada cuando conectas todo). Puede ser necesario reiniciar la aplicación hasta que reconozca y se comunique con el arduino.

 

exito2

 

 

 






Joomla templates by a4joomla