Send: N1494 M205*28
Recv: ok 1494
Recv: EPR:0 1028 0 Language
Recv: EPR:2 75 115200 Baudrate
Recv: EPR:3 129 1905.765 Filament printed [m]
Send: N1495 G1 X92.632 Y96.122 E19.46257*99
Recv: EPR:2 125 1415005 Printer active [s]
Recv: EPR:2 79 0 Max. inactive time [ms,0=off]
Recv: EPR:2 83 360000 Stop stepper after inactivity [ms,0=off]
Recv: EPR:3 3 100.0000 X-axis steps per mm
Recv: EPR:3 7 100.0000 Y-axis steps per mm
Recv: EPR:3 11 400.0000 Z-axis steps per mm
Recv: EPR:3 15 400.000 X-axis max. feedrate [mm/s]
Recv: EPR:3 19 400.000 Y-axis max. feedrate [mm/s]
Recv: EPR:3 23 4.000 Z-axis max. feedrate [mm/s]
Recv: EPR:3 27 100.000 X-axis homing feedrate [mm/s]
Recv: EPR:3 31 100.000 Y-axis homing feedrate [mm/s]
Recv: EPR:3 35 2.000 Z-axis homing feedrate [mm/s]
Recv: EPR:3 39 8.000 Max. jerk [mm/s]
Recv: EPR:3 47 1.414 Max. Z-jerk [mm/s]
Recv: EPR:3 133 -45.000 X min pos [mm]
Recv: EPR:3 137 -5.000 Y min pos [mm]
Recv: EPR:3 141 0.000 Z min pos [mm]
Recv: EPR:3 145 265.000 X max length [mm]
Recv: EPR:3 149 230.000 Y max length [mm]
Recv: EPR:3 153 240.000 Z max length [mm]
Recv: EPR:3 1056 0.000 Park position X [mm]
Recv: EPR:3 1060 10.000 Park position Y [mm]
Recv: EPR:3 1064 10.000 Park position Z raise [mm]
Recv: EPR:3 51 400.000 X-axis acceleration [mm/s^2]
Recv: EPR:3 55 400.000 Y-axis acceleration [mm/s^2]
Recv: EPR:3 59 400.000 Z-axis acceleration [mm/s^2]
Recv: EPR:3 63 400.000 X-axis travel acceleration [mm/s^2]
Recv: EPR:3 67 400.000 Y-axis travel acceleration [mm/s^2]
Recv: EPR:3 71 400.000 Z-axis travel acceleration [mm/s^2]
Recv: EPR:3 1032 50.000 Acceleration factor at top [%,100=like bottom]
Recv: EPR:3 1024 0.000 Coating thickness [mm]
Recv: EPR:1 1048 55 Bed Preheat temp. [�C]
Recv: EPR:0 106 0 Bed Heat Manager [0-3]
Recv: EPR:0 107 255 Bed PID drive max
Recv: EPR:0 124 80 Bed PID drive min
Recv: EPR:3 108 196.000 Bed PID P-gain
Recv: EPR:3 112 33.000 Bed PID I-gain
Recv: EPR:3 116 290.000 Bed PID D-gain
Recv: EPR:0 120 255 Bed PID max value [0-255]
Recv: EPR:0 1020 0 Enable retraction conversion [0/1]
Recv: EPR:3 992 3.000 Retraction length [mm]
Recv: EPR:3 1000 40.000 Retraction speed [mm/s]
Recv: EPR:3 1004 0.000 Retraction z-lift [mm]
Recv: EPR:3 1008 0.000 Extra extrusion on undo retract [mm]
Recv: EPR:3 1016 20.000 Retraction undo speed
Recv: EPR:3 200 132.000 Extr.1 steps per mm
Recv: EPR:3 204 3.000 Extr.1 max. feedrate [mm/s]
Recv: EPR:3 208 20.000 Extr.1 start feedrate [mm/s]
Recv: EPR:3 212 5000.000 Extr.1 acceleration [mm/s^2]
Recv: EPR:1 294 190 Extr.1 Preheat temp. [�C]
Recv: EPR:0 216 3 Extr.1 heat manager [0-3]
Recv: EPR:0 217 230 Extr.1 PID drive max
Recv: EPR:0 245 40 Extr.1 PID drive min
Recv: EPR:3 218 7.0000 Extr.1 PID P-gain/dead-time
Recv: EPR:3 222 2.0000 Extr.1 PID I-gain
Recv: EPR:3 226 40.0000 Extr.1 PID D-gain
Recv: EPR:0 230 255 Extr.1 PID max value [0-255]
Recv: EPR:2 231 0 Extr.1 X-offset [steps]
Recv: EPR:2 235 0 Extr.1 Y-offset [steps]
Recv: EPR:2 290 0 Extr.1 Z-offset [steps]
Recv: EPR:1 239 1 Extr.1 temp. stabilize time [s]
Recv: EPR:1 250 150 Extr.1 temp. for retraction when heating [C]
Recv: EPR:1 252 0 Extr.1 distance to retract when heating [mm]
Recv: EPR:0 254 255 Extr.1 extruder cooler speed [0-255]
Sonntag, 30. Dezember 2018
Extruder Calibration
Heute habe ich mich dem Thema Extruder Calibration gewidmet.
In der Tat habe ich das vorher noch nie gemacht und nach meinen zahlreichen Firmware-Updates wurden wohl mehrere Werte verändert oder aber sie waren noch nie richtig so das ich dachte das muss ich mir mal genauer anschauen.
Als zuverlässige Quelle für Inspiration rund um das Thema Extruder Calibration habe ich mal wieder Tom gelauscht:
https://www.youtube.com/watch?v=YUPfBJz3I6Y
So hat sich nun folgendes ergeben:
Zum Anfang hat mein Drucker 68mm statt 100mm extrudiert.
Das war dann doch ein relativ großer unterschied.
Statt der konfigurierten 90 steps per mm habe ich also die Firmware mit 132 steps per mm konfiguriert.
Getreu der Formel:
current steps per mm * 100 / actual extrusion in mm = new steps per mm
oder aber auch:
90 * 100 / 68 = 132
Dannach gings aber weiter das zunächst weitere 20mm extrusion vermisst wurden und ich hatte wieder mein seit anbegin meiner 3D Druck ambitionen bekanntes gerattere beim extrudierien.
Ich habe dem nie besonders viel aufmerksamkeit beigemessen, irgendwie gings ja :)
Allerdings habe ich jetzt begonnen zu verstehen:
Der Extrusion Test wurde mit G92E0 eingeleitet, zum reset des Extruders.
Dannach habe ich per G1E100F90 die Extrusion der 100mm Filament eingeleitet. Bei diesem Kommando wird per ...F90 die Geschwindigkeit der Extrusion mitgegeben.
Tom meint bei 1,75mm Filament könnten 1,5mm/sec to 3mm/sec bzw. 90mm/minute to 180mm/minute gut sein.
Ich habe prompt mal den Test mit G1E100F45 gestartet, also mit der halben Geschwindigkeit und siehe da, das wars. Noch nie war meine Extrusion so smooth.
Jetzt beginne ich auch zu verstehen warum um das Volcano Hot End so viel geredet wird, weils da scheinbar endlich mal gelungen ist die ganzen Chinesium-Werte der möglichen Extrusionsgeschwindigkeit tatsächlich zu erreichen. Denn wenn das Filament nicht schnell genug aus der Nozzle kommt, dann bringts auch nichts wenn die Nozzle mit Höchstgeschwindigkeit übers Druckbett fliegt.
Ich werde jetzt zunächst mal langsamer drucken und dann versuchen schrittweise die Geschwindigkeit zu erhöhen um das Optimum zu finden.
In der Tat habe ich das vorher noch nie gemacht und nach meinen zahlreichen Firmware-Updates wurden wohl mehrere Werte verändert oder aber sie waren noch nie richtig so das ich dachte das muss ich mir mal genauer anschauen.
Als zuverlässige Quelle für Inspiration rund um das Thema Extruder Calibration habe ich mal wieder Tom gelauscht:
https://www.youtube.com/watch?v=YUPfBJz3I6Y
So hat sich nun folgendes ergeben:
Zum Anfang hat mein Drucker 68mm statt 100mm extrudiert.
Das war dann doch ein relativ großer unterschied.
Statt der konfigurierten 90 steps per mm habe ich also die Firmware mit 132 steps per mm konfiguriert.
Getreu der Formel:
current steps per mm * 100 / actual extrusion in mm = new steps per mm
oder aber auch:
90 * 100 / 68 = 132
Dannach gings aber weiter das zunächst weitere 20mm extrusion vermisst wurden und ich hatte wieder mein seit anbegin meiner 3D Druck ambitionen bekanntes gerattere beim extrudierien.
Ich habe dem nie besonders viel aufmerksamkeit beigemessen, irgendwie gings ja :)
Allerdings habe ich jetzt begonnen zu verstehen:
Der Extrusion Test wurde mit G92E0 eingeleitet, zum reset des Extruders.
Dannach habe ich per G1E100F90 die Extrusion der 100mm Filament eingeleitet. Bei diesem Kommando wird per ...F90 die Geschwindigkeit der Extrusion mitgegeben.
Tom meint bei 1,75mm Filament könnten 1,5mm/sec to 3mm/sec bzw. 90mm/minute to 180mm/minute gut sein.
Ich habe prompt mal den Test mit G1E100F45 gestartet, also mit der halben Geschwindigkeit und siehe da, das wars. Noch nie war meine Extrusion so smooth.
Jetzt beginne ich auch zu verstehen warum um das Volcano Hot End so viel geredet wird, weils da scheinbar endlich mal gelungen ist die ganzen Chinesium-Werte der möglichen Extrusionsgeschwindigkeit tatsächlich zu erreichen. Denn wenn das Filament nicht schnell genug aus der Nozzle kommt, dann bringts auch nichts wenn die Nozzle mit Höchstgeschwindigkeit übers Druckbett fliegt.
Ich werde jetzt zunächst mal langsamer drucken und dann versuchen schrittweise die Geschwindigkeit zu erhöhen um das Optimum zu finden.
Sonntag, 5. August 2018
Firmwareupgrade auf dem 3D Drucker - Wie geht das eigentlich - OctoPrint-FirmwareUpdater
Die ganze Zeit hatte ich mit Octopi gearbeitet und war nich einmaliger initialier installation und konfiguration von https://github.com/OctoPrint/OctoPrint-FirmwareUpdater in der komfortablen Lage meine neu kompilierten Firmwares auf den Drucker zu laden.
Nachdem ich dann auf Repetier-Server gewechselt hatte war diese Möglichleit plötzlich verschwunden. Weiterhin musste ich feststellen das ich mir nie gemerkt hatte warum das eigentlich mal funktionierte.
Hier sind also die Settings mit denen ich über Octopi meine Firmware einpspielen konnte.
Zunächst wichtig, das Bord erlaubt aufgrund des verkorksten Bootloader ( den mal wohl besser nicht anfasst ) nur einen Firmware-Flash mit 57600 Baud. Das wird als erstes eingestellt, denn das ist nicht der default.
Der "arduino" als "" kann man die AVR MCU "Atmega1284p" bedienen. Das gilt es auch einzustellen.
Schließlich verwenden wir avrdude um den Upload durchzuführen.
Kleines Detail am Rande: Wenn man den OctoPrint-FirmwareUpdater plugin installiert ist avrdude da nicht automatisch mit beinhaltet. Daher muss man am Anfang avrdude noch händisch auf den Octopi installieren. Mit den Settings von oben klappt das dann.
Nachdem ich dann auf Repetier-Server gewechselt hatte war diese Möglichleit plötzlich verschwunden. Weiterhin musste ich feststellen das ich mir nie gemerkt hatte warum das eigentlich mal funktionierte.
Hier sind also die Settings mit denen ich über Octopi meine Firmware einpspielen konnte.
Zunächst wichtig, das Bord erlaubt aufgrund des verkorksten Bootloader ( den mal wohl besser nicht anfasst ) nur einen Firmware-Flash mit 57600 Baud. Das wird als erstes eingestellt, denn das ist nicht der default.
Der "arduino" als "" kann man die AVR MCU "Atmega1284p" bedienen. Das gilt es auch einzustellen.
Schließlich verwenden wir avrdude um den Upload durchzuführen.
Kleines Detail am Rande: Wenn man den OctoPrint-FirmwareUpdater plugin installiert ist avrdude da nicht automatisch mit beinhaltet. Daher muss man am Anfang avrdude noch händisch auf den Octopi installieren. Mit den Settings von oben klappt das dann.
Firmwareupgrade auf dem 3D Drucker - Jetzt müsste es nur noch funktionieren
Während ich nun FEATURE_AUTOLEVEL aktiv habe fällt mir auf das damit ja eine Menge neuer Challanges auf mich zu kommen :)
Der Sensor fürs Leveling wird an den Z_MIN_PIN angeschlossen. Damit funktioniert natuerlich kein klassischer ENDSTOP mehr.
Folgendes habe ich dazu im Netz gefunden:
In config tool
under mechanics
Use 'homing order' Z up X Y preheat Z
set location for 'XY Homing pos. for Z' (set to centre of bed)
Keep zmin endstop as normally open or closed depends on type of probe
Z min pin= z min endstop
Then in features
tick enable Z probing
Assign Z-probe pin as Zmin pin
setup your probe offsets and probe points
and test
Der Schlüssel hier scheint zu sein das die Homping Position damit in die Mitte des Druckbetts verlegt wird, dann gibts für den Sensor auch was zu messen. Default maessig liegt der Sensor naemlich ausserhalb des Druckbetts.
Was eine Gaudi.
Man muss auch weiter unterscheiden welche GCodes man abfeuert und was genau da eigentlich gemacht wird. Bisher habe ich ganz großzügig die Details ignoriert und per Octopi mich relativ weit weg von meinem Drucker befunden. Aber mit FEATURE_AUTOLEVEL wollen wir uns zumindest zum Anfang etwas näher an den Drucker bewegen. Der direkte Kontakt über Repetier-Host und Repetier-Server erlauben den unmittelbaren Kontakt zu den EEPROM-Werten. Das betrachte ich mal als sehr Vorteilhaft.
Jetzt gilt es auch noch zu verstehen was man hier tut. Das hab ich natuerlich erst mal nicht.
Munter habe ich wilde G28 und G29 GCode Commands auf meinen Drucker abgefeuert und mich gefreut das er sich so toll bewegt. Irgendwie war die Flughöhe des Druckkopfs völlig unbrauchbar, aber hey, der Sensor funktioniert. Yeah! :)
Irgendwann dämmerte mir dann doch das man zwischen Bed Leveling und Z-Probing unterscheiden muss. Und irgendwie ist natuerlich, wie sollte es auch anders sein, beides wichtig :D
G29 S2 Führt z-probing aus und speichert die Werte im EEPROM
G32 S2 Führt bed leveling aus und speichert die Werte im EEPROM
Speziell wenn man die optimale z-probe heigth sucht hilft es also G29 zu nutzen und nicht G32.
Naja, das dachte ich zumindest am Anfang. Mitlerweile denke ich das wenn alles in Ordnung ist kann man mit einem einzelnen G32 S2 Alles erledigen.
Aber der Senor, hier auch noch mit 5V (???) statt 6V-36V betrieben ist in der Wiederholgenauigkeit völlig unbrauchbar. Zwischen "Ins-Bed-bohren" und "1mm Flughöhe muss ich nur ein Bier trinken und schon ist alles anders.
Ein paar Notes aus meiner Forschungszeit:
Für Repetier gilt also:
M119 = Auslesen aller Endstop-Zustände
z..B. Keiner der Endstops ist ausgelöst / State LOW:
23:28:03.482 : M119
23:28:03.586 : endstops hit: x_min:L y_min:L Z-probe state:L
z.B. Der X-Endstop ist ausgelöst / State HIGH:
23:30:03.611 : M119
23:30:03.787 : X:-45.00 Y:-5.00 Z:50.000 E:0.0000
23:30:03.787 : endstops hit: x_min:H y_min:L Z-probe state:L
M114 = Auslesen der derzeitigen Position
z.B. X/Y ist gehomed, Z steht bei 50 und der Extruder wurde noch nicht genutzt
23:32:03.919 : M114
23:32:04.099 : X:-45.00 Y:-5.00 Z:50.000 E:0.0000
z.B. meine EEPROM Werte:
23:42:18.504 : M205
23:42:19.017 : EPR:0 1028 0 Language
23:42:19.021 : EPR:2 75 115200 Baudrate
23:42:19.025 : EPR:3 129 1650.485 Filament printed [m]
23:42:19.030 : EPR:2 125 1202029 Printer active [s]
23:42:19.034 : EPR:2 79 0 Max. inactive time [ms,0=off]
23:42:19.038 : EPR:2 83 360000 Stop stepper after inactivity [ms,0=off]
23:42:19.042 : EPR:3 3 100.0000 X-axis steps per mm
23:42:19.046 : EPR:3 7 100.0000 Y-axis steps per mm
23:42:19.051 : EPR:3 11 400.0000 Z-axis steps per mm
23:42:19.055 : EPR:3 15 400.000 X-axis max. feedrate [mm/s]
23:42:19.058 : EPR:3 19 400.000 Y-axis max. feedrate [mm/s]
23:42:19.063 : EPR:3 23 5.000 Z-axis max. feedrate [mm/s]
23:42:19.067 : EPR:3 27 100.000 X-axis homing feedrate [mm/s]
23:42:19.071 : EPR:3 31 100.000 Y-axis homing feedrate [mm/s]
23:42:19.074 : EPR:3 35 4.000 Z-axis homing feedrate [mm/s]
23:42:19.079 : EPR:3 39 20.000 Max. jerk [mm/s]
23:42:19.082 : EPR:3 47 0.707 Max. Z-jerk [mm/s]
23:42:19.086 : EPR:3 133 -45.000 X min pos [mm]
23:42:19.090 : EPR:3 137 -5.000 Y min pos [mm]
23:42:19.094 : EPR:3 141 0.000 Z min pos [mm]
23:42:19.099 : EPR:3 145 210.000 X max length [mm]
23:42:19.103 : EPR:3 149 210.000 Y max length [mm]
23:42:19.106 : EPR:3 153 230.000 Z max length [mm]
23:42:19.111 : EPR:3 1056 0.000 Park position X [mm]
23:42:19.115 : EPR:3 1060 10.000 Park position Y [mm]
23:42:19.119 : EPR:3 1064 10.000 Park position Z raise [mm]
23:42:19.123 : EPR:3 51 1000.000 X-axis acceleration [mm/s^2]
23:42:19.127 : EPR:3 55 1000.000 Y-axis acceleration [mm/s^2]
23:42:19.131 : EPR:3 59 100.000 Z-axis acceleration [mm/s^2]
23:42:19.135 : EPR:3 63 2000.000 X-axis travel acceleration [mm/s^2]
23:42:19.139 : EPR:3 67 2000.000 Y-axis travel acceleration [mm/s^2]
23:42:19.143 : EPR:3 71 100.000 Z-axis travel acceleration [mm/s^2]
23:42:19.148 : EPR:3 1032 50.000 Acceleration factor at top [%,100=like bottom]
23:42:19.152 : EPR:3 1024 0.000 Coating thickness [mm]
23:42:19.156 : EPR:3 808 1.700 Z-probe height [mm]
23:42:19.160 : EPR:3 929 10.000 Max. z-probe - bed dist. [mm]
23:42:19.164 : EPR:3 812 2.000 Z-probe speed [mm/s]
23:42:19.168 : EPR:3 840 150.000 Z-probe x-y-speed [mm/s]
23:42:19.173 : EPR:3 800 -21.000 Z-probe offset x [mm]
23:42:19.177 : EPR:3 804 -47.000 Z-probe offset y [mm]
23:42:19.181 : EPR:3 816 40.000 Z-probe X1 [mm]
23:42:19.185 : EPR:3 820 40.000 Z-probe Y1 [mm]
23:42:19.189 : EPR:3 824 170.000 Z-probe X2 [mm]
23:42:19.193 : EPR:3 828 40.000 Z-probe Y2 [mm]
23:42:19.198 : EPR:3 832 105.000 Z-probe X3 [mm]
23:42:19.202 : EPR:3 836 160.000 Z-probe Y3 [mm]
23:42:19.206 : EPR:3 1036 0.000 Z-probe bending correction A [mm]
23:42:19.210 : EPR:3 1040 0.000 Z-probe bending correction B [mm]
23:42:19.214 : EPR:3 1044 0.000 Z-probe bending correction C [mm]
23:42:19.218 : EPR:0 880 1 Autolevel active (1/0)
23:42:19.226 : EPR:1 1048 55 Bed Preheat temp. [ C]
23:42:19.231 : EPR:0 106 0 Bed Heat Manager [0-3]
23:42:19.236 : EPR:0 107 255 Bed PID drive max
23:42:19.239 : EPR:0 124 80 Bed PID drive min
23:42:19.243 : EPR:3 108 196.000 Bed PID P-gain
23:42:19.248 : EPR:3 112 33.000 Bed PID I-gain
23:42:19.252 : EPR:3 116 290.000 Bed PID D-gain
23:42:19.256 : EPR:0 120 255 Bed PID max value [0-255]
23:42:19.260 : EPR:0 1020 0 Enable retraction conversion [0/1]
23:42:19.264 : EPR:3 992 3.000 Retraction length [mm]
23:42:19.268 : EPR:3 1000 40.000 Retraction speed [mm/s]
23:42:19.272 : EPR:3 1004 0.000 Retraction z-lift [mm]
23:42:19.276 : EPR:3 1008 0.000 Extra extrusion on undo retract [mm]
23:42:19.281 : EPR:3 1016 20.000 Retraction undo speed
23:42:19.285 : EPR:3 200 95.000 Extr.1 steps per mm
23:42:19.288 : EPR:3 204 50.000 Extr.1 max. feedrate [mm/s]
23:42:19.292 : EPR:3 208 20.000 Extr.1 start feedrate [mm/s]
23:42:19.297 : EPR:3 212 5000.000 Extr.1 acceleration [mm/s^2]
23:42:19.301 : EPR:1 294 190 Extr.1 Preheat temp. [ C]
23:42:19.305 : EPR:0 216 3 Extr.1 heat manager [0-3]
23:42:19.309 : EPR:0 217 230 Extr.1 PID drive max
23:42:19.314 : EPR:0 245 40 Extr.1 PID drive min
23:42:19.318 : EPR:3 218 7.0000 Extr.1 PID P-gain/dead-time
23:42:19.322 : EPR:3 222 2.0000 Extr.1 PID I-gain
23:42:19.326 : EPR:3 226 40.0000 Extr.1 PID D-gain
23:42:19.331 : EPR:0 230 255 Extr.1 PID max value [0-255]
23:42:19.334 : EPR:2 231 0 Extr.1 X-offset [steps]
23:42:19.338 : EPR:2 235 0 Extr.1 Y-offset [steps]
23:42:19.343 : EPR:2 290 0 Extr.1 Z-offset [steps]
23:42:19.347 : EPR:1 239 1 Extr.1 temp. stabilize time [s]
23:42:19.351 : EPR:1 250 150 Extr.1 temp. for retraction when heating [C]
23:42:19.355 : EPR:1 252 0 Extr.1 distance to retract when heating [mm]
23:42:19.360 : EPR:0 254 255 Extr.1 extruder cooler speed [0-255]
23:44:58.204 : M205
23:44:58.305 : EPR:0 1028 0 Language
23:44:58.811 : EPR:2 75 115200 Baudrate
23:44:58.811 : EPR:3 129 1650.485 Filament printed [m]
23:44:58.811 : EPR:2 125 1202029 Printer active [s]
23:44:58.811 : EPR:2 79 0 Max. inactive time [ms,0=off]
23:44:58.811 : EPR:2 83 360000 Stop stepper after inactivity [ms,0=off]
23:44:58.811 : EPR:3 3 100.0000 X-axis steps per mm
23:44:58.811 : EPR:3 7 100.0000 Y-axis steps per mm
23:44:58.811 : EPR:3 11 400.0000 Z-axis steps per mm
23:44:58.811 : EPR:3 15 400.000 X-axis max. feedrate [mm/s]
23:44:58.811 : EPR:3 19 400.000 Y-axis max. feedrate [mm/s]
23:44:58.811 : EPR:3 23 5.000 Z-axis max. feedrate [mm/s]
23:44:58.811 : EPR:3 27 100.000 X-axis homing feedrate [mm/s]
23:44:58.811 : EPR:3 31 100.000 Y-axis homing feedrate [mm/s]
23:44:58.811 : EPR:3 35 4.000 Z-axis homing feedrate [mm/s]
23:44:58.811 : EPR:3 39 20.000 Max. jerk [mm/s]
23:44:58.811 : EPR:3 47 0.707 Max. Z-jerk [mm/s]
23:44:58.811 : EPR:3 133 -45.000 X min pos [mm]
23:44:58.811 : EPR:3 137 -5.000 Y min pos [mm]
23:44:58.811 : EPR:3 141 0.000 Z min pos [mm]
23:44:58.811 : EPR:3 145 210.000 X max length [mm]
23:44:58.811 : EPR:3 149 210.000 Y max length [mm]
23:44:58.811 : EPR:3 153 230.000 Z max length [mm]
23:44:58.811 : EPR:3 1056 0.000 Park position X [mm]
23:44:58.812 : EPR:3 1060 10.000 Park position Y [mm]
23:44:58.812 : EPR:3 1064 10.000 Park position Z raise [mm]
23:44:58.812 : EPR:3 51 1000.000 X-axis acceleration [mm/s^2]
23:44:58.812 : EPR:3 55 1000.000 Y-axis acceleration [mm/s^2]
23:44:58.812 : EPR:3 59 100.000 Z-axis acceleration [mm/s^2]
23:44:58.812 : EPR:3 63 2000.000 X-axis travel acceleration [mm/s^2]
23:44:58.812 : EPR:3 67 2000.000 Y-axis travel acceleration [mm/s^2]
23:44:58.812 : EPR:3 71 100.000 Z-axis travel acceleration [mm/s^2]
23:44:58.812 : EPR:3 1032 50.000 Acceleration factor at top [%,100=like bottom]
23:44:58.812 : EPR:3 1024 0.000 Coating thickness [mm]
23:44:58.812 : EPR:3 808 1.700 Z-probe height [mm]
23:44:58.812 : EPR:3 929 10.000 Max. z-probe - bed dist. [mm]
23:44:58.812 : EPR:3 812 2.000 Z-probe speed [mm/s]
23:44:58.812 : EPR:3 840 150.000 Z-probe x-y-speed [mm/s]
23:44:58.812 : EPR:3 800 -21.000 Z-probe offset x [mm]
23:44:58.812 : EPR:3 804 -47.000 Z-probe offset y [mm]
23:44:58.812 : EPR:3 816 40.000 Z-probe X1 [mm]
23:44:58.812 : EPR:3 820 40.000 Z-probe Y1 [mm]
23:44:58.812 : EPR:3 824 170.000 Z-probe X2 [mm]
23:44:58.812 : EPR:3 828 40.000 Z-probe Y2 [mm]
23:44:58.812 : EPR:3 832 105.000 Z-probe X3 [mm]
23:44:58.812 : EPR:3 836 160.000 Z-probe Y3 [mm]
23:44:58.812 : EPR:3 1036 0.000 Z-probe bending correction A [mm]
23:44:58.812 : EPR:3 1040 0.000 Z-probe bending correction B [mm]
23:44:58.812 : EPR:3 1044 0.000 Z-probe bending correction C [mm]
23:44:58.812 : EPR:0 880 1 Autolevel active (1/0)
23:44:58.812 : EPR:1 1048 55 Bed Preheat temp. [ C]
23:44:58.812 : EPR:0 106 0 Bed Heat Manager [0-3]
23:44:58.812 : EPR:0 107 255 Bed PID drive max
23:44:58.812 : EPR:0 124 80 Bed PID drive min
23:44:58.812 : EPR:3 108 196.000 Bed PID P-gain
23:44:58.812 : EPR:3 112 33.000 Bed PID I-gain
23:44:58.812 : EPR:3 116 290.000 Bed PID D-gain
23:44:58.812 : EPR:0 120 255 Bed PID max value [0-255]
23:44:58.812 : EPR:0 1020 0 Enable retraction conversion [0/1]
23:44:58.812 : EPR:3 992 3.000 Retraction length [mm]
23:44:58.812 : EPR:3 1000 40.000 Retraction speed [mm/s]
23:44:58.812 : EPR:3 1004 0.000 Retraction z-lift [mm]
23:44:58.812 : EPR:3 1008 0.000 Extra extrusion on undo retract [mm]
23:44:58.812 : EPR:3 1016 20.000 Retraction undo speed
23:44:58.812 : EPR:3 200 95.000 Extr.1 steps per mm
23:44:58.812 : EPR:3 204 50.000 Extr.1 max. feedrate [mm/s]
23:44:58.812 : EPR:3 208 20.000 Extr.1 start feedrate [mm/s]
23:44:58.812 : EPR:3 212 5000.000 Extr.1 acceleration [mm/s^2]
23:44:58.812 : EPR:1 294 190 Extr.1 Preheat temp. [ C]
23:44:58.812 : EPR:0 216 3 Extr.1 heat manager [0-3]
23:44:58.812 : EPR:0 217 230 Extr.1 PID drive max
23:44:58.812 : EPR:0 245 40 Extr.1 PID drive min
23:44:58.812 : EPR:3 218 7.0000 Extr.1 PID P-gain/dead-time
23:44:58.812 : EPR:3 222 2.0000 Extr.1 PID I-gain
23:44:58.812 : EPR:3 226 40.0000 Extr.1 PID D-gain
23:44:58.813 : EPR:0 230 255 Extr.1 PID max value [0-255]
23:44:58.813 : EPR:2 231 0 Extr.1 X-offset [steps]
23:44:58.813 : EPR:2 235 0 Extr.1 Y-offset [steps]
23:44:58.813 : EPR:2 290 0 Extr.1 Z-offset [steps]
23:44:58.813 : EPR:1 239 1 Extr.1 temp. stabilize time [s]
23:44:58.813 : EPR:1 250 150 Extr.1 temp. for retraction when heating [C]
23:44:58.813 : EPR:1 252 0 Extr.1 distance to retract when heating [mm]
23:44:58.813 : EPR:0 254 255 Extr.1 extruder cooler speed [0-255]
M206 = EEPROM Werte ändern / schreiben
z.B. Z-Probe Höhe auf 2.3mm einstellen:
M206 T3 P808 X2.3 Set Z-Probe heigth [mm]
z.B. Max. z-probe - bed dist auf 10,, einstellen:
M206 T3 P929 X10 Set Max. z-probe - bed dist. [mm]
M502 = Reset to defaults
Info:Configuration reset to defaults.
M500 = Derzeitige Settings im EEPROM speichern.
z.B.
23:48:07.098 : M500
23:48:08.008 : Info:Configuration stored to EEPROM.
PID Tuning:
M303 P0 S230 R8 X1 ; (Extruder0, 230c Reps:8 Autosave)
P sets heater. 0-2 are extruder 0 to 2 and P3 is then the bed.
Der Sensor fürs Leveling wird an den Z_MIN_PIN angeschlossen. Damit funktioniert natuerlich kein klassischer ENDSTOP mehr.
Folgendes habe ich dazu im Netz gefunden:
In config tool
under mechanics
Use 'homing order' Z up X Y preheat Z
set location for 'XY Homing pos. for Z' (set to centre of bed)
Keep zmin endstop as normally open or closed depends on type of probe
Z min pin= z min endstop
Then in features
tick enable Z probing
Assign Z-probe pin as Zmin pin
setup your probe offsets and probe points
and test
Der Schlüssel hier scheint zu sein das die Homping Position damit in die Mitte des Druckbetts verlegt wird, dann gibts für den Sensor auch was zu messen. Default maessig liegt der Sensor naemlich ausserhalb des Druckbetts.
Was eine Gaudi.
Man muss auch weiter unterscheiden welche GCodes man abfeuert und was genau da eigentlich gemacht wird. Bisher habe ich ganz großzügig die Details ignoriert und per Octopi mich relativ weit weg von meinem Drucker befunden. Aber mit FEATURE_AUTOLEVEL wollen wir uns zumindest zum Anfang etwas näher an den Drucker bewegen. Der direkte Kontakt über Repetier-Host und Repetier-Server erlauben den unmittelbaren Kontakt zu den EEPROM-Werten. Das betrachte ich mal als sehr Vorteilhaft.
Jetzt gilt es auch noch zu verstehen was man hier tut. Das hab ich natuerlich erst mal nicht.
Munter habe ich wilde G28 und G29 GCode Commands auf meinen Drucker abgefeuert und mich gefreut das er sich so toll bewegt. Irgendwie war die Flughöhe des Druckkopfs völlig unbrauchbar, aber hey, der Sensor funktioniert. Yeah! :)
Irgendwann dämmerte mir dann doch das man zwischen Bed Leveling und Z-Probing unterscheiden muss. Und irgendwie ist natuerlich, wie sollte es auch anders sein, beides wichtig :D
G29 S2 Führt z-probing aus und speichert die Werte im EEPROM
G32 S2 Führt bed leveling aus und speichert die Werte im EEPROM
Speziell wenn man die optimale z-probe heigth sucht hilft es also G29 zu nutzen und nicht G32.
Naja, das dachte ich zumindest am Anfang. Mitlerweile denke ich das wenn alles in Ordnung ist kann man mit einem einzelnen G32 S2 Alles erledigen.
Aber der Senor, hier auch noch mit 5V (???) statt 6V-36V betrieben ist in der Wiederholgenauigkeit völlig unbrauchbar. Zwischen "Ins-Bed-bohren" und "1mm Flughöhe muss ich nur ein Bier trinken und schon ist alles anders.
Ein paar Notes aus meiner Forschungszeit:
Für Repetier gilt also:
M119 = Auslesen aller Endstop-Zustände
z..B. Keiner der Endstops ist ausgelöst / State LOW:
23:28:03.482 : M119
23:28:03.586 : endstops hit: x_min:L y_min:L Z-probe state:L
z.B. Der X-Endstop ist ausgelöst / State HIGH:
23:30:03.611 : M119
23:30:03.787 : X:-45.00 Y:-5.00 Z:50.000 E:0.0000
23:30:03.787 : endstops hit: x_min:H y_min:L Z-probe state:L
M114 = Auslesen der derzeitigen Position
z.B. X/Y ist gehomed, Z steht bei 50 und der Extruder wurde noch nicht genutzt
23:32:03.919 : M114
23:32:04.099 : X:-45.00 Y:-5.00 Z:50.000 E:0.0000
G31 = Sensor Status auslesen
z.B. der Senor erkennt das Druchbett / State HIGH:
23:21:37.066 : G31 23:21:37.166 : Z-probe state:H
z.B. der Senor erkennt das Druchbett nicht / State LOW:
23:22:18.990 : G31 23:22:19.091 : Z-probe state:L
Bevor man dann den nächsten Befehlt testet sollte man drauf achten das der Senor sich über dem metallenen Druckbett befindet.
G30 = Z-Probe durchführen
23:24:23.922 : G30 23:25:00.881 : Z-probe:49.934 X:105.01 Y:145.00
M320 ; Activate auto level temporarily M320 S2 ; Activate auto level permanently M321 ; Deactivate autolevel temporarily M321 S2 ; Deactivate auto level permanently M322 ; Reset auto level matrix M322 S3 ; Reset auto level matrix permanently
The Magic Command:
G32 S2 = Automatisched Bed Leveling durchführen und die Werte im EEPROM abspeichern
z.B.
23:36:08.669 : G32 S2 23:36:17.433 : X:-45.00 Y:-5.00 Z:-0.001 E:0.0000 23:36:26.356 : Info:Autoleveling disabled 23:36:37.542 : Z-probe:11.992 X:40.00 Y:40.00 23:36:46.733 : Z-probe:12.740 X:165.00 Y:40.00 23:36:55.685 : Z-probe:12.187 X:105.00 Y:160.00 23:36:55.685 : plane: a = 0.0058 b = -0.0015 c = 11.8221 23:36:55.685 : Transformation matrix: 0.999983 0.000000 -0.005750 0.000009 0.999999 0.001490 0.005750 -0.001490 0.999982 23:36:55.685 : CurrentZ:11.82 atZ:11.80 23:36:55.685 : Info:Autoleveling enabled 23:36:56.492 : X:104.93 Y:160.02 Z:12.185 E:0.0000M205 = EEPROM Werte anzeigen
z.B. meine EEPROM Werte:
23:42:18.504 : M205
23:42:19.017 : EPR:0 1028 0 Language
23:42:19.021 : EPR:2 75 115200 Baudrate
23:42:19.025 : EPR:3 129 1650.485 Filament printed [m]
23:42:19.030 : EPR:2 125 1202029 Printer active [s]
23:42:19.034 : EPR:2 79 0 Max. inactive time [ms,0=off]
23:42:19.038 : EPR:2 83 360000 Stop stepper after inactivity [ms,0=off]
23:42:19.042 : EPR:3 3 100.0000 X-axis steps per mm
23:42:19.046 : EPR:3 7 100.0000 Y-axis steps per mm
23:42:19.051 : EPR:3 11 400.0000 Z-axis steps per mm
23:42:19.055 : EPR:3 15 400.000 X-axis max. feedrate [mm/s]
23:42:19.058 : EPR:3 19 400.000 Y-axis max. feedrate [mm/s]
23:42:19.063 : EPR:3 23 5.000 Z-axis max. feedrate [mm/s]
23:42:19.067 : EPR:3 27 100.000 X-axis homing feedrate [mm/s]
23:42:19.071 : EPR:3 31 100.000 Y-axis homing feedrate [mm/s]
23:42:19.074 : EPR:3 35 4.000 Z-axis homing feedrate [mm/s]
23:42:19.079 : EPR:3 39 20.000 Max. jerk [mm/s]
23:42:19.082 : EPR:3 47 0.707 Max. Z-jerk [mm/s]
23:42:19.086 : EPR:3 133 -45.000 X min pos [mm]
23:42:19.090 : EPR:3 137 -5.000 Y min pos [mm]
23:42:19.094 : EPR:3 141 0.000 Z min pos [mm]
23:42:19.099 : EPR:3 145 210.000 X max length [mm]
23:42:19.103 : EPR:3 149 210.000 Y max length [mm]
23:42:19.106 : EPR:3 153 230.000 Z max length [mm]
23:42:19.111 : EPR:3 1056 0.000 Park position X [mm]
23:42:19.115 : EPR:3 1060 10.000 Park position Y [mm]
23:42:19.119 : EPR:3 1064 10.000 Park position Z raise [mm]
23:42:19.123 : EPR:3 51 1000.000 X-axis acceleration [mm/s^2]
23:42:19.127 : EPR:3 55 1000.000 Y-axis acceleration [mm/s^2]
23:42:19.131 : EPR:3 59 100.000 Z-axis acceleration [mm/s^2]
23:42:19.135 : EPR:3 63 2000.000 X-axis travel acceleration [mm/s^2]
23:42:19.139 : EPR:3 67 2000.000 Y-axis travel acceleration [mm/s^2]
23:42:19.143 : EPR:3 71 100.000 Z-axis travel acceleration [mm/s^2]
23:42:19.148 : EPR:3 1032 50.000 Acceleration factor at top [%,100=like bottom]
23:42:19.152 : EPR:3 1024 0.000 Coating thickness [mm]
23:42:19.156 : EPR:3 808 1.700 Z-probe height [mm]
23:42:19.160 : EPR:3 929 10.000 Max. z-probe - bed dist. [mm]
23:42:19.164 : EPR:3 812 2.000 Z-probe speed [mm/s]
23:42:19.168 : EPR:3 840 150.000 Z-probe x-y-speed [mm/s]
23:42:19.173 : EPR:3 800 -21.000 Z-probe offset x [mm]
23:42:19.177 : EPR:3 804 -47.000 Z-probe offset y [mm]
23:42:19.181 : EPR:3 816 40.000 Z-probe X1 [mm]
23:42:19.185 : EPR:3 820 40.000 Z-probe Y1 [mm]
23:42:19.189 : EPR:3 824 170.000 Z-probe X2 [mm]
23:42:19.193 : EPR:3 828 40.000 Z-probe Y2 [mm]
23:42:19.198 : EPR:3 832 105.000 Z-probe X3 [mm]
23:42:19.202 : EPR:3 836 160.000 Z-probe Y3 [mm]
23:42:19.206 : EPR:3 1036 0.000 Z-probe bending correction A [mm]
23:42:19.210 : EPR:3 1040 0.000 Z-probe bending correction B [mm]
23:42:19.214 : EPR:3 1044 0.000 Z-probe bending correction C [mm]
23:42:19.218 : EPR:0 880 1 Autolevel active (1/0)
23:42:19.226 : EPR:1 1048 55 Bed Preheat temp. [ C]
23:42:19.231 : EPR:0 106 0 Bed Heat Manager [0-3]
23:42:19.236 : EPR:0 107 255 Bed PID drive max
23:42:19.239 : EPR:0 124 80 Bed PID drive min
23:42:19.243 : EPR:3 108 196.000 Bed PID P-gain
23:42:19.248 : EPR:3 112 33.000 Bed PID I-gain
23:42:19.252 : EPR:3 116 290.000 Bed PID D-gain
23:42:19.256 : EPR:0 120 255 Bed PID max value [0-255]
23:42:19.260 : EPR:0 1020 0 Enable retraction conversion [0/1]
23:42:19.264 : EPR:3 992 3.000 Retraction length [mm]
23:42:19.268 : EPR:3 1000 40.000 Retraction speed [mm/s]
23:42:19.272 : EPR:3 1004 0.000 Retraction z-lift [mm]
23:42:19.276 : EPR:3 1008 0.000 Extra extrusion on undo retract [mm]
23:42:19.281 : EPR:3 1016 20.000 Retraction undo speed
23:42:19.285 : EPR:3 200 95.000 Extr.1 steps per mm
23:42:19.288 : EPR:3 204 50.000 Extr.1 max. feedrate [mm/s]
23:42:19.292 : EPR:3 208 20.000 Extr.1 start feedrate [mm/s]
23:42:19.297 : EPR:3 212 5000.000 Extr.1 acceleration [mm/s^2]
23:42:19.301 : EPR:1 294 190 Extr.1 Preheat temp. [ C]
23:42:19.305 : EPR:0 216 3 Extr.1 heat manager [0-3]
23:42:19.309 : EPR:0 217 230 Extr.1 PID drive max
23:42:19.314 : EPR:0 245 40 Extr.1 PID drive min
23:42:19.318 : EPR:3 218 7.0000 Extr.1 PID P-gain/dead-time
23:42:19.322 : EPR:3 222 2.0000 Extr.1 PID I-gain
23:42:19.326 : EPR:3 226 40.0000 Extr.1 PID D-gain
23:42:19.331 : EPR:0 230 255 Extr.1 PID max value [0-255]
23:42:19.334 : EPR:2 231 0 Extr.1 X-offset [steps]
23:42:19.338 : EPR:2 235 0 Extr.1 Y-offset [steps]
23:42:19.343 : EPR:2 290 0 Extr.1 Z-offset [steps]
23:42:19.347 : EPR:1 239 1 Extr.1 temp. stabilize time [s]
23:42:19.351 : EPR:1 250 150 Extr.1 temp. for retraction when heating [C]
23:42:19.355 : EPR:1 252 0 Extr.1 distance to retract when heating [mm]
23:42:19.360 : EPR:0 254 255 Extr.1 extruder cooler speed [0-255]
23:44:58.204 : M205
23:44:58.305 : EPR:0 1028 0 Language
23:44:58.811 : EPR:2 75 115200 Baudrate
23:44:58.811 : EPR:3 129 1650.485 Filament printed [m]
23:44:58.811 : EPR:2 125 1202029 Printer active [s]
23:44:58.811 : EPR:2 79 0 Max. inactive time [ms,0=off]
23:44:58.811 : EPR:2 83 360000 Stop stepper after inactivity [ms,0=off]
23:44:58.811 : EPR:3 3 100.0000 X-axis steps per mm
23:44:58.811 : EPR:3 7 100.0000 Y-axis steps per mm
23:44:58.811 : EPR:3 11 400.0000 Z-axis steps per mm
23:44:58.811 : EPR:3 15 400.000 X-axis max. feedrate [mm/s]
23:44:58.811 : EPR:3 19 400.000 Y-axis max. feedrate [mm/s]
23:44:58.811 : EPR:3 23 5.000 Z-axis max. feedrate [mm/s]
23:44:58.811 : EPR:3 27 100.000 X-axis homing feedrate [mm/s]
23:44:58.811 : EPR:3 31 100.000 Y-axis homing feedrate [mm/s]
23:44:58.811 : EPR:3 35 4.000 Z-axis homing feedrate [mm/s]
23:44:58.811 : EPR:3 39 20.000 Max. jerk [mm/s]
23:44:58.811 : EPR:3 47 0.707 Max. Z-jerk [mm/s]
23:44:58.811 : EPR:3 133 -45.000 X min pos [mm]
23:44:58.811 : EPR:3 137 -5.000 Y min pos [mm]
23:44:58.811 : EPR:3 141 0.000 Z min pos [mm]
23:44:58.811 : EPR:3 145 210.000 X max length [mm]
23:44:58.811 : EPR:3 149 210.000 Y max length [mm]
23:44:58.811 : EPR:3 153 230.000 Z max length [mm]
23:44:58.811 : EPR:3 1056 0.000 Park position X [mm]
23:44:58.812 : EPR:3 1060 10.000 Park position Y [mm]
23:44:58.812 : EPR:3 1064 10.000 Park position Z raise [mm]
23:44:58.812 : EPR:3 51 1000.000 X-axis acceleration [mm/s^2]
23:44:58.812 : EPR:3 55 1000.000 Y-axis acceleration [mm/s^2]
23:44:58.812 : EPR:3 59 100.000 Z-axis acceleration [mm/s^2]
23:44:58.812 : EPR:3 63 2000.000 X-axis travel acceleration [mm/s^2]
23:44:58.812 : EPR:3 67 2000.000 Y-axis travel acceleration [mm/s^2]
23:44:58.812 : EPR:3 71 100.000 Z-axis travel acceleration [mm/s^2]
23:44:58.812 : EPR:3 1032 50.000 Acceleration factor at top [%,100=like bottom]
23:44:58.812 : EPR:3 1024 0.000 Coating thickness [mm]
23:44:58.812 : EPR:3 808 1.700 Z-probe height [mm]
23:44:58.812 : EPR:3 929 10.000 Max. z-probe - bed dist. [mm]
23:44:58.812 : EPR:3 812 2.000 Z-probe speed [mm/s]
23:44:58.812 : EPR:3 840 150.000 Z-probe x-y-speed [mm/s]
23:44:58.812 : EPR:3 800 -21.000 Z-probe offset x [mm]
23:44:58.812 : EPR:3 804 -47.000 Z-probe offset y [mm]
23:44:58.812 : EPR:3 816 40.000 Z-probe X1 [mm]
23:44:58.812 : EPR:3 820 40.000 Z-probe Y1 [mm]
23:44:58.812 : EPR:3 824 170.000 Z-probe X2 [mm]
23:44:58.812 : EPR:3 828 40.000 Z-probe Y2 [mm]
23:44:58.812 : EPR:3 832 105.000 Z-probe X3 [mm]
23:44:58.812 : EPR:3 836 160.000 Z-probe Y3 [mm]
23:44:58.812 : EPR:3 1036 0.000 Z-probe bending correction A [mm]
23:44:58.812 : EPR:3 1040 0.000 Z-probe bending correction B [mm]
23:44:58.812 : EPR:3 1044 0.000 Z-probe bending correction C [mm]
23:44:58.812 : EPR:0 880 1 Autolevel active (1/0)
23:44:58.812 : EPR:1 1048 55 Bed Preheat temp. [ C]
23:44:58.812 : EPR:0 106 0 Bed Heat Manager [0-3]
23:44:58.812 : EPR:0 107 255 Bed PID drive max
23:44:58.812 : EPR:0 124 80 Bed PID drive min
23:44:58.812 : EPR:3 108 196.000 Bed PID P-gain
23:44:58.812 : EPR:3 112 33.000 Bed PID I-gain
23:44:58.812 : EPR:3 116 290.000 Bed PID D-gain
23:44:58.812 : EPR:0 120 255 Bed PID max value [0-255]
23:44:58.812 : EPR:0 1020 0 Enable retraction conversion [0/1]
23:44:58.812 : EPR:3 992 3.000 Retraction length [mm]
23:44:58.812 : EPR:3 1000 40.000 Retraction speed [mm/s]
23:44:58.812 : EPR:3 1004 0.000 Retraction z-lift [mm]
23:44:58.812 : EPR:3 1008 0.000 Extra extrusion on undo retract [mm]
23:44:58.812 : EPR:3 1016 20.000 Retraction undo speed
23:44:58.812 : EPR:3 200 95.000 Extr.1 steps per mm
23:44:58.812 : EPR:3 204 50.000 Extr.1 max. feedrate [mm/s]
23:44:58.812 : EPR:3 208 20.000 Extr.1 start feedrate [mm/s]
23:44:58.812 : EPR:3 212 5000.000 Extr.1 acceleration [mm/s^2]
23:44:58.812 : EPR:1 294 190 Extr.1 Preheat temp. [ C]
23:44:58.812 : EPR:0 216 3 Extr.1 heat manager [0-3]
23:44:58.812 : EPR:0 217 230 Extr.1 PID drive max
23:44:58.812 : EPR:0 245 40 Extr.1 PID drive min
23:44:58.812 : EPR:3 218 7.0000 Extr.1 PID P-gain/dead-time
23:44:58.812 : EPR:3 222 2.0000 Extr.1 PID I-gain
23:44:58.812 : EPR:3 226 40.0000 Extr.1 PID D-gain
23:44:58.813 : EPR:0 230 255 Extr.1 PID max value [0-255]
23:44:58.813 : EPR:2 231 0 Extr.1 X-offset [steps]
23:44:58.813 : EPR:2 235 0 Extr.1 Y-offset [steps]
23:44:58.813 : EPR:2 290 0 Extr.1 Z-offset [steps]
23:44:58.813 : EPR:1 239 1 Extr.1 temp. stabilize time [s]
23:44:58.813 : EPR:1 250 150 Extr.1 temp. for retraction when heating [C]
23:44:58.813 : EPR:1 252 0 Extr.1 distance to retract when heating [mm]
23:44:58.813 : EPR:0 254 255 Extr.1 extruder cooler speed [0-255]
M206 = EEPROM Werte ändern / schreiben
z.B. Z-Probe Höhe auf 2.3mm einstellen:
M206 T3 P808 X2.3 Set Z-Probe heigth [mm]
z.B. Max. z-probe - bed dist auf 10,, einstellen:
M206 T3 P929 X10 Set Max. z-probe - bed dist. [mm]
M502 = Reset to defaults
Info:Configuration reset to defaults.
M500 = Derzeitige Settings im EEPROM speichern.
z.B.
23:48:07.098 : M500
23:48:08.008 : Info:Configuration stored to EEPROM.
PID Tuning:
M303 P0 S230 R8 X1 ; (Extruder0, 230c Reps:8 Autosave)
P sets heater. 0-2 are extruder 0 to 2 and P3 is then the bed.
Donnerstag, 2. August 2018
Repetier v1.0.2 - Implemented Codes - GCode
Ich tat mir bisher immer schwer zu verstehen welcher GCode denn nun der Richtige sei.
The definitve guide, here it is. Denn die Repetier.ino Datei aus der Firmware enthält alle implementierten GCodes.
- G0 -> G1
- G1 - Coordinated Movement X Y Z E, S1 disables boundary check, S0 enables it
- G2 - Clockwise arc X,Y,E = end position, R = Radius or I,J = center
- G3 - Counterclockwise arc X,Y,E = end position, R = Radius or I,J = center
- G4 - Dwell S or P
- G10 S<1 0="short" long="" retract="default"> retracts filament according to stored setting
- G11 S<1 0="short" long="" retract="default"> = Undo retraction according to stored setting
- G20 - Units for G0/G1 are inches.
- G21 - Units for G0/G1 are mm.
- G28 - Home all axis or named axis.
- G29 S<0 ..2=""> - Z-Probe at the 3 defined probe points. S = 1 measure avg. zHeight, S = 2 store avg zHeight
- G30 P<0 ..3=""> - Single z-probe at current position P = 1 first measurement, P = 2 Last measurement P = 0 or 3 first and last measurement
- G30 H R Make probe define new Z and z offset (R) at trigger point assuming z-probe measured an object of H height.
- G31 - Write signal of probe sensor
- G32 S<0 ..2=""> P<0 ..1=""> - Autolevel print bed. S = 1 measure zLength, S = 2 Measure and store new zLength
- G33 - Measure distortion map
- G33 R0 - delete distortion map
- G33 L0 - List distortion map
- G33 X Y Z - Set new distortion for nearest distortion point.
- G90 - Use absolute coordinates
- G91 - Use relative coordinates
- G92 - Set current position to coordinates given
- G131 - set extruder offset position to 0 - needed for calibration with G132
- G132 - calibrate endstop positions. Call this, after calling G131 and after centering the extruder holder.
- G133 - measure steps until max endstops for deltas. Can be used to detect lost steps within tolerances of endstops.
- G134 Px Sx Zx - Calibrate nozzle height difference (need z probe in nozzle!) Px = reference extruder, Sx = only measure extrude x against reference, Zx = add to measured z distance for Sx for correction.
- G201 P X - Go to position X with motor X
- G202 P X - Mark current position as X
- G203 P - Report current motor position
- G204 P S<0> - Enable/disable motor
- G205 P S<0> E<0> - Home motor, S1 = go back to stored position, E1 = home only if endstop was never met, meaning it was never homed with motor.
RepRap M Codes
- M104 - Set extruder target temp
- M105 - Read current temp
- M106 S P I - Fan on speed = 0..255, P = 0 or 1, 0 is default and can be omitted, I1 = Ignore M106/M107 from now on, I0 = disable ignore
- M107 P - Fan off, P = 0 or 1, 0 is default and can be omitted
- M109 - Wait for extruder current temp to reach target temp. Same params as M104
- M114 S1 - Display current position, S1 = also write position in steps
Custom M Codes
- M3 Sx - Spindle on, Clockwise or Laser on during G1 moves. Sx = laser intensity 0-255 if driver supports this (default ignores it)
- M4 - Spindle on, Counterclockwise.
- M5 - Spindle off, Laser off.
- M20 - List SD card
- M21 - Initialize SD card
- M22 - Release SD card
- M23 - Select SD file (M23 filename.g)
- M24 - Start/resume SD print
- M25 - Pause SD print
- M26 - Set SD position in bytes (M26 S12345)
- M27 - Report SD print status
- M28 - Start SD write (M28 filename.g)
- M29 - Stop SD write
- M30 - Delete file on sd card
- M32 create subdirectory
- M42 P S - Change output of pin P to S. Does not work on most important pins.
- M80 - Turn on power supply
- M81 - Turn off power supply
- M82 - Set E codes absolute (default)
- M83 - Set E codes relative while in Absolute Coordinates (G90) mode
- M84 - Disable steppers until next move,
or use S to specify an inactivity timeout, after which the steppers will be disabled. S0 to disable the timeout.
- M85 - Set inactivity shutdown timer with parameter S. To disable set zero (default)
- M92 - Set axisStepsPerMM - same syntax as G92
- M99 S X0 Y0 Z0 - Disable motors for S seconds (default 10) for given axis.
- M104 S T P1 F1 H1 O- Set temperature without wait. P1 = wait for moves to finish, F1 = beep when temp. reached first time
O add offset to temperature in S, H1 use preheat temperature instead of S value.
- M105 X0 - Get temperatures. If X0 is added, the raw analog values are also written.
- M111 S - Set debugging option. Add values for wanted options:
1 = echo commands, 2 = info, 4 = errors, 8 = dry run mode, 16 = only communication, no actions
- M112 - Emergency kill
- M115- Capabilities string
- M116 - Wait for all temperatures in a +/- 1 degree range
- M117 - Write message in status row on lcd
- M119 - Report endstop status
- M140 S H1 O F1 - Set bed target temp, F1 makes a beep when temperature is reached the first time
- M155 S<1> Enable/disable auto report temperatures. When enabled firmware will emit temperatures every second.
- M163 S P - Set weight for this mixing extruder drive
- M164 S P<0 dont="" eeprom="" store="" to=""> - Store weights as virtual extruder S
- M170 B T S L0 - Set preset temperatures for extruder (T+S) or bed (B) or list settings (L0)
- M190 - Wait for bed current temp to reach target temp. Same params as M109
- M200 T D - Use volumetric extrusion. Set D0 or omit D to disable volumetric extr. Omit T for current extruder.
- M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)
- M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000)
- M203 - Set temperature monitor to Sx
- M204 - Set PID parameter X => Kp Y => Ki Z => Kd S Default is current extruder. NUM_EXTRUDER=Heated bed
- M205 - Output EEPROM settings
- M206 - Set EEPROM value
- M207 X Z E - Changes current jerk values, but do not store them in eeprom.
- M209 S<0> - Enable/disable auto retraction
- M220 S - Increase/decrease given feedrate
- M221 S - Increase/decrease given flow rate
- M226 P S - Wait for pin getting state S. Add X0 to init as input without pull-up and X1 for input with pull-up.
- M231 S X Y Z F - Set OPS parameter
- M232 - Read and reset max. advance values
- M233 X Y - Set temporary advance K-value to X and linear term advanceL to Y
- M251 Measure Z steps from homing stop (Delta printers). S0 - Reset, S1 - Print, S2 - Store to Z length (also EEPROM if enabled)
- M280 S - Set ditto printing mode. mode: 0 = off, 1 = 1 extra extruder, 2 = 2 extra extruder, 3 = 3 extra extruders
- M281 Test if watchdog is running and working. Use M281 X0 to disable watchdog on AVR boards. Sometimes needed for boards with old bootloaders to allow reflashing.
- M290 Z - Correct by adding baby steps for Z mm
- M300 S P play frequency
- M302 S<0 1="" or=""> - allow cold extrusion. Without S parameter it will allow. S1 will allow, S0 will disallow.
- M303 P S X0 R C- Auto detect pid values. Use P for heated bed. X0 saves result in EEPROM. R is number of cycles.
method 0 = classic, 1 = some overshoot, 2 = no overshoot, 3 = pessen, 4 = Tyreus-Lyben
- M320 S<0> - Activate auto level, S1 stores it in eeprom
- M321 S<0> - Deactivate auto level, S1 stores it in eeprom
- M322 - Reset auto level matrix
- M323 S0/S1 enable disable distortion correction P0 = not permanent, P1 = permanent = default
- M340 P S R: servoID = 0..3, Servos are controlled by a pulse with normally between 500 and 2500 with 1500ms in center position. 0 turns servo off. R allows automatic disabling after a while.
- M350 S X Y Z E P : Set micro stepping on RAMBO board
- M355 S<0> - Turn case light on/off, no S = report status
- M360 - show configuration
- M400 - Wait until move buffers empty.
- M401 - Store x, y and z position.
- M402 - Go to stored position. If X, Y or Z is specified, only these coordinates are used. F changes feedrate for that move.
- M408 S<0-5> - Return status as json string (requires matching feature) for PanelDue
- M450 - Reports printer mode
- M451 - Set printer mode to FFF
- M452 - Set printer mode to laser
- M453 - Set printer mode to CNC
- M460 X Y : Set temperature range for thermistor controlled fan
- M500 Store settings to EEPROM
- M501 Load settings from EEPROM
- M502 Reset settings to the one in configuration.h. Does not store values in EEPROM!
- M513 - Clear all jam marker.
- M530 S L - Enables explicit printing mode (S1) or disables it (S0). L can set layer count
- M531 filename - Define filename being printed
- M532 X L - update current print state progress (X=0..100) and layer L
- M600 Change filament
- M601 S<1> B<1> P<1> - Pause extruders. B1 also pauses heated bed. Paused extrudes disable heaters and motor. Continue (S0) reheats extruder to old temp. P0 does not wait for target temperature.
- M602 S<1> P<1>- Debug jam control (S) Disable jam control (P). If enabled it will log signal changes and will not trigger jam errors!
- M603 - Simulate a jam
- M604 X Y Z T - Set jam detection values on a per extruder basis. If not set it uses defaults from Configuration.h
- M666 - force communication error, required DEBUG_COM_ERRORS
- M668 - set line number 0 without notice to simulate error
- M670 S - Set eeprom version to a value for testing eeprom upgrade path.
- M908 P 1>1>1>1>1> 0-5>0> 0>0> 0> 0> 0> 1> 0>0> 0> 0>0> 0>0>1>1>
S : Set stepper current for digipot (RAMBO board)
- M999 - Continue from fatal error. M999 S1 will create a fatal error for testing.
- M914 X Y Z Stall detection sensitivity for Trinamic stepper drivers.
- M915 X<0> Y<0> Z<0> Turn StealthChop mode ON or OFF on Trinamic stepper drivers.
*/0>0>0>
The definitve guide, here it is. Denn die Repetier.ino Datei aus der Firmware enthält alle implementierten GCodes.
- G0 -> G1
- G1 - Coordinated Movement X Y Z E, S1 disables boundary check, S0 enables it
- G2 - Clockwise arc X,Y,E = end position, R = Radius or I,J = center
- G3 - Counterclockwise arc X,Y,E = end position, R = Radius or I,J = center
- G4 - Dwell S
- G10 S<1 0="short" long="" retract="default"> retracts filament according to stored setting
- G11 S<1 0="short" long="" retract="default"> = Undo retraction according to stored setting
- G20 - Units for G0/G1 are inches.
- G21 - Units for G0/G1 are mm.
- G28 - Home all axis or named axis.
- G29 S<0 ..2=""> - Z-Probe at the 3 defined probe points. S = 1 measure avg. zHeight, S = 2 store avg zHeight
- G30 P<0 ..3=""> - Single z-probe at current position P = 1 first measurement, P = 2 Last measurement P = 0 or 3 first and last measurement
- G30 H
- G31 - Write signal of probe sensor
- G32 S<0 ..2=""> P<0 ..1=""> - Autolevel print bed. S = 1 measure zLength, S = 2 Measure and store new zLength
- G33 - Measure distortion map
- G33 R0 - delete distortion map
- G33 L0 - List distortion map
- G33 X
- G90 - Use absolute coordinates
- G91 - Use relative coordinates
- G92 - Set current position to coordinates given
- G131 - set extruder offset position to 0 - needed for calibration with G132
- G132 - calibrate endstop positions. Call this, after calling G131 and after centering the extruder holder.
- G133 - measure steps until max endstops for deltas. Can be used to detect lost steps within tolerances of endstops.
- G134 Px Sx Zx - Calibrate nozzle height difference (need z probe in nozzle!) Px = reference extruder, Sx = only measure extrude x against reference, Zx = add to measured z distance for Sx for correction.
- G201 P
- G202 P
- G203 P
- G204 P
- G205 P
RepRap M Codes
- M104 - Set extruder target temp
- M105 - Read current temp
- M106 S
- M107 P
- M109 - Wait for extruder current temp to reach target temp. Same params as M104
- M114 S1 - Display current position, S1 = also write position in steps
Custom M Codes
- M3 Sx - Spindle on, Clockwise or Laser on during G1 moves. Sx = laser intensity 0-255 if driver supports this (default ignores it)
- M4 - Spindle on, Counterclockwise.
- M5 - Spindle off, Laser off.
- M20 - List SD card
- M21 - Initialize SD card
- M22 - Release SD card
- M23 - Select SD file (M23 filename.g)
- M24 - Start/resume SD print
- M25 - Pause SD print
- M26 - Set SD position in bytes (M26 S12345)
- M27 - Report SD print status
- M28 - Start SD write (M28 filename.g)
- M29 - Stop SD write
- M30
- M32
- M42 P
- M80 - Turn on power supply
- M81 - Turn off power supply
- M82 - Set E codes absolute (default)
- M83 - Set E codes relative while in Absolute Coordinates (G90) mode
- M84 - Disable steppers until next move,
or use S
- M85 - Set inactivity shutdown timer with parameter S
- M92 - Set axisStepsPerMM - same syntax as G92
- M99 S
- M104 S
O add offset to temperature in S, H1 use preheat temperature instead of S value.
- M105 X0 - Get temperatures. If X0 is added, the raw analog values are also written.
- M111 S
1 = echo commands, 2 = info, 4 = errors, 8 = dry run mode, 16 = only communication, no actions
- M112 - Emergency kill
- M115- Capabilities string
- M116 - Wait for all temperatures in a +/- 1 degree range
- M117
- M119 - Report endstop status
- M140 S
- M155 S<1> Enable/disable auto report temperatures. When enabled firmware will emit temperatures every second.
- M163 S
- M164 S
- M170 B
- M190 - Wait for bed current temp to reach target temp. Same params as M109
- M200 T
- M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)
- M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000)
- M203 - Set temperature monitor to Sx
- M204 - Set PID parameter X => Kp Y => Ki Z => Kd S
- M205 - Output EEPROM settings
- M206 - Set EEPROM value
- M207 X
- M209 S<0> - Enable/disable auto retraction
- M220 S
- M221 S
- M226 P
- M231 S
- M232 - Read and reset max. advance values
- M233 X
- M251 Measure Z steps from homing stop (Delta printers). S0 - Reset, S1 - Print, S2 - Store to Z length (also EEPROM if enabled)
- M280 S
- M281 Test if watchdog is running and working. Use M281 X0 to disable watchdog on AVR boards. Sometimes needed for boards with old bootloaders to allow reflashing.
- M290 Z
- M300 S
- M302 S<0 1="" or=""> - allow cold extrusion. Without S parameter it will allow. S1 will allow, S0 will disallow.
- M303 P
method 0 = classic, 1 = some overshoot, 2 = no overshoot, 3 = pessen, 4 = Tyreus-Lyben
- M320 S<0> - Activate auto level, S1 stores it in eeprom
- M321 S<0> - Deactivate auto level, S1 stores it in eeprom
- M322 - Reset auto level matrix
- M323 S0/S1 enable disable distortion correction P0 = not permanent, P1 = permanent = default
- M340 P
- M350 S
- M355 S<0> - Turn case light on/off, no S = report status
- M360 - show configuration
- M400 - Wait until move buffers empty.
- M401 - Store x, y and z position.
- M402 - Go to stored position. If X, Y or Z is specified, only these coordinates are used. F changes feedrate for that move.
- M408 S<0-5> - Return status as json string (requires matching feature) for PanelDue
- M450 - Reports printer mode
- M451 - Set printer mode to FFF
- M452 - Set printer mode to laser
- M453 - Set printer mode to CNC
- M460 X
- M500 Store settings to EEPROM
- M501 Load settings from EEPROM
- M502 Reset settings to the one in configuration.h. Does not store values in EEPROM!
- M513 - Clear all jam marker.
- M530 S
- M531 filename - Define filename being printed
- M532 X
- M600 Change filament
- M601 S<1> B<1> P<1> - Pause extruders. B1 also pauses heated bed. Paused extrudes disable heaters and motor. Continue (S0) reheats extruder to old temp. P0 does not wait for target temperature.
- M602 S<1> P<1>- Debug jam control (S) Disable jam control (P). If enabled it will log signal changes and will not trigger jam errors!
- M603 - Simulate a jam
- M604 X
- M666 - force communication error, required DEBUG_COM_ERRORS
- M668 - set line number 0 without notice to simulate error
- M670 S
- M908 P
S
- M999 - Continue from fatal error. M999 S1 will create a fatal error for testing.
- M914 X
- M915 X<0> Y<0> Z<0> Turn StealthChop mode ON or OFF on Trinamic stepper drivers.
*/0>0>0>
Montag, 30. Juli 2018
Firmwareupgrade auf dem 3D Drucker - Firmware passt doch :)
Ich habe mich selbst gehackt indem ich am Ende doch mal ins Repetier-Forum gepostet habe. Die Suche nach externer Inspiration kann ja nicht schaden.
https://forum.repetier.com/discussion/5577/how-can-i-disable-sd-support-solved
Als ich so meine Problematik schilderte dämmerte mir mehr und mehr das ich mir vielleicht doch selber helfen kann. Mir war klar das ich mit folgenden Tweaks noch nicht am Limit war:
Da bei allen Firmwares die ich selber erstellte SD support aktiviert war musste ich ja Opfer der "Gets overwritten by ui-controller or board settings" Problematik sein.
Dadurch das ich die letzten Tage so viel Quellcode gesehen habe konnte ich mich drann erinnern das mein Board "MOTHERBOARD == 63" ist. Dann meinte ich mich weiter zu erinnern das in der pins.h die "bord settings" sind und da habe ich dann mal nachgeschaut. Siehe da, ein "#define SDSUPPORT 1 // sd card reader on board" überschreibt dort ganz unverblühmt die Setting aus der Configuration.h.
Nach einem Update auf #define SDSUPPORT 0 konnte ich meine Firmware kompilieren.
https://forum.repetier.com/discussion/5577/how-can-i-disable-sd-support-solved
Als ich so meine Problematik schilderte dämmerte mir mehr und mehr das ich mir vielleicht doch selber helfen kann. Mir war klar das ich mit folgenden Tweaks noch nicht am Limit war:
Disable "Enable arc support (G2/G3)"
Disable "Enable sd support. Gets overwritten by ui-controller or board settings."
Disable additional languages
Disable menu animations
Disable "Enable sd support. Gets overwritten by ui-controller or board settings."
Disable additional languages
Disable menu animations
Da bei allen Firmwares die ich selber erstellte SD support aktiviert war musste ich ja Opfer der "Gets overwritten by ui-controller or board settings" Problematik sein.
Dadurch das ich die letzten Tage so viel Quellcode gesehen habe konnte ich mich drann erinnern das mein Board "MOTHERBOARD == 63" ist. Dann meinte ich mich weiter zu erinnern das in der pins.h die "bord settings" sind und da habe ich dann mal nachgeschaut. Siehe da, ein "#define SDSUPPORT 1 // sd card reader on board" überschreibt dort ganz unverblühmt die Setting aus der Configuration.h.
Nach einem Update auf #define SDSUPPORT 0 konnte ich meine Firmware kompilieren.
Sonntag, 29. Juli 2018
Firmwareupgrade auf dem 3D Drucker - 128k PROGMEM
Vom 100sten ins 1000ste :)
Dave Johnsen aka fiveangle hat mich auf https://github.com/MarlinFirmware/Marlin in die richtige Richtung geschickt. Sein "simples" Statement:
[...] Search “128k PROGMEM” across open and closed issues and you’ll find lots of resources about this. [...] hat bei mir den lernprozess ausgelöst
Mit meiner Firmware ist alles in Ordnung, aber die 8-bit (???) CPU auf meinem Melzi-Board kann nur 128k Speicher bedienen.
Wir erinnern uns:
https://github.com/repetier/Repetier-Firmware/tree/master/boards/Zonestar%20P802M
https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
https://github.com/Lauszus/Sanguino
https://blog.stevemarple.co.uk/2013/01/how-to-use-atmel-atmega1284-non-p.html
https://www.microchip.com/wwwproducts/en/ATmega1284P
[...]
The high-performance Microchip 8-bit AVR RISC-based microcontroller combines 128KB ISP flash memory with read-while-write capabilities, 4KB EEPROM, 16KB SRAM, 32 general purpose I/O lines, 32 general purpose working registers, a real time counter, three flexible timer/counters with compare modes and PWM, two USARTs, a byte oriented 2-wire serial interface, an 8-channel 10-bit A/D converter with optional differential input stage with programmable gain, programmable watchdog timer with internal oscillator, SPI serial port, a JTAG (IEEE 1149.1 compliant) test interface for on-chip debugging and programming, and six software selectable power saving modes. The device operates between 1.8-5.5 volts.
By executing powerful instructions in a single clock cycle, the device achieves throughputs approaching 1 MIPS per MHz, balancing power consumption and processing speed.
[...]
So kann ich also Stand heute nur eine Firmware mit auto bed leveling kompilieren die mehrere nicht unwichtige Features nicht enthaelt. Z.B. die Display-Ansteuerung :)
Wollen wir doch mal die potentiellen Teile der Firmware identifizieren die wir mal abschalten könnten:
Das Beste zum Schluß, ich bastel wild mit der Repetier Firmware rum, kein wunder das die Profi-Tips von fiveangle nicht fruchten, der tüftelt nämlich an Marlin rum...
Dave Johnsen aka fiveangle hat mich auf https://github.com/MarlinFirmware/Marlin in die richtige Richtung geschickt. Sein "simples" Statement:
[...] Search “128k PROGMEM” across open and closed issues and you’ll find lots of resources about this. [...] hat bei mir den lernprozess ausgelöst
Mit meiner Firmware ist alles in Ordnung, aber die 8-bit (???) CPU auf meinem Melzi-Board kann nur 128k Speicher bedienen.
Wir erinnern uns:
https://github.com/repetier/Repetier-Firmware/tree/master/boards/Zonestar%20P802M
https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
https://github.com/Lauszus/Sanguino
https://blog.stevemarple.co.uk/2013/01/how-to-use-atmel-atmega1284-non-p.html
https://www.microchip.com/wwwproducts/en/ATmega1284P
[...]
The high-performance Microchip 8-bit AVR RISC-based microcontroller combines 128KB ISP flash memory with read-while-write capabilities, 4KB EEPROM, 16KB SRAM, 32 general purpose I/O lines, 32 general purpose working registers, a real time counter, three flexible timer/counters with compare modes and PWM, two USARTs, a byte oriented 2-wire serial interface, an 8-channel 10-bit A/D converter with optional differential input stage with programmable gain, programmable watchdog timer with internal oscillator, SPI serial port, a JTAG (IEEE 1149.1 compliant) test interface for on-chip debugging and programming, and six software selectable power saving modes. The device operates between 1.8-5.5 volts.
By executing powerful instructions in a single clock cycle, the device achieves throughputs approaching 1 MIPS per MHz, balancing power consumption and processing speed.
[...]
So kann ich also Stand heute nur eine Firmware mit auto bed leveling kompilieren die mehrere nicht unwichtige Features nicht enthaelt. Z.B. die Display-Ansteuerung :)
Wollen wir doch mal die potentiellen Teile der Firmware identifizieren die wir mal abschalten könnten:
| Firmware release | Storage used | Storage used ( % ) | Bed leveling? | ARC support? | LCD enabled? | SD enabled? | |||
| 1.0.2 | 87836 | 67 | N | N | N | Y | |||
| 1.0.2 | 121126 | 93 | N | N | Y | Y | |||
| 1.0.2 | 124274 | 95 | N | Y | Y | Y | |||
| 1.0.2 | 101378 | 77 | Y | N | N | Y |
Das Beste zum Schluß, ich bastel wild mit der Repetier Firmware rum, kein wunder das die Profi-Tips von fiveangle nicht fruchten, der tüftelt nämlich an Marlin rum...
Firmwareupgrade auf dem 3D Drucker
Hello again,
tatsächlich ist es mir gelungen ein Firmwareupgrade auf dem 3D Drucker durchzuführen. Aber so richtig leicht war das nicht :)
Alles fing damit an das ich ja gar keine Ahnung hatte wo man die Firmware downloaded.
Nachdem ja ein Grundkonzept von Open Source das "teilen" ist, haben es sich Hersteller meines Druckers nicht nehmen lassen munter gegen diesen fundamentalen Grundsatz zu verstoßen.
Soll heissen es gibt keine offizielle Downloadseite für die Firmware. Das war zumindest so als ich das letzte mal geschaut hatte. Mitlerweile ist das wohl anders, da gibt es diese Seite im Gearbest Blog:
V1.5:
https://www.gearbest.com/blog/download/acrylic-3dcstar-p802-mhs-3d-printer-rom-firmware-1279
V1.6:
https://www.gearbest.com/blog/download/tronxy-acrylic-p802-mhs-3d-printer-firmware-and-guide-2550
Ich hab mir garnicht die Mühe gemacht mich da mal anzumelden, denn ich hatte Großes vor. Ein "selfmade" Firmware Firmwareupgrade :)
Nun denn, leichter gesagt als getan. Ich habe gelernt das man sich seine Firmware selber zusammenbauen muss, aehnlich dem klassischen Kernel kompilieren unter Linux, was ich seit gefühlten 10 Jahren schon nicht mehr machen musste.
Als Einstieg emfpiehlt sich dieses ambitionierte Projekt welches ins Leben gerufen wurde als Gearbest seine Firmware noch nicht online gestellt hatte:
https://github.com/repetier/Repetier-Firmware/tree/master/boards/Zonestar%20P802M
Da gibts es eine Menge Informationen und vor Allem, das Wichtigste:
Configuration.h
Mit dieser File als Grundlage lässt sich naemlich tatsächlich das Projekt realisieren eine eigene Firmware zu erstellen. Dieses File laden wir uns erstmal runter. Das war schon etwas schwerer denn das blinde Abspeichern führt dazu das sich allerlei Extra-Sonderzeichen in der Datei einnissten und sie damit für den nächsten Schritt unbrauchbar wird. Daher sicherstellen das wirklich nichts in der File komisch wirkt und da nur drinn steht was drinn stehen soll.
Aber selbst wenn die File nicht korrupt ist, muss man noch Hand anlegen. Ich war zunächst nicht sicher was genau da zu tun ist, aber durch try & error habe ich ein paar Erkentnisse gewonnen.
Im Kommentarfeld der Firmware für den P802M steht:
// Do not forget to update X/Y/Z min positions for your printer (it homes with
// negative values for X/Y) and then set X/Y/Z max travel so the printer does not
// kick max ends (all set from General tab of web configurator or later via EEPROM
// editor).
Pff. Woher soll ich denn wissen auf welchen negativen Values mein Drucker "homed"? Naja :) Das steht tatsächlich in der alten Firmware. Da kann man es bei noch laufendem Drucker im Menü nachlesen. Einfach ein wenig rummklicken auf dem 5-Knöpfe-Teil und siehe da:
#define X_MIN_POS -45
#define Y_MIN_POS -5
Die "X/Y/Z max travel" hab ich mal nach gut dünken eingestellt. Ich vermute mit 210/210/240 mach ich erstmal nix kaputt. Offiziell kommuniziert werden 220/220/240. Speziell bei Z muss man aufpassen das da oben nichts anschlägt.
#define X_MAX_LENGTH 210
#define Y_MAX_LENGTH 210
#define Z_MAX_LENGTH 240
Warum ich jetzt tatsächlich noch dazu komme diesen Artikel zu schreiben ist die Tatsache das mein erster erfolgreicher Versuch eine Firmware zustande brachte mit:
#define ZAXIS_STEPS_PER_MM1600 400
Für meinen Drucker ist das aber nicht richtig. Da sind 400 korrekt. Da muss ich also nochmal ran.
Dannach fängt die Maschine munter an sich selbst zu zerlegen, weil
#define MAX_JERK 20
gesetzt war. Die Annahme das 20mm/sec Geschwindigkeitsänderung keine Beschleunigung bräuchten ist sehr optimistisch. Ist aber zum "Show Off" im Freundeskreis definitiv ein Setting welches man im Hinterkopf behalten sollte :)
Ich probiers mal mit
#define MAX_JERK 5
Die Firmware die auf dem Drucker zum Einsatz kommt ist:
https://www.repetier.com/documentation/repetier-firmware/
Dorthin mit nehmen wir jetzt unser Configuration.h File und laden uns eine tolle Firmware runter.
tatsächlich ist es mir gelungen ein Firmwareupgrade auf dem 3D Drucker durchzuführen. Aber so richtig leicht war das nicht :)
Alles fing damit an das ich ja gar keine Ahnung hatte wo man die Firmware downloaded.
Nachdem ja ein Grundkonzept von Open Source das "teilen" ist, haben es sich Hersteller meines Druckers nicht nehmen lassen munter gegen diesen fundamentalen Grundsatz zu verstoßen.
Soll heissen es gibt keine offizielle Downloadseite für die Firmware. Das war zumindest so als ich das letzte mal geschaut hatte. Mitlerweile ist das wohl anders, da gibt es diese Seite im Gearbest Blog:
V1.5:
https://www.gearbest.com/blog/download/acrylic-3dcstar-p802-mhs-3d-printer-rom-firmware-1279
V1.6:
https://www.gearbest.com/blog/download/tronxy-acrylic-p802-mhs-3d-printer-firmware-and-guide-2550
Ich hab mir garnicht die Mühe gemacht mich da mal anzumelden, denn ich hatte Großes vor. Ein "selfmade" Firmware Firmwareupgrade :)
Nun denn, leichter gesagt als getan. Ich habe gelernt das man sich seine Firmware selber zusammenbauen muss, aehnlich dem klassischen Kernel kompilieren unter Linux, was ich seit gefühlten 10 Jahren schon nicht mehr machen musste.
Als Einstieg emfpiehlt sich dieses ambitionierte Projekt welches ins Leben gerufen wurde als Gearbest seine Firmware noch nicht online gestellt hatte:
https://github.com/repetier/Repetier-Firmware/tree/master/boards/Zonestar%20P802M
Da gibts es eine Menge Informationen und vor Allem, das Wichtigste:
Configuration.h
Mit dieser File als Grundlage lässt sich naemlich tatsächlich das Projekt realisieren eine eigene Firmware zu erstellen. Dieses File laden wir uns erstmal runter. Das war schon etwas schwerer denn das blinde Abspeichern führt dazu das sich allerlei Extra-Sonderzeichen in der Datei einnissten und sie damit für den nächsten Schritt unbrauchbar wird. Daher sicherstellen das wirklich nichts in der File komisch wirkt und da nur drinn steht was drinn stehen soll.
Aber selbst wenn die File nicht korrupt ist, muss man noch Hand anlegen. Ich war zunächst nicht sicher was genau da zu tun ist, aber durch try & error habe ich ein paar Erkentnisse gewonnen.
Im Kommentarfeld der Firmware für den P802M steht:
// Do not forget to update X/Y/Z min positions for your printer (it homes with
// negative values for X/Y) and then set X/Y/Z max travel so the printer does not
// kick max ends (all set from General tab of web configurator or later via EEPROM
// editor).
Pff. Woher soll ich denn wissen auf welchen negativen Values mein Drucker "homed"? Naja :) Das steht tatsächlich in der alten Firmware. Da kann man es bei noch laufendem Drucker im Menü nachlesen. Einfach ein wenig rummklicken auf dem 5-Knöpfe-Teil und siehe da:
#define X_MIN_POS -45
#define Y_MIN_POS -5
Die "X/Y/Z max travel" hab ich mal nach gut dünken eingestellt. Ich vermute mit 210/210/240 mach ich erstmal nix kaputt. Offiziell kommuniziert werden 220/220/240. Speziell bei Z muss man aufpassen das da oben nichts anschlägt.
#define X_MAX_LENGTH 210
#define Y_MAX_LENGTH 210
#define Z_MAX_LENGTH 240
Warum ich jetzt tatsächlich noch dazu komme diesen Artikel zu schreiben ist die Tatsache das mein erster erfolgreicher Versuch eine Firmware zustande brachte mit:
#define ZAXIS_STEPS_PER_MM
Für meinen Drucker ist das aber nicht richtig. Da sind 400 korrekt. Da muss ich also nochmal ran.
Dannach fängt die Maschine munter an sich selbst zu zerlegen, weil
#define MAX_JERK 20
gesetzt war. Die Annahme das 20mm/sec Geschwindigkeitsänderung keine Beschleunigung bräuchten ist sehr optimistisch. Ist aber zum "Show Off" im Freundeskreis definitiv ein Setting welches man im Hinterkopf behalten sollte :)
Ich probiers mal mit
#define MAX_JERK 5
Die Firmware die auf dem Drucker zum Einsatz kommt ist:
https://www.repetier.com/documentation/repetier-firmware/
Dorthin mit nehmen wir jetzt unser Configuration.h File und laden uns eine tolle Firmware runter.
Samstag, 10. Februar 2018
Long time no see - Ich hab jetzt einen 3D Drucker
Habe mir einen 3D Drucker gekauft. Unendliche Weiten tun sich auf... und gefrickel überall.
Als der Deal https://www.mydealz.de/deals/acrylic-3dcstar-p802-mhs-printer-3d-drucker-gearbest-805173 erschien, kannte ich kein Halten mehr. Prompt geordert, jetzt wird gefrickelt. Jetzt darf ich den Acrylic 3DCSTAR P802-MHS Printer 3D Drucker [Gearbest] mein Eigen nennen.
Aufbau war witzig, da auf der im Lieferumfang entahltenen SD Karte bei mir das Aufbau-Instruktionsvideo korrupt war und ich dachte das muss nur mit der *.PDF Anleitung gehen. Ging auch, mit kleineren Hickups.
Dannach gings an den ersten erfolgreichen Druck der sich auch schwieriger gestaltetete als erwartet. Da ich ja gerne um mehrere Ecken gleichzeitig denke, es mir gerne schwer mache und die einfachen Lösungen gekonnt ignoriere habe ich beim "bed leveling" zwar gelevelt wie ein Weltmeister, allerdings auf 0,0 mm und nicht auf 0,2mm wie es eigentlich richtig wäre. Daher wurde bei mir am Anfang erstmal massig Plastikmüll generiert, da ich immer mit 0,4 mm Flughöhe drucken wollte, was so nicht geht.
... vor Allem dann nicht wenn man sich 400m ABS bestellt und dann lernt das PLA ja viel einfacher ist :)
Nun ja, mitlerweile druckts manchmal ganz gut, meine Einhausung nimmt formen an, Octoprint / Octopi ist am Start und ich möchte mal die Firmware updaten. Aus Jux und Dollerei.
Sollte man nicht mache, mir aber egal.
Here we go...
Als der Deal https://www.mydealz.de/deals/acrylic-3dcstar-p802-mhs-printer-3d-drucker-gearbest-805173 erschien, kannte ich kein Halten mehr. Prompt geordert, jetzt wird gefrickelt. Jetzt darf ich den Acrylic 3DCSTAR P802-MHS Printer 3D Drucker [Gearbest] mein Eigen nennen.
Aufbau war witzig, da auf der im Lieferumfang entahltenen SD Karte bei mir das Aufbau-Instruktionsvideo korrupt war und ich dachte das muss nur mit der *.PDF Anleitung gehen. Ging auch, mit kleineren Hickups.
Dannach gings an den ersten erfolgreichen Druck der sich auch schwieriger gestaltetete als erwartet. Da ich ja gerne um mehrere Ecken gleichzeitig denke, es mir gerne schwer mache und die einfachen Lösungen gekonnt ignoriere habe ich beim "bed leveling" zwar gelevelt wie ein Weltmeister, allerdings auf 0,0 mm und nicht auf 0,2mm wie es eigentlich richtig wäre. Daher wurde bei mir am Anfang erstmal massig Plastikmüll generiert, da ich immer mit 0,4 mm Flughöhe drucken wollte, was so nicht geht.
... vor Allem dann nicht wenn man sich 400m ABS bestellt und dann lernt das PLA ja viel einfacher ist :)
Nun ja, mitlerweile druckts manchmal ganz gut, meine Einhausung nimmt formen an, Octoprint / Octopi ist am Start und ich möchte mal die Firmware updaten. Aus Jux und Dollerei.
Sollte man nicht mache, mir aber egal.
Here we go...
Das Bord welches im Acrylic 3DCSTAR P802-MHS Verwendung findet ist ein "Melzi" Bord. Mit großem Selbstbewusstsein behauptet es V3 zu sein, was es sehr wahrscheinlich zu einem
"Melzi 2.0 1284P" (eBay hybrid) Bord macht. Laut http://reprap.org/wiki/Melzi nutzt es die ATMEGA mcu 1284P mit A4988 Schrittmotor-Treibern. Weiterhin lernen wir dort [...]"Melzi 2.0 1284P" or "Melzi V03" (as above) actually use the 1.0 board schematic, including "Melzi Ardentissimo" lettering and A4988 steppers like the 1.0, but use an ATMEGA 1284P microcontroller like the 2.0. Firmware for the 2.0 will work on these hybrids.[...]
"Melzi 2.0 1284P" (eBay hybrid) Bord macht. Laut http://reprap.org/wiki/Melzi nutzt es die ATMEGA mcu 1284P mit A4988 Schrittmotor-Treibern. Weiterhin lernen wir dort [...]"Melzi 2.0 1284P" or "Melzi V03" (as above) actually use the 1.0 board schematic, including "Melzi Ardentissimo" lettering and A4988 steppers like the 1.0, but use an ATMEGA 1284P microcontroller like the 2.0. Firmware for the 2.0 will work on these hybrids.[...]
Der erste Teil ist wohl interesant um zu verstehen wie man es am besten an die ARDUINO 1.6.12 Software (https://www.arduino.cc/en/Main/Software) anschließt.
Jetzt ist es natürlich erstmal nicht einfach, sondern es darf gefrickelt werden. Die Arduino Software unterstützt den 1284P, auch Sanguino genannt. nicht. Daher darf man unter https://github.com/Lauszus/Sanguino das fehlende Softwareteil runterladen um die Unterstützung zu erhalten.
Weiterhin bleiben wir wachsam, denn es gibt einen 1284P und einen 1284. Wäre ja auch zu einfach wenn es nicht so wäre.
Abonnieren
Posts (Atom)
