El módem Philips NMS1250 fue muy popular en la época comercial del MSX, sobre todo en Holanda. Lamentablemente, el tiempo los dejó relegados a un segundo plano haciéndolos incompatibles hoy en día por el sistema de marcado de “pulsos”. Actualmente, hoy es un mero objeto de coleccionismo.

Hace un par de años que empecé a leer sobre qué módems tenían un puerto serie “oculto” y para mi sorpresa, son varios los módems MSX que disponen de él. Entonces se me ocurrió adaptar un módulo ESP8266. Estos módulos incorporan WIFI, son muy baratos y los puedes programar con el IDE de Arduino muy fácilmente. El objetivo principal de este tutorial no es otro que conectar este viejo módem por WIFI a la BBS. Para ello necesitaremos:

1 - El módem Philips NMS1250

2 - Adaptador de programador ESP01 USB a Serial

Lo podéis conseguir en AliExpress por menos de 3 €. Para este tutorial, usaremos el modelo de la foto al que le haremos una pequeña adaptación.

Ahora vemos el mismo programador boca abajo. Habrá que hacerle un puente con un trozo de cable tal cual se ve en la foto. Mi consejo es que soldéis un cable “Dupont hembra” en un pin y en el otro un cable “Dupont macho”, para poder puentear los pines o quitar el puente. De esta manera podréis utilizar el programador para otros proyectos.

3 - Módulo adaptador inalámbrico ESP8266-01

Exactamente el que veis en la foto. También muy económico en Aliexpress con un coste menor a 1 €.

4 - Cables “Dupont”

Si nunca habías oído hablar de ellos, son tremendamente prácticos para realizar proyectos sin hacer soldaduras. Son cables “macho” o “hembra” en los extremos, pudiendo tener varias combinaciones de tipo: enchufar y desenchufar. Como también son bastante baratos, lo mejor es que compres un pack de varios tipos.

5 - ESP8266-01

Más comúnmente llamado ESP01. Es el más pequeño de la familia, pero lo suficientemente potente para nuestro proyecto.

6 - Software para PC: El IDE de Arduino

Usaremos un entorno Windows para usar el software que necesitaremos, pero si usas Linux no habrá ningún cambio en el tutorial, ya que lo que usaremos en PC es multiplataforma. Como el IDE de Arduino es multiplataforma, puedes instalarlo en tu S.O. favorito. Descárgalo aquí.

7 - Software para MSX2: Nextor y Erix

Vamos a trabajar sobre el entorno Nextor (de Néstor Soriano) o MSXDOS. Sobre Nextor tenéis más información aquí, y usaremos el programa de terminal Erix. Erix necesita el driver Fossil para funcionar, solo es un archivo que tenéis que ejecutar en Nextor. Tanto Erix como el Driver Fossil fueron creados por Erik Maas, y lo podéis descargar aquí.

Los archivos DRIVER.COM y ERIX.COM son los que tenéis que descargar y copiarlos a una carpeta de Nextor.

8 - Configurar el IDE de Arduino

Lo primero que haremos será configurar Arduino. Básicamente, le mostraremos la ruta donde descargar la información de las placas de desarrollo y seleccionaremos nuestro ESP-01 para que los programas que escribamos en el IDE se ejecuten y flasheen correctamente en nuestra placa. Una vez tengamos Arduino instalado, al lanzarlo tendremos una ventana parecida a esta:

En el centro es donde se pone el código y en la barra superior, está el menú.

Clicamos en Archivo, Preferencias y veremos esta otra ventana:

Esta es la ventana que os aparecerá por defecto. Podéis dejar las casillas marcadas como las veis en la foto, aunque seguramente ya os saldrán así por defecto. En Gestor de URLs Adicionales de Tarjetas, tenéis que poner el enlace que veis en la foto. Para que os sea más sencillo, lo pongo aquí abajo y podéis hacer un “copiar/pegar”:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

... y presionamos OK.

Arduino es compatible con muchas placas de desarrollo y nosotros debemos decirle con cuál vamos a trabajar. Clicamos en: Herramientas, Gestor de tarjetas, ESP8266 Boards y Generic ESP8266 Module.

Ya tenemos todo listo para introducir código y flashearlo en nuestra placa. Ahora iremos al Github de Jsalin aquí. Jsalin ha desarrollado un programa que convierte un ESP8266 en un módem con comandos HAYES, con el que podremos conectarnos a las BBS con comandos “AT”. Hay muchísimos proyectos parecidos a este, os animo a que busquéis un poco por la red y probéis otros desarrollos en vuestra placa. El código lo encontraréis aquí.

Podéis seleccionar el código y pegarlo en el IDE de Arduino. Ahora, debes introducir el ESP-01 en el programador y el programador a un puerto USB libre de tu ordenador.

Arduino asignará el puerto, pero si al flashear no hay conexión con la placa, puedes comprobar que el puerto sea el correcto en esta ventana:

Herramientas, Puerto: ... en mi caso está en COM4, el vuestro puede ser distinto al mío.

Haremos un pequeño cambio en el código: modificaremos la velocidad a 57600 bds para que sea más compatible con nuestros MSX. Más adelante, deberemos seleccionar la misma velocidad de transferencia en el programa terminal en el que usemos nuestra placa, ya sea en un PC o en un MSX. Así es como lo veréis:

... y así es como lo tenéis que dejar:

