Ayuda con pantalla oled serial uLCD144 de 4dsystem

Hola pues eso que estoy intentando por todos los medios hacer funcionar una pantalla serie oled de 128x128 de 1,4", es la uLCD144 de 4dsystem.

pero en realidad ni si quiera puedo probarla, me da error el compilador con las librerias, no he podido cargar ni un programa de prueba todo son errores de compilacion incluso dejandolo sin codigo ninguno solo por incluir las librerias... increible Help!!!!

He probado varias librerias ya y por supuesto las oficiales del fabricante:

  • displayshield4d
  • Goldelox_Serial_4DLib
  • U8glib
  • uLCD_4DGL

No hay manera errores de compilacion solamente...

¿Que versión del IDE usas?
Los links de descarga de las librerías ayudarían...

Los links ayudarán, los errores posteados tambien, y el que te fijes si estas realmente usando tu display cuando usas librerías genéricas como u8glib hará que funcione.
Muchas veces descargas una librería y todo sale funcionando pero cuando se trata de displays hay muchos controladores y entonces debes entrar en la librería y descomentar tu controlador y comentar el que esta por defecto.

hola el ide de arduino es el nuevo 1.5.8 uso el leonardo puerto serie3, la pagina oficial de la pantalla es esta

http://www.4dsystems.com.au/product/4D_Workshop_4_IDE/downloads

y el driver es este
https://github.com/4dsystems/Goldelox-Serial-Arduino-Library/tree/master/Arduino

con solo cargar la libreria Goldelox_Serial_4DLib y sin codigo le doy a compilar y zas sale esto de abajo, si compilo el ejemplo del blink va bien y lo carga correctamente

In file included from sketch_jan14b.ino:1:
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:13: error: stray '\302' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:13: error: stray '\267' in program
In file included from sketch_jan14b.ino:1:
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:13:76: error: invalid suffix "dsystems" on integer constant
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:13: error: stray '\302' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:13: error: stray '\267' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:164:119: error: invalid suffix "dsystems" on integer constant
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:281:46: error: exponent has no digits
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:372:64: error: invalid suffix "dsystems" on integer constant
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:375: error: missing terminating " character
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:379:3: error: invalid suffix "D" on integer constant
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:379:24: error: invalid suffix "Display" on integer constant
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:380: error: missing terminating " character
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:398:34: error: invalid suffix "dsystems" on integer constant
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:443: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:447: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:451: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:455: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:459: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:463: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:467: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:471: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:475: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:479: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:483: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:487: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:491: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:495: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:499: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:503: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:507: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:511: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:515: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:519: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:523: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:527: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:531: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:535: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:539: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:543: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:547: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:551: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:555: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:559: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:563: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:567: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:571: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:575: error: stray '#' in program
C:\Users\Antonio\Documents\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:579: error: stray '#' in program
C:\Use stray '#' in program

siguiendo la guia de este sitio

me baje esta libreria
https://code.google.com/p/displayshield4d/downloads/list

y con solo esto

#include <displayshield4d.h>

void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:

}

compilo y zas

C:\Users\Antonio\Documents\Arduino\libraries\displayshield4d\displayshield4d.cpp:25:22: fatal error: WProgram.h: No such file or directory
#include "WProgram.h"
^
compilation terminated.
Error de compilación

y si renombro "WProgram.h" por "Arduino.h" en la libreria entonces sale esto:

