Probando el TZXDuino [y CASDuino, MaxDuino,...]

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.
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Probando el TZXDuino

Mensaje por rcmolina »

Hola Natalia,

Sí, este fin de semana he podido dedicarle un poco más de lo habitual :-] y compensar unos temillas familiares días atrás.
nataliapc escribió: 19 Nov 2017, 21:15 Madre mía que velocidad!!
...si lo he programado esta mañana! xD

Gracias @rcmolina :)
Avatar de Usuario
nataliapc
Seguidor infernal
Seguidor infernal
Mensajes: 11
Registrado: 08 Oct 2017, 15:19

Re: Probando el TZXDuino

Mensaje por nataliapc »

@acf76es lo importante es que teniendo ya una implementación completa del bloque 4B en TZXDuino/MaxDuino se pueden incorporar en los ficheros TSX los datos, no ya solo de los MSX, si no de cualquier ordenador que usara Kansas City Standard (KCS para los amigos).

Todo depende de cómo se configure la cabecera del bloque 4B, en especial sus últimos dos bytes, ya que antes estaban fijos a los valores 0x24 0x54 que son los que describen los bloques MSX.
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Probando el TZXDuino

Mensaje por rcmolina »

Maxduino v1.20c

+ Optimizaciones en el menú para ahorrar espacio: cambios en la selección de los parámetros de máscara y speedup: sólo es necesario el botón play para conmutar entre ON y off.

http://filecloud.io/69keu7srx
Última edición por rcmolina el 26 Nov 2017, 01:21, editado 8 veces en total.
Avatar de Usuario
Spirax !Sinclair 1
Demonio tercer orden
Demonio tercer orden
Mensajes: 715
Registrado: 09 Oct 2017, 17:03
Ubicación: Leganes (Madrid)
Has thanked: 24 times
Been thanked: 46 times

Re: Probando el TZXDuino

Mensaje por Spirax »

gracias @rcMolina

esto va tomando forma :)
tu logo es muy chulo ;)

hay varias cositas que hay que seguir afinando.
varias de ellas con la fuente doble, para que no de problemas al compilarlo para otras pantallas que no sean OLED. Me he dado cuenta al reproducir ficheros no soportados que usando la fuente doble salian los errores en medio de la linea.

En el fichero Maxduino.ino sacar las deficiniones de XY y XY2 fuera del #Ifdef OLED ya que se necesitan tambien para LCD y otros ficheros.

#ifdef XY
byte lineaxy=1;
#endif
#ifdef XY2
byte lineaxy=2;
#endif

al generalizarlas ya no se necesitan otra vez en el menu.ino


en el fichero Maxprocesing.ino
hay que cambiar tres lineas para que usen la variable lineaxy en vez de fijar la impresion en linea 1, no lo vi antes porque solo se utilizan en errores,

