Como conectar el NodeMCU ESP8266 a través del puerto serie del MSX.
El NodeMCU es una placa de desarrollo basada en el ESP8266 12E, dispone de un módulo WIFI integrado y está muy documentada. Valdría cualquier otra solución basada en el ESP8266, pero he escogido ésta por su precio, facilidad para conseguirla y sobre todo porque ya existen muchos desarrollos disponibles para ella.
Voy a explicar como conectar esta plaquita de desarrollo a un MSX a través del puerto serie Rs232, flashearemos un programa con el IDE de Arduino y conseguiremos conectar nuestro MSX a internet.
Para ello necesitamos:
1- Un cartucho Rs232 para MSX.
Nota: Para conectar utilizando un cartucho módem tenéis otras instrucciones en: https://www.moai-tech.es/12_modemphilips.htm
Yo tengo el BaDCat Wifi, pero vale cualquier otro que tengáis, como por ejemplo…



2- Una placa NodeMCU.
La podéis conseguir en AliExpress por menos de 3€. Para este tutorial elegid el modelo:
NodeMCU ESP12E.
Detalles completos: Esp8266 es el chip WiFi, el esp8266 12E es el más potente y la placa de desarrollo que lo contiene se llama NodeMCU esp826612E.
3- Un cargador de teléfono y un cable micro USB.
4- Modulo RS232 hembra.
Así pues, el cable que usaremos para este módulo será DB9 plano M-H (NO NULL MÓDEM).
De todos los que yo he probado, éste es el que mejor me ha funcionado y también el más económico. Puedes encontrarlo en AliExpress por menos de 2€.
5- Cable plano DB9 M-H (macho – hembra).
Si el módulo RS-232 que hemos comprado es hembra, el cable debe de ser directo, pin to pin (1 a 1, 2 a 2…). En caso de que sea macho necesitariamos un cable cruzado (también llamado null modem).
Software para PC.
Para programar el microcontrolador usaremos un PC con Windows, aunque también hay programas equivalentes en Linux para este cometido.
1- El IDE de Arduino.
Es multi-plataforma así que puedes instarlo en tu S.O. favorito.
Descárgalo pulsando aquí:
https://www.arduino.cc/en/Main/Software
2- NodeMCU Flasher.
Este programa funciona bajo Windows, aunque también hay el homónimo para otros sistemas operativos, no es necesario para completar los pasos del tutorial, pero nos puede hacer falta en cualquier momento.
Descárgalo aquí si tu versión de Windows es 64 bits:
https://github.com/nodemcu/nodemcu-flasher/tree/master/Win64/Release
o si la versión de tu Windows es 32 bits utiliza este enlace:
https://github.com/nodemcu/nodemcu-flasher/tree/master/Win32/Release
Software para Msx2 (o mejor dicho para MSX con 80 col y 128Kb).
Vamos a trabajar sobre el entorno Nextor (de Nestor Soriano) o MSXDOS2. Acerca de Nextor tenéis más información aquí: https://www.konamiman.com/msx/msx-e.html.
Sobre estos usaremos un par de programas para terminal: Erix y COMS6 (hablaremos de este más tarde).
Erix necesita el driver Fossil para funcionar, ¿Qué es? Sólo es un archivo que tenéis que cargar desde Nextor.
Tanto Erix como el Driver Fossil fueron creados por Erik Maas, ambos los podéis descargar de aquí:
https://github.com/andortizg/BaDCaT
Tendréis que descargar los archivos DRIVER.COM y ERIX.COM y copiados a una carpeta de Nextor.
Nota: Gracias al fantástico trabajo llevado a cabo por ducasp, la nueva versión de telnet (telnetf.com) comanda el ESP directamente y el driver Fossil no será necesario. Por tanto, ejecutad telnetf.com y entraréis al interprete de comandos.
Configurar el IDE de Arduino.
Ahora debemos programar el microcontrolador. Lo primero que haremos será configurar el entorno de programación de Arduino (IDE). Básicamente le configuraremos la ruta donde descargar información disponible para estas placas y seleccionaremos nuestro modelo de NodeMCU, para que los programas que escribamos en el IDE se ejecuten correctamente en nuestra placa.
Una vez tengamos Arduino IDE instalado, lo lanzaremos y obtendremos una ventana parecida a esta:

En el centro es donde se escribe el código y el menú está en la barra superior.
Clickamos 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 aparecerá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.
Clickamos en:
Herramientas, Gestor de tarjetas, ESP8266 Boards, instalar

Y cerrar.
Ahora podemos seleccionar el módulo de este modo:

Ya tenemos todo listo para introducir código y flashearlo en nuestra placa.
Ahora iremos al Github de Jsalin:
https://github.com/jsalin/esp8266_modem
Jsalin ha desarrollado un programa que convierte el NodeMCU en un módem con comandos HAYES, con el que podremos conectarnos a las BBS’s.
Hay muchísimos proyectos parecidos a éste, os animo a que googleéis un poco por la red de redes y probéis otros desarrollos en vuestra placa.
El código de Jsalin lo encontrareis aquí:
https://github.com/jsalin/esp8266_modem/blob/master/esp_modem/esp_modem.ino
Podéis seleccionar el código y pegarlo en el IDE de Arduino.
Ha llegado el momento de conectar la placa a un puerto libre USB 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 COM8, el vuestro puede ser distinto al mío.

Haremos un pequeño cambio en el código, modificaremos la velocidad a 57600 bps para que sea más adecuado para 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, poneros gafas de sol y presionar el botón que he circulado de 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 NodeMCU.

