Höhe des Druckbett justieren 16. October 2015 11:45 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 16. October 2015 11:59 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 1.720 |
Re: Höhe des Druckbett justieren 16. October 2015 12:04 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 16. October 2015 12:07 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 4.977 |
Triffid Hunter's Calibration Guide | --> X <-- Drill for new Monitor | Most important Gcode. |
Re: Höhe des Druckbett justieren 16. October 2015 12:09 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 89 |
Re: Höhe des Druckbett justieren 16. October 2015 12:10 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 16. October 2015 12:11 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Quote
justMaD
Ich habe auch eine Aufhängung an 3 separaten Z-Achsen und arbeite an einer Prozedur zum Leveln (hab aber auch nocht nicht das Patentrezept)
Fährst du den jeweiligen Motor an die Düse heran, bis der Sensor auslöst und lässt das Druckbett dann in dieser Position, und fährst zum nächsten Punkt?
Oder setzt du das das Bett nach jeder Messung wieder zurück?
Re: Höhe des Druckbett justieren 16. October 2015 12:12 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Quote
Wurstnase
Theoretisch würde das doch quasi in zwei Sequenzen viel genauer gehen. Also so wie du es dir denkst.
1. Bed ganz normal leveln lassen über ABL
2. Matrix dazu nutzen das Bett über die drei Motoren anzugleichen.
3. Vielleicht nochmal mit 1. anfangen um ggf. Fehler auszugleichen.
... Fertig
Re: Höhe des Druckbett justieren 16. October 2015 12:15 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 89 |
Re: Höhe des Druckbett justieren 16. October 2015 12:24 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 4.398 |
Re: Höhe des Druckbett justieren 16. October 2015 13:35 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 16. October 2015 13:43 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 89 |
Re: Höhe des Druckbett justieren 16. October 2015 14:26 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 17. October 2015 07:08 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 17. October 2015 09:20 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
// 1. Durchlauf 6.99 8.07 7.58 // 2. Durchlauf 6.22 6.66 6.42 // 3. Durchlauf 6.25 6.43 6.33 // 4. Durchlauf 6.29 6.35 6.31
Re: Höhe des Druckbett justieren 17. October 2015 09:56 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 1.444 |
Re: Höhe des Druckbett justieren 17. October 2015 12:35 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 17. October 2015 13:21 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 1.444 |
Re: Höhe des Druckbett justieren 18. October 2015 08:17 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
13:49:32.897 : Z-probe:6.33 X:0.00 Y:30.00 13:49:51.624 : Z-probe:6.42 X:220.00 Y:30.00 13:50:10.286 : Z-probe:6.34 X:110.00 Y:210.00 13:50:29.030 : Z-probe:6.31 X:0.00 Y:30.00 13:50:47.725 : Z-probe:6.35 X:220.00 Y:30.00 13:51:06.337 : Z-probe:6.31 X:110.00 Y:210.00 13:51:24.987 : Z-probe:6.30 X:0.00 Y:30.00 13:51:43.644 : Z-probe:6.32 X:220.00 Y:30.00 13:52:02.241 : Z-probe:6.30 X:110.00 Y:210.00 13:52:20.854 : Z-probe:6.30 X:0.00 Y:30.00 13:52:39.503 : Z-probe:6.30 X:220.00 Y:30.00 13:52:58.082 : Z-probe:6.30 X:110.00 Y:210.00 13:53:16.670 : Z-probe:6.29 X:0.00 Y:30.00 13:53:35.316 : Z-probe:6.30 X:220.00 Y:30.00 13:53:53.891 : Z-probe:6.29 X:110.00 Y:210.00 13:54:12.487 : Z-probe:6.30 X:0.00 Y:30.00 13:54:31.141 : Z-probe:6.29 X:220.00 Y:30.00 13:54:49.717 : Z-probe:6.29 X:110.00 Y:210.00 13:55:08.305 : Z-probe:6.29 X:0.00 Y:30.00 13:55:26.946 : Z-probe:6.30 X:220.00 Y:30.00 13:55:45.526 : Z-probe:6.29 X:110.00 Y:210.00 13:56:04.114 : Z-probe:6.29 X:0.00 Y:30.00 13:56:22.755 : Z-probe:6.29 X:220.00 Y:30.00 13:56:41.331 : Z-probe:6.29 X:110.00 Y:210.00
14:02:33.795 : Z-probe:6.68 X:0.00 Y:30.00 14:02:52.841 : Z-probe:6.68 X:220.00 Y:30.00 14:03:11.814 : Z-probe:6.71 X:110.00 Y:210.00 14:03:30.849 : Z-probe:6.70 X:0.00 Y:30.00 14:03:49.891 : Z-probe:6.68 X:220.00 Y:30.00 14:04:08.869 : Z-probe:6.70 X:110.00 Y:210.00 14:04:27.907 : Z-probe:6.71 X:0.00 Y:30.00 14:04:46.974 : Z-probe:6.72 X:220.00 Y:30.00 14:05:05.972 : Z-probe:6.71 X:110.00 Y:210.00 14:05:24.991 : Z-probe:6.70 X:0.00 Y:30.00 14:05:44.057 : Z-probe:6.71 X:220.00 Y:30.00 14:06:03.051 : Z-probe:6.70 X:110.00 Y:210.00 14:06:22.069 : Z-probe:6.70 X:0.00 Y:30.00 14:06:41.124 : Z-probe:6.71 X:220.00 Y:30.00 14:07:00.113 : Z-probe:6.70 X:110.00 Y:210.00
Re: Höhe des Druckbett justieren 18. October 2015 11:17 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 1.444 |
Re: Höhe des Druckbett justieren 18. October 2015 11:38 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 18. October 2015 15:39 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 376 |
Re: Höhe des Druckbett justieren 18. October 2015 15:43 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 18. October 2015 16:12 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Quote
immergut
Wo wird eingestellt, welcher Stepper für welche Achse zuständig ist?
define FEATURE_TWO_ZSTEPPER 1 #define Z2_STEP_PIN E1_STEP_PIN #define Z2_DIR_PIN E1_DIR_PIN #define Z2_ENABLE_PIN E1_ENABLE_PIN #define FEATURE_THREE_ZSTEPPER 1 #define Z3_STEP_PIN E2_STEP_PIN #define Z3_DIR_PIN E2_DIR_PIN #define Z3_ENABLE_PIN E2_ENABLE_PIN
/* Experimental motorized bed leveling (G33 command) for printers with three individual motors for the z axis (print bed). You do need a working Z probe (FEATURE_Z_PROBE) and three individual steppers (FEATURE_TWO_ZSTEPPER and FEATURE_THREE_ZSTEPPER) for this feature to work. This feature does NOT work and is not necessary for delta printers as there is no motorized bed. */ #define FEATURE_MOTORIZED_LEVELING 1 #define MOTORIZED_LEVELING_REPETITIONS 5 // Repetitions of leveling for increased precision /* Z1 motor driver is the reference point for motorized bed leveling. Z2_DRIVER and Z3_DRIVER are the other stepper drivers. The order of the steppers is important as it does have a effect on the levling precision. As the steppers are aligned as a triangle you should level them in the following order: 3 / \ 1---2 */ #define Z2_DRIVER(var) StepperDriver var(ZAXIS_STEPS_PER_MM,MAX_FEEDRATE_Z/4) #define Z3_DRIVER(var) StepperDriver var(ZAXIS_STEPS_PER_MM,MAX_FEEDRATE_Z/4)
Re: Höhe des Druckbett justieren 18. October 2015 19:31 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 376 |
Re: Höhe des Druckbett justieren 19. October 2015 07:48 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 376 |
13:27:52.290 : Z-probe:6.76 X:10.00 Y:10.00 13:28:05.305 : Z-probe:6.76 X:340.00 Y:10.00 13:28:18.274 : Z-probe:6.79 X:205.00 Y:300.00 13:28:21.723 : X:205.00 Y:300.00 Z:0.000 E:0.0000 13:28:31.480 : Z-probe:6.76 X:10.00 Y:10.00 13:28:44.487 : Z-probe:6.75 X:340.00 Y:10.00 13:28:57.439 : Z-probe:6.77 X:205.00 Y:300.00 13:29:00.855 : X:205.00 Y:300.00 Z:0.000 E:0.0000 13:29:10.600 : Z-probe:6.77 X:10.00 Y:10.00 13:29:18.603 : Communication timeout - reset send buffer block 13:29:23.626 : Z-probe:6.76 X:340.00 Y:10.00 13:29:36.582 : Z-probe:6.77 X:205.00 Y:300.00 13:29:39.978 : X:205.00 Y:300.00 Z:0.000 E:0.0000 13:29:49.745 : Z-probe:6.77 X:10.00 Y:10.00 13:30:02.771 : Z-probe:6.77 X:340.00 Y:10.00 13:30:15.722 : Z-probe:6.77 X:205.00 Y:300.00 13:30:19.126 : X:205.00 Y:300.00 Z:0.000 E:0.0000 13:30:28.891 : Z-probe:6.77 X:10.00 Y:10.00 13:30:41.909 : Z-probe:6.78 X:340.00 Y:10.00 13:30:50.386 : Communication timeout - reset send buffer block 13:30:54.881 : Z-probe:6.77 X:205.00 Y:300.00 13:30:58.282 : X:205.00 Y:300.00 Z:0.000 E:0.0000 13:30:58.532 : Resend:763
Re: Höhe des Druckbett justieren 19. October 2015 08:04 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Re: Höhe des Druckbett justieren 19. October 2015 09:02 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 376 |
Re: Höhe des Druckbett justieren 19. October 2015 09:19 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 2.094 |
Quote
immergut
Hallo Glatzemann,
hatte bei der ersten Messung das Bett sehr schief gestellt und festgestellt, dass das Bett nicht so gut ausgerichtet wurde. Habe aber die Messreihe nicht mehr hier. Müsste ich nochmal neu testen.
Quote
immergut
In der Repetier.ino und Repetier.h musste ich noch die Änderungen machen, die hier in deinem Github auch schon drin hast. Die waren bei mir über die Konfig mit dem Repetier-Tool noch nicht drin.
Re: Höhe des Druckbett justieren 19. October 2015 09:43 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 89 |
GCode::executeFString(Com::tZProbeStartScript); //bool iterate = com->hasP() && com->P>0; Printer::coordinateOffset[X_AXIS] = Printer::coordinateOffset[Y_AXIS] = Printer::coordinateOffset[Z_AXIS] = 0; //Printer::setAutolevelActive(false); // iterate float h1,h2,h3,hc,oldFeedrate = Printer::feedrate; Printer::moveTo(EEPROM::zProbeX1(),EEPROM::zProbeY1(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed()); //Move to first point h1 = Printer::runZProbe(true,false,Z_PROBE_REPETITIONS,false); //Test distance and save it as h1 if(h1 < 0) break; Printer::moveTo(EEPROM::zProbeX2(),EEPROM::zProbeY2(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed()); //Move to second point h2 = Printer::runZProbe(false,false); //Test distance and save it as h2 if(h2 < 0) break; Printer::moveTo(EEPROM::zProbeX3(),EEPROM::zProbeY3(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed()); //Move to third point h3 = Printer::runZProbe(false,true); //Test distance and save it as h3 if(h3 < 0) break; Printer::buildTransformationMatrix(h1,h2,h3); //Calculate a Transformation Matrix based on those 3 values Printer::zMin = 0; ////////////////////////////////////////////////////////////////////////// //create temporary variables float zDelta0,zDelta1,zDelta2,xTemp,yTemp; long zSteps0,zSteps1,zSteps2; //calculate z distance deviation at the extrapolated stepper motor positions Printer::transformToPrinter(Z0_X,Z0_Y,0,xTemp,yTemp,zDelta0); //Zn_X and Zn_Y describe the position of the stepper motor axis/spindle in cartesian coordinates Printer::transformToPrinter(Z1_X,Z1_Y,0,xTemp,yTemp,zDelta1); Printer::transformToPrinter(Z2_X,Z2_Y,0,xTemp,yTemp,zDelta2); //calculate how many steps the deviation is for each stepper. Rounding down with factor depending on whether it's a positive or negative move zSteps0 = static_cast(floor(zDelta0 * Printer::axisStepsPerMM[Z_AXIS] + (0.5 * zDelta0>0?1:-1) )); zSteps1 = static_cast(floor(zDelta1 * Printer::axisStepsPerMM[Z_AXIS] + (0.5 * zDelta1>0?1:-1) )); zSteps2 = static_cast(floor(zDelta2 * Printer::axisStepsPerMM[Z_AXIS] + (0.5 * zDelta2>0?1:-1) )); //calculate the distance in mm float z0_mm = zSteps0 / Printer::axisStepsPerMM[Z_AXIS]; float z1_mm = zSteps1 / Printer::axisStepsPerMM[Z_AXIS]; float z2_mm = zSteps2 / Printer::axisStepsPerMM[Z_AXIS]; //small safety control (probably not safe enough yet) #define MAX_Z_DEVIATION 4 if (abs(z0_mm) > MAX_Z_DEVIATION || abs(z1_mm) > MAX_Z_DEVIATION || abs(z2_mm) > MAX_Z_DEVIATION || (abs(z0_mm) + abs(z1_mm) + abs(z2_mm)) > MAX_Z_DEVIATION*2 ) { Serial.println(PSTR("Printbed is too uneven!")); UI_STATUS_UPD_RAM(PSTR("Printbed is too uneven!")); break; } //GCode to actually move the steppers // Angepasst auf deinen Code mit den Driver-Interfaces, wäre das dann ungefähr so: #ifdef ZPROBE_1_BENDING_CORRECTION z0_mm += ZPROBE_1_BENDING_CORRECTION; #endif #ifdef ZPROBE_2_BENDING_CORRECTION z1_mm += ZPROBE_2_BENDING_CORRECTION; #endif #ifdef ZPROBE_3_BENDING_CORRECTION z2_mm += ZPROBE_3_BENDING_CORRECTION; #endif Z2_DRIVER(z2Motor); Z3_DRIVER(z3Motor); z2Motor.initialize(); z3Motor.initialize(); // h1 is reference heights, h2 => motor 0, h3 => motor 1 z1_mm -= z0_mm; z2Motor.setCurrentAs(0); z2Motor.gotoPosition(-z1_mm); z2_mm -= z0_mm; z3Motor.setCurrentAs(0); z3Motor.gotoPosition(-z2_mm); /////////////// Levelling should now be complete ////////////////////////////////////////////////////////////////////////// Printer::updateDerivedParameter(); Printer::updateCurrentPosition(true); printCurrentPosition(); Printer::feedrate = oldFeedrate;