C:\Users\Antonio\Documents\Arduino\libraries\displayshield4d\displayshield4d.cpp: In member function 'uint8_t DisplayShield4d::drawstringblock(uint8_t, uint8_t, uint8_t, unsigned int, uint8_t, uint8_t, char*)':
C:\Users\Antonio\Documents\Arduino\libraries\displayshield4d\displayshield4d.cpp:518:39: error: call of overloaded 'write(int, int)' is ambiguous
Serial.write(OLED_STRINGTERMINATOR, 1); // String terminator
^
C:\Users\Antonio\Documents\Arduino\libraries\displayshield4d\displayshield4d.cpp:518:39: note: candidates are:
In file included from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:224:0,
from C:\Users\Antonio\Documents\Arduino\libraries\displayshield4d\displayshield4d.cpp:25:
C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/USBAPI.h:83:17: note: virtual size_t Serial_::write(const uint8_t*, size_t)
virtual size_t write(const uint8_t*, size_t);
^
In file included from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,
from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,
from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:223,
from C:\Users\Antonio\Documents\Arduino\libraries\displayshield4d\displayshield4d.cpp:25:
C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Print.h:54:12: note: size_t Print::write(const char*, size_t)
size_t write(const char *buffer, size_t size) {
^
Error de compilación

Bueno con publicar un poco de los errores suficiente.. o ponerlos en un archivo txt y subirlo pero bien.
Mira tu problema nro 1.
Es que has copiado la librería de la web y ahora esta en un código ascii erroneo.
Buscala y descargala nuevamente. Borra la anterior y la vuelves a instalar en el directorio arduino\libraries
Esto debes descargar y no copiarlo y pegarlo como hiciste


Aca el link

Otro tema: por favor lee las normas del foro.
Links, codigo debe usar los tags corresondientes que tienes en el editor al redactar tus post.
En normas del foro esta como hacerlo.

la he descargado 3 veces ya y lo mismo

alguna idea?

Veo que respondiste antes que editara
No las descargaste, las copiaste y pegaste y por eso los errores

Esto debes descargar y no copiarlo y pegarlo como hiciste


Aca el link

surbyte:
Veo que respondiste antes que editara
No las descargaste, las copiaste y pegaste y por eso los errores

Esto debes descargar y no copiarlo y pegarlo como hiciste


Aca el link

Ole!! muchas gracias era eso, ahora no me funciona jajajaja pero por lo menos no da errores de compilacion

Me podeis decir si estan bien las conexiones?

lcd - arduino leonardo
TX - RX hardware
RX - TX hardware
GND - GND
VCC - VCC
RESET - PIN 8

he cargado el ejemplo que viene con la libreria lo compila y lo carga bien pero el lcd no va

Aprende algo... las cosas en computación no son mecánicas. A algo mecánico a veces le pegas un golpe y funciona esto no. Intentas 100 veces y las 100 fallarán o no?

Bueno debes buscar cual es tu error sistemático.
También yo comentí ese error.
NUNCA COPIAR Y PEGAR NADA DE LA WEB o si lo haces debes cambiar el codigo del archivo Ascii. Si no tienes un Notepad++ no se como puedes hacerlo.

En el leonardo no puedes usar el Serial, ya que se llama Serial1

Al principio del código, en el primer define, prueba esto:

 #define DisplaySerial Serial1

Si usas el serial de los pines 0 y 1, si no, puedes seguir las instrucciones que te ponen en el código de ejemplo para usar el software serial.

ok gracias va a ser lo del puerto serie del leonaro supongo

Yo trabajaba con atmel sueltos en diseños de placa propios y programados en BASCOM AVR, ahora con el cambio se me junta todo, las placas vienen predefinidas, el IDE de arduino es C y el tema de las librerias etc estoy muy pez acabo de empezar

voy a probar y os comento

hola pues nada no va, he probado a ponerlo en un puerto softwareserial con el pin 2 como RX, el pin 3 como TX y el pin 8 como RESET con este codigo y no va que hago mal??

// include 4D Systems Goldelox library for Arduino
#include <Goldelox_Const4D.h>
#include <Goldelox_Const4DSerial.h>
#include <Goldelox_Serial_4DLib.h>
#include <Goldelox_Types4D.h>

#include <SoftwareSerial.h>

//#define DisplaySerial Serial1 // define display serial port0
SoftwareSerial DisplaySerial = SoftwareSerial(2, 3);

Goldelox_Serial_4DLib Display(&DisplaySerial); // declare this serial port

void setup(void)
{
//Reset the display, assuming Display is connected to Arduino via 4D Arduino Adaptor Shield
pinMode(2, INPUT); //rx
pinMode(3, OUTPUT); // tx
pinMode(8, OUTPUT); // D2 on Arduino resets the Display
digitalWrite(8, HIGH); // Reset Display
delay(100); // 100ms Reset pulse
digitalWrite(8, LOW); // Disable Reset

delay(3000); // Allow time for the display to initialize before communicating
Display.TimeLimit4D = 5000 ; // 5 second timeout on all commands
DisplaySerial.begin(9600) ; // initialize serial port and set Baud Rate to 9,600
Display.gfx_Cls() ; // clear display
//
// Below this comment is the first string to be serially sent to the display.
//
Display.putstr("Hello World\n\n") ; // send "Hello World" string to display
delay(1000); // Allow time for the display to initialize before communicating
//
// Below this comment is the second string to be serially sent to the display. Note the double spacing
// to provide clarity in the presentation.
//
Display.putstr("Serial Display test\n\n\n") ; //send second string to display
delay(1000); // Allow time for the display to initialize before communicating
//
// Below this comment is the third string to be serially sent to the display. Again for clarity
// in presentation, tripple spacing has been placed and used. Furthermore, this text
// string introduces to the user some font and text-formatting capabilities available. There are six(6)
// statements before the Display.putstr statement which instructs the Arduino to do this. You can
// edit the text string to show the display model you have. Autodetecting the display model is
// not covered by this application note.
//
Display.txt_Attributes(BOLD + INVERSE + ITALIC + UNDERLINED) ; // change and set new text format
Display.txt_Xgap(3) ;
Display.txt_Ygap(3) ;
Display.txt_BGcolour(RED) ;
Display.txt_FGcolour(WHITE) ;
Display.txt_MoveCursor(5, 0) ; // use this cursor position
Display.putstr("uOLED-160-G2 SPE + Arduino\n") ; //send third string to display
delay(1000); // Allow time for the display to initialize before communicating

}

void loop(void)
{
// do nothing here
}

Esto sobra:

 pinMode(2, INPUT); //rx
  pinMode(3, OUTPUT); // tx

Sigue sin ir, uffffffff, segun he visto en la pagina mi modelo de lcd es antiguo le he tenido que actualizar el firmware para que se entendiera con la libreria un archivo tipo "PmmC".
Bien cojo el convertidor serie del pc me instalo el software del fabricante conecto el lcd y le actualizo el PmmC, hasta ahi bien. Por cierto ahora al arrancar el lcd sale otra pantalla distinta a la de antes, efectivamente se ha actualizado a la version 2.5

Vuelvo a arduino... nada de nada no funciona, ni con el serie de hardware ni el serie software... no se si tengo mal puesto el pin del RESSET del lcd lo tengo puesto en el pin 8 del Arduino Leonardo, no se si la libreria lo contempla ahi...

POR FIN!!!!!!!!!!!!!!!!

Dios mio lo he conseguido

Bien por partes:

1º - tenia las librerias mal en html y daba error de compilacion, muchas gracias compis

2º - arduino leonardo efectivamente el serial por hardware se llama serial1, el leonardo es distinto del UNO u otros en eso, otra vez gracias compis

3º - Yo tenia el "uLCD 144" de 4Dsystem comprado de hace 3 años o asi... por tanto resulta que han cambiado el firmware y las librerias de este modelo que actualmente se llama "uLCD 144 G2", por tanto yo probe mi modelo antiguo con las librerias antiguas pero no funciona con los IDEs actuales de arduino.

Solucion he tenido que bajar las librerias nuevas llamadas "Goldelox_Serial_4DLib" de la web de 4Dsystem

la pantalla antigua no funciona con esas librerias por tanto hay que actualizar el firmware de la pantalla:

a) Necesitas un adaptador USB-SERIE, instalas los drivers y busca el numero de puerto COM que le ha asignado windows (hara falta despues), conectas el ulcd144 al conversor asi:

