Go Down

Topic: Librería gameduino 2 modificada para pantallas FT81X  (Read 39376 times) previous topic - next topic

TFTLCDCyg

Introducción

Gracias al trabajo (y desveladas) realizado en conjunto con el usuario lightcalamar, hemos podido hacer funcionar un par de pantallas de la familia FT81X: FT811 y FT813, con la librería creada por James Bowman para el gameduino 2.



Aun es un trabajo en progreso, faltan algunas características por explorar, pero la librería es 100 % funcional.

Hardware usado en la modificación

Pantallas con chip FTDI:

- FT813, 5", de Riverdi
- FT801, 4.3", de Riverdi
- FT811, 5", de HotMCU
- FT800, Shield Gameduino 2
- FT800, FT843 de 4D Systems

Placas
- Arduino shield de Riverdi
- Breakout-20 de Riverdi

- Arduino Due
- Arduino MEGA

- Lector microSD casero
- Lector microSD lctech de 3.3V

Librería GD2 modificada

En el proceso no solo se trabajó con pantallas FT81X, también se usaron pantallas FT80X, hay algunos ajustes que aun deben hacerse para lograr unificar ambas familias en una librería.

En este link se pueden descargar las librerías modificadas. Una de ellas funciona para pantallas FT80X y la otra para pantallas FT81X.

Descarga de librerías GD2 modificadas FT80X y FT81X

18 Sep 2016: Adición de GD2-FT813 para Teensy 3.2 (ejemplos próximamente). Se empleó el breakboard20 de Riverdi para conectar el cable plano de la pantalla.

Primeras pruebas:


Adaptador para reducir fallas por el cableado:


20 Sep 2016: Homologación del conexionado para Teensy 3.2 con el de arduino.



23 Sep 2016: Nombrando GD3 a la librería modificada para pantallas FT81X, con el fin de que pueda coexistir en la carpeta de librerías de Arduino. Ajuste de ejemplos en GD3 proximamente.

- La Librería GD2 funciona para pantallas de la familia FT80X: FT800, FT801, FT843 de 4D Systems (FT800)

- La Librería GD3 funciona para pantallas de la familia FT81X: FT810, FT811, FT812, FT813.

- Para que los ejemplos funcionen con GD3, debe modificarse el llamado de la librería por esta linea
Code: [Select]
#include <GD3.h>

Las librerías funcionan para pantallas diferentes al shield Gameduino 2, en las que se emplea el  shield arduino de Riverdi o el breakout-20 de Riverdi o el adaptador genérico de pantallas de HotMCU o eventualmente aquel adaptador que esté disponible comercialmente (o hecho en casa).

- El orden de conexionado puede modificarse dentro de la librerías, considerando cualquier pin equivalente al del shield gameduino 2(digital o analógico) disponible en el MCU arduino o Teensy 3.X seleccionado. La asignación actual se estableció para funcionar de forma directa con el shield arduino de Riverdi.

- Las pantallas y adaptadores que se emplearon en el desarrollo del presente experimento, no cuentan con acelerómetro, por lo que las instrucciones referentes a este dispositivo, no son operativas.

- MCU empleadas en el presente proyecto: Teensy 3.2 (TFTLCDCyg), Arduino Due (TFTLCDCyg), Arduino MEGA (lightcalamar).

- Para el shield Gameduino 2 se deben emplear las librerías originales.

17 de noviembre 2016: corrección de ejemplos y ajustes menores en GD3.

- Adición de ejemplos para usar assets en FT81X
- Correcciones menores a la librería GD3
- GD2 sin cambios
- Corrección de ejemplos de la última versión de Septiembre
- Se retiraron ejemplos de GD2 que no funcionan en GD3
- Algunos ejemplos posiblemente no funcionen correctamente debido a que requieren del uso de hardware específico como el spectrum shield de Sparkfun y el RTC DS3231
- Algunos ejemplos conservan aspecto 480x272, ya que fueron adaptados a partir de sketchs de prueba para el shield gameduino 2
- La librería GD3 es 100% compatible con la placa Teensy 3.6



Importante: es probable que algunos ejemplos llamen pines que no tienen las placas comunes de arduino: A19, A20, A23, A24; esto es porque las pruebas las he estado realizando en una placa Teensy 3.6 y con algunos multisensores de temperatura como el MAX1668 y el MAX6697.

En la siguiente revisión revisaré este punto en los ejemplos para homologar a nomenclatura a Due o MEGA.

TFTLCDCyg

Cableado

Se debe considerar una limitante en las dimensiones del cableado empleado para conectar la placa de control (arduino MEGA, DUE, UNO o teensy 3.X) y la pantalla. La longitud màxima debe estar en el rango de 15 a 20 cms.

