Strange letters on display.

Hi, Bought me a DUE/RADDS +Radds display . (12 &10 pin) Installed 1.04 firmware. Display have just funny karacters that make no sense. Not because of cables. Just the wrong letters. Installed with english in meny. Anybody ??

Comments

  • Is this a 20x4 character display or 128x64 pixel?
    Sounds like it gets data wrong and result is garbish. Only english letters are supported anyway. Make sure cable is ok and does not go close to heater/motor cables which can disturb display. Also try hitting reset after first start to see if it improves when it initalizes display with power active for a while.

    In case of 128x64 pixel it can also be a wrong driver which does not match the chip.
  • Hi.
    It is the 20x4  display. Radds display in the menu. Cables ok. Can see letters but they give no meaning.
    There are 4 lines.
    After reset top line is for a brief moment "5gpgtggr 1.0.4" 
    4 line "urgntgr rggdy"  meaning "printer ready" ??
  • Looks like the display is quite slow and probably it does not get all signals before they are changed. See ui.cpp where you have this function:

    void lcdWriteByte(uint8_t c, uint8_t rs) {
    #if false && UI_DISPLAY_RW_PIN >= 0 // not really needed
    SET_INPUT(UI_DISPLAY_D4_PIN);
    SET_INPUT(UI_DISPLAY_D5_PIN);
    SET_INPUT(UI_DISPLAY_D6_PIN);
    SET_INPUT(UI_DISPLAY_D7_PIN);
    WRITE(UI_DISPLAY_RW_PIN, HIGH);
    WRITE(UI_DISPLAY_RS_PIN, LOW);
    uint8_t busy;
    do {
    WRITE(UI_DISPLAY_ENABLE_PIN, HIGH);
    DELAY1MICROSECOND;
    busy = READ(UI_DISPLAY_D7_PIN);
    WRITE(UI_DISPLAY_ENABLE_PIN, LOW);
    DELAY2MICROSECOND;

    WRITE(UI_DISPLAY_ENABLE_PIN, HIGH);
    DELAY2MICROSECOND;

    WRITE(UI_DISPLAY_ENABLE_PIN, LOW);
    DELAY2MICROSECOND;

    } while (busy);
    SET_OUTPUT(UI_DISPLAY_D4_PIN);
    SET_OUTPUT(UI_DISPLAY_D5_PIN);
    SET_OUTPUT(UI_DISPLAY_D6_PIN);
    SET_OUTPUT(UI_DISPLAY_D7_PIN);
    WRITE(UI_DISPLAY_RW_PIN, LOW);
    WRITE(UI_DISPLAY_RS_PIN, rs);

    WRITE(UI_DISPLAY_D4_PIN, c & 0x10);
    WRITE(UI_DISPLAY_D5_PIN, c & 0x20);
    WRITE(UI_DISPLAY_D6_PIN, c & 0x40);
    WRITE(UI_DISPLAY_D7_PIN, c & 0x80);
    #if FEATURE_CONTROLLER == CONTROLLER_RADDS
    HAL::delayMicroseconds(10);
    HAL::delayMicroseconds(2);
    WRITE(UI_DISPLAY_ENABLE_PIN, HIGH); // enable pulse must be >450ns
    #if FEATURE_CONTROLLER == CONTROLLER_RADDS
    HAL::delayMicroseconds(10);
    HAL::delayMicroseconds(2);
    WRITE(UI_DISPLAY_ENABLE_PIN, LOW);

    WRITE(UI_DISPLAY_D4_PIN, c & 0x01);
    WRITE(UI_DISPLAY_D5_PIN, c & 0x02);
    WRITE(UI_DISPLAY_D6_PIN, c & 0x04);
    WRITE(UI_DISPLAY_D7_PIN, c & 0x08);
    HAL::delayMicroseconds(2);
    WRITE(UI_DISPLAY_ENABLE_PIN, HIGH); // enable pulse must be >450ns
    HAL::delayMicroseconds(2);
    WRITE(UI_DISPLAY_ENABLE_PIN, LOW);
    HAL::delayMicroseconds(100);
    }

    you see for radds display there are already some longer delays (10us instead of 2us). I think you need to increase this to make it stable. My guess is that 10us is still to slow for your board while it worked on mine. It could also be an other delay that is too fast but start with the 10us delay..
  • Hi.
    I try this, have never edited anything. I am more off a hardware man. I will report back.
  • Arduino:1.8.20 Hourly Build 2022/04/25 09:33 (Windows 10), Kort"Arduino Due (Programming Port)"

    C:\Users\EJS\Desktop\Repetier-Firmware\Repetier\ui.cpp: In function 'void slideIn(uint8_t, const char*)':

    C:\Users\EJS\Desktop\Repetier-Firmware\Repetier\ui.cpp:829:17: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

         char *empty="";

                     ^

    Skissen bruker 133008 bytes (25%) av program lagrings minnet. Maks er 524288 bytes

    Det oppstod en feil under opplasting av skissen

    No device found on COM5



    Denne rapporten ville hatt mer informasjon med
    "Vis detaljert informasjon under kompilering"
    alternativet aktivert i Fil -> Innstillinger.

    Hi
    Tried a delay off 25us. not better .Now I notised 2 errors. Been there all time I think.
    If I compile again, device is found.
  • It is just a worning and can be ignored. you might dry to increase the other delays as well or double the delay lines. 
  • Hi
    Tried to double the delay on some lines. Not working. Do not know witch ones to delay..
    I belived that chosing in firmware menu should be easy ;)
  • It should be easy, but I wrote it with my hardware which worked good. The question here is if there is a bad contact, some interfetrence or if it for some reasons needs longer delay. Before you I had no complaints that it did not work with RADDS_DISPLAY. Your image shows that it is in principle configured for 4bit interface on display. There are also some other function for communication but for that display I think this is used which also reads busy to wait for display to finish setting it. No real idea what is wrong when timings are not enough. Maybe cable gets some interference from other electronic. You can tru without main power then interference lever is quite low.
  • Hi
    My bad. 
    Worked with 10 cm long cables. Have just tried the RADDS + display on the desk. Not in a printer. Thr funny letters was with 50 cm cables, Worked also with 12 pin 10 cm and 10 pin 50 cm. Not with 12 pin 50 cm, 12 pin had continuity on all pins. OK,  continuie trying.
Sign In or Register to comment.