uLCD144 USB-SERIE

GND - GND
VIN - 5V
TX - RX
RX - TX
RESET - DTR

b) Te descargas y te instalas el programa "WorkShop4" de la web de 4Dsystem
http://www.4dsystems.com.au/product/4D_Workshop_4_IDE/

c) Te descargas el fichero "uLCD-144-G2-R25.PmmC" de la pagina del producto de la web 4Dsystem
http://www.4dsystems.com.au/product/uLCD_144_G2/
esta por abajo pone PmmC

d) Arrancas el Workshop, le das a NEW, eliges el modelo de pantalla uLCD-144, le das a NEXT, elijes el SERIAL, y ahora arriba hay unas pestañas elije la de TOOLS, pincha en PmmC LOADER, se te abrira una utilidad para actualizar el PmmC, ponlo en modo manual, elije el puerto serie COM que corresponda a tu adaptador usb-serie, donde pone "PmmC to load" pinchas en los puntitos y buscas el lugar donde guardaste previamente el archivo PmmC que te descargaste, y ya solo le das al boton load y esperas que termine, cuando termine cierras la ventana y vuelves al workshop4, y ahora falta cargar el "SPE", el la misma pestaña TOOLS del WorkShop4 veras que hay un boton que pone "SPE load" pues le das y te pregunta por que dice que no coincide la version, yo le di igualmente (nota: si no actualizas el SPE no funciona).

e) En el Workshop pestaña TOOLS hay una herramienta llamada "Serial Comander" se te abre, configuras el puerto com correspondiente al usb-serie, baudrate 9600, y puedes probar a mandar comandos de ejemplo, nota teneis que mandar el comando "Gfx_Cls" de la pestaña Gfx tras cada comando o no funcionara por lo menos con el fondo de pantalla

Perdonad si no pongo bien los links, solo intento dejar constancia de como solucionar un problema que a mi me ha traido de cabeza y que al fin se ha solucionado.

creo que ya estan los links

uargo, visto que eres un electrónico que llegó para participar, por favor intenta usar tags para códigos, enlaces e imágnes.
lee las normas del foro y ahi verás como se usan los tags que tienes en el editor con el que respondes los mensajes.
El eslabon es para enlaces, previo esta el de imagenes y junto al icono de comentario esta el de código.