La comunidad retro no para de sorprendernos continuamente con algo nuevo, esta vez con WiFi para el ZX81.
Luego, mediante el cableado, conectamos el ESP32 al ZX81. En mi caso la placa base es distinta a la del esquema, por lo que tuve que buscar la conexión para los 5V, GND y EAR. La conexión del TV/TAPE (pin 16 de la ULA), al tener un reemplazo no original de la ULA, hecho a partir de un diseño en CPLD/FPGA (vLA81), y como éste da una salida de vídeo compuesto en el pin 16, el cable lo he tirado directamente desde el conector de la antena del modulador de vídeo, que lo tengo deshabilitado para que, mediante un cable (en la foto cable rojo grueso que sale del modulador), coja directamente la señal de video compuesto del pin 16 de la ULA.
Puesta en marcha
Una vez dentro del programa, configuramos la WiFi pulsando la tecla W del ZX81.
Se introduce la password de la WiFi siguiendo las instrucciones que se muestran en pantalla, por ejemplo, para introducir una letra en minúsculas es entrando en modo inverso (shift + 9) y se pulsa la letra.
Al tener configurada una IP ya podemos entrar en el fileserver vía web utilizando la URL que nos muestra por pantalla e introduciéndola en cualquier navegador web de cualquier dispositivo, en mi caso, por comodidad, utilizo el del móvil.
Para probar a cargar juegos en el ZX81, me bajo unos pocos desde https://www.zx81.nl/files.html y los añado al fileserver.
Conclusiones
La idea es muy sencilla, un ESP32, dispositivo de la familia de Arduino con un chip WiFi, que se le instala un software para poder configurar la conexión a la red, cargar y guardar los programas en el ZX81, todo esto a través de una aplicación que se ejecuta con solo teclear el comando LOAD "". Además, en el ESP32 se instala un web server, al que podemos entrar desde cualquier navegador web y dispositivo, que nos permite dos cosas, gestionar facilmente nuestros programas favoritos en la memoria interna de aproximadamente 1 MB, para cargarlos luego en el ZX81, y actualizar el firmware vía OTA, y así, de esta forma, tener el dispositivo al día con los últimos cambios sin tener que estar abriendo el ZX81 para conectar el PC al ESP32.
Toda la información del ZX-Wespi la podemos encontrar en el siguiente foro en alemán, que con el Google Translator podéis traducir al cualquier idioma:
¿Qué componentes necesitamos?
La instalación es super sencilla y se requiere de muy pocos componentes.
- Placa de desarrollo ESP32, la de 30 pines.
- Resistencias de 4K7, 1K y 100 ohm, de 1/4 de vatio.
- Condensador electrolítico de 4,7uF y 16V.
- Cables para soldar en la placa base del ZX81 y conectarlos al ESP32.
- Multímetro, fundamental para medir valores de tensión y conectividad para ver que no hay ningún corto al Cablear.
Instalación del Software en el ESP32
Primero instalamos el software en el ESP32, para esto necesitamos un cable con conexión USB y micro-USB para conectar el ESP32 a un PC con Windows.
Para la instalación del software hay que descargarse el programa Flash Download Tools (versión superior a la 3.8.5):
Y descargar el paquete de instalación zx_iot_initial_flash_files.zip de https://github.com/holmatic/zx-iot-mi/releases/tag/v0.2.2.0
Una vez que tengamos todo listo en el PC, descomprimos el fichero zip en una carpeta y conectamos el ESP32 al PC con el cable. Se encenderá una luz roja en ESP32 y en la administración de dispositivos de Windows veremos que se está utilizando un nuevo puerto COM, nos anotamos este puerto para luego elegirlo en el Flash Download.
Al ejecutar la herramienta Flash Download, nos preguntará por el dispositivo que queremos utilizar, en nuestro caso el ESP32. Al abrise la aplicación aparecen dos pantallas, una con el entorno gráfico y otra, la consola, que es una pantalla negra de texto.
En la pantalla gráfica, en la pestaña SPI Download, se añaden los siguientes ficheros, que vienen en el zip de instalación, junto a la posición de memoria:
partition-table.bin @ 0x8000
ota_data_initial.bin @ 0xd000
bootloader.bin @ 0x1000
zx_iot.bin @ 0x10000
Los demás parámetros son:
SPI SPEED 40MHz
SPI MODE DIO
FLSH SIZE 32MBit (=4MB)
COM: el que nos salga en la administración de dispositivos al conectar el ESP32, en mi caso el COM3.
BAUD: Puede ser 460800, pero preferí una tasa menor de 230400.
Al tener todo ya configurado, se pulsa el botón Start quedando la pantalla en espera. En la consola se puede observar unos puntitos que van avanzando poco a poco, en este momento pulsamos continuamente el botón Boot del ESP32 y lo soltamos cuando veamos que dejan de salir los puntos y empieza la instalación del firmware.
En la consola se puede ver que se pasa de los puntos a uploading stub...
Si volvemos a la pantalla gráfica, en la parte inferior, se puede ver una barra verde que va avanzando hasta que ésta termina de completarse y aparece en azul el texto Finish.
Cablear el circuito
Una vez instalado el software en el ESP32, tenemos que realizar el cableado y soldado de componentes para conectarlo al ZX81 siguiendo el siguiente esquema:
Una vez instalado el software en el ESP32, tenemos que realizar el cableado y soldado de componentes para conectarlo al ZX81 siguiendo el siguiente esquema:
Primero, soldamos los componentes en la parte posterior del ESP32, de esta forma quedan ocultos, dejando el chip del ESP32 como único elemento visible.
Luego, mediante el cableado, conectamos el ESP32 al ZX81. En mi caso la placa base es distinta a la del esquema, por lo que tuve que buscar la conexión para los 5V, GND y EAR. La conexión del TV/TAPE (pin 16 de la ULA), al tener un reemplazo no original de la ULA, hecho a partir de un diseño en CPLD/FPGA (vLA81), y como éste da una salida de vídeo compuesto en el pin 16, el cable lo he tirado directamente desde el conector de la antena del modulador de vídeo, que lo tengo deshabilitado para que, mediante un cable (en la foto cable rojo grueso que sale del modulador), coja directamente la señal de video compuesto del pin 16 de la ULA.
El cable rojo fino, conectado al condensador, es la toma de 5V, el negro a GND, el azul a la entrada EAR y el naranja al pin 16 de la ULA, tomando la conexión desde dentro de la caja del modulador.
Finalmente, una vez que lo tengo todo según el esquema, compruebo, con la medida de continuidad del multímetro, que no hay ningún elemento en corto y con cinta aislante negra fijo el ESP32 a la carcasa del ZX81, quedando bien sujeto.
Si todo ha ido bien, al encender el ZX81 debería mostrar el prompt con la letra K que nos invita a introducir los comandos BASIC. El primer encendido lo hago sin conectar el teclado para ver las luces que se encienden en el ESP32, éstas deberían ser una luz roja, que indica que que se ha encendido el dispositivo, y una luz azul, que al principio aparece fija y luego se queda parpadeando. Si observamos esto en el primer arranque, tiene pinta de que la cosa va bien.
Apago el ZX81, conecto el teclado y esta vez sí, vamos a intentar cargar el programa del ZX-Wespi ejecutando el comando LOAD "". Si todo está bien hecho, en unos pocos segundos tiene que aparecer la siguiente pantalla:
De las distintas redes elegimos la nuestra pulsando su número en el teclado.
Si no nos hemos equivocado al introducir la contraseña, se mostrará la URL del fileserver con la dirección ip asignada.
Al Entrar en el ZX-Wespi nos saldrán estos mismos programas para poder cargarlos.
Actualizar el firmware del ESP32
En el paquete de la instalación viene una versión antigua del firmware (zx-iot-mi), que conviene actualizar para disponer de mejoras como son, el incremento de la longitud de la clave de la WiFi hasta 64 caracteres, mostrar la MAC o, en el fileserver, ver la información de espacio libre u ocupado por los ficheros.
Para la actualización hay que seguir los siguientes pasos:
- Descargar la última versión del firmware de https://github.com/holmatic/zx-iot-mi (fichero zx-iot.bin).
- Subir este fichero al fileserver, de la misma forma que se sube cualquier programa o juego. Al subirlo veremos que tarda un poco, en comparación con los programas de 16KB del ZX81, y una vez que ha terminado, veremos que no se muestra en el listado de ficheros.
Para ver los cambios tenemos que apagar y encender el ZX81, yo me esperé unos minutos por si la instalación necesitaba más tiempo, porque no se muestra ninguna información por pantalla, y aunque refescaba la página web del fileserver, no salía la nueva versión.
Al reiniciar ya se dispone de la última versión y se puede ver este dato tanto en el ZX81, en la opción SYS, como en el fileserver.
Grabar los programas
Posiblemente la mejor utilidad del ZX-WESPI es poder guardar nuestros programas de una forma segura y rápida.
Según vamos editando nuestros programas se puede ejecutar el comando de Basic SAVE "nombre del programa" y automáticamente se guardará en la memoria del ESP32.
Después de realizar varios usos, este mod funciona perfectamente, no me ha dado ningún problema, y lo considero como un imprescindible para el ZX81.
El ZX-Wespi son todo ventajas:
- Fácil de instalar y de configurar.
- Muy sencillo de utilizar.
- La gestión de los ficheros vía web a través del fileserver, junto a la gestión del espacio utilizado y disponible, es una idea muy bien traída a este dispositivo.
- Grabar nuestros programas de una forma fiable, el grabado en cinta en el ZX81 era una auténtica lotería.
- Estéticamente le pega muy bien al ZX81, al encajar perfectamente en la carcasa y, al no necesitar muchos cables, queda todo muy limpio.
- La aplicación que se carga con LOAD "" es minimalista, tampoco hace falta muchas opciones, y funciona perfectamente.
Nada más que decir y nada que objetar a este ZX-Wespi, os animo a que hagáis este proyecto, que es muy entretenido de realizar y nos ofrece un resultado más que satisfactorio.
D.R Spectrum.
Comentarios
Publicar un comentario