En funcion void TZXProcess() {

CAMBIAR el 1
itoa(bytesRead,PlayBytes,16);strcat_P(PlayBytes,PSTR(" - L: "));printtext(PlayBytes,1);
itoa(loopCount,PlayBytes,10);sendStrXY(PlayBytes,10,1);

POR lineaxy
itoa(bytesRead,PlayBytes,16);strcat_P(PlayBytes,PSTR(" - L: "));printtext(PlayBytes,lineaxy);
itoa(loopCount,PlayBytes,10);sendStrXY(PlayBytes,10,lineaxy);

*************
en funcion void ReadTZXHeader()

CAMBIAR el 1
printtextF(PSTR("Not TZXTape"),1);

POR 0
printtextF(PSTR("Not TZXTape"),0);

*************

Creo que he encontrado un bug, que ocurre cuando se intenta reproducir un fichero no reconocido....
ejecuta la impresion de NOT TZX y supuestamente se para al ejecutar TZXStop (), pero aparecen los contadores como si empezara a reproducir el fichero.
lo he solucionado añadiento la linea start =0; en la funcion TZXStop pero no se si es el metodo correcto de hacerlo,
alguno lo podeis confirmar para añadir este cambio?


en funcion void TZXStop()

AÑADIR despues de isStopped=true;
start = 0;

*************

he detectado otro compartamieno anomalo respecto al TZXDuino que era el que usaba antes.
al pulsar el play suena un pitido hasta que sueltas el boton y empieza a reproducir.
no afecta al funcionamiento pero aun no he encontrado por que se produce.


*************
No es exactamente un bug pero se podria dar otra vuelta de tuerca al menu, aunque yo no lo uso (jejeje ya que uso la fuente doble y desactivo la linea de estatus)

en el nuevo menu, no se actualiza la linea de status al cambiar una opcion solo al salir del menu.
por ejemplo si en el status tienes la velocidad a 3600,
la cambias a 1200 y si sigues navegando por las opciones del menu sigue poniendo 3600 y solo se actualiza al salir del menu.
creo que se podria poner OledStatusLine (); al salir de cada opcion para que se actualize?


Muchas gracias
Saludos
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Probando el TZXDuino

Mensaje por rcmolina »

Creo que no me he dejado nada, seguimos en la 1.20c: (he actualizado el link anterior)

http://filecloud.io/69keu7srx

Ps. Respecto a lo del "comportamiento anómalo" del tono inicial, para mí es una seña de identidad :|
Al principio fue un bug, pero lo he dejado porque me gusta, me gustaría mantenerlo. Si hay presión o produce errores, pues no te digo que no (yo no los he detectado).
Me recuerda a los antiguos copiones y alimenta mi nostalgia. :P
Última edición por rcmolina el 26 Nov 2017, 01:20, editado 7 veces en total.
Avatar de Usuario
TOMASIUS
El infierno es su lugar
El infierno es su lugar
Mensajes: 111
Registrado: 02 Sep 2016, 09:04
Contactar:

Re: Probando el TZXDuino

Mensaje por TOMASIUS »

rcmolina escribió: 22 Nov 2017, 21:06 Creo que no me he dejado nada, seguimos en la 1.20c: (he actualizado el link anterior)

http://filecloud.io/iqfr4z7ue

Ps. Respecto a lo del "comportamiento anómalo" del tono inicial, para mí es una seña de identidad :|
Al principio fue un bug, pero lo he dejado porque me gusta, me gustaría mantenerlo. Si hay presión o produce errores, pues no te digo que no (yo no los he detectado).
Me recuerda a los antiguos copiones y alimenta mi nostalgia. :P
Pues a mi me lo ha dejado frito ... salen un montón de cuadraditos en pantalla y no hace caso a los botones ... voy a volver a alguna versión anterior :?
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Probando el TZXDuino

Mensaje por rcmolina »

@TOMASIUS, gracias por las pruebas. Dame datos por favor de tu hw y configuración. Yo lo he probado con ambas pantallas OLED y LCD antes de subirlo y no me ha dado problemas. Deduzco que tienes OLED por lo de los cuadraditos, típico de un problema de punteros posible problema en la rutina printtextF (la 1.18 no tiene los ultimos cambios)

¿qué versión de la IDE estás usando? yo la 1.8.1

¿cual era la versión anterior, que funcionaba, desde la que has actualizado? ¿te funcionaba la anterior 1.20b?

1.20b: http://filecloud.io/u69he1m5x
1.20a: https://mega.nz/#!mV0GWACK!JfFySIxOdyoy ... 3D3znvz1P8
1.19: http://filecloud.io/dy29nj0ra
1.18: http://filecloud.io/25n1yei80

Al menos hay que revisar dos configuraciones en la pestaña MaxDuino_v1.20c antes de subirlo (confírmanos que está todo correcto) :

1.- Configuración LED/OLED: en la pestaña MaxDuino_v1.20c (antiguamente lo dejaba en LCDSCREEN16x2)

//Set defines for various types of screen, currently only 16x2 I2C LCD is supported
//#define SERIALSCREEN 1
//#define LCDSCREEN16x2 1
#define OLED1306 1
//#define P8544 1

2.- Dirección de la pantalla en caso de LCD:

#ifdef LCDSCREEN16x2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
Avatar de Usuario
spark2k06
Demonio segundo orden
Demonio segundo orden
Mensajes: 1048
Registrado: 16 Oct 2017, 10:18
Has thanked: 9 times
Been thanked: 6 times
Contactar:

Re: Probando el TZXDuino

Mensaje por spark2k06 »

rcmolina escribió:@TOMASIUS, gracias por las pruebas. Dame datos por favor de tu hw y configuración. Yo lo he probado con ambas pantallas OLED y LCD antes de subirlo y no me ha dado problemas. Deduzco que tienes OLED por lo de los cuadraditos, típico de un problema de punteros posible problema en la rutina printtextF (la 1.18 no tiene los ultimos cambios)

¿qué versión de la IDE estás usando? yo la 1.8.1

¿cual era la versión anterior, que funcionaba, desde la que has actualizado? ¿te funcionaba la anterior 1.20b?

1.20b: http://filecloud.io/u69he1m5x
1.20a: https://mega.nz/#!mV0GWACK!JfFySIxOdyoy ... 3D3znvz1P8
1.19: http://filecloud.io/dy29nj0ra
1.18: http://filecloud.io/25n1yei80

Al menos hay que revisar dos configuraciones en la pestaña MaxDuino_v1.20c antes de subirlo (confírmanos que está todo correcto) :

1.- Configuración LED/OLED: en la pestaña MaxDuino_v1.20c (antiguamente lo dejaba en LCDSCREEN16x2)

//Set defines for various types of screen, currently only 16x2 I2C LCD is supported
//#define SERIALSCREEN 1
//#define LCDSCREEN16x2 1
#define OLED1306 1
//#define P8544 1

2.- Dirección de la pantalla en caso de LCD:

#ifdef LCDSCREEN16x2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
Una pregunta/idea... esos dos puntos de configuración no podrían ser detectados de alguna manera durante la inicialización y usar el que se detecte? Si bien entiendo que esto se podría traducir en una disminución importante de los recursos disponibles en el AVR e igual no es posible.

Si la detección no fuese posible pero sí tenemos los recursos suficientes, la información sobre el tipo de display también podría almacenarse en la EEPROM, de manera que la gente no se tenga que preocupar de configurar los fuentes a su modelo, solo compilar y flashear a partir de un código común.

Como digo, supongo que todo dependerá de los recursos disponibles.

Enviado desde mi Thor mediante Tapatalk




Avatar de Usuario
Spirax !Sinclair 1
Demonio tercer orden
Demonio tercer orden
Mensajes: 715
Registrado: 09 Oct 2017, 17:03
Ubicación: Leganes (Madrid)
Has thanked: 24 times
Been thanked: 46 times

Re: Probando el TZXDuino

Mensaje por Spirax »

hola.

confirmo que la nueva version subida por @rcmolina.
compila y funciona perfectamente en mi Oled sin tocar nada (el oled lo tengo con un arduino nano)
las opciones por defecto son: oled configurado en address 0x3C, con configuracion original de letras (4 lieas) y el logo de rcmolina.

he probado las lineas XY2 y compila y funciona perfectamente en dos lineas con fuente doble.

tambien tengo un lcd con un arduino pro mini
he cambiado las opciones de pantalla.
osea he comentado la linea de oled y descomentado la linea del LCDSCREEN16x2
y para mi lcd tengo que configurar la address en 0x27
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

compilar y tambien funciona OK.

por cierto gracias @rcmolina.
los cambios en el menu funcionan bien y ya cambia la linea de status al cambiar las opciones :) , y ahora ya no inicia los contadores al reproducir un fichero no reconocido. :)

