Cool
Ok, etwas weiter
unten bei dem fettgedruckten Text ist evtl. schon die Lösung, aber dennoch:
Mal schnell die betreffenden Stellen raussortiert:
Dass es verschiedene Methoden in der Firmware gibt, stammt von mir, wenn wir hier noch einen Fehler eliminieren könnten, wäre es genial.
Die Einstellregeln sind von hier:
http://www.mstarlabs.com/control/znrule.html
Hier ist die Ausgabe der Methode als Text für die Logfile.
https://github.com/Nibbels/Repetier-Fir ... .cpp#L1344
Hier ist die Auswahl der Methode anhand des Schalters J.
https://github.com/Nibbels/Repetier-Fir ... .cpp#L1435
Hier wählst du per GCode die Parameter:
https://github.com/Nibbels/Repetier-Fir ... .cpp#L1289
Hier wählst du über verwirrende umwege der Menüstruktur übers Menü aus:
https://github.com/Nibbels/Repetier-Fir ... .cpp#L4221
Kurz erklärt: uid.menuPos[uid.menuLevel-2] ist die Position des ausgewählten Menüs von 0 beginnend 2 Menüs drunter: z.B. ist 0 = "Extruder 0"
(Der erste Extruder ist 0, Der letzte Extruder ist n-1, das Bett ist n.)
Das nächste "uid.menuPos[uid.menuLevel-1]" ist auch 0,1,2,3 .. die Stelle im Menü eins drunter, da hat man im Menü die Methode ausgewählt.
Das ist kompliziert, aber so konnte ich beliebig viele Hotends mit demselben Code unter Dach und Fach bringen und musste nicht alles doppelt im Klartext bauen. Das Bett ist immer bei.
Code: Alles auswählen
unsigned char heater = uid.menuPos[uid.menuLevel-2]; //0..1..2 mit zwei extrudern und bett. passt zum autotunesystem, weil UI_MENU_PID_EXT0_COUNT + UI_MENU_PID_EXT1_COUNT + UI_MENU_PID_BED_COUNT
int method = uid.menuPos[uid.menuLevel-1]; //0..1..2..3..4..5 passt zum J-Listing des M303
-> Ich sehe spontan auch jetzt mit etwas Abstand hier keinen Fehler.
Dass No Overshoot nicht so sauber funktioniert, wie ich das zuerst wegen des Namens dachte, war mir auch schon aufgefallen. Beim Hotend funktionierts nicht, beim Bett eher schon. Fehler konnte ich damals nicht finden, ich habs dann auf die Einstellparameter geschoben - dass die einfach nicht so gut sind.
Pessen Integral Rule war gut! Darum hatte ich die als Tipp für Hotends notiert.
Wenn du einen Unterschied zwischen Menü und GCode feststellen konntest: Kannst du das nachstellen?
Da gibts noch eine Sache: maxCycles mit GCode Schalter R.
Normalerweise war der immer auf 5 (Conrad, original Repetier). Ich habe aber gesehen, dass die Werte bis dahin noch nicht fertig konvergiert waren. Und darum macht das Menü automatisch immer R10 rein, wenn es ein Hotend ist. Und es macht R15 rein, wenn es ein Heizbett ist.
https://github.com/Nibbels/Repetier-Fir ... .cpp#L4234
https://github.com/Nibbels/Repetier-Fir ... .cpp#L4238
Reicht es evtl. den Standardzyklen-Zahl für immer und jeden auf Minimal 10 zu stellen, dass die Regelparameter niemals halbfertig erfasst werden?
LG