Las pantallas emplean un cable plano (Riverdi: 20 pines, HotMCU: 10 pines) y un adaptador. En el caso de RIverdi, se puede conseguir un shield que incluye un lector microSD, un amplificador de audio y un selector de alimentación de los leds de retroiluminación de la pantalla.

Esquema de conexiones

Code: [Select]
Pantalla FT8XX       Arduino Due

MOSI                    11
MISO                    12
SCK                     13
TFT-CS                  10
SD-CS                    5


La libreria GD2 funciona en el arduino Due empleando un porteo de señales SPI, hacia los pines 11, 12, 13 equivalentes al SPI del arduino UNO; es por esta razón que el shield gameduino 2 se puede conectar directamente sobre el arduino Due.

Para que la librería funcione en el arduino MEGA, se deben usar las lineas SPI 51, 50, 52; adicionando esta linea en el encabezado:

Code: [Select]
#include <EEPROM.h>
En el arduino Due no es necesario usarla.

Las lineas PD e INT, no ha sido necesario emplearlas, por lo menos en las pantallas Riverdi y la FT843 de 4D systems.

En las pantallas HotMCU hay que usar la linea INT, el forero ligthcalamar ha documentado su uso con la libreria, acá se puede revisar su trabajo

Parámetros de inicio para el chip FT813

La configuración para iniciar cada pantalla, debe corresponder al tipo de chip, es posible que existan ligeras variaciones entre cada chip, se deberá ajustar para cada caso y fabricante. En el caso de la  pantalla: RVT50UQFNWC00 (FT813 5" de Riverdi)

Estos son los parámetros de configuración:

Code: [Select]
    GDTR.wr32(REG_ROTATE, 1);
    GD.wr32(REG_HCYCLE, 1056);    // 900 //548
    GD.wr32(REG_HOFFSET, 47);     // 43
    GD.wr32(REG_HSIZE, 800);
    GD.wr32(REG_HSYNC0, 0);
    GD.wr32(REG_HSYNC1, 10);      // 41
    GD.wr32(REG_VCYCLE, 525);     // 500
    GD.wr32(REG_VOFFSET, 23);     // 12
    GD.wr32(REG_VSIZE, 480);
    GD.wr32(REG_VSYNC0, 0);
    GD.wr32(REG_VSYNC1, 10);
    GD.wr32(REG_PCLK, 2);
    GD.wr32(REG_PCLK_POL, 1);
    GD.wr32(REG_DITHER, 0);        // 1
    GD.wr32(REG_CSPREAD, 0);       // 1


La instrucción:
Code: [Select]
GDTR.wr32(REG_ROTATE, 1);
 
Forma parte de la libreria gameduino 2, permite establecer la rotación inicial similar a la que tiene el shield gameduino 2  (es equivalente a establecer la rotación del chip FT81X en modo 1).

Hector_A


lightcalamar

#3
Aug 30, 2016, 09:24 am Last Edit: Aug 30, 2016, 10:01 am by lightcalamar
Excelente  !!!

Todos ustedes que deseen adquirir las pantallas basadas en chip FT8XX de HotMCU, como bien ha escrito TFTLCDCyg voy ampliar mas documentación.para su correcto funcionamiento.
Básicamente estas son mas económicas, pero sin perdida alguna de calidad, el acabado con su marco las hace muy atractivas.
Llegados a este punto, les aconsejo las que tienen mayor resolución, tales como las FT81X (800x480) frente a las FT80X (480x272), con la librería Gameduino 2 es una realidad su funcionamiento.
Estoy preparando una guia de mi experiencia con la cual la voy a compartir con todos vosotros. En esta misma semana la publicaré en este hilo de documentación.

Estos son los enlaces de las cuales tengo dos de cada unas;

Pantalla 5 pulgadas;  FT800 Resistiva

Pantalla 5 pulgadas;  FT811 Capacitiva

Y todo ello, no hubiese sido posible sin la enorme ayuda que ha realizado TFTLCDCyg.
Saludos! :)



Mi proyecto Radio FM con RDS -  MDC v1.0;
https://forum.arduino.cc/index.php?topic=400484.0
https://forum.arduino.cc/index.php?topic=448606.0
https://github.com/lightcalamar

TFTLCDCyg

19 Noviembre 2016:
- Adición de la función GD.printNfloat que permite imprimir números con decimales en GD2 y GD3.
- Adición de ejemplos básicos para la impresión de números con decimales en GD2 y GD3


michalkepa