Ya lo tenemos todo listo para flashear. Poneos gafas de sol y presionad el botón que he resaltado en rojo en la siguiente foto. Esto hará que se depure el código en busca de errores. Si no hay errores lo compila y lo flashea en la memoria del ESP-01.

Solo quedaría probarlo. Para ello nos vamos a Herramientas, Monitor Serie.
Donde pode baudios, clicáis en la flecha y lo dejáis a 57600, que es la velocidad que pusimos en el programa y en la que tendrán que estar todos los “programas de terminal” que ejecutemos.

Si os fijáis, en vuestra placa hay dos pulsadores, Reset y Flash. Si pulsamos Reset se reinicia la memoria y nos lanzará el programa que haya flasheado dentro. Si os aparece un ventana como esta, todo ha salido bien.

Ya tenemos nuestro ESP-01 con un código flasheado en la memoria que simula un módem. Pues bien, ahora vamos a conectarlo a nuestro módem MSX.

9 - Preparando el Módem

Legó el momento de meter mano al módem. Le damos la vuelta y le quitamos los 4 tornillos, desmontando así la carcasa.

Este chip es la UART del módem (Universal Asynchronous Receiver Transmitter). En el pin número 13 (RX) se conecta al pin RX del adaptador ESP-01 y el pin número 15 (TX) va conectado al pin TX del adaptador ESP-01.

El adaptador necesita ser alimentado. Los 2 pines restantes que nos quedan para dejar el adaptador conectado, los sacamos del chip de la siguiente foto (+5V y masa/GND).

En estas fotos podéis ver el adaptador del ESP-01 y su pin-out. Es decir:
RX ------------------------------------------ RX
TX ------------------------------------------ TX
VCC ---------------------------------------- 5V
GND ---------------------------------------- GND

Todo conectado debería quedar algo así:

... y así con la carcasa montada y el ESP-01 insertado en el adaptador:

Solo quedaría probarlo en un MSX introduciendo nuestro cartucho en un slot libre.

Como la UART de nuestro módem es la Z8530, para MSX solo tenemos Erix como programa terminal. Como Erix trabaja con 80 columnas, sí o sí necesitamos un MSX2 para hacerlo funcionar. También necesitas algún sistema de almacenamiento donde hospedar ERIX.COM y DRIVER.COM. En mi caso, para eso uso el cartucho FLASHJACKS, pero cualquier otro te servirá, incluso una unidad de disco.

10 - En el MSX2

Introduce el módem en un slot de tu MSX2 y enciende el ordenador. Una vez en Nextor o MSXDOS, nos ponemos en la carpeta donde estén los archivos DRIVER.COM y ERIX.COM. Primero ejecutamos el Fossil Driver: Tecleamos DRIVER [ENTER].

Cuando se ejecuta DRIVER, nos envía al Basic. Para volver a Nextor o MSXDOS tecleamos: CALL SYSTEM [ENTER].
Ahora lanzamos el programa terminal ERIX:

Lo primero que debemos hacer es seleccionar la velocidad. Recordad que en nuestro proyecto la hemos fijado a 57600 baudios.

No os preocupéis por lo que aparezca en la pantalla, en vuestra placa presionad el botón RESET. Os aparecerá esta pantalla con una lista de los comandos disponibles:

Ahora vamos a configurar nuestra red WIFI. Escribimos:
ATWIFIssid,contaseña

En mi caso quedaría rellenado de esta manera: Donde BAT_CUEVA es mi ssid y lo tachado es mi contraseña.

¡Y ya estamos conectados a internet con nuestro invento! Erix es un programa terminal que solo acepta codificación ASCII, por lo tanto, para conectarnos a una BBS, esta debe de estar hecha solo con caracteres ASCII, ya que si no, imprimiréis en pantalla un montón de símbolos desordenados.

Escribimos: ATDTsotanomsxbbs.org:23 y entraremos al submenú de configuración de la pantalla terminal de la BBS. Escogemos:
(0) Ascii (No Color) ... porque Erix no tiene implementado color.
(0) MS-DOS CP437 ... es la codificación de caracteres que soporta el programa terminal Erix.

En Themes escogemos: 6 ….. ASCII: No Graphics, No Color. Es un tema creado para conectarse con este tipo de dispositivos, o para gente que no le gusten los dibujos ANSI y prefiere fluidez en la carga de pantallas de la BBS.

La pantalla debería quedaros así:

Solo queda introducir el usuario y contraseña. Si no estáis registrados, hacerlo es muy fácil, logéate con el nick que más te guste y sigue los pasos de la BBS.

¡Si has podido llegar hasta aquí enhorabuena! Si te has atascado en algún paso escríbeme un email a: x1pepe@yahoo.es y te ayudaré encantado :)

¡Saludos!

Os dejo todas las imágenes del artículo a máxima resolución aquí y estas webs de interés:

http://sotanomsxbbs.org
https://www.luisllamas.es/programar-esp8266-con-el-ide-de-arduino
http://www.msxarchive.nl/pub/msx
https://github.com/jsalin/esp8266_modem
https://github.com/nodemcu/nodemcu-flasher
https://www.arduino.cc/en/Main/Software

AliExpress - Módulo adaptador inalámbrico ESP8266 ESP-01
AliExpress - Adaptador de programador ESP01/ESP-01S
AliExpress - Adaptador programador ESP01 UART GPIO0
AliExpress - Cable de 40 pines Dupont