Montaje Yombonet

Proyectos de hardware con sus esquemáticos y si llevan software en fuente

Moderadores: cacharreo, Fundadores

Reglas del Foro
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente

Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
Responder
Avatar de Usuario
yombo
Demonio tercer orden
Demonio tercer orden
Mensajes: 737
Registrado: 01 Ago 2014, 21:21

Montaje Yombonet

Mensaje por yombo »

Esto viene de los hilos:
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:

Imagen

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-
En este conector se exponen tres puertos serie. Cada puerto serie consta de dos pines, el TX de transmisión y el RX de recepción. Estos son los tres:

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
Debería responder OK y luego necesitarás reiniciar y cambiar la velocidad de la consola a 9600 para ver de nuevo el mensaje ready y proseguir con los comandos.

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"
Para conectar a una wifi. No funcionará si antes no ha funcionado el CWMODE.

Código: Seleccionar todo

AT+CIFSR
Muestra información de IP una vez te has conectado a la WiFi. No nos sirve de mucho salvo cuando lo consigamos, para comprobar que estamos conectados.

Código: Seleccionar todo

AT+CIPMODE=0

Código: Seleccionar todo

AT+CIPMUX=1

Código: Seleccionar todo

AT+CWLAP
Este comando lista las wifis disponibles.


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
En otros sistemas:

Código: Seleccionar todo

sudo python ./esptool.py --port PUERTO_SERIE write_flash 0x00000 FICHERO_BINARIO
(Si tu usuario está en el grupo dialout creo que no hace falta poner sudo)

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
en la consola DOS, saldrá información de la versión instalada, y si es un JRE o un JDK.

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.
Última edición por yombo el 30 Oct 2015, 19:57, editado 15 veces en total.
Imagen
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8152
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 101 times

Re: Montaje Yombonet

Mensaje por wilco2009 »

Todo muy bien explicado, muchas gracias.

Qué ganas!!!
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
Ben-kenobi
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3543
Registrado: 12 Nov 2013, 10:00
Has thanked: 1 time
Been thanked: 18 times

Re: Montaje Yombonet

Mensaje por Ben-kenobi »

Pero no venia ya instalado el firmware? Crei que era asi .
Quieres vinilos para makear tu spectrum? Mira Aqui
Avatar de Usuario
Izaro España
Fundador
Fundador
Mensajes: 3341
Registrado: 02 Abr 2013, 10:39
Ubicación: Valencia (mas alla del sol)
Has thanked: 14 times
Been thanked: 20 times

Re: Montaje Yombonet

Mensaje por Izaro »

B R A V O
01001101 01101001 01110010 01100001 00100000 01110001 01110101 01100101 00100000 01100101 01110010 01100101 01110011 00100000 01100011 01101111 01110100 01101001 01101100 01101100 01100001 00101110
Avatar de Usuario
yombo
Demonio tercer orden
Demonio tercer orden
Mensajes: 737
Registrado: 01 Ago 2014, 21:21

Re: Montaje Yombonet

Mensaje por yombo »

Gracias chicos

Sí Ben, viene programado con el firmware pero para montarlo por fases necesitas programar el sketch de cada una.
Digamos que viene grabado con el sketch de la ultima fase
Imagen
Avatar de Usuario
Ben-kenobi
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3543
Registrado: 12 Nov 2013, 10:00
Has thanked: 1 time
Been thanked: 18 times

Re: Montaje Yombonet

Mensaje por Ben-kenobi »

Vale, osea que seria montarlo sin probar y a funcionar y si quieres probar fase a fase necesitas ese conector , correcto?
Pues lo dicho , muchas gracias y a ver si consigo que funcione , jeje.
Por cierto , los conectores esos que dices que tienen que estar cerrados para usar y se abren para programar se pone un jumper, no?
Quieres vinilos para makear tu spectrum? Mira Aqui
Avatar de Usuario
stratotrasto
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 2494
Registrado: 20 Feb 2014, 17:23
Ubicación: Abula

Re: Montaje Yombonet

Mensaje por stratotrasto »

Wow.
F
A
N
T
Á
S
T
I
C
O
Si me muero no dejéis a mi mujer vender mis cacharros por lo que le dije que me costaron...
Avatar de Usuario
yombo
Demonio tercer orden
Demonio tercer orden
Mensajes: 737
Registrado: 01 Ago 2014, 21:21

Re: Montaje Yombonet

Mensaje por yombo »

Ben-kenobi escribió:Vale, osea que seria montarlo sin probar y a funcionar y si quieres probar fase a fase necesitas ese conector , correcto?
Pues lo dicho , muchas gracias y a ver si consigo que funcione , jeje.
Por cierto , los conectores esos que dices que tienen que estar cerrados para usar y se abren para programar se pone un jumper, no?
Sí, puedes montarlo todo directamente.

Son dos jumpers, se ponen en vertical, uniendo tx del micro a rx del modulo y viceversa. Os he puesto tres jumpers en el kit, ya que hay un JP3 que necesita estar cerrado para funcionar en el Spectrum.
Imagen
Avatar de Usuario
Fermars
Demonio segundo orden
Demonio segundo orden
Mensajes: 1195
Registrado: 20 Feb 2014, 16:58
Ubicación: El Escorial
Been thanked: 3 times

Re: Montaje Yombonet

Mensaje por Fermars »

Ando un poco perdido últimamente :)).
Gracias por el tutorial, está muy bien. ¿Solventaste ya todos los problemas que había?¿Ya vas a enviar los componentes? es el ansia! jeje
Fernando
Avatar de Usuario
yombo
Demonio tercer orden
Demonio tercer orden
Mensajes: 737
Registrado: 01 Ago 2014, 21:21

Re: Montaje Yombonet

Mensaje por yombo »

Fermars escribió:Ando un poco perdido últimamente :)).
Gracias por el tutorial, está muy bien. ¿Solventaste ya todos los problemas que había?¿Ya vas a enviar los componentes? es el ansia! jeje
Justo ahora mismo acabo de enviar el resto de kits, que iban por envío normal. A ver si os llegan pronto :) Los certificados los mandé el viernes, el tuyo entre ellos.

En cuanto a si funciona, pues llegó a funcionar casi todo a la vez (micro, wifi y cpld) pero cuando ya iba a probarlo bien pasó algo y ya no volvió a responder el microcontrolador, se resetea. Luego monté la de Izaro y le pasaba lo mismo al micro. A ver si es que yo tengo poca experiencia soldando cosas en PCB manufacturado (los prototipos que hago en placa perforada me funcionan a la primera), el Harlequin no me funcionó, sin embargo he montado dos ZX-Uno que funcionan.

Creo que más bien es el pcb de la yombonet que está mal, son las masas pienso yo. La masa en vez de llevarla con pistas, la hice con planos de masa conectados por vías.
Imagen
Responder

Volver a “Proyectos de hardware abiertos”