Miniduino (TZXDuino low cost)

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
llopis
Demonio tercer orden
Demonio tercer orden
Mensajes: 787
Registrado: 05 Jul 2018, 09:43
Ubicación: Asturias
Has thanked: 2 times
Been thanked: 21 times
Contactar:

Re: Miniduino (TZXDuino low cost)

Mensaje por llopis »

antoniovillena escribió: 24 May 2019, 00:29 Aquí lo tienes:

https://github.com/antoniovillena/zxuno ... iduino.pdf
Perfecto. Muchas gracias!
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: Miniduino (TZXDuino low cost)

Mensaje por antoniovillena »

Zup escribió: 24 May 2019, 07:08 ¿Queda alguno disponible montado? ¿Funciona con el software normalito o hace falta alguna versión reducida? ¿Hay alguna página con el software (tengo link del hilo del TZXduino pero he perdido la pista totalmente de las versiones)?

Gracias.
Los vendo en mi tienda online http://antoniovillena.es. El software está en el github de rcmolina, pero ya viene precargado con la última versión.

https://github.com/rcmolina/MaxDuino_v1.48

Edito: Con la penúltima, porque he visto que ayer subió otra nueva.
Avatar de Usuario
llopis
Demonio tercer orden
Demonio tercer orden
Mensajes: 787
Registrado: 05 Jul 2018, 09:43
Ubicación: Asturias
Has thanked: 2 times
Been thanked: 21 times
Contactar:

Re: Miniduino (TZXDuino low cost)

Mensaje por llopis »

Me lo acabo de montar y estoy con lo de flashear el Arduino. Para el Miniduino, hay que hacer algún cambio especial en userconfig.h, o según viene le vale?

Otra cosa (y esto a lo mejor tenía que estar en el hilo del TZXDuino), pero es normal que me de un montón de warnings al compilarlo en el IDE?

Código: Seleccionar todo

In file included from /Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:101:0:
sketch/MaxDuino.h:143:0: warning: "EOF" redefined
 #define EOF                 0xFF    //End of file
 ^
In file included from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:24:0,
                 from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Stream.h:26,
                 from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial.h:29,
                 from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:232,
                 from sketch/MaxDuino_v1.48.ino.cpp:1:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/stdio.h:314:0: note: this is the location of the previous definition
 #define EOF (-1)
 ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:550:22: warning: extra tokens at end of #ifdef directive
     #ifdef OLED1106_1.3
                      ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:760:26: warning: extra tokens at end of #ifdef directive
         #ifdef OLED1106_1.3
                          ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/casProcessing.ino:89:8: warning: extra tokens at end of #endif directive [-Wendif-labels]
 #endif Use_CAS
        ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/casProcessing.ino:137:8: warning: extra tokens at end of #endif directive [-Wendif-labels]
 #endif Use_CAS
        ^
In file included from /Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:101:0:
sketch/MaxDuino.h:180:75: warning: narrowing conversion of '157' from 'int' to 'char' inside { } [-Wnarrowing]
 PROGMEM const char ZX81Filename[9] = {'T','Z','X','D','U','I','N','O',0x9D};
                                                                           ^
sketch/MaxDuino.h:182:117: warning: narrowing conversion of '192' from 'int' to 'char' inside { } [-Wnarrowing]
 PROGMEM const char TAPHdr[20] = {0x0,0x0,0x3,'Z','X','A','Y','F','i','l','e',' ',' ',0x1A,0xB,0x0,0xC0,0x0,0x80,0x6E}; // 
                                                                                                                     ^
sketch/MaxDuino.h:182:117: warning: narrowing conversion of '128' from 'int' to 'char' inside { } [-Wnarrowing]
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino: In function 'void loop()':
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:477:100: warning: invalid conversion from 'char*' to 'unsigned char*' [-fpermissive]
               itoa(newpct,PlayBytes,10);strcat_P(PlayBytes,PSTR("%"));setXY (8,0);sendStr(PlayBytes);
                                                                                                    ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:509:30: warning: invalid conversion from 'char*' to 'unsigned char*' [-fpermissive]
             sendStr(PlayBytes);
                              ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1104:34: warning: invalid conversion from 'const char*' to 'unsigned char*' [-fpermissive]
                 sendStr("PAUSED ");
                                  ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1129:34: warning: invalid conversion from 'const char*' to 'unsigned char*' [-fpermissive]
                 sendStr("PLAYing");
                                  ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino: In function 'void OledStatusLine()':
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1655:25: warning: invalid conversion from 'const char*' to 'unsigned char*' [-fpermissive]
     sendStr("ID:   BLK:");
                         ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1671:29: warning: invalid conversion from 'byte* {aka unsigned char*}' to 'char*' [-fpermissive]
       itoa(BAUDRATE,input,10);sendStr(input);
                             ^