Ya sólo quedaría probarlo, para ello nos vamos a Herramientas, Monitor Serie.
Donde pone baudios, clickáis en la flecha y lo dejáis a 57600, que es la velocidad que pusimos en el programa y la que tendrá que configurarse en todos los “programas de terminal” que ejecutemos.

Si os fijáis, en vuestra placa hay dos pulsadores, Reset y Flash. Si pulsamos Reset iniciará el programa que haya flasheado dentro.
Si os aparece un ventana como ésta, todo ha ido bien.

Ha llegado el momento de cablear nuestra placa NodeMCU y el módulo Rs232, debería quedar algo así:

Este es el pinout:

El cableado completo de todo el conjunto para conectarlo al Msx, debe quedar como en las siguientes fotos:


Si al igual que yo estáis usando el cartucho BadCat como RS232, recordad que el interruptor debe de estar hacia la derecha.

En el Msx2 …
Para utilizar estos programas necesitamos 80 columnas y MSX-DOS2 o Nextor, por lo que harán falta 128K como mínimo.
Una vez en el símbolo del sistema, nos situamos 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 al DOS:
CALL SYSTEM [ENTER]
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, simplemente presionad el botón de RESET en vuestra placa y aparecerá esta pantalla con una lista de los comandos disponibles.

En este punto vamos a configurar la conexión de la red WIFI. Escribimos:
ATWIFIssid,contaseña
En mi caso quedaría rellenado de esta manera:

Donde BAT_CUEVA es el nombre de mi SSID y lo tachado es mi contraseña.
Y estamos conectados a internet con nuestro invento.
ERIX es un programa terminal que sólo acepta codificación ASCII, por lo tanto, para conectarnos a una BBS, ésta debe de mostrarse sólo con este conjunto de caracteres, ya que de lo contrario se mostrarán en pantalla un montón de símbolos desordenados.
Escribimos: ATDTsotanomsxbbs.org:23 y entraremos al sub-menú 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 el apartado Themes escogemos:
6 ….. ASCII: No Graphics, No Color. … es un tema creado para conectarse con éste tipo de dispositivos o para gente que no le gusta los dibujos ANSI y prefiere fluidez en la carga de pantallas de la BBS.
La pantalla debería quedaros así.

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

Ahora usaremos el programa terminal COMS6 de Ángel Cullá, tiene implementado el color y también caracteres ANSI. Sólo decir que COMS6 sólo funcionará con tu cartucho Rs232 si éste lleva el UART 16550 o usáis en cartucho Rs232 de SVI. Ángel Cullá desarrolló un cartucho de comunicaciones llamado ACCNET (no sé nada más de él), en éste también funcionaría.
Lo podéis descargar de aquí:
http://www.msxarchive.nl/pub/msx/utils/datacom/coms6.zip
Descomprimir el zip y meter el resultado dentro de Nextor o MsxDOS.
El archivo a lanzar es COMS6.COM lo escribimos y pulsamos [ENTER].
Pulsamos F1 y veremos un menú en la parte superior de la pantalla, nos desplazamos con los cursores hasta Puerto y encima de Velocidad, lo dejamos en 57K6 y vamos saliendo con ESC hasta llegar a la pantalla negra del comienzo.

En nuestra placa NodeMCU pulsamos el botón RESET, entonces se ejecuta nuestro programa y seguimos los mismos pasos que antes para configurar nuestra red WIFI. Después escribimos:
ATDTsotanomsxbbs.org:23
COMS6 tiene implementado ANSI a todo color, de manera que ahora en la selección inicial de la BBS debemos dejarla así:

(1) Ansi (Color)
(0) MS-DOS CP437
… y escogemos cualquiera de los temas: 3, 4, ó 5, que ya los hice adaptados a COMS6.
Algo así será lo que veáis:



En COMS6 no funcionan los cursores del teclado, si los pulsas actúan como la tecla ESC. En el de mensajes de la BBS debéis usar los atajos escribiendo, por ejemplo, si en el menú MESSAGES pulsáis I para indexar todos los mensajes por grupos, no os podréis desplazar con los cursores, para ir al grupo BaDCat debéis empezar a escribirlo y la IA de la BBS te llevará hasta él.

Hemos llegado al final de éste tutorial básico de como poder conectar tu Msx2 a las BBS’s, con un cartucho Rs232 y una placa basada en el ESP8266.
Páginas de referencia:
https://github.com/andortizg/BaDCaT
https://www.konamiman.com/msx/msx-e.html
https://www.luisllamas.es/programar-esp8266-con-el-ide-de-arduino/
https://www.infootec.net/instalar-firmware-la-nodemcu/
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
x1pepe
¿Por qué conectar el módulo NodeMCU ESP8266 si el cartucho BADCAT ya tiene Wifi?
Me gustaMe gusta
en ese caso no es necesario pero puedes. lo ideal sería también construir el puerto serie
Me gustaMe gusta
La BaDCat simplemente dota al Msx de puerto serie, eso lo tenemos claro.
Dentro del Esp8266, puedes flashear otra cosa y hacerla funcionar en el puerto serie, por ejemplo, X1Telegram que es un cliente Telegram para Arduino y chatear desde el puerto serie hacia Telegram, o cualquier otra aplicación hecha por tí o basándote en los ejemplos del IDE de Arduino.
En vez de un Esp8266, podrías conectar un Esp32cam (el procedimiento es prácticamente igual) y usar la cámara del Esp32 con tu Msx a través del puerto serie.
Un saludo.
Me gustaMe gusta