Después de una ligera adaptación a mi Arduino MEGA+FT810CB-HY50HD funciona perfectamente.
Gracias amigo grande.





Lo siento por mi español porque vivo en Polonia :)

1+


Mi versión blobs and clock nixie. :)

IDE 1.0.6

TFTLCDCyg

Genial. Esperemos que la librería modificada funcione para tu proyecto. Ojalá y compartas mas avances de tu proyecto.

Saludos desde México.

michalkepa

Estación meteorológica simple como un ejemplo del uso de un función GD.printNfloat..

(DHT22,LDR,DS18820,BMP180/085,RTC 3231/1307 MEGA+FT810CB-HY50HD

IDE 1.0.6 .

:)  






lightcalamar

@michalkepa gracias por tus aportes !!!

@TFTLCDCyg buen trabajo !!!

Veo que la librería va aumentando en calidad. Voy a probar la función de imprimir números flotantes ya que estoy atascado en ellos.
Mi proyecto Radio FM con RDS -  MDC v1.0;
https://forum.arduino.cc/index.php?topic=400484.0
https://forum.arduino.cc/index.php?topic=448606.0
https://github.com/lightcalamar

TFTLCDCyg

Llegué a pensar que la librería no serviría... y veo que hasta España y Polonia está "rodando"...

Estoy contento por ayudarles en el desarrollo de sus proyectos, al ver lo que están consiguiendo tengo que aplicarme para ponerme a nivel, he descuidado el diseño de ejemplos, pero en cuanto logre descifrar el MAX6697, seguiré con ellos... hay todavía mucha tela para cortar.

PD: es una pena que James aun no nos oriente respecto a como quitarle el limite de 256 kb a la herramienta gd2asset..., podríamos tener imágenes mas grandes, e incluso manejar otros tipos de letra para manejar texto.

michalkepa

Mi nuevo proyecto, pero aún no está listo ... :)



lightcalamar

Hoooo muy bonito michalkepa !!!

Mi nuevo proyecto MDC (mULTI dATA cENTER
Ya funcionando el GPS con números flotantes;




Tengo que ir modificando pero ya funciona correcto y gracias infinitas a TFTLCDCyg por la nueva función GD.printNfloat




Y esta la parte de la radio que va aumentando en funciones;





Mi proyecto Radio FM con RDS -  MDC v1.0;
https://forum.arduino.cc/index.php?topic=400484.0
https://forum.arduino.cc/index.php?topic=448606.0
https://github.com/lightcalamar

michalkepa

l<ightcalamar>genial! :o

Podría usar su radio para mi proyecto hehe :)


Estoy con mi "Home INFO" lucho todo el tiempo...



 :)

lightcalamar

Hola michalkepa.

Adjunto mi proyecto inicial del MDC (Multi Data Center) estoy trabajando en el poco a poco
La librería de la parte del radio es este enlace

Todavia queda mucho pero ya empieza a estar fino. ;)
 
Mi proyecto Radio FM con RDS -  MDC v1.0;
https://forum.arduino.cc/index.php?topic=400484.0
https://forum.arduino.cc/index.php?topic=448606.0
https://github.com/lightcalamar

TFTLCDCyg

Se ven muy bien esas FT81X mas allá de las fronteras de este escritorio XD. Esperemos que sigan los progresos y a la espera de que nos muestren sus logros.

Sigo batallando aún con los multi-sensores de temperatura MAXIM, sin embargo solo me hace falta acceder a los registros que permiten leer el sensor instalado en cada chip.

04 de diciembre de 2016: Reorganización de ejemplos.

- Corrección de la orientación táctil respecto a la orientación de la pantalla. Ahora ambos dependen de la instrucción GD.cmd_setrotate(x), ya no hay dependencia respecto a la instrucción interna GDTR.wr(REG_ROTATE, y);.

- Adición de ejemplos para el manejo de assets fuera de la región 512x512 y corrección menor de errores algunos ejemplos previos

- Cambio en la combinación de colores de la pantalla de calibración táctil. La personalización de colores se puede conseguir modificando las instrucciones de color dentro de void GDClass::self_calibrate(void), en GD3.ccp

- Cambio en la combinación de colores y mensaje de la pantalla de error de co-procesador.

- Adición de la instrucción: #define ORIENTACION 0   //0, 1, 2, 3, establece la orientación de trabajo, con la finalidad de que la pantalla de error se ajuste a la orientación de la pantalla. Esta variable se puede configurar dentro de GD3.ccp, su valor corresponde al valor definido para GD.cmd_setrotate(x)

- Ejemplo de uso del encoder KY-040 de keyes con un grupo de assets

Go Up