@spark2k06
lo que sugieres no es posible, ya que el compilador que es el que crea el codigo y lo sube a la memoria del arduino no puede saber lo que tienes instalado en el arduino a no ser que se lo definas al compilar.
para hacer lo que sugieres, el arduino tendria que tener compiladas todas las librerias del display para detectar y usar la que necesite y eso con la poca memoria de los arduinos es imposible.
el echo de que tengamos que modificar las opciones del hardware que tenemos cada uno a la hora de compilar es lo que hace que sea un sistema abierto y facil para todos :)
pero claro cada uno tiene que saber lo que tiene y saber que opciones tiene que usar.

ah. se me olvidaba
mi ide por defecto es el 1.8.5

EDITO:
para no publicar otra vez, edito este post para colgar una fotillo.
ya terminé mi version con el oled. (por si alguien pregunta es una cajita de una RP Zero que tenia por aqui sin usar)
ya colgue anteriormente el lcd, os dejo en esta fotillo, los dos juntos para comparar el tamaño :D

Imagen
Última edición por Spirax el 23 Nov 2017, 11:04, editado 1 vez en total.
Avatar de Usuario
TOMASIUS
El infierno es su lugar
El infierno es su lugar
Mensajes: 111
Registrado: 02 Sep 2016, 09:04
Contactar:

Re: Probando el TZXDuino

Mensaje por TOMASIUS »

rcmolina escribió: 23 Nov 2017, 07:04 @TOMASIUS, gracias por las pruebas. Dame datos por favor de tu hw y configuración. Yo lo he probado con ambas pantallas OLED y LCD antes de subirlo y no me ha dado problemas. Deduzco que tienes OLED por lo de los cuadraditos, típico de un problema de punteros posible problema en la rutina printtextF (la 1.18 no tiene los ultimos cambios)

¿qué versión de la IDE estás usando? yo la 1.8.1

¿cual era la versión anterior, que funcionaba, desde la que has actualizado? ¿te funcionaba la anterior 1.20b?

1.20b: http://filecloud.io/u69he1m5x
1.20a: https://mega.nz/#!mV0GWACK!JfFySIxOdyoy ... 3D3znvz1P8
1.19: http://filecloud.io/dy29nj0ra
1.18: http://filecloud.io/25n1yei80

Al menos hay que revisar dos configuraciones en la pestaña MaxDuino_v1.20c antes de subirlo (confírmanos que está todo correcto) :

1.- Configuración LED/OLED: en la pestaña MaxDuino_v1.20c (antiguamente lo dejaba en LCDSCREEN16x2)

//Set defines for various types of screen, currently only 16x2 I2C LCD is supported
//#define SERIALSCREEN 1
//#define LCDSCREEN16x2 1
#define OLED1306 1
//#define P8544 1

2.- Dirección de la pantalla en caso de LCD:

#ifdef LCDSCREEN16x2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
Hola,

Es una pantalla OLED.

esta tarde cuando llegue a casa compruebo el código y vuelvo a compilar y subir. La versión IDE de Arduino (pero casi seguro que es la 1.8.1 dede OSX) y creo que sustituí una CASDUINO 1.17, ya que estoy probando cual me puede ir mejor con MSX.
Responder

Volver a “Proyectos de hardware abiertos”