Lo que necesitamos para este proyecto es por empezar un modulo wifi basado en el ESP8266, hay un monton de modelos y fabricantes pero todos compatibles, el ESP8266 es un modulo inteligente que tiene casi todo, le falta la antena y unos componentes minimos, por eso hay mucha gente que hace placas donde esta todo incluido. La que yo probe es una ESP12E, los nombres de las señales varian segun la placa pero basicamente todas tienen las mismas cosas. Uno de estos modulos cuesta de 3 dolares para arriba.
Despues hace falta una fuente de 5V y un regulador de 3,3V, yo uso una fuente de 3A y un regulador GJ1117A, pero tambien hay muchas opciones.
Para conectar al C64, hace falta un conector para el puerto del usuario. El modelo aparentemente es el LW-N12A2G.
Para la parte de conexion RS232, se necesita adaptar los 5V del puerto del usuario a los 3,3V del modulo, ahi uso una resistencia de 10K y otra de 15K para bajar de 5V a 3,3V para la salida TX desde la C64, y para RX desde el modulo, uso un transistor BC548, una resistencia de 4K7 y otra de 10K.
Y aparte de esto, alguna placa donde soldar todo, y cables.
Este es el esquema de conexion:
Como se puede ver, esta todo hecho con componentes minimos y conseguibles.
Con respecto a la parte de soft, estos modulos admiten el cambio de firmware, que se carga por RS232, e incluso creo que se puede actualizar por internet. Hay firmware que lo hace funcionar como modem con comandos AT, que es el que venia en esta placa, pero hay otros que permiten cargarle scripts en distintos lenguajes, porque la placa misma seria algo parecido a un Arduino, tiene pines de entrada/salida que se pueden programar y conectar a otras cosas.
El detalle con este firmware es que viene preconfigurado para arrancar a 115200 bps, por lo que es necesario conectarlo a un PC y configurarlo para 1200 bps, que es lo que hice para poder "hablarle" desde el C64. Una vez que esta a 1200 ya se queda grabada esa configuracion y arranca siempre asi. Desde la terminal de C64 se puede listar las redes wifi disponibles y conectar a una especificando nombre y clave. Esto tambien queda grabado, y cuando arranca el modulo se establece la conexion automaticamente.
Una vez que se configuro todo, se enciende el modulo en el C64 y hay que hacer dos cosas, primero conectar a un BBS con un comando AT que especifica la direccion, el tipo de conexion y el puerto, por ejemplo para el BBS de las fotos use:
AT+CIPSTART="TCP", "bbs.synchro.net", 23Esto le dice al modulo que iniciamos una conexion TCP a bbs.synchro.net por el puerto 23 (telnet).
Luego de eso se conecta al BBS y empieza a imprimir texto en pantalla, para poder tipear hay que poner un comando AT con el texto, pero este firmware viene preparado para el caso, y permite ingresar dos comandos que lo hacen de forma transparente. Hay que tipear esto:
AT+CIPMODE=1y luego:
AT+CIPSENDCon esto el modulo deja de estar en modo de comando y "puentea" la conexion TCP al puerto serie, por lo que lo que envia el C64 va directo al BBS y lo que recibe va al C64, sin tener que ingresar comandos AT.
Si queremos volver a modo comando, para cortar la conexion o cualquier otra cosa, hay que ingresar +++, pero tienen que ser caracteres enviados a maxima velocidad, no a velocidad de tipeo, esto se hace asi para que no se tipee de casualidad. Lo que hay que hacer es configurar la terminal para que se envie esa secuencia de caracteres al presionar una combinacion de teclas.
Una vez que se vuelve al modo comando, para cortar la conexion al BBS ingresamos:
AT+CIPCLOSEPor supuesto el modulo sirve para otras cosas ademas de entrar a BBS, pero para aprovecharlo hay que escribir soft que lo use, no se si ya hay algo hecho para estos modulos.