Hintergrund :
Ich habe gerade erfolgreich ein RepRapDiscount Full Graphic Display auf meinem Prusa i3 installiert. Dabei habe ich die gesamte Firmware auf die neueste Version von Marlin, 1.1.0-RC7, aktualisiert. Mit meiner vorherigen Version von Marlin, 1.0.2-1, funktionierte alles perfekt. Ich habe jeden Parameter von meiner älteren Version auf meine neuere übertragen. Es gab einige Aspekte des Codes, die unterschiedlich geschrieben wurden, aber im Wesentlichen funktioniert alles außer der Z-Achse.
Problem :
Das einzige Problem, das ich zu haben scheine, ist jede Art von Bewegung mit der Z-Achse. Wenn es sich bewegt, sei es vom LCD oder vom Repetier, scheint es zu beschleunigen, wie es soll, bleibt dann aber hängen / überspringt ein paar Schritte und bremst dann langsam ab, wie es soll. Unabhängig von der Entfernung, die ich ihm bewege, beschleunigt er normal für die gleiche Zeit / Entfernung / Schritte, wechselt für eine Zeitspanne / Entfernung / Schritte in diesen unheiligen Modus, relativ zu der Anweisung, und bremst dann sanft ab jedes Mal für genau die gleiche Zeit. Wenn beispielsweise 10000 Schritte verschoben werden sollen, werden 100 Schritte reibungslos verschoben, dann 9800 Schritte übersprungen und weitere 100 Schritte reibungslos abgeschlossen. Wenn zum Beispiel 5000 Schritte verschoben werden müssen, werden auch 100 Schritte reibungslos verschoben, und dann werden 4800 Schritte übersprungen. und beenden Sie die letzten 100 Schritte reibungslos. Denken Sie daran, dass diese Zahlen vollständig aus dem Weltraum stammen. Sie sind in keiner Weise genau. Ich versuche nur, so klar wie möglich von einem Bild zu malen.
Fehlerbehebung :
Zuerst habe ich überprüft, ob alles mechanisch einwandfrei ist.
- Die Muttern bewegen sich frei auf der 5-mm-Gewindestange auf und ab. Es gibt keine Punkte entlang der gesamten Länge der Stange, an denen sich die Muttern nicht sehr frei bewegen.
- Die Edelstahlstangen sind gut ausgerichtet und der gesamte Z / X-Achsenschlitten bewegt sich sehr frei entlang der vertikalen Schienen. Die Lager scheinen in Ordnung zu sein.
Ich wollte es dann auf die Firmware und nicht auf die Elektrik eingrenzen. Vielleicht fehlt mir etwas Offensichtliches, also lass es mich wissen.
- Ich habe die Spannung an meinen A4988-Schritttreibern auf der RAMPS 1.4-Karte gemessen, die auf dem Arduino Mega2560 R3 sitzt, und sie zeigt 350 mV an. Selbst wenn ich das Potentiometer auf 550 mV einstelle, tritt immer noch das gleiche Problem auf.
- Die Jumper darunter scheinen fest zu sitzen, und alle Stifte des A4988 scheinen ebenfalls in Ordnung zu sein.
- Das einzige, was ich in diesem Abschnitt, der logischen Analyse, nicht überprüft habe, sind die Drähte, die von der Platine zu den Motoren selbst führen, aber aufgrund der folgenden Punkte glaube ich nicht, dass dies das Problem ist. (Obwohl ich mich vorher geirrt habe)
Weiter mit der Firmware.
Ich habe vergeblich mit dem Abschnitt mit den Standardeinstellungen in Configuration.h herumgespielt. Unabhängig davon, wie niedrig oder hoch ich mit einer der Einstellungen für die maximale Beschleunigung bin, kann ich das Problem anscheinend nicht beheben. Es beschleunigt langsamer, aber der Gesamteffekt ist der gleiche.
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,3840,90}
#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 25}
#define DEFAULT_MAX_ACCELERATION {2000,2000,10,2000}
#define DEFAULT_ACCELERATION 1000
#define DEFAULT_RETRACT_ACCELERATION 1000
#define DEFAULT_TRAVEL_ACCELERATION 1000
#define DEFAULT_XYJERK 20.0
#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK 5.0
Theorie :
Wenn ich an dieser Stelle raten müsste, hat dies etwas mit der Einstellung der Höchstgeschwindigkeit oder dem Mikroschritt zu tun. Dies sind einige der Einstellungen, die ich für die neue Firmware vorgenommen habe.
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
Lösung :
Wenn mir jemand helfen oder mich in die richtige Richtung weisen könnte, würde ich es wirklich schätzen. Ich werde verzweifelt mit dieser neuen Firmware-Version. Es hat all diese bedingten Registerkarten, die in meiner anderen nicht vorhanden waren, und ich kann es nicht ganz herausfinden.