Ir al contenido

**** ****


Nerdxculture Latino

El Pi1541 Punga parte 1


pi 1541 terminado

En este artículo voy a contarles cómo armé el emulador de disquetera 1541 para Commodore (64/VIC/16/plus 4) usando un raspberry zero en base al desarrollo de Steve White.

El pi1541 es un proyecto que Steve White lanzó a la comunidad en el año 2017 y se trata de un emulador “exacto” de la disquetera 1541. La diferencia de este proyecto con otros que pueden construirse de forma casera, como el SD2IEC, es que permite correr programas, juegos y “demos” de la demoscene para Commodore 64 que utilizan ciertos hacks de código (fastloaders) para acelerar la carga que sólo funcionan con la disquetera real.
Existen dispositivos a la venta con esta funcionalidad como el Chameleon, el UK1541 y el Ultimate 1541 (que vale por encima de los 100 euros, frecuentemente se encuentra en falta, con larga lista de espera y ni hablar el costo de envío e impuestos hasta estas latitudes!).

Este proyecto originalmente requería raspberry pi 3, pero por fortuna para lxs sudacas pobretones como nosotrxs y gracias a la comunidad, allá por 2019 apareció una versión del código ejecutable que corre en un raspberry pi 0, sin perder casi nada de funcionalidad.
Si bien este proyecto no reemplaza un Ultimate, que tiene emulador de SID, puerto USB, ethernet, REU y quién sabe cuántos chiches más, es un digno sustituto por poca plata.

Qué necesitamos para armarlo?

  • Primero que nada tenemos que conseguir un raspberry pi zero, no es necesaria la versión W, ya que no vamos a utilizar el wifi. En Argentina se consiguen bastante caros la verdad, pero en EEUU los venden en Adafruit a 5 dólares, uno por cliente. El dato sirve si tenés cómo traerlo al país, de eso ya no me hago cargo. ;D
  • Un conversor de nivel de 6 canales, que va a servir para convertir las señales de 3v del raspberry a señales de 5v para la commodore. Eso se consigue fácil en cualquier negocio de venta de microcontroladores arduino, etc.
  • Un conector DIN 6 macho. Con esto conectaremos el raspberry al puerto serie de la Commodore 64.
  • Un cable de 5 hilos. Podemos reutilizar un cable que tengamos, yo reutilicé un cable de una vieja impresora para puerto paralelo.
  • Cablecitos.
  • Tarjeta micro SD (cualquiera que sea legible por el raspberry pi).

Hasta aquí los componentes esenciales. Después hay una serie de componentes opcionales que no hacen a la funcionalidad básica pero que considero bastante necesarios:

  • 5x pulsadores de altura media.
  • 1x led 3.3v (el color que te guste).
  • 1x resistencia 100-150 ohms.
  • 1x pantalla oled 128×32 o 128×64 protocolo i2c (de colores o blanco o azul, etc.)
  • 1x conector jack DC (esto es muy optativo pero a mi me resulta práctico).
  • 1x pedazo de placa plástica o pedazo de placa experimental.
  • 1x conector de borde de 6 pines para el puerto datasette (esto también es muy optativo y sólo necesario si querés alimentar el raspberry con el puerto datasette de la commodore).
  • 1x cajita (esto también es a gusto de cada unx pero es recomendable).
  • 1x disipador adhesivo para el procesador del raspberry (optativo pero muy recomendable).
componentes 1
algunos componentes, no está todo en la foto porque bueh…
componentes 2
ese conector de borde no es exactamente el que terminé usando pero para que tengan una idea, se les llama conector NAZA en algunas casa de electrónica y son del año del jopo así que no son fáciles de conseguir, y los DIN 6 también se puede complicar conseguir localmente
componentes 3 cables
jack dc, resistencia, cablecitos…

La versión que voy a armar es la A siguiendo el diagrama de https://cbm-pi1541.firebaseapp.com (cbm-pi1541.firebaseapp.com)

Cuál es la diferencia entre la opción A y la opción B? Básicamente el puerto serie de la commodore puede tener varios dispositivos conectados en cadena, con la opción A solamente podremos conectar 1 dispositivo al puerto. Lástima no vas a poder usar la impresora mientras corres el pi1541!!

Alimentación

Hay varias maneras de alimentar el dispositivo:

  • Mediante USB por el puerto micro USB del raspberry.
  • Mediante un cable que salga de los pines 5v del puerto datasette de la commodore.
  • Mediante un transformador externo de 5v.
  • Mediante un panel solar, un dínamo a hámster, o lo que se te ocurra.

Como verán yo le puse un jack que permite conectar un transformador externo, pero el truco es que tengo un cable que conecta el jack con el conector de borde que va al puerto datasette de la commodore. Esto no es realmente necesario, se puede armar un cable directo que conecte a donde ustedes quieran. Pero yo lo hice así porque quería tener opciones.

