Seite 1 von 1

RF 100 Bed Leveling schreiben

Verfasst: Mo 26. Jun 2017, 19:31
von Danny
Hallo allerseits,

ich würde gerne in meiner eigenen Firmware die Level Bed Funktion der original Firmware einpflegen. Leider bekomme ich es aber ohne Hilfe nicht hin. :dry:

Ich habe darum die originale Firmware mal aufgespielt und das Bed Leveling beobachtet.

Das Menü sieht ja folgendermaßen aus:

Prepare -> Level bed -> First point/Second point/Third point

Wählt man nun "First point", macht der RF100 zuerst ein homing, fährt die Z-Achse etwa 15mm runter, fährt auf die Position X40 Y100 und fährt die Z-Achse wieder hoch.
Wählt man "Second point", fährt die Z-Achse 15mm runter, die Position X10 Y20 wird angefahren und die Z geht wieder hoch.
Wählt man "Third point", fährt die Z-Achse 15mm runter, die Position X90 Y20 wird angefahren und die Z geht wieder hoch.

Wartet man zu lange, kommt bei allen Menüpunkten irgendwann wieder der infoscreen. Bei "First point" wird IMMER ein Homing gemacht. Bei second und third point nicht.

Ich bekomme es aber nicht dass genau so in meine Firmware zu pflanzen....

Ich habe schon Manual_bed_leveling aktiviert, mesh dabei deaktiviert da ja sonst 9 Punkte angefahren werden, zudem habe ich Auto_bed_leveling aktiviert und dabei dieses 3-point leveling mit den Koordinaten versehen, die der RF100 von Werk anfährt. Es will einfach nicht klappen. Das einzige was ich hinbekommen habe, ist das Menü so zu schreiben dass mir das Level Bed angezeigt wird und diese Menüpunkte "First point", "Second point" und "Third point". Wenn ich per gcode die Koordinaten in der ultralcd.cpp dahinter packe fährt er auch brav die Punkte an aber es fehlt das vorherige absenken der Z um 15mm. :silly:

Von daher hätte ich die Frage, was muss ich wo genau überall umändern, dass sich der Drucker genauso wie oben beschrieben verhält?

Ich bin für jeden Tipp dankbar oder vielleicht kann mir das jemand so schreiben? Es geht dabei um die Marlin 1.0 Version.

Wenn ich das alles erstmal auf dieser Version zum laufen bekommen habe, schreibe ich es auf 1.1.3 um.

Re: RF 100 Bed Leveling schreiben

Verfasst: Di 4. Jul 2017, 18:49
von Danny
Nach laaaangem Suchen glaube ich, dass ich es hinbekommen habe. Zugegeben zwar sehr sehr plump und spartanisch aber das Bed Leveling funktioniert wieder so, bzw. so in etwa wie von Werk.

Ich habe dazu einfach in der ultralcd.cpp folgende Zeilen eingefügt:

static void lcd_level_bed() {
START_MENU();
MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
MENU_ITEM(gcode, MSG_FIRST_POINT, PSTR("G28\nG0 Z15 F600\nG0 X40 Y100 F1600\nG0 Z0 F300"));
MENU_ITEM(gcode, MSG_SECOND_POINT, PSTR("G0 Z15 F600\nG0 X10 Y20 F2000\nG0 Z0 F300"));
MENU_ITEM(gcode, MSG_THIRD_POINT, PSTR("G0 Z15 F600\nG0 X90 Y20 F1900\nG0 Z0 F300"));
END_MENU();
}

Ich kann mir jedoch nicht wirklich vorstellen dass die Entwickler die die Firmware für den RF100 geschrieben haben, es sich so einfach gemacht haben....

Natürlich muss MSG_FIRST_POINT, MSG_SECOND_POINT und MSG_THIRD_POINT noch in der language.h, language_en.h und -wie in meinem Fall- language_de.h definiert werden.