Integration of RADDS2LCD

Hi,

would you kindly add support for the RADDS2LCD Display Adapter as seen on https://www.thingiverse.com/thing:1740725

Just like a sparklcd-adapter, could this integrated into the firmware configurator.

I think the RADDS2LCD would gain massivly popularity if it is supported OOB by firmware.

Thanks
«1

Comments

  • SOund like I just need to add it as GLCD/LCD pins. Will do soon.
  • Yeah, that would be great.
  • edited July 2018
    i think it is not only the GLCD/LCD Pin, but i hope you will implement this.

    Overview

    This file describes the changes getting Due + Radds-Board + Full Graphics Smart Controller working on Repetier-Firmware DEV-version.

    Also an option for character displays LCD16x2 / LCD20x4 is there - but untested...

    Repetier.h

    at end of block beginning with
    #define NO_CONTROLLER 0

    add these lines:
    #define CONTROLLER_RADDS_LCD_16X2 997
    #define CONTROLLER_RADDS_LCD_20X4 998
    #define CONTROLLER_RADDS_FGSC 999

    Configuration.h

    replace this: 
    #define FEATURE_CONTROLLER ...

    by this:
    /*
        which display ???
        - full graphics smart controller is tested!
        - row / column display is NOT TESTED - use with own testing ;)
    */
    //#define FEATURE_CONTROLLER CONTROLLER_RADDS_LCD_16X2    // RADDS2LCD -> LCD with 16 columns and 2 rows
    //#define FEATURE_CONTROLLER CONTROLLER_RADDS_LCD_20X4    // RADDS2LCD -> LCD with 20 columns and 4 rows
    #define FEATURE_CONTROLLER CONTROLLER_RADDS_FGSC          // RADDS2LCD -> Full Graphics Smart Controller
        

    ui.h

    after these lines
    #if  FEATURE_CONTROLLER == CONTROLLER_RAMBO
    ...
    #endif

    add these lines
    // RADDS + RADDS2LCD + Full Graphics Smart Controller / other 4-bit LCD

    #if (FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC || FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_16X2 || FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_20X4)
      #undef SDCARDDETECT
      #define SDCARDDETECT 14
      #undef SDSUPPORT
      #define SDSUPPORT 1
    #endif // FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC

    DisplayList.h

    before or after these lines:
    #if FEATURE_CONTROLLER == CONTROLLER_RADDS
    #undef SDSS
    ...
    void uiCheckSlowKeys(uint16_t &action) {}
    #endif

    add these lines
    #if (FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC || FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_16X2 || FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_20X4)
      #undef SDSS
      #define SDSS            10
      #undef SPI_PIN
      #define SPI_PIN         77
      #undef SPI_CHAN
      #define SPI_CHAN        0
      #define UI_HAS_KEYS     1

      #define UI_HAS_BACK_KEY 0
     
      // decide which lcd is used
      #if (FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC)
        #define UI_DISPLAY_TYPE DISPLAY_U8G
        #define U8GLIB_ST7920
        #define UI_LCD_WIDTH 128
        #define UI_LCD_HEIGHT 64
       
        //select font size
        #define UI_FONT_6X10 //default font
        #ifdef UI_FONT_6X10
          #define UI_FONT_WIDTH 6
          #define UI_FONT_HEIGHT 10
          #define UI_FONT_SMALL_HEIGHT 7
          #define UI_FONT_DEFAULT repetier_6x10
          #define UI_FONT_SMALL repetier_5x7
          #define UI_FONT_SMALL_WIDTH 5 //smaller font for status display
          #define UI_ANIMATION false  // Animations are too slow
        #endif
     
        //calculate rows and cols available with current font
        #define UI_COLS (UI_LCD_WIDTH/UI_FONT_WIDTH)
        #define UI_ROWS (UI_LCD_HEIGHT/UI_FONT_HEIGHT)
        #define UI_DISPLAY_CHARSET 3
       
      #elif (FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_16X2)
        #define UI_DISPLAY_TYPE DISPLAY_4BIT
        #define UI_COLS 16
        #define UI_ROWS 2   
           
      #else (FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_20X4)
        #define UI_DISPLAY_TYPE DISPLAY_4BIT
        #define UI_COLS 20
        #define UI_ROWS 4   
      #endif
     
      #define UI_DISPLAY_CHARSET 3
     
      #define BEEPER_TYPE 1
      #undef BEEPER_PIN
      #define BEEPER_PIN             41
      #define UI_DISPLAY_RS_PIN      42
      #define UI_DISPLAY_RW_PIN      -1
      #define UI_DISPLAY_ENABLE_PIN  43
      #define UI_DISPLAY_D0_PIN      44
      #define UI_DISPLAY_D1_PIN      45
      #define UI_DISPLAY_D2_PIN      46
      #define UI_DISPLAY_D3_PIN      47
      #define UI_DISPLAY_D4_PIN      44
      #define UI_DISPLAY_D5_PIN      45
      #define UI_DISPLAY_D6_PIN      46
      #define UI_DISPLAY_D7_PIN      47

      // swap these two numbers to invert rotary encoder scroll direction
      #define UI_ENCODER_A           50
      #define UI_ENCODER_B           52

      #define UI_ENCODER_CLICK       48
      #define UI_RESET_PIN           -1
      #define UI_DELAYPERCHAR 50
      #define UI_INVERT_MENU_DIRECTION 0
      #define UI_BUTTON_BACK         71 // -1
     
      #ifdef UI_MAIN
        void uiInitKeys() {
          UI_KEYS_INIT_CLICKENCODER_LOW(UI_ENCODER_A, UI_ENCODER_B); // click encoder on pins 47 and 45. Phase is connected with gnd for signals.
          UI_KEYS_INIT_BUTTON_LOW(UI_ENCODER_CLICK); // push button, connects gnd to pin
          UI_KEYS_INIT_BUTTON_LOW(UI_BUTTON_BACK);
        }
        void uiCheckKeys(uint16_t &action) {
          UI_KEYS_CLICKENCODER_LOW(UI_ENCODER_A, UI_ENCODER_B); // click encoder on pins 47 and 45. Phase is connected with gnd for signals.
          UI_KEYS_BUTTON_LOW(UI_ENCODER_CLICK, UI_ACTION_OK); // push button, connects gnd to pin
          UI_KEYS_BUTTON_LOW(UI_BUTTON_BACK, UI_ACTION_BACK);
        }
        inline void uiCheckSlowEncoder() {}
        void uiCheckSlowKeys(uint16_t &action) {}
      #endif
    #endif // controller RADDS2LCD
       


  • @Repetier Did you had time to integrate it?
  • Ok have just added it in modified version. You simply select RepRapDiscount graphic or char controller and it uses the pinout from the description. Hope it works.
  • Thanks. I‘m going to test it and gibe you feedback.
  • edited November 2018
    Hey,
    Jedesmal wenn ich versuche Repetier 1.0.3 mit dem oben genannten Code zu Kompillieren bekomme ich die Fehlermeldung:

    exit status 1
    Fehler beim Kompilieren für das Board Arduino Due (Programming Port).

    Die Firmware ist mit dem Configtool erstellt und als Display ist das GLCD gewählt.
    Bevor ich den Code integriere funktioniert das Kompilieren

    Es gibt ja auch einen Code für die 0.92 damit funktioniert es einwandfrei.
    Ich habe keine Ehrfahrung mit Arduino oder änliche Programme.
    Was mache ich falsch.
    Ich hoffe ihr könnt helfen.

    English kann ich auch nicht besonderst gut daher alles in Deutsch

    Gruß Andreas

  • Deutsch ist kein Problem. Hast du die dev version benutzt wo es bereits eingebaut ist? Wenn ja welche fehlermeldung bekommst du beim compilieren. Wenn nein, bitte 1.0.4dev nutzen. In 1.0.3 ist es denke ich noch nicht integriert.
  • Hey,
    danke für die schnelle Antwort.
    das Configtool sagt Version 1.0.1Dev
    Aber in der Configuration.h steht 1.0.3 Dev.

    Welche Firmware ist das jetzt?
    Und wo finde ich 1.0.4.


    Gruß Andreas
  • Hey,
    Die letzte Firmware hatte ich auf einer aus dem Netz geladenen Configuration.h aufgebaut.
    Jetzt habe ich nochmal bei null angefangen.
    Und es hat auf Anhieb funktioniert.
    Mir war erst gar nicht bewusst das ich den Code aus dem Thread nicht mehr integrieren muss.
    Ist mi nur Zufällig aufgefallen.
    Also lange Rede und so...

    Danke für deine schnelle Hilfe.
    Da Repetier neu für mich ist werde ich sie bestimmt noch öfter erbitten. :)

    Für alle anderen.
    Config.Tool= Version 1.0.1dev
    Board.TXT und AdditionalArduinoFiles in Arduino15 Ordner Kopieren
    und das wars.
    Ausführlciche Anleitung hier
     
    Auf dem 12864 FGSC wird jetzt Ver.1.0.4 angezeigt.
    Meine momentane Kabellänge vom Display ist bei beiden Kabeln 100cm.
    Endlich eine Länge mit der man etwas anfangen kann.

    Allerdings kann ich bei mir nur auf dem Nativen USB Port Hochladen.
    Liegt aber wahrscheinlich an meinem Due.

    Gruß
    Andreas
  • Den port bestimmt du mit der boardauswahl. Entsprechend wird der uploader für programming oder native port genutzt. Welche rhinterhe rfunktioniert bestimmt wiederum die Config also was du als Port eingestellt hast.
  • So wie auf dem bild geht es nicht


    Ich muss das ganze mit dem Nativen Port hochladen.
    Aber wie gesagt liegt das wohl an meinem Due.
    Vor kurzem gab es einen Funken als ich den USB Stecker im laufenden Betrieb eingestöpselt habe.
    Das liegt wohl an meinem 24V 30A Netzteil.
    Irgendetwas stimmt da nicht.
    Vor ca. 4 Wochen habe ich einen Test mit einem MKS Gen1.4 gemacht dabei ist mir das Board und mein PC durchgebrannt als ich
    im laufenden Betrieb den PC mit dem Board verbunden habe.
    Ich weiß noch nicht woher der Fehler kommt.
    Aber es ist wohl das Netzteil das ist die einzige gemeinsamkeit bei beiden Vorfällen.
    Jetzt verwende ich auch bei tests ein SSR.
    Ich hoffe da es nicht wieder passiert.
    Ich will mir nicht noch einen neuen PC kaufen müssen.
    2 Fragen hätte ich noch.
    1.
    Kann ich in Arduino einzelne Zeilen nach oben oder unten verschieben oder gibt es eine Festgelegte Reihenfolge.
    Sachen die vor allem am Anfang öfter geändert werden würde ich gerne dahin verschieben
    "EDIT THESE SETTINGS MANUALLY"
    2.
    Im Configtool unter Extra Motor Driver kann ich Stepper mit Endstop einstellen.
    Ist damit nur sowas wie der TMC2130 gemeint
    oder auch ein normaler Stepper mit Endstop.
    Ich möchte für jede meiner 3 Z-Achsen einen getrennten Stepper + Endstop verwenden.
    Repetier kann doch damit umgehen wenn ich das richtig übersetzt habe.
    Oder geht das nur im Dual Z modus
    Sorry das ich in diesem Thread danach Frage.
    Wenn das nicht Ok ist mache ich ein neues Thema auf.

    Gruß Andreas



  • 1. Bedingt. Nur die #include anweisungen sollte man nicht überschreiten, weil da extra code eingefügt wird. Ansonsten gibt es denke ich keine abhängigkeiten. Aber es sollte klar sein das dass Config Tool dann nicht die neuen Werte kennt. Dazu müsste man immer hochladen, ändern und runterladen.

    2. Nein da geht es erst mal um ganz gewöhnliche Schrittmotoren und ganz einfache aufgaben die nur selten einen Motor bewegen müssen, z.b. Bett Kalibrieren oder Abräumen.

    Für Z ache must du z mirroring verwenden um sie unabhängig zu haben. Das geht auch für 3 motoren. Im Config tool ist das recht einfach weil er dann die extra optionen anbietet.
  • ___________________________________________________________________________________________
    Aber es sollte klar sein das dass Config Tool dann nicht die neuen Werte kennt. Dazu müsste man immer hochladen, ändern und runterladen.
    ___________________________________________________________________________________________

    Also wenn das Configtool die Configuration.h dann nicht mehr erkennt dann lasse ich es lieber.


    ___________________________________________________________________________________________
    Für Z ache must du z mirroring verwenden um sie unabhängig zu haben. Das geht auch für 3 motoren. Im Config tool ist das recht einfach weil er dann die extra optionen anbietet.
    ___________________________________________________________________________________________

    Das meinte ich.
    Ich habe jetzt den Z Motor 3x gespiegelt und Multi Endsop ausgewählt.
    Außerdem habe ich als Sockel E4+E5 (Expansionboard),  unter "Extra Motor Driver" 2x Stepper mit Endstop und die pasenden Pins von dem Expansionboard und den jeweiligen Pin für den Endstop angegeben.
    So sollte der Drucker dann die 3 Z-Spindeln getrennt voneinader an den jeweiligen Endstops Leveln.
    Gibt es da auch Korrekturwerte wie zb. bei Marlin der M666 im Dual Z Betrieb.


    Ich kann es gerade nicht selbst Probieren da mein Netzteil jetzt beide USB-Ports vom Due zerschossen hat.
    Musste mir einen neuen Arduino Due bestellen und habe auch direkt ein neues Netzteil bestellt.
    Ich hoffe das dann Ruhe ist.


    Gruß Andreas

  • Nein eine Offset Korrektur gibt es nicht. Ehrlich gesagt gibt es eine viel bessere Lösung nämlich nur einen endstop (max endstop) or z probe als endstop. Du kannst dann das Bett physikalisch leveln. Normalerweise behält er dann die ebene so dass nur homing nötig ist, aber sobald du denkst es ist nicht richtig machst du wieder G32 und Bett ist wieder eben. Dadurch brauchst du keine software korrektur von z. Sparkcube macht das so, da solltest du auch ein super Video dazu finden können, sogar auf deutsch.
  • Hey,
    Das Mabl ist mir bekannt.
    Wie ich gelesen habe Homed der in Z Max. und fährt dann zurück um mit einem Kapazitiven oder Induktiven Sensor das Bett an 3 Punkten mechnisch zu leveln.
    Ein Video über das Sparkcube Leveln hat mich erst auf den Gedanken gebracht einen Drucker mit 3 Z-Spindeln zu bauen.
    Da mein Druckbett mit 400x450mm recht groß ist sollte das auch mal eingebaut werden.
    Ist aber nicht leicht zum laufen zu bringen so wie ich im Sparkcube Forum gelesen habe.
    Die Firmware ist auch auf Repetier 0.92 aufgebaut.

    Bevor ich das angehe will ich es erstmal mit den 3 Endstops versuchen.

    Aber Okay der Offset bei Marlin ist mit zb. Hallsensoren sowieso überflüssig.
    Und bei meinem anderen Drucker sind an den beiden Z-Spindeln 2 Feinjustierbare Mechanische Endstops.
    Den M666 Befehl brauchte ich bis jetzt noch nicht.

    Hat Repetier den Bl-Touch als Z-Probe integriert.

    Gruß Andreas


  • bl touch Funktioniert wohl wenn man alles richtig konfiguriert. Aber seine Eigenheiten führen leicht zu Problemen. Zieht man nicht schnell genug zurück geht er beispielsweise in einen Fehlermodus. 
  • edited November 2018
    Hi,

    also der Display funktionert bei mir soweit ohne etwas am Code zu ändern. 
    Sehr fein. Juhu. Danke.
    Nur die SD Karte funktioniert nicht.
    Dazu musste ich in der
    ui.h folgendes ändern:

    // RADDS + RADDS2LCD + Full Graphics Smart Controller / RRD Smartcontroller 4x20
    #if MOTHERBOARD == 402 && (FEATURE_CONTROLLER == CONTROLLER_SMARTRAMPS || FEATURE_CONTROLLER == CONTROLLER_REPRAPDISCOUNT_GLCD)
    #undef SDCARDDETECT
    #define SDCARDDETECT 14
    #undef SDSUPPORT
    #define SDSUPPORT 1
    //Das hier hinzufügen
      #undef SDSS
      #define SDSS            10
      #undef SPI_PIN
      #define SPI_PIN         77
      #undef SPI_CHAN
      #define SPI_CHAN        0
    //bis hier her #endif // FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC
  • @Rossini
    Danke für die Info.
    Ich hab schon gedacht ich hätte das 12864 FGSC zerschossen.
    Probiere ich nachher direkt mal aus.
    E
    @Repetier
    Mal sehen wie das mit den 3 Endstops läuft ansonsten werde ich mein Glück mit dem Bl touch mal versuchen.
    Ich muss dann sowieso erstmal die servopins am Radds anlöten.

    Gruß Andreas 
  • In einem anderen thread hat hier kürzlich jemand ein Video gepostet als tutorial für BL touch setup.
  • Repetier said:
    In einem anderen thread hat hier kürzlich jemand ein Video gepostet als tutorial für BL touch setup.
    Hast du vielleicht den Link dafür?

    Gruß Andreas
  • Nein müsste ich auch suchen. such nach bltouch und nimm die neuesten threads.
  • Hey,
    ich habe das mit deinen Änderungen für die SD Karte mal Probiert.
    Bringt bei mir aber keine Veränderung.
    SD Karte einlegen und auswerfen wird erkannt.
    Nach dem einlegen braucht es auch einen Moment bis das Display wieder Reagiert.
    Also liest es oder es versucht zumindestens die Karte zu lesen.
    Nach der Änderung sieht meine Ui.h so aus:

    Ist das so richtig und oder muss ich außer in der Ui.h noch woanderst etwas ändern.

    Gruß Andreas
  • According the board description that looks good.
  • Hey,
    ich bekomme in Arduino diese Fehlermeldung.


    Wo liegt nur der Fehler?
    Gruß Andreas
  • Wenn ich das wüste:-) SD Karte ist leider oft problematisch und kann viele Fehlerursachen haben. Manche sd karten gehen einfach nicht, schlechte kabelverbindung, Übertragungsrate zu hoch, elektrische Störungen und falsche Konfiguration sind die, die mir so direkt einfallen.

    Wäre gut wenn jemand anders sagen würde on meine Implementierung grundsätzlich funktioniert, damit man die Konfiguration ausschließen kann. Mit dem Wechsel auf Deutsch sind aber vermutlich viele nicht mehr am lesen.
  • Ja,
    Bei English müsste ich auch aussteigen.
    Das ganze Copy & Paste zu Babbelfish bringt nicht wirklich was :)

    Vielleicht kommt ja noch wer.
    Gruß Andreas
  • Also wie gesagt, bei mir funktioniert es. Kann sein, dass ich vielleicht noch wo anders Änderungen gemacht habe, die ich jetzt übersehen habe, musste auch etwas Herumprobieren. 
    Ich werd nochmal nachsehen, was ich alles ändern muss, dass ich die SD Karte verwenden kann.
  • Das wäre Prima,
    Danke
  • Hey,
    hattest du Zeit dir die Änderungen nochmal anzusehen.
    Gruß Andreas

Sign In or Register to comment.