olikraus / u8g2

U8glib library for monochrome displays, version 2
Other
4.98k stars 1.04k forks source link

Noritake GU256X32D-3900B Help #1974

Open chicho70 opened 1 year ago

chicho70 commented 1 year ago

Hi, Do you have any code for this Noritake GU256X32D-3900B display for Arduino (ESP32) ?. This display has 2 interfaces: RS232 and CMOS parallel. The code for both will be better, although for RS232 will be enough. Thanks and best regards.

GU256X32D-1

GU256X32D-2

olikraus commented 1 year ago

Do you have any code for this Noritake GU256X32D-3900B display for Arduino (ESP32) ?.

I don't think so...

chicho70 commented 1 year ago

Regards.

chicho70 commented 1 year ago

Dear Oliver, when you have time, please, if you can, take a look at this display. I have tried to adapt the original Noritake library developed for AVR to ESP32 but it was impossible for me. The original library is supported by these three files:

include <util/delay_basic.h>

include <util/delay.h>

include <avr/pgmspace.h>

I leave you the original library in case it helps you for this display (GU256X32D-3900B).

It is possible that one of the constructors in your u8g2 project can fit this display.

I also send you the PDF file of the display information.

This Noritake display, model GU256X32D-3900B, was installed on a GPS Symmetricom MODEL XLi TIME & FREQUENCY SYSTEM and with the GU160X16 I want to make a small weather station using the Sensirion SCD41 sensor.

Once again, thank you very much.

Arduino_Noritake_VFD_GU7000_V2.zip Arduino_Noritake_VFD_GUD900.zip GU256X32 PDFs Info.zip

olikraus commented 1 year ago

The implementation for the GU800 had been very difficult: https://github.com/olikraus/u8g2/issues/1604

So I actually hesitate to do this again. If you would use one the existing GU800 constructor with the above mentioned displays, will you see something?

chicho70 commented 1 year ago

Hi Oliver, I really appreciate the effort you've put into developing the code for the GU800. The GU800's screen phosphor is worn and has less resolution than the GU256X32. Thank you so much for everything.

olikraus commented 1 year ago

What will you see on the GU256x32 if you use the U8G2_GU800_128X64 constructor? Obviously the result can not be correct, but still, what will be visible?

chicho70 commented 1 year ago

Dear Oliver, In your last release i can see only these U8G2 contructors for GU800, all of them for SPI interface.

The GU256X32D has two interfaces: Serial interface (Asynchronous, RS-232 -level) and Parallel interface (CMOS), so i can´t check U8G2_GU800_128X64 constructor for it.

U8G2_GU800_128X64_F_4W_SW_SPI u8g2(U8G2_R0, / clock=/ 13, / data=/ 11, / cs=/ 10, / dc=/ 9, / reset=/ 8); U8G2_GU800_128X64_F_4W_HW_SPI u8g2(U8G2_R0, / cs=/ 10, / dc=/ 9, / reset=/ 8); U8G2_GU800_160X16_F_4W_SW_SPI u8g2(U8G2_R0, / clock=/ 13, / data=/ 11, / cs=/ 10, / dc=/ 9, / reset=/ 8); U8G2_GU800_160X16_F_4W_HW_SPI u8g2(U8G2_R0, / cs=/ 10, / dc=/ 9, / reset=/ 8);

Best regards. Muchas gracias.

chicho70 commented 1 year ago

Sorry, I realised that in your U8g2lib.h file i´ve found these constructors:

U8G2_GU800_128X64_F_6800(const u8g2_cb_t *rotation, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE)

U8G2_GU800_128X64_F_8080(const u8g2_cb_t *rotation, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE)

U8G2_GU800_160X16_F_6800(const u8g2_cb_t *rotation, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE)

U8G2_GU800_160X16_F_8080(const u8g2_cb_t *rotation, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE)

According datasheet, G256X32D display use D0~D7 and /WR signals.

In my case, which signal should i use?, only ENABLE signal to WRITE ?

PIC1

PIC2

chicho70 commented 1 year ago

Dear Oliver, I´ve tried with these constructors and same bad results:

U8G2_GU800_160X16_F_6800 u8g2(U8G2_R0, /d0/4, /d1/16, /d2/17, /d3/18, /d4/19, /d5/21, /d6/22, /d7/23, /ENABLE-WRITE/13, /CS-CSS: al aire N/C/26, /DC-C/D: al aire N/C/27);

U8G2_GU800_160X16_F_8080 u8g2(U8G2_R0, /d0/4, /d1/16, /d2/17, /d3/18, /d4/19, /d5/21, /d6/22, /d7/23, /ENABLE-WRITE/13, /CS-CSS: al aire N/C/26, /DC-C/D: al aire N/C/27);

U8G2_GU800_128X64_F_6800 u8g2(U8G2_R0, /d0/4, /d1/16, /d2/17, /d3/18, /d4/19, /d5/21, /d6/22, /d7/23, /ENABLE-WRITE/13, /CS-CSS: al aire N/C/26, /DC-C/D: al aire N/C/27);

U8G2_GU800_128X64_F_8080 u8g2(U8G2_R0, /d0/4, /d1/16, /d2/17, /d3/18, /d4/19, /d5/21, /d6/22, /d7/23, /ENABLE-WRITE/13, /CS-CSS: al aire N/C/26, /DC-C/D: al aire N/C/27);

// End of constructor list

void setup(void) { u8g2.begin(); u8g2.setContrast(0); }

void loop(void) { u8g2.clearBuffer(); // clear the internal memory u8g2.setFont(u8g2_font_8bitclassic_te); // bonita u8g2.drawStr(0,12,"Hello World 12378094581"); // write something to the internal memory
u8g2.sendBuffer(); // transfer internal memory to the display delay(5000);
}

IMG_8617

Conexión ESP32 DEVKIT M68-68000 con Noritake GU256X32D-3900B

I can help you in anything.

Regards.

olikraus commented 1 year ago

To me it looks like your display is a character display. I probably can not do anything here...

chicho70 commented 1 year ago

Maybe, I'll read the documentation in case I can do something. I appreciate all the effort you have put into both GU160X16 and this one. Thank you very much Oliver.