Anleitung: Marlin 2.x selbst kompilieren

  • Folgendes Szenario: Flsun Q5 Umbau auf skr 1.4

    Auf dem SKR 1.3 gibt es Z_Min und Z_Max Anschlüsse, dort habe ich auf Z_MIN den Probe angeschlossen, die es aber auf dem SKR 1.4 nicht mehr gibt.

    Folgender Lösungsansatz:


    //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN auskommentiert




    #define Z_MIN_PROBE_PIN P1_25 einkommentiert und den Z_MIN auf Pin 1_25 gelegt


    In der Pins.h den PIN 1_25 als Z_MIN_PROBE_PIN definiert


    Lässt sich einwandfrei ohne Fehler kompilieren, aber funktioniert das auch so ? Kann es leider nicht testen da das Board noch nicht da ist.


    Oder ist das alles Murks was ich da gemacht habe ?

  • Quote

    Zitat von Kowalski am 26.01.2022, 17:27 Uhr


    gibt es noch eine anderes programm, mit dem man marlin 2.x bearbeiten kann?


    Bearbeiten kann man die Dateien mit jedem Texteditor, aber man braucht zum Schluss einen Kompiler, ein Programm, das den Quellcode in eine Binärdatei umsetzt. Man kann statt Visual Studio Code auch die Arduino IDE benutzen.

  • Sollte gehen, aber es wird VIEL komplizierter, da die Arduino IDE nicht die benötigten Pakete und Bibliotheken automatisch runterlädt. Die musst du für alle Funktionen händisch zusammensuchen und manuell installieren.

    Es gibt absolut keinen Grund, nicht VSC/PlatformIO zu benutzen.

  • in den videos, die ich gesehen habe sieht es tatsächlich einfach aus. bei mir funktioniert es aber nicht.



    anscheinend war ich zu ungeduldig. ich muss ewig warten, bis platformio alles geladen hat. hab ich übersehen.

    immerhin konnte ich jetzt schon mal das board und den prozessor wechseln und eine bin datei erstellen. die anderen einstellungen muss ich mir noch anschauen.

  • Hallo an alle,


    folgendes Szenario bei mir:


    Drucker: Creality Ender 6 mit BLTouch

    Mainboard: BTT SKR E3 Mini V3.0.1

    Display: BTT TFT 35 V3 nicht das mit E3, also Drehknopf rechts nicht unten!


    Diese Konfiguration läuft auch mit den vorinstallierten Firmwares auf Board und Display, allerdings meldet das Display das es ein Ender 3 sei. :huh:


    Leider gibt es für diese Konfiguration keine vorgefertigte Firmware. ;(


    Nun versuche ich mir als absoluter Firmware Neuling eine passende Marlin Firmware für den Ender 6 zu basteln, bin aber von den massiven Einstellungen schier erschlagen. Habe nach dieser Anleitung die Configuration.h und Configuration_adv.h für den Ender 6 geladen, aber wie bekomme ich nun die Configuration.h etc. für das SKR E3 Mini V3.0.1 Board und das SKR TFT 35 V3 da rein?


    2. Problem:

    Nach dem Start von VSCode und dem einladen der Configuration.h bekomme ich sofort eine Fehlermeldung in Zeile 1 Pos.1, VSCode mag " /** " nicht, bei Configuration_adv.h das gleiche?

    Somit kann ich nicht kompilieren, der Haken unten links fehlt.


    Was mache ich falsch und wie bekomme ich das hin?


    Schonmal vorab vielen Dank für die Unterstützung und Hilfe


    Viele Grüße

    Carsten

  • Hi,


    als Grundlage würde ich da vom Ender 3 die Konfiguration mit dem SKR Board nehmen:

    Marlin-2.1.1\config\examples\Creality\Ender-3\BigTreeTech SKR Mini E3 3.0


    Die Konfiguration ist hauptsächlich abhängig vom Board.

    Du musst hier die Bettgröße noch anpassen und den BLTouch aktivieren, eventuell die Offsets vom BLTouch anpassen.

    Natürlich kannst dann auch den Druckernamen ändern ;)


    zu 2.:

    Bitte poste mal die Fehlermeldung, am Besten alle.

    Dann lade mal den Projektordner in VSCode (der Ordner in dem die plattformio drinnen liegt).

    Ist die Extension Auto Build Marlin installiert?


    *Edit

    ich habe die confguration.h Grundlage Ender3 mit SKR Board mal angepasst, die configuration_adv kannst so lassen.

    Änderungen:

    Code
    #define CUSTOM_MACHINE_NAME "Ender-6"
    
    #define BLTOUCH
    
    #define X_BED_SIZE 260
    #define Y_BED_SIZE 260
    #define Z_MAX_POS 400
    
    #define NOZZLE_TO_PROBE_OFFSET { -20.7, -7, -2.5 }

    Das Nozzle_TO_PROBE_OFFSET bitte überprüfen! Ist aud der Ender6 config.

  • Hallo alexH,


    vielen Dank für Deine schnelle Hilfe. :)


    Ja Auto Build Marlin ist installiert.

    PlatformIO ist ebenfalls installiert, das installiert aber automatisch irgendetwas mit C/C++ nach, dies meldet dann die Fehler. Habe VSCode komplett de- und neu-installiert und auch immer wieder versucht diese C/C++ Komponente zu deinstallieren, das geht aber erst wenn ich Auto Build Marlin und platformIO deinstalliere.


    Ich habe in Marlin 2.1.1 die \config\examples\Ender-6 ausgewählt, innerhalb der Configuration.h habe ich bei #define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V3_0_1 angegeben. Ich dachte das reicht so. Naja egal, fange ich halt von vorne an.

    BLTouch hatte ich aktiviert und gezielt nach BLTouch gesucht und alles geprüft ggf. angepasst wo ich das gefunden habe. Wo bekomme ich die Offsets dafür her?


    Die Änderung des Druckernamens hab ich auch gefunden.


    Wie gesagt, ich bin absoluter Anfänger was Firmware Erstellung betrifft.


    Hab jetzt so viel in VSCode rumgeklickt und wahrscheinlich verstellt das im Moment keine Fehler angezeigt werden, aber der Haken unten links zum kompilieren ist nicht wieder aufgetaucht.


    So nach öffnen des PlatformIO Ordners ist der Ausführen haken wieder da, aber Es gibt weiterhin Fehler und jede Menge Warnings:


    Fehler:

    arm-none-eabi-g++.exe: error: buildroot/share/PlatformIO/scripts/common-dependencies.h: No such file or directory

    arm-none-eabi-g++.exe: fatal error: no input files

    =============================================================================== [FAILED] Took 2.66 seconds ===============================================================================


    Environment Status Duration

    --------------- -------- ------------

    STM32F401RC_btt FAILED 00:00:02.663

    ========================================================================= 1 failed, 0 succeeded in 00:00:02.663 =========================================================================


    * Der Terminalprozess "C:\Users\cmein\.platformio\penv\Scripts\platformio.exe 'run'" wurde mit folgendem Exitcode beendet: 1.

    * Das Terminal wird von Aufgaben wiederverwendet, drücken Sie zum Schließen eine beliebige Taste.


    Ich hoffe Du kannst damit was anfangen, ich leider nicht. :(

  • Hi,


    es wird eine Datei nicht gefunden, im Marlin Ordner mal dorthin gehen:

    ...\Marlin-2.1.1\Marlin-2.1.1\buildroot\share\PlatformIO\scripts

    dort sollte die common-dependencies.h liegen.


    Wenn nicht bitte das Marlin Repo nochmal herunterladen.

    Versuche doch bitte als erstes eine unveränderte Beispielkonfiguration zu kompilieren.


    Das Offset kann man messen ;) Abstand Spitze BlTouch zu Düse. Miss einfach mal grob ob das mit "meinen" Werten hinkommt.


    Ansonsten schau dir mal meine geänderte Config an, da sollte alles drin sein.

    Einfach das Board zu ändern ist gefährlich, da z.B. die Endstops anders konfiguriert sein können.


    Grüße

  • Die Fehler

    arm-none-eabi-g++.exe: error: buildroot/share/PlatformIO/scripts/common-dependencies.h: No such file or directory

    und

    arm-none-eabi-g++.exe: fatal error: no input files


    hab ich hinbekommen, hab das Verzeichnis buildroot/share/PlatformIO/scripts/common-dependencies.h in mein Arbeitsverzeichnis kopiert.


    Dafür hab ich jetzt 2 andere Fehler: :(


    buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../../Configuration.h:558:26: error: missing binary operator before token "("

    558 | #if TEMP_SENSOR_IS_MAX_TC(0)

    | ^

    buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../../Configuration.h:562:26: error: missing binary operator before token "("

    562 | #if TEMP_SENSOR_IS_MAX_TC(1)

    |


    An der Einstellung hab ich aber gar nicht rumgefummelt, das ist so wie es war/ist.

    Für mein Programmierungsverständnis fehlt da ein #define TEMP_SENSOR_IS_MAX_TC, aber ich kann mich natürlich auch irren.

  • Bitte lade dir nochmal das Marlin Repo herunter und nimm die Config Files aus dem Examples Ordner als Vorlage.

    GitHub - MarlinFirmware/Marlin: Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. | Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
    Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. | Many commercial 3D printers come with Marlin installed. Check with your…
    github.com


    Und kompilier ein Example um zu sehen ob das im Urzustand funktioniert.


    Grüße

  • Sorry, ich muss jetzt weg, bin übers Wochenende nicht da.

    Werde Sonntagabend spätestens am Montag wieder reinschauen, Notfalls versuche ich das erstmal mit dem erneuten herunterladen der Repo und eine unveränderte Beispielkonfiguration zu kompilieren, um sicherzustellen das VSCode sauber und Problemlos funktioniert.


    Vielen herzlichen Dank erstmal.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Unread Threads

    1. Title
    2. Replies
    3. Last Reply
    1. Hintereinander Drucken oder Pause machen? 1

      • EmmaLee
    2. Replies
      1
      Views
      23
      1
    3. 3D-Designer

    1. V0.2 ist raus 25

      • top_gun_de
    2. Replies
      25
      Views
      918
      25
    3. felixna

    1. Betthaftung zu gut 1

      • adet
    2. Replies
      1
      Views
      17
      1
    3. 3D-Designer

    1. SV06 1.7k

      • Guden79
    2. Replies
      1.7k
      Views
      75k
      1.7k
    3. DIYLAB

    1. Suche: Ender 3 Bettschlitten und Rollen 1

      • Druckt nicht
    2. Replies
      1
      Views
      46
      1
    3. Uwe