Auto bed leveling

This is the place to show off your felix printer hacks and improvements.
Post Reply
lentaa
Posts: 4
Joined: Tue Jan 08, 2013 9:44 pm

Auto bed leveling

Post by lentaa »

Very nice new feature.
Orginal Alex Borrow video.
http://www.youtube.com/watch?v=3IKMeOYz-1Q

Link RepRap forum.
http://forums.reprap.org/read.php?151,246132

And my Felix printer, Satoer hotend carriage and Auto bed leveling system.

Bed calibrating video.
http://youtu.be/rUdbo3npYsk

Printing video.
http://youtu.be/S0oacHu6okc

-Janne

satoer
Posts: 436
Joined: Mon Oct 01, 2012 8:00 pm
Location: Netherlands

Post by satoer »

Even the led bar! Nice to see my designed upgrade’s in use by others. Thanks for sharing :)

I have my reservations regarding the auto-bed leveling. I like the way it works but in my opinion It’s better to have a straight bed than compensate the movements by software.
Is every axis (X, Y and Z) taken in re-calculation account to compensate the extreme slope? Or does it just correct the Z… if it only corrects the Z, the printed object gets skewed.

Extreme example: A cube will be printed like this:
skewed.jpg
skewed.jpg (21.77 KiB) Viewed 1820 times
My Felix 1.5 printed designs on Thingiverse
E3D V6 Hot end upgrade for your Felix
Tweezer bracket for your Felix
Led bar upgrade for your Felix

lentaa
Posts: 4
Joined: Tue Jan 08, 2013 9:44 pm

Post by lentaa »

Thanks
I agree that bed should be level, but if you are printing sometimes nylon and then pla. There’s need to be different bed material. It very boring to calibrate yours z-vane all the time.

Link to model, if someone wants to do this.
http://www.thingiverse.com/thing:189061

Of course you need to download the latest marlin firmware.
You can download here.
https://github.com/ErikZalm/Marlin

satoer
Posts: 436
Joined: Mon Oct 01, 2012 8:00 pm
Location: Netherlands

Post by satoer »

lentaa wrote:Thanks
I agree that bed should be level, but if you are printing sometimes nylon and then pla. There’s need to be different bed material. It very boring to calibrate yours z-vane all the time.
I totally agree. I use different glass plates to print on. One with a inkjet sticker for PLA and one with bare glass smeared with glue stick for ABS. to get an optimal adhesion/ Z - calibration height, I press the Z spindle through the steps while printing the outer rim.

Can I ask what settings you've copied from the Felix Firmware configuration to the original Marlin firmware?
My Felix 1.5 printed designs on Thingiverse
E3D V6 Hot end upgrade for your Felix
Tweezer bracket for your Felix
Led bar upgrade for your Felix

lentaa
Posts: 4
Joined: Tue Jan 08, 2013 9:44 pm

Post by lentaa »

At least these settings will work, but I do not know whether all right?

#define MOTHERBOARD 33

//#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
//const bool X_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
//const bool Y_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
//const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.

const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
//const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
//const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
//const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
#define DISABLE_MAX_ENDSTOPS

#define INVERT_Y_DIR true // for Mendel set to true, for Orca set to false

#define min_software_endstops false // If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops false // If true, axis won't move to coordinates greater than the defined lengths below.

#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)

// these are the offsets to the prob relative to the extruder tip (Hotend - Probe)
#define X_PROBE_OFFSET_FROM_EXTRUDER -26.5
#define Y_PROBE_OFFSET_FROM_EXTRUDER 18
#define Z_PROBE_OFFSET_FROM_EXTRUDER -2.95
//väliä pienemmäksi -2.7 -> -2.8
#define Z_RAISE_BEFORE_HOMING 30 // (in mm) Raise Z before homing (G28) for Probe Clearance.
// Be sure you have this distance over your Z_MAX_POS in case

#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min

#define Z_RAISE_BEFORE_PROBING 10 //How much the extruder will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 10 //How much the extruder will be raised when traveling from between next probing points


//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.

#define PROBE_SERVO_DEACTIVATION_DELAY 300

#define X_MAX_POS 250


#define DEFAULT_AXIS_STEPS_PER_UNIT {76.199904, 76.199904, 1600, 146} // default steps per unit for ultimaker
#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 45} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {5000,5000,100,80000} // 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.

#define DEFAULT_ACCELERATION 1500 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 5000 // X, Y, Z and E max acceleration in mm/s^2 for r retracts

#define DEFAULT_XYJERK 10.0 // (mm/sec)

#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command

#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 130,25} // X,Y,Z Axis Extend and Retract angles

johnnyTrademark
Posts: 12
Joined: Wed Dec 18, 2013 12:58 pm

Post by johnnyTrademark »

That is tremendously cool! How much extra processing time does the auto-level routine take? Will it require too much z-axis interpolation for a slow machine? Do the interpolations go thru the slicer or are they in the printer firmware?

Instead of auto leveling, I'd like to see a bed height "reader" that can tell me how much to adjust my bed manually, as well as automatically set my z-home. I'm no programmer - I haven't done any assembler in twenty years and I know NOTHING about modern compilers or interpreters. I can do the hardware though. I envision a switch that simply clips to the hot end to do the measurements.

Post Reply