http://www.va-de-retro.com/foros/viewto ... 822#p45567
http://www.va-de-retro.com/foros/viewto ... =63&t=2905
Aquí tenéis el "tutorial" que he preparado, o más bien un compendio de notas.
Preparativos
Antes de nada hay que bajarse el repositorio, está en:
https://github.com/yomboprime/ZXChat
En esa web a la derecha hay un botón que pone "download zip", después de bajarlo lo extraes en algún sitio. En adelante me referiré a alguna ruta bajo el repositorio como por ejemplo "repo/doc/esquemaCPLD/esquemaCPLD.png" para referirme a algún archivo.
Para hacer que el módulo WiFi funcione es necesario mandarle unos comandos desde un PC, mediante un módulo USB-TTL serie como este:
Este módulo USB también te permite actualizar el firmware de Yombonet (tanto del microcontrolador Atmega como el del módulo WiFi)
Y necesitarás el entorno Arduino. La actualización de firmware se explica más abajo.
Contenido del kit
El archivo con la lista de componentes del kit está en "repo/doc/BOM Yombonet.ods"
La reproduzco aquí:
Código: Seleccionar todo
Part Value Description
ACTIV. LED 3mm LED 3mm (green)
C1, C2 22 pF CAPACITOR, 16V
C3, C6, C7 0.1uF CAPACITOR, 16V
C4, C5 100uF POLARIZED CAPACITOR, 16V
IC1 ATMEGA32A-PU Atmel microcontroller
IC2 XC9572XL-PC44 Xilinx CPLD
IC3 LD1117 LD1117 3V3 regulator
IC4 ESP-07 Esp-07 ESP8266 WiFi module
JP1 CPLD_PROG PINHD-1X6 male
JP2 PINHD-2X6 male
JP3 SINCLAIR_PWR PINHD-1X2 male
JP4 ANALOG0...7 PINHD-1X8 female
Q3 16 MHz CRYSTAL
R1, R6, R7 10K RESISTOR, 0.25W
R2, R4 1K RESISTOR, 0.25W
R3, R5 2K2 RESISTOR, 0.25W
R8 300 RESISTOR, 0.25W
RESET - Switch
X1 ZX-EDGE ZX-Spectrum system bus
Montaje, cosas básicas
Para el montaje puedes guiarte (además de con la serigrafía) con el esquema en "repo/doc/esquema.png", y con la imagen de la placa en "repo/doc/ImagenPlaca.png".
Los componentes que no tienen polaridad (da igual en qué orientación los sueldes) son las resistencias y los condensadores no electrolíticos (las lentejillas con dos patas). El resto de componentes tienen polaridad, es decir, hay que ir con cuidado con la orientación.
El microcontrolador (chip rectangular grande de 40 patillas) tiene una media luna en un lado, que hada de coincidir con la correspondiente en la serigrafía. El zócalo también la tiene.
El CPLD (chip que va en el zócalo cuadrado) tiene una muesca en un lado que ha de coincidir con la flecha del zócalo y de la serigrafía.
El módulo WiFi (chip SMD) sólo cabe en una orientación por la serigrafía. Es importante soldarlo lo primero a la placa, porque los otros componentes te estorbarán si no. Es el único componente SMD (de montaje en superfície). Para soldarlo lo usual es embadurnar los pads de la placa con flux, posicionar el chip y con el soldador con una gota de estaño en la punta soldar dos pins de esquinas opuestas. Se corrige la posición si hace falta ahora que aún se puede, y una vez fijado por los dos pins se suelda el resto de pines normalmente. Los pins de este chip son semi-hole, es decir medio agujero en forma de medio círculo. El chip ha de quedar centrado en los pads.
En el LED verde de actividad, la pata corta es el - y la larga es el +.
Después del montaje es muy conveniente medir continuidad entre +5V y masa (no debería haber continuidad, como mínimo unos cientos de ohmios o 1K)
También se puede hacer esa comprobación en la línea de 3.3V (por ejemplo midiendo continuidad en C5)
El conector JP1 no es necesario soldarlo si no vas a reprogramar el CPLD, y se puede poner cuando sea necesario.
El conector edge o conector del bus del Spectrum hay que cortarle el exceso de los lados (con una dremel o similar), y ponerle un bloqueo en el pin 5. Conviene que este bloqueo no llegue a ras del conector, sino que esté medio centímetro para adentro.
Modos de conectar Yombonet. El conector JP2 y los puertos serie
Hacer que funcione Yombonet no es una tarea fácil. Primero voy a explicar las formas posibles de conectar los pines de JP2, el conector que expone los puertos serie. Después explicaré los pasos a realizar.
En el siguiente esquema se muestran los pines de JP2 (la orientación es con el conector Edge en el borde inferior de la placa)
Código: Seleccionar todo
Modulo WiFi -Debug-
-------------------------------
| TX | RX | GND| +5V| RX | TX |
-------------------------------
| RX | TX | | | | |
-------------------------------
-Atmega-
ModuloWiFi: Puerto serie del módulo WiFi. Conectar el módulo USB-TTL Aquí para enviar comandos AT o para reflashear el firmware del WiFi.
Atmega: Puerto serie principal del Atmega. Aquí se conecta el USB-TTL para programar el firmware del Atmega.
Debug: Aquí se conecta el módulo USB-TTL para ver la salida de debug del Atmega y detectar problemas.
Durante el funcionamiento normal de Yombonet, los dos puertos serie de la izquierda se unen con jumpers verticales, comunicando así el Atmega y el WiFi. El puerto de debug es opcional conectar ahí el módulo USB para ver la salida de debug.
Como puede verse, cuando se conectan dos puertos serie, se hace siempre conectando el pin RX al TX y viceversa. Al conectar el módulo USB también se ha de conectar así: el TX del USB al RX del puerto serie, y el RX del USB al TX del serie. Además, siempre es necesario conectar la masa del módulo USB al pin de masa de la placa (GND), pero NO conectes el de alimentación (Vcc)
Pasos a realizar
Primero hay que comunicarse con el módulo WiFi conectando el módulo USB al puerto serie del WiFi.
Yombonet debe estar alimentada por el spectrum, pero éste último no se utiliza en este paso.
Hay que configurar el módulo Wifi a la velocidad de transmisión de 9600 baudios (mediante un comando AT)
Hay que enviarle otros comandos AT para que se active y por fin se conecte a la WiFi.
Estos pasos están en la sección posterior "Comandos AT"
Después ya podemos apagar todo, reconfigurar en el modo de funcionamiento normal (jumpers a la izquierda, y debug opcional) y cargar el programa de chat, repo/src/spectrum/ZXChat/ZXChat.wav (o .tap)
Instalación y configuración entorno Arduino
Para enviar comandos AT, o para programar el firmware del Atmega, necesitarás la versión del entorno Arduino 1.0.5
Instrucciones Arduino 1.0.5
Tras instalar el entorno Arduino (http://arduino.cc), puedes abrirlo y averiguar dónde está el directorio de sketches, o configurar tú mismo tu propio directorio (Menú Archivo->Preferencias).
Después cierra Arduino y navega al directorio de sketches. Si no están creados, crea allí los directorios "hardware" y "libraries".
A continuación copia desde el repositorio las carpetas "repo/src/microcontrolador/mighty-1284p" y "repo/src/microcontrolador/mymega32" al directorio "hardware".
Y copia el directorio "repo/src/microcontrolador/Yombonet" al directorio "libraries".
Después de esto, para probar que todo funciona correctamente, puedes abrir de nuevo el entorno Arduino. En el menú Archivo->Ejemplos debería haber una entrada con el nombre "Yombonet", y bajo ella los Sketches de Yombonet. El que se llama Yombonet es el firmware.
Instrucciones Arduino reciente
Esto no es normalmente necesario: Para programar el firmware del módulo WiFi necesitarás la última versión del entorno Arduino (Es compatible tener ambas instaladas)
Comandos AT
Para enviar comandos AT te sirve cualquier versión de Arduino, y no hace falta configurar nada más que el puerto serie, ya que sólo vamos a usar la consola que se comunica por el módulo USB con el módulo WiFi.
Sigue estos pasos:
- Todavía no alimentes el spectrum.
- Conecta el módulo USB al puerto serie del WiFi de Yombonet (no te olvides de GND)
- Conecta el módulo USB a tu PC
- Abre el entorno Arduino, selecciona en el menú Herramientas el puerto serie de tu módulo USB, y abre la consola (icono de la lupa)
- En la consola, abajo, hay dos cuadros de selección. En el primero selecciona el fin de línea, "Ambos NL & CR". Esto es necesario para que el módulo WiFi pille los finales de cada comando AT, que son esos dos caracteres.
- En el segundo cuadro selecciona la velocidad en Baudios (9600)
- Ya puedes alimentar el spectrum.
Prueba al principio con 9600 y despues 115200. Despues de seleccionar cada velocidad, pulsa el botón de reset de Yombonet y espera 8 segundos a que se reinicie. Cuando se encienda el led azul del WiFi, debería aparecer un mensaje por la consola. Prueba diferentes velocidades hasta que te aparezca 'ready' al final (el mensaje en sí no importa, incluso aunque aparezca basura, si sale ready has dado con la velocidad adecuada)
Una vez visto el mensaje de ready: si escribes "AT" sin comillas debería responder OK, indicando que está listo para recibir más comandos.
Si la velocidad no es 9600, mándale este comando desde la consola para que se configure a esa velocidad (esto lo podría hacer el Atmega automáticamente pero necesitamos enviarle otros comandos para que funcione del todo):
Código: Seleccionar todo
AT+CIOBAUD=9600
A continuación escribe los siguientes comandos. Debería mostrar OK en todos pero si falla en alguno da igual, tu sigue hasta el final.
Código: Seleccionar todo
AT
Código: Seleccionar todo
AT+CWMODE=3
Código: Seleccionar todo
AT+CWQAP
Código: Seleccionar todo
AT+CWJAP="nombreWiFi","Password"
Código: Seleccionar todo
AT+CIFSR
Código: Seleccionar todo
AT+CIPMODE=0
Código: Seleccionar todo
AT+CIPMUX=1
Código: Seleccionar todo
AT+CWLAP
Tras realizar los comandos, el que os debería funcionar es el de conectar a vuestra ssid y password. En ese caso ya está "activado".
Funcionamiento normal
Para funcionamiento normal, repito que se conectan con dos jumpers los puertos serie de Atmega y WiFi.
JP3 También se ha de cerrar. Este jumper se diseñó para aislar la alimentación del Spectrum, para alimentar Yombonet de forma externa.
Al encender el Spectrum con la Yombonet conectada, se encenderá un LED rojo en el módulo WiFi indicando que hay alimentación. El LED azul de actividad en la comunicación con el módulo WiFi también parpadeará momentáneamente.
Ejecución de ZXChat
Simplemente carga en el Spectrum el programa repo/src/spectrum/ZXChat/ZXChat.wav (o .tap)
Aparecerá el menú.
Lo primero es pulsar la opción 5 y enter para un diagnóstico simple de yombonet. Debería aparecer un mensaje indicando el número de revisión del firmware. Si se queda colgado con el led verde parpadeando, prueba a reiniciar Yombonet pulsando su botón de reset y reinténtalo.
Sigue las opciones 2 y 3 del menú para configurar el nick y la WiFi (nombre o SSID, y el password).
Pulsa la opción 1 para comenzar. Si todo va bien se conectará a la WiFi, pero para conectar a Yomboserver, éste deberá estar en línea.
Si te conectas ya puedes enviar y recibir mensajes:
Escribir mensaje y enter = Enviar mensaje
Enter sólo = recibir
Un sólo espacio y enter = Volver al menú.
Borde verde: Respuesta recibida.
Borde amarillo: Hubo algún error.
(Los códigos de error aparecen en pantalla)
Cómo actualizar el firmware del Atmega
Para grabar el firmware:
- Conecta el módulo USB al puerto serie del Atmega en Yombonet (no el de debug, si no el principal)
- Abre el entorno Arduino (1.0.5) y abre el sketch del firmware en Archivo->Ejemplos->Yombonet->Yombonet
- Selecciona el puerto serie en Herramientas->Puerto serial
- Selecciona en Herramientas->Tarjeta el microcontrolador "Original Mighty 1284p 16MHz"
- Compila el sketch pulsando el botón de la "V" Debería aparecerte "Compilación terminada" y "Tamaño binario del Sketch: xxxx bytes (de un máximo de 129.024 bytes)"
- Y a continuación pulsa el botón de reset de Yombonet a la vez que pulsas el icono de "Cargar", el de la flecha hacia la derecha. Los leds del módulo USB deberían parpadear durante unos segundos, y Arduino te dirá "Carga terminada" si todo va bien.
Hay que pillarle el truco al tiempo entre soltar el botón de reset y pulsar el icono, puede ser a la vez, o una diferencia de 1 segundo máximo.
Cómo actualizar el firmware del módulo WiFi
Esto sólo deberías hacerlo si ves que el módulo WiFi muestra el mensaje de ready pero no responde a ninguno de tus comandos, ni con OK ni nada.
Hay que soldar unos cables a los pines del módulo WiFi directamente. Cuando termines y todo funcione puedes desoldarlos.
Cables:
Pin 11 (GPIO2): conectar un cable a una resistencia de 10K en serie a 3.3V.
Pin 12 (GPIO0): conectar un cable a masa para subir firmware, dejar al aire para funcionamiento normal.
Nota: Hay un pin de 3.3V y otro de masa en el conector de abajo a la izquierda en la placa.
Necesitarás un PC con Python.
El software de python para grabar el firmware está aquí: https://github.com/themadinventor/esptool
El fichero bin con el firmware está aquí: https://drive.google.com/file/d/0B4WEXG ... sp=sharing
El comando de consola para grabar el firmware desde el PC es (primero haz CD al directorio de la herramienta):
En Windows:
Código: Seleccionar todo
python esptool.py --port PUERTO_SERIE write_flash 0x00000 FICHERO_BINARIO
Código: Seleccionar todo
sudo python ./esptool.py --port PUERTO_SERIE write_flash 0x00000 FICHERO_BINARIO
PUERTO_SERIE es por ejemplo /dev/ttyUSB0, o COM4 p.ej. en Windows
FICHERO_BINARIO es el nombre del archivo .bin
Simplemente conecta el USB, conecta el spectrum, y manda ese comando. Muestra el porcentaje en pantalla y tarda un par de minutos.
Instalación de un servidor propio
El servidor es un tomcat.
Requisito: Java JDK.
Es importante que hay que instalar el JDK (Java Development Kit) y no el JRE solamente (Java Runtime Environment)
Descárgalo de aqui: http://www.oracle.com/technetwork/java/ ... index.html
Una vez instalado (o antes, para así saber qué tienes instalado), ejecutando
Código: Seleccionar todo
java -version
Instalar Tomcat
Aquí hay un tutorial en castellano donde explica cómo instalar Tomcat (sólo nos interesa la parte inicial de instalación):
http://chuwiki.chuidiang.org/index.php? ... en_Windows
Es un instalador corriente, tan sólo debemos acordarnos del directorio donde se va a instalar Tomcat, pues en su directorio webapps/ROOT/ será donde copiemos los ficheros de Yomboserver.
El puerto TCP podemos ponerle casi el que queramos, por defecto es el 8080.
Una vez instalado Tomcat (en el tutorial del link anterior explica cómo verificar la instalación), procedemos a copiar los archivos de Yomboserver al directorio de trabajo de Tomcat:
- Localiza el directorio de trabajo. Es el el subdirectorio webapps/ROOT/ del directorio donde se instaló Tomcat.
- Borra el contenido del directorio ROOT
- Copia el contenido del directorio repo/src/Yomboserver/WebContent/ a webapps/ROOT.
- Copia el subdirectorio classes de repo/src/Yomboserver/build/classes a webapps/ROOT/WEB-INF/
Y ya está. Ya tienes disponible el YomboServer, que se activará al hacer la primera petición.
Para activar o desactivar el servidor usa el programa Configure Tomcat del menú de Windows.
Puedes abrir el cliente web en tu propio ordenador abriendo la dirección http://127.0.0.1:8080/ZXChat/clientezxchat.jsp
Para usar este servidor desde el Spectrum tendrás que cambiarlo en el menú de ZXChat, o para un cambio más permanente, modificar el fichero repo/src/spectrum/ZXChat/variablesGlobales.bas y recompilar con ZXBasic (tendrás que descargarlo). Las modificaciones son muy sencillas, está explicado en el código:
- Cambiar la variable ubUsarYomboServer de 1 a 0
- En la siguiente línea, poner la IP de tu servidor, ya sea una IP de red local o una IP pública, o incluso un nombre de dominio.
- En la url, editarla y quitar "Yomboserver/", dejando el resto.
Si quieres cambiarlo en el menú ZXChat, entra en la opción Cambiar Servidor -> Usar servidor manual, Mete la IP o nombre, y (en la siguiente opción) cambia la url eliminando la parte "Yomboserver/".
Nota que para ver el servidor desde el exterior de una red local hay que redirigir el tráfico al puerto 8080 al ordenador con el servidor, lo cual se configura en el router, pero escapa al alcance de este tutorial.