Permalink
Browse files

Kossel Air now printing properly, with G29 nonlinear autolevel. Still…

… using retractable allen wrench Z probe.
  • Loading branch information...
1 parent 572c71e commit b1071ac4a2084cfcc369d445093bd71e64dece22 @jcrocholl committed Feb 27, 2014
Showing with 30 additions and 19 deletions.
  1. +17 −11 Marlin/Configuration.h
  2. +1 −1 Marlin/Configuration_adv.h
  3. +12 −7 Marlin/Marlin_main.cpp
View
28 Marlin/Configuration.h
@@ -103,13 +103,13 @@
// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// and processor overload (too many expensive sqrt calls).
-#define DELTA_SEGMENTS_PER_SECOND 20
+#define DELTA_SEGMENTS_PER_SECOND 160
// Center-to-center distance of the holes in the diagonal push rods.
-#define DELTA_DIAGONAL_ROD 215.0 // mm
+#define DELTA_DIAGONAL_ROD 186.0 // mm
// Horizontal offset from middle of printer to smooth rod center.
-#define DELTA_SMOOTH_ROD_OFFSET 137.0 // mm
+#define DELTA_SMOOTH_ROD_OFFSET 128.0 // mm
// Horizontal offset of the universal joints on the end effector.
#define DELTA_EFFECTOR_OFFSET 19.9 // mm
@@ -121,7 +121,7 @@
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
-#define DELTA_PRINTABLE_RADIUS 75.0
+#define DELTA_PRINTABLE_RADIUS 70.0
// Effective X/Y positions of the three vertical towers.
#define SIN_60 0.8660254037844386
@@ -378,16 +378,16 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
#ifdef ENABLE_AUTO_BED_LEVELING
// these are the positions on the bed to do the probing
- #define DELTA_PROBABLE_RADIUS (DELTA_PRINTABLE_RADIUS-15)
+ #define DELTA_PROBABLE_RADIUS (DELTA_PRINTABLE_RADIUS-10)
#define LEFT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
#define RIGHT_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
#define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
#define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
- #define X_PROBE_OFFSET_FROM_EXTRUDER -1
- #define Y_PROBE_OFFSET_FROM_EXTRUDER 21
- #define Z_PROBE_OFFSET_FROM_EXTRUDER -6.4
+ #define X_PROBE_OFFSET_FROM_EXTRUDER -1.0
+ #define Y_PROBE_OFFSET_FROM_EXTRUDER 21.0
+ #define Z_PROBE_OFFSET_FROM_EXTRUDER -6.7
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.
// Be sure you have this distance over your Z_MAX_POS in case
@@ -427,7 +427,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
#define ACCURATE_BED_LEVELING
#ifdef ACCURATE_BED_LEVELING
- #define ACCURATE_BED_LEVELING_POINTS 9
+ #define ACCURATE_BED_LEVELING_POINTS 7
#define ACCURATE_BED_LEVELING_GRID_X ((RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION) / (ACCURATE_BED_LEVELING_POINTS - 1))
#define ACCURATE_BED_LEVELING_GRID_Y ((BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION) / (ACCURATE_BED_LEVELING_POINTS - 1))
@@ -449,15 +449,21 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
// For deltabots this means top and center of the Cartesian print volume.
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
-#define MANUAL_Z_HOME_POS 205 // For delta: Distance between nozzle and print surface after homing.
+#define MANUAL_Z_HOME_POS 214 // For delta: Distance between nozzle and print surface after homing.
//// MOVEMENT SETTINGS
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {200*60, 200*60, 200*60, 0} // set the homing speeds (mm/min)
// default settings
-#define DEFAULT_AXIS_STEPS_PER_UNIT {100, 100, 100, 100}
+#define XYZ_FULL_STEPS_PER_ROTATION 200
+#define XYZ_MICROSTEPS 16
+#define XYZ_BELT_PITCH 2
+#define XYZ_PULLEY_TEETH 17
+#define XYZ_STEPS (XYZ_FULL_STEPS_PER_ROTATION * XYZ_MICROSTEPS / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH))
+
+#define DEFAULT_AXIS_STEPS_PER_UNIT {XYZ_STEPS, XYZ_STEPS, XYZ_STEPS, 100}
#define DEFAULT_MAX_FEEDRATE {200, 200, 200, 200} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,9000,9000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
View
2 Marlin/Configuration_adv.h
@@ -384,7 +384,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
#if defined SDSUPPORT
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
- #define BLOCK_BUFFER_SIZE 16 // maximize block buffer
+ #define BLOCK_BUFFER_SIZE 64 // maximize block buffer
#endif
View
19 Marlin/Marlin_main.cpp
@@ -995,7 +995,7 @@ static void engage_z_probe() {
#else // Deploy the Z probe by touching the belt, no servo needed.
feedrate = homing_feedrate[X_AXIS];
destination[X_AXIS] = 35;
- destination[Y_AXIS] = 78;
+ destination[Y_AXIS] = 72;
destination[Z_AXIS] = 100;
prepare_move_raw();
@@ -1024,12 +1024,17 @@ static void retract_z_probe() {
destination[Z_AXIS] = current_position[Z_AXIS] + 20;
prepare_move_raw();
- destination[X_AXIS] = -55;
- destination[Y_AXIS] = 63;
- destination[Z_AXIS] = 30;
+ destination[X_AXIS] = -46;
+ destination[Y_AXIS] = 59;
+ destination[Z_AXIS] = 28;
prepare_move_raw();
- // Move the nozzle below the print surface to push the probe up.
+ // TODO: Move the nozzle down until the Z probe switch is activated.
+ //enable_endstops(true);
+ //destination[Z_AXIS] = current_position[Z_AXIS] - 30;
+ //enable_endstops(false);
+
+ // Move the nozzle down further to push the probe into retracted position.
feedrate = homing_feedrate[Z_AXIS]/10;
destination[Z_AXIS] = current_position[Z_AXIS] - 20;
prepare_move_raw();
@@ -3298,7 +3303,7 @@ void adjust_delta(float cartesian[3])
delta[Y_AXIS] += offset;
delta[Z_AXIS] += offset;
- // / *
+ /*
SERIAL_ECHOPGM("grid_x="); SERIAL_ECHO(grid_x);
SERIAL_ECHOPGM(" grid_y="); SERIAL_ECHO(grid_y);
SERIAL_ECHOPGM(" floor_x="); SERIAL_ECHO(floor_x);
@@ -3312,7 +3317,7 @@ void adjust_delta(float cartesian[3])
SERIAL_ECHOPGM(" left="); SERIAL_ECHO(left);
SERIAL_ECHOPGM(" right="); SERIAL_ECHO(right);
SERIAL_ECHOPGM(" offset="); SERIAL_ECHOLN(offset);
- // * /
+ */
}
void prepare_move_raw()

1 comment on commit b1071ac

@hmolinacastro

Hi, i bought a kossel mini printer and download the marlin configuration that you put on github for the arduino ramps 1.4 for windows but when i try to compile it show me a lot of errors, can you help me and tell me what´s wrong? i´m using windows 7 with arduino 1.0.5, please help, thanks

Please sign in to comment.