In file included from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:23:0,
                 from sketch/MaxDuino_v1.48.ino.cpp:1:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/stdlib.h:429:7: note:   initializing argument 2 of 'char* itoa(int, char*, int)'
 char *itoa (int __val, char *__s, int __radix)
       ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1673:41: warning: invalid conversion from 'const char*' to 'unsigned char*' [-fpermissive]
       if(mselectMask==1) sendStr(" M:ON");
                                         ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1674:27: warning: invalid conversion from 'const char*' to 'unsigned char*' [-fpermissive]
       else sendStr("m:off");    
                           ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1676:68: warning: invalid conversion from 'const char*' to 'unsigned char*' [-fpermissive]
       if (TSXCONTROLzxpolarityUEFSWITCHPARITY == 1) sendStr(" %^ON");
                                                                    ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1677:27: warning: invalid conversion from 'const char*' to 'unsigned char*' [-fpermissive]
       else sendStr("%^off");
                           ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino: In function 'void SetPlayBlock()':
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1719:25: warning: invalid conversion from 'const char*' to 'unsigned char*' [-fpermissive]
           sendStr("BLK:");
                         ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1720:32: warning: invalid conversion from 'byte* {aka unsigned char*}' to 'char*' [-fpermissive]
           utoa(block, input, 10);sendStr(input);sendChar(' ');
                                ^
In file included from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:23:0,
                 from sketch/MaxDuino_v1.48.ino.cpp:1:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/stdlib.h:517:7: note:   initializing argument 2 of 'char* utoa(unsigned int, char*, int)'
 char *utoa (unsigned int __val, char *__s, int __radix)
       ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1723:26: warning: invalid conversion from 'const char*' to 'unsigned char*' [-fpermissive]
             sendStr("ID:");utoa(currentID,input,16);sendStr(strupr(input)); // Block ID en hex
                          ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1723:51: warning: invalid conversion from 'byte* {aka unsigned char*}' to 'char*' [-fpermissive]
             sendStr("ID:");utoa(currentID,input,16);sendStr(strupr(input)); // Block ID en hex
                                                   ^
In file included from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:23:0,
                 from sketch/MaxDuino_v1.48.ino.cpp:1:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/stdlib.h:517:7: note:   initializing argument 2 of 'char* utoa(unsigned int, char*, int)'
 char *utoa (unsigned int __val, char *__s, int __radix)
       ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1723:73: warning: invalid conversion from 'byte* {aka unsigned char*}' to 'char*' [-fpermissive]
             sendStr("ID:");utoa(currentID,input,16);sendStr(strupr(input)); // Block ID en hex
                                                                         ^
In file included from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:25:0,
                 from sketch/MaxDuino_v1.48.ino.cpp:1:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/string.h:606:14: note:   initializing argument 1 of 'char* strupr(char*)'
 extern char *strupr(char *);
              ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/MaxDuino_v1.48.ino:1723:67: warning: invalid conversion from 'char*' to 'unsigned char*' [-fpermissive]
             sendStr("ID:");utoa(currentID,input,16);sendStr(strupr(input)); // Block ID en hex
                                                                   ^
/Users/noel/Development/External_projects/MaxDuino_v1.48/Display.ino:560:13: note:   initializing argument 1 of 'void sendStr(unsigned char*)'
     static void sendStr(unsigned char *string)
             ^
Sketch uses 30684 bytes (99%) of program storage space. Maximum is 30720 bytes.
Global variables use 1796 bytes (87%) of dynamic memory, leaving 252 bytes for local variables. Maximum is 2048 bytes.
Low memory available, stability problems may occur.                                              ^
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Miniduino (TZXDuino low cost)