Para sacar energía del datasette podemos conectar así:

puerto datasette
pines puerto datasette
pines del puerto datasette, el de más afuera es masa y el de más adentro el positivo.

El pi zero no requiere demasiada corriente para funcionar, con 500 mAh estamos más que bien. Las opciones son muchas, mientras logremos darle el voltaje necesario en los pines correspondientes, todo va a andar bien.

Cómo empezar?

Yo empecé por armar un pequeño diagramita de la posición de los 5 pulsadores y la luz led. Lo armé con eagle, pero se puede hacer a mano o directamente soldar todo en un pedazo de placa experimental que ya tiene las perforaciones. Es importante que haya alguna forma de distinguir los botones, posicionándolos de dos en dos y uno separado me pareció un buen método. La función de los botones puede parecer un poco confusa y la voy a explicar en la parte de funcionamiento.
Lo que hice con la plantilla que armé con eagle fue agujerear una placa plástica y en ella incrustar los componentes.
Dejo acá la plantilla en pdf por si la querés usar.

Usando ese diagrama lo pegué en la placa plástica y le hice agujeros:

plantilla para calcar
agujereando placa plastica
botonera agujereada
botonera

Una vez armada esa plaquetita lo que sigue es conectar todo al rpi utilizando el diagrama que tan generosamente nos otorga en su sitio Steve White:

pi 1541 diagrama conexión
botonera soldadura
Primero soldé la parte trasera de la botonera
botonera trasera
un lado de los botones va conectado todo a masa al igual que la resistencia
pi1541 masa ground
Le soldé directo los cables a los pines de raspberry, si pensás usar el rpi para otros proyectos podés usar cables jumper, esos que se pueden desenchufar, pero como yo lo pensaba dejar fijo me da lo mismo.
primero sueldo todas las líneas de masa (ground), se pueden aprovechar todos los pines de masa que tiene el raspberry para distribuir un poco mejor los cables
pi1541 level shifter
soldé la tira de pines al conversor de niveles, de esto después me arrepentí porque le agrega tamaño al dispositivo, se podrían soldar los cables directo en los agujeritos, con cuidado
pi1541 soldadura positivos
soldé los cables positivos
pi1541 soldadura conversor niveles
soldé los cables de datos al conversor de niveles según el diagrama
cable serie din 6
soldé los 5 hilos del cable serie con el conector DIN 6
cable serie conversor nivel
luego soldé los 5 hilos del cable serie el conversor del nivel según el diagrama, recomiendo tener cuidado y verificar con el tester que las señales ATN, GND, DATA, CLK, RESET correspondan con los pines del conector que va enchufado a la Commodore
pi1541 conectado Mamotreto
acá está el mamotreto más o menos armado, sin pantalla
cajita plastica
mi objetivo es que entre en una de estas cajitas plásticas, aunque tengo que eliminar esos separadores
cajita vaciada
la idea es como sea sacarle lo de adentro para que entre todo
agujeros
cortando agujeros
agujeritos hechos
perforaciones hechas, muy desprolijo todo, no sean así 😀
presentando componentes en la caja
Presentando componentes. Cómo %$&@ va a entrar todo esto ahí?
cerrando la tapa
Lindo sanguchito. Antes de poner todo en la caja conviene probar que funcione y nos nos mandamos alguna cagada con las conexiones.
Primera versión sin pantallita, funciona!!!
pero qué desprolijos esos agujeros, recuerden siempre tener afilados sus cutters y exacto knifes, o lo que usen, no sean como yo…
pantalla corriendo demo
corriendo una demo de la demoscene con fastload

En la parte 2 vamos a ver cómo se conecta la pantalla, cómo configurarlo y hacerlo funcionar…


Categoria: pvm blog | retro computing | tutoriales


12 comentarios

  1. Martín dice:

    Muy bueno el invento ! Bien punk como nos gusta a todos ! Qué opinará Angelo Merka ? Yo creo que ve corriendo esa Christmas Mega Demo y se la re sube !

  2. Adolfo dice:

    Impecable . GENIO

  3. comodoro dice:

    Excelente tutorial; lastima que el proyecto original usa esa pantalla tan chiquita, creo que cuando lo arme voy a buscar alguna lupa de aumento rectangular para colocarle encima porque no veo un joraca en esa miniatura.

  4. Muchas gracias desde Colombia, por compartir este proyecto, tan bien explicado e ilustrado. Por fin voy a poder tener una Pi1541 asequible. Quedo atento a la parte dos.

  5. […] En esta segunda parte voy a contarles cómo conecté la pantalla, cómo configuré el pi1541 y el funcionamiento del dispositivo.Encontrarás la parte 1 aquí. […]

  6. Charly dice:

    muy bueno el tutorial, no se le instala ningún software?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *