MSX-SDF-1 · perfil con Raspberry Pi Pico

SDF-Pico

Lector de SD, Wi-Fi y reloj por Internet, con una Pico 2 W en lugar del ATmega

El SDF-Pico usa la misma placa del kit, pero reemplaza el microcontrolador: una Raspberry Pi Pico 2 W ocupa el lugar del ATmega328P y atiende el bus del MSX con sus bloques PIO. Con ese cambio, un solo cartucho reúne el lector de SD, una conexión Wi-Fi y un reloj que toma la hora de Internet.

De la placa original se conservan el decodificador de puertos, el búfer de datos y la EEPROM. La única modificación es cortar la línea /WAIT, que el SDF-Pico no necesita.

  • Prototipo · rev1
  • Raspberry Pi Pico 2 W
  • Probado en una DPC-200
  • Firmware 0.6
La placa del MSX-SDF-1 con una Raspberry Pi Pico 2 W: sobre la hoja de cableado con el módulo SD, sobre el teclado de una DPC-200 y del lado de las soldaduras

La placa del kit con la Pico 2 W: sobre la hoja de cableado, en la DPC-200 y del lado de las soldaduras.

Antes que nada

La placa todavía es un prototipo.

El SDF-Pico funciona sobre la rev1, que es un prototipo, y requiere cablear la Pico a mano. Antes de considerar armar uno, conviene leer el aviso de la página del kit.

Ver el aviso

La placa

El mismo cartucho, otro microcontrolador

La Pico 2 W se monta sobre el área universal y se cablea a los pads que ocupaba el ATmega. El módulo de la tarjeta SD se conecta a uno de sus puertos SPI.

El SDF-1 detiene al Z80 con /WAIT en cada acceso, hasta que el microcontrolador responde. La Pico contesta en unos 100 ns, dentro del propio ciclo de bus, de modo que esa señal deja de hacer falta: cuando un dato todavía no está listo, el registro de estado lo indica y la Disk ROM espera.

Los sectores pasan por DMA y la Disk ROM los transfiere con INIR y OTIR. En la DPC-200 se midieron unos 88 KB/s en lectura y 80 KB/s en escritura.

SDF-1 SDF-Pico
MicrocontroladorATmega328PPico 2 W
/WAITEn cada accesoNo se usa
RelojDS1307 con pilaPor Internet
Red—Wi-Fi

El cableado completo, con la lista de verificación, está en el repositorio.

Uso

Cómo se usa

Disco desde la tarjeta SD

Las imágenes .DSK se guardan en la raíz de una tarjeta SD y se manejan con los mismos comandos del lector del SDF-1: CALL SDFFILES las lista y CALL SDFMOUNT elige la de cada unidad. Para el MSX, el cartucho es una disquetera común: Disk BASIC y MSX-DOS arrancan desde la imagen.

10 REM las imagenes de la tarjeta
20 CALL SDFFILES

30 REM una imagen en B:
40 CALL SDFMOUNT(1,"JUEGOS")

Wi-Fi, configurado desde el MSX

CALL WIFI abre un menú que busca las redes, las ordena por señal y pide la clave de la elegida. Si la conexión funciona, la red queda guardada y el cartucho se conecta solo en cada encendido.

La clave se guarda en la memoria de la Pico, no en la tarjeta, y no se muestra en ningún momento: al escribirla se ven asteriscos.

El menú lo arma el firmware y la ROM sólo lo muestra, de modo que se puede mejorar actualizando la Pico por USB, sin regrabar la EEPROM.

SDF-Pico: red Wi-Fi
Conectado a MiCasa
IP 192.168.1.47
Hora 2026-09-30 21:05:07

> MiCasa                -52*
  Vecino                -71
  Invitados             -80

  Buscar redes
  Olvidar la red guardada
  Zona horaria: UTC-3
  Salir

Reloj sin chip ni pila

Al conectarse, el cartucho toma la hora de Internet y la mantiene mientras el MSX esté encendido. MSX-DOS arranca con la fecha correcta y cada archivo se graba con su fecha y hora.

Desde BASIC se usan los mismos comandos del reloj del SDF-1: CALL RTC y el dispositivo RTC:, con sus cinco formatos. La zona horaria se elige en el menú de CALL WIFI.

10 REM ver la hora
20 CALL RTC
2026-09-30 21:05:07

30 REM la fecha en variables
40 OPEN "RTC:N" FOR INPUT AS #1
50 INPUT #1,Y,M,D,H,MI,S,W
60 CLOSE #1

Funcionando

El SDF-Pico en funcionamiento. Verlo en YouTube.

Estado

Dónde está el SDF-Pico

Probado en una Daewoo DPC-200: Disk BASIC y MSX-DOS desde la tarjeta, con lectura y escritura; la configuración del Wi-Fi con CALL WIFI; y la hora de Internet en MSX-DOS y en BASIC. Es la única máquina en la que se ensayó hasta ahora.

El firmware está en desarrollo, en la versión 0.6. El código, la documentación y el cableado están en el repositorio.