Mensaje por rcmolina »

Hola,

He hecho un cambio de última hora sobre la versión 1.48 para manejar la paridad desde el menú (configurable) para los Acorn (BBC micro). Soporta el chunk 0x0104 con lo que ya permite cargar ciertos juegos como el Starquake, The Sentinel, hay una lista de este tipo de juegos por aqui:

http://beebwiki.mdfs.net/List_of_copy_p ... n_cassette

Aunque parezca increíble, las versiones antiguas del makeuef <3.00 cuando preservaban ponian la paridad al revés (impar <->par) y hay que tratar la mayoría de estos casos :) He dejado unos videos en youtube para el que no tenga un BBC micro y los quiera ver cargando en la maquina real. Alfredo Retrocant va a probar algunos más de la lista anterior, es una pena que el core BBC micro del zx-uno no soporte carga desde cinta, pero es lo que hay.

Comenté hace algún tiempo que si vais a usar las versiones superiores de la IDE mejor descomprimir los zips portables, cuando instalo en win parece que activa algún flag para presentar más información que de la otra manera no pasa ... Lo puedo mirar, pero la verdad es ni me he preocupado.
Si te mantienes en la IDE 1.84 me imagino que no te saldrá nada de los warnings, ¿qué versión de IDE tienes?, yo uso la 1.8.4 y como puedes ver no me sale por defecto:

Archiving built core (caching) in: C:\Users\Rafael\AppData\Local\Temp\arduino_cache_89566\core\core_arduino_avr_pro_cpu_16MHzatmega328_f8d539391cd9a049a88b673cece52bfa.a
El Sketch usa 30710 bytes (99%) del espacio de almacenamiento de programa. El máximo es 30720 bytes.
Las variables Globales usan 1773 bytes (86%) de la memoria dinámica, dejando 275 bytes para las variables locales. El máximo es 2048 bytes.
Poca memoria disponible, se pueden producir problemas de estabilidad.

EDIT (26/05): En Archivo/Preferencias/pestaña Ajustes , la opción Advertencias del compilador la tenía a "ninguno" en vez de a "Por defecto".
Creo que ya los he corregido todos, nuevos cambios directamente sobre la v1.48.
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Miniduino (TZXDuino low cost)

Mensaje por rcmolina »

Vale, pero .. Yo estoy siguiendo últimamente el criterio de dejarlo preconfigurado con las últimas funcionalidades implementadas, a modo de demostración. P.e. esta 1.48 va para el BBC micro, y si te fijas en el userconfig.h tiene AYPLAY activado, y desactivado el botón root en modo pivot, ie. menu directo con 1 pulsación //#define btnRoot_AS_PIVOT

Flexible, a gusto del usuario (siempre que entre, claro) :D Luego hay otro tema, el de la personalización: le puedes colocar el logo del miniduino si no lo trae, normalmente ya lo deberia tener grabado en la EEPROM.
llopis escribió: 24 May 2019, 22:02 Me lo acabo de montar y estoy con lo de flashear el Arduino. Para el Miniduino, hay que hacer algún cambio especial en userconfig.h, o según viene le vale?
Avatar de Usuario
llopis
Demonio tercer orden
Demonio tercer orden
Mensajes: 787
Registrado: 05 Jul 2018, 09:43
Ubicación: Asturias
Has thanked: 2 times
Been thanked: 21 times
Contactar:

Re: Miniduino (TZXDuino low cost)

Mensaje por llopis »

Por algún motivo no pude programar el Arduino correctamente, pero me compré otro y por fin funciona todo bien :)


Un par de preguntas:
- ¿Qué hace el botón ROOT cuando ya tengo elegido un programa? Veo que cambia la opción %, pero no sé qué hace exactamente? Edit: Ya veo que lo único que hace es enseñar el porcentaje del fichero que se está cargando.
- ¿Si algo no carga bien, hay manera de ajustar algo? (volumen, fase, o lo que sea?)
- Tal y como lo tengo montado, la placa del microSD está muy cerca de la placa principal y se podría hacer un corto muy fácilmente si empujas un poco. ¿La habré montado al revés? Creo que voy a ponerle un poco de cinta aislante por encima del metal de la microSD por si acaso.

Un juguete muy divertido. Gracias!
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Miniduino (TZXDuino low cost)

Mensaje por rcmolina »

@llopis, depende de la versión... En algunas versiones con el botón root accedes al menú. En otras el botón root hace de "pivot" es como pulsar el shift y otra tecla en un pc. Conncretamente en este caso se accede al menú pulsando root + STOP. El modo pivot permite busqueda en mitades por el directorio además de la secuencial al recorrer los ficheros.

En el menú tienes ajuste de velocidad (MSX), control de motor (se puede actvar o desactivar para Amstrad, msx, bbc miccro) tu modelo no tiene entrada de control de motor +2 euros y tampoco parece que lo necesites para zx, tienes otra opción la del % para invertir la polaridad: hay juegos muy especialitos que rehusan cambiar, el el fichero de configuración userconfig.h indico unos cuantos Basil, etc.
Luego hay otra opción del menú que solo es visible si se ha desactivado la reproducción de uefs...

Y en modo pausa (pausando la reproducción de un fuchero) accedes al modo bloque: bñasicamnete puedes rebobinr un bloque con REW. y le das a pivot + STOP o a stop cambia directamente la polaridad o hace de tsxcontrol.

Son demasiadas cosas, y muchas horas de trabajo. Te aconsejo que te pases al modo turbo: coges un snapshot z80 y lo conviertes a turbo con z802tzx :D

Espero te sirva el curso acelerado, vas preguntando en caso de dudas. Reconozco que leerse el hilo general te puede llevar toda una tarde, Y sí, lo del manual estaría muy bien, pero yo no me llevo nada.. Sería bueno que algún usuario agradecido compartiera su tiempo también con los demás: tenemos un miniduino barato, a mitad de precio respecto a otras soluciones y necesita que lo cuiden un poco.
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Miniduino (TZXDuino low cost)

Mensaje por rcmolina »

@llopis, lo más importante.. se me olvidaba. No te voy a permitir que no actualices , por varias razones: primeo porque no tendrás una experiencia completa con las nuevas mejoras, y no me vas ayudar en el futuro, no puede ser.

Si es por un tema de no innunda el post, contáctame a mi correo de gmail y lo vamos resolviendo... Me imagino que será el conversor a serie ¿lo tienes de 5 hilos con DTR?

Te aviso que superé la última prueba, un colega alemán que luego descubrí que era daltónico (es cierto, tengo el email) y el mamón me volvió loco :))
Avatar de Usuario
llopis
Demonio tercer orden
Demonio tercer orden
Mensajes: 787
Registrado: 05 Jul 2018, 09:43
Ubicación: Asturias
Has thanked: 2 times
Been thanked: 21 times
Contactar:

Re: Miniduino (TZXDuino low cost)

Mensaje por llopis »

rcmolina escribió: 04 Jun 2019, 21:32 @llopis, lo más importante.. se me olvidaba. No te voy a permitir que no actualices , por varias razones: primeo porque no tendrás una experiencia completa con las nuevas mejoras, y no me vas ayudar en el futuro, no puede ser.
Jaja, no te preocupes. Estoy usando la última version (antes de que arreglases los warnings). Tuve problemas con el primer Arduino, pero este que tengo ahora va de maravilla. Me acabé comprando el programador de 6 cables y va todo bien.
Avatar de Usuario
ferdinandus
Le gustan las llamas
Le gustan las llamas
Mensajes: 93
Registrado: 07 Oct 2016, 20:29
Been thanked: 1 time

Re: Miniduino (TZXDuino low cost)

Mensaje por ferdinandus »

Buenas tardes,

Estaba aquí intentando pasar una plácida tarde de cacharreo con el spectrum tras la recepción de mi nuevo flamante miniduino, que compre días atrás en la web de Antonio Villena.

Le puse la pantallita, la sd con juegos, y power, pero no tengo manera de que identifique ningún fichero de los que he metido (tap, tzx).

Hay algún truco?, porque no me sale que haya ningún fichero, He probado con una microSD de 32gb , pero también con una de 2gb.

Gracias de antemano

Saludos.
Responder

Volver a “Proyectos de hardware abiertos”