Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Lector de Discos Flexibles Amiga Basado en Arduino: Recuperación de Datos Open Source de Bajo Costo

Componentes y Suministros

Aplicaciones y Servicios en Línea

Sobre este Proyecto

Objetivo

Crear una forma simple, económica y de código abierto para recuperar datos de discos flexibles Amiga DD (Double Density) desde Windows 10 y otros sistemas operativos.

Solución

Un Arduino + una aplicación Windows. El proyecto permite leer discos Amiga de 3.5" (formato DD, 880 KB) usando una unidad de disquete de PC estándar y un Arduino, sin necesidad de hardware costoso como KryoFlux o Catweasel.

¿Por Qué Este Proyecto?

Antecedentes Personales

El autor creció con un Amiga 500+ y aprendió programación con AMOS. Tras años sin hardware funcional, decidió recuperar sus discos usando electrónica moderna. Investigó formatos de disco, codificación MFM, y el hardware de unidades de disquete para desarrollar esta solución.

Investigación Clave

Recursos fundamentales:

Desafíos Técnicos y Solución

El Problema de Velocidad

Los discos DD giran a 300 RPM con codificación MFM. Para leer datos correctamente se requiere muestreo a 500 kHz. El Arduino a 16 MHz tiene margen limitado.

Evolución de Intentos

  1. Intento 1 - Registros de Desplazamiento: Usó dos 74HC594 para convertir serie a paralelo y reducir frecuencia de muestreo a 62.5 kHz. Funcionó pero los datos no eran confiables.
  2. Intento 2 - Interrupciones (ISR): Intentó detectar pulsos en ISR a 500 kHz. La sobrecarga de la ISR y digitalRead eran demasiado lentas.
  3. Intento 3 - Contador Hardware: Usó Timer/Counter0 del ATmega328 para contar pulsos externamente. Eliminó la limitación de velocidad de software.
  4. Intento 4 - Bucle de Fase Bloqueada (PLL) por Software: Sincronizó el timer interno con cada pulso detectado, reajustando el contador (TCNT2) en cada flanco. Logró lectura casi perfecta.
  5. Intento 5 - ISR Optimizada (NAKED): Movió la resincronización a una ISR en pin INT0 con atributo ISR_NAKED y ensamblador inline. Redujo la ISR a 5 instrucciones (0.3125 µs).
  6. Intento 6 - Trigger Schmitt: Añadió 74HCT14 para limpiar señal. No hubo mejora significativa.
  7. Intento 7 - Validación MFM: Aplicó reglas de codificación MFM (no dos '1' seguidos, máx tres '0' seguidos) para detectar/corregir errores.

Decodificación y Formato ADF

Los pulsos del lector son datos MFM crudos. El software busca la palabra de sincronización 0x4489 (precedida por 0xAAAAAAAA) para localizar sectores. Decodifica cabeceras y datos, verifica checksums, y re-lee pistas hasta obtener 11 sectores válidos por cara. Genera archivos .ADF (imagen raw de 901,120 bytes: 80 pistas × 2 caras × 11 sectores × 512 bytes).

Estado Actual y Futuro (V2)

Esquemáticos

Ver sección "Schematics" para diagramas de conexión del Arduino a la unidad de disquete (pines: /DIR, /STEP, /TRK00, /SIDE1, /RDATA, /INDEX, MOTOR ON, DRIVE SEL, GND).

Proceso de manufactura

  1. La Evolución y Oficio de la Animación
  2. La Evolución de los Discos Flexibles: De Medios Magnéticos a Almacenamiento Óptico
  3. Construye un Spybot controlado por Bluetooth con Arduino
  4. FlickMote: Mando IR por gestos para Smart Home
  5. TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
  6. Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
  7. Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
  8. Soluciones de Alimentación Optimizadas para Proyectos Arduino
  9. Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
  10. Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso
  11. Lector de Discos Flexibles Amiga Basado en Arduino: Recuperación de Datos Open Source de Bajo Costo