Welcome! Log In Create A New Profile

Advanced

Bed Auto Leveling.. check this out

Posted by AlexBorro 
Re: Bed Auto Leveling.. check this out
November 28, 2013 10:11AM
Here are a couple more things to put on the troubleshoot list:

Some of these servos are temperature sensitive. I have one here that changes position by about 30 degrees from cold to hot.

Really simple test:

Before you get the servo into your setup, hook it to the Ramps (or what ever).

1) Send a "M280 P0 S90" to it with Pronterface.
2) Push one of the horns onto the hub so you can see the location of the hub.
3) Put the servo on your (hot) heated bed for 5 seconds or so.
4) Send a "M280 P0 S0"
5) Send a "M280 P0 S90"

If it's not at the same location, it's temperature sensitive. All of the SG-90's I have here move quite a bit. They also move when mounted on the carriage as I heat up the extruder and the heated bed. The 5 seconds on the bed is roughly similar to what I see hot to cold on the carriage.

The issue (obviously) is that if the servo does not repeat the angle as temperature changes, your bed will still be level. It will not be at the right height.

So - anybody else what to check their servos and report the results? I would very much like to not have to buy one of every servo on the planet to check them all out....


-------------

Did some hot / cold bed height delta's on the servos. With zero cold, the bed is off by about 4 mm as it warms up. I can't track it the whole way because past that it no longer triggers the switch. Both SG-90's do the same thing. A Hitec HS-422 shows almost no drift with temperature. Of course it's almost the size of the extruder motor ....

Edited 2 time(s). Last edit at 11/29/2013 10:42PM by uncle_bob.
Re: Bed Auto Leveling.. check this out
November 30, 2013 08:40PM
Quote
Chikei
Hi, i have a Makerfarm Prusa i3 8" and im trying to add auto bed leveling to it.
I got G28/G30 work correctly, but when I run G29, the z probe be lowered immediately then z-axis lowered and then z probe retracted.
XY axis are not moving at all but the system thinks it's moved.
Can anyone help me ?

A little earlier in this thread, I had a similiar problem, Here was the solution:
Quote
zennmaster
I uncommented "#define DISABLE_MAX_ENDSTOPS" in configuration.h and now everything is working great!
Re: Bed Auto Leveling.. check this out
December 02, 2013 12:38AM
My bad didn't see the post sad smiley and now auto bed leveling works like a charm!
Re: Bed Auto Leveling.. check this out
December 02, 2013 08:29PM
I know .... bad form to reply to one's own post .... I'm an idiot ...

The TowerPro SG-90 isn't very stable with temperature. The Hitec HS-65HB is *very* stable with temperature. I can leave it on the heated bed pretty much as long as I dare (a minute or two) and it does not drift. The SG-90 would have probably moved 45 degrees with the same treatment. The HS-65HB is a bit more expensive (10X) and it's not quite the same size (narrower and slightly longer). It will fit with some carving. It also seems to work fine with the Arduino / Mega / Marlin / Ramps driving it.

[www.amazon.com]
Re: Bed Auto Leveling.. check this out
December 02, 2013 08:49PM
Does a RAMBO controller have the necessary pins to power the servo?

There are 2 pins on the schemo labeled "Aux Power Out 5V".
Re: Bed Auto Leveling.. check this out
December 03, 2013 09:53PM
Any way to run this on a sanginololu board?
Re: Bed Auto Leveling.. check this out
December 04, 2013 06:09PM
The servo it's self only needs one pin to drive it. The other two pins are simply a ground and a +5V supply pin. Any board that brings out the same spare pin as the Ramps uses can easily be set up to do this.
Re: Bed Auto Leveling.. check this out
December 04, 2013 06:25PM
Quote
uncle_bob
The servo it's self only needs one pin to drive it. The other two pins are simply a ground and a +5V supply pin. Any board that brings out the same spare pin as the Ramps uses can easily be set up to do this.

I would be interested in know how someone has done that with a Printrboard. I have a box full of them that I haven't used yet and would like to add this feature using these boards. The firmware ans settings is what does all the hard work, just need to get the Printrboard to operate the servo when needed. There doesn't seem to be enough info on the Printrboard for some reason.


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Bed Auto Leveling.. check this out
December 05, 2013 01:14PM
You would need a schematic of the board in order to trace out the "spare" pins. There is no guarantee the pins you need come out. If at least one of the servo drive pins on the Ramps shows up, it should be a pins.h or configuration.h sort of thing to get Marlin to spit data out there.
Re: Bed Auto Leveling.. check this out
December 06, 2013 02:44AM
Hi,

I was wondering if someone could help me out.

I've ben trying to get the auto bed leveling to work on my makerfarm I3 as well, but I'm having issues with my Z axis after updating the firmware and setting it up for auto bed leveling.

What happens:

As soon as I perform a G28, the printhead moves back to X0 and Y0, no issues there. But just before the servo is extended, the Z axis wants to perform a Z_RAISE_BEFORE_HOMING 5, but the Z motors only make noise, You can see they want to accelarate and decelarate so you see the motors flinch a bit, but that's it, only noise. So it looks like they skip all the steps. The same happens with G29 with Z_RAISE_BEFORE_PROBING 5 and Z_RAISE_BETWEEN_PROBINGS 5. I also tried to print something anyway, and with several Z movements this happens as well, so even G-code driven Z movements have the issue.

I have made a quick movie and posted it on Youtube that shows the issue during G29:

Auto Bed leveling Issue

I have tried the original Marlin firmware, and also the firmware from ZennmasterM (who has a nice instructional movie on Youtube), and tried a lot of settings, but nothing works. When reverting back the the original Makerfarm firmware everything works fine again. I have to admit that I didn't try the AlexBorro firmware yet, so I'm trying that tonight.

I also tired increasing the current on the steppers, even all the way up to MAX. I even tried swapping out the steppers, but whatever I try, the results are the same. So it really looks like a firmware issue to me.

Now.. I'm not a coding expert, but I did take a deeper look into the other code and files, and I think I found that all these actions adress the DEFAULT_MAX_FEEDRATE, which I have set to 2.5 mm/sec. In my Configuration.H I have the below settings:

//// MOVEMENT SETTINGS
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {50*60, 50*60, 150, 0} // set the homing speeds (mm/min)

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,841} // default steps per unit for Ultimaker
#define DEFAULT_MAX_FEEDRATE {250, 250, 2.5, 22} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {1000,1000,5,1000} // 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 500 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 500 // X, Y, Z and E max acceleration in mm/s^2 for retracts


The strange thing is that all actions adressing the HOMING_FEEDRATE works fine, which I have set to 150 mm/min. And 150 mm/min is equal to 2.5 mm/sec. So in terms of speed there shouldn't be an issue.

So perhaps somthing in the other code related to the MAX_FEEDRATE is messing up with the movement. But mu knowledge ende there I'm affraid.. sad smiley

So.. I was hoping some briliant mind could help me out? smiling smiley

Thanks!
Re: Bed Auto Leveling.. check this out
December 06, 2013 03:25AM
Check out this part that is further up in this forum.



There is a problem in the code for the feedrates when moving for bed leveling.

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

This is not only used for XY travel but also for Z travel. That is the reason the Z motor stall.

I fixed some things in the code so that the Z moves uses the homing_feedrate and not XY_TRAVEL_SPEED This fixed the stalling Z motor problems for me.

You could also set the XY_TRAVEL_SPEED to someting like 150 but that means XY travel would be very slow.

static void do_blocking_move_to(float x, float y, float z) {
float oldFeedRate = feedrate;

feedrate = homing_feedrate[Z_AXIS];

current_position[Z_AXIS] = z;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate/60, active_extruder);
st_synchronize();

feedrate = XY_TRAVEL_SPEED;

current_position[X_AXIS] = x;
current_position[Y_AXIS] = y;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate/60, active_extruder);
st_synchronize();

feedrate = oldFeedRate;
}


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Bed Auto Leveling.. check this out
December 06, 2013 12:21PM
Thanks!

I appied the above modifications, and now the Z_raises work normally for G29. Howver, for G28 the issue remains. Is that described somewhere else in the code?
Re: Bed Auto Leveling.. check this out
December 09, 2013 06:40PM
Quote
uncle_bob
You would need a schematic of the board in order to trace out the "spare" pins. There is no guarantee the pins you need come out. If at least one of the servo drive pins on the Ramps shows up, it should be a pins.h or configuration.h sort of thing to get Marlin to spit data out there.

I have checked out the Printrboard info, but I can't work out what pin to use for the servo.
The best info I found here

Anyone knowledgeable enough to work out how to operate a servo on a Printrboard?


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Bed Auto Leveling.. check this out
December 10, 2013 12:44PM
Based on a quick look at the schematic on the link, they didn't bring any of the extra pins out where you can get them. You might be able to lift one of the CPU pins and connect a wire to in in mid air.
Re: Bed Auto Leveling.. check this out
December 16, 2013 06:27AM
Hi all,

as far as I see the RUMBA board has all pins availabble, but to which pins on Exp-3 do I wire a servo? In the Wiki, it says:

Power and ALL unused pins available on EXP-3 feature connector:

+5V and +12V
2x ADC
2x PWM I/O
4x I/O
I2C

I plan using the Z-Probe I developed as shown here. Still have to see where to place it.


Gruß, Ralf

Mendel 90 breit, hoch, 24V

Meine Erfahrungen im EngineeringSpot-Blog: EngineeringSpot
Re: Bed Auto Leveling.. check this out
December 16, 2013 09:26AM
Thanks, ralfsteck, I will check this out.
Re: Bed Auto Leveling.. check this out
December 18, 2013 06:38PM
Could someone help me straighten out my code please? I've got everything hooked up but it wants to operate backwards;

When I issue an M401 it wants to raise the probe instead of lowering it, an M402 will lower the probe. I didn't think this was an issue until I issued the G28 gommand and the probe raised and had I not pressed the microswitch by hand I would have had a hard nozzle crash into the bed.

I'm not sure what I need to change in my code to reverse this and was hoping someone could help.

I don't know if it's how my endstop settings are or if I need to look elswhere.
Re: Bed Auto Leveling.. check this out
December 18, 2013 07:12PM
In the line:
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 174,110} // X,Y,Z Axis Extend and Retract angles
You have the extend & retract values reversed.

The above numbers are what I use, yours will be different.
Re: Bed Auto Leveling.. check this out
December 20, 2013 08:16AM
this could solve the least favorable part about 3d printing! I remember seeing Up!2 having a similar system.
Re: Bed Auto Leveling.. check this out
December 20, 2013 08:30AM
Quote
stephenrc
In the line:
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 174,110} // X,Y,Z Axis Extend and Retract angles
You have the extend & retract values reversed.

The above numbers are what I use, yours will be different.

Thanks Stephen,

That solved the reverse issue but now I'm having another issue. When I issue the G28 command, the nozzle travels to the home position, the servo flips the arm and microswitch down and the Z-Axis moves to the bed but after that it does not continue to probe any of the other positions.

I tried to load an STL and run a print job to see what would happen and it did not perform any of the probing actions, just went to the home position, flipped the probe arm up and started printing in the air.

I'm sure I have something either set wrong or commented wrong so I'll have to pour over all the other posts in this thread. But, if anyone has any suggestions I would greatly appreciate them.
Re: Bed Auto Leveling.. check this out
December 20, 2013 08:38AM
If I remeber correctly G28 is just homing you need to issue a G29 to do the probing.
Re: Bed Auto Leveling.. check this out
December 20, 2013 09:02AM
Quote
wdl1908
If I remeber correctly G28 is just homing you need to issue a G29 to do the probing.

Hmm, it's amazing how some of the simplest things can fix seemingly tough problems. Thanks, I'll check that out when I get home tonight.

So, if you wanted to append your G-Code to make things automatic would the sequence be something like this?

G28 : Move to Origin (Homing position)
G90 : Set position to absolute
M109 S115 : Warm the bed
M6 : Wait for bed to reach temp
G29 : Perform Bed Probing
M104 S235 : Set Extruder Temp

Or am I missing any commands?
Re: Bed Auto Leveling.. check this out
December 20, 2013 09:10AM
After you have it working, you need to do some small adjustments to the Z offset to get it perfect.
Do the normal measurements using the nozzle down 0.1 in Pronterface followed by a M119 to get the endstop status and once you have the exact measurement that shows in the lower right hand window, use this to set your offset.
After testing you may need to adjust this amount very slightly one way or the other. It is really worth spending a bit of time to do this as it will make a huge difference to your final prints.
Once the first layer is down the rest prints nicely anyway, but the first layer is the all important layer in my opinion.

Edited 1 time(s). Last edit at 12/20/2013 10:01AM by regpye.


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Bed Auto Leveling.. check this out
December 20, 2013 09:14AM
Quote
p40whk

Hmm, it's amazing how some of the simplest things can fix seemingly tough problems. Thanks, I'll check that out when I get home tonight.

So, if you wanted to append your G-Code to make things automatic would the sequence be something like this?

G28 : Move to Origin (Homing position)
G90 : Set position to absolute
M109 S115 : Warm the bed
M6 : Wait for bed to reach temp
G29 : Perform Bed Probing
M104 S235 : Set Extruder Temp

Or am I missing any commands?

remember that the G29 leaves the head somewhere out there.
You really should home the head with a move command.

G1 X0 Y0 F4000
G1 Z1

this leaves the head in 0, 0, 1 position (mm)
Re: Bed Auto Leveling.. check this out
December 20, 2013 09:19AM
Quote
regpye
After you have it working, you need to do some small adjustments to the Z offset to get it perfect.
Do the normal measurements using the nozzle down 0.01 in Pronterface followed by a M119 to get the endstop status and once you have the exact measurement that shows in the lower right hand window, use this to set your offset.
After testing you may need to adjust this amount very slightly one way or the other. It is really worth spending a bit of time to do this as it will make a huge difference to your final prints.
Once the first layer is down the rest prints nicely anyway, but the first layer is the all important layer in my opinion.

Regpye,

I've performed the nozzle offeset measurements using the M119 to verify my probe hit it's endstop and followed that with an M114 to get the offset coordinates but how do you know if you need to adjust this afterwards and in what direction?
Re: Bed Auto Leveling.. check this out
December 20, 2013 09:29AM
Quote
wdl1908
remember that the G29 leaves the head somewhere out there.
You really should home the head with a move command.

G1 X0 Y0 F4000
G1 Z1

this leaves the head in 0, 0, 1 position (mm)

So add these commands after the G29 command is given?
Re: Bed Auto Leveling.. check this out
December 20, 2013 09:36AM
The "step it until it hits" approach has a step size of 0.1 mm (smallest step in Pronterface). IF you are running a layer height of 0.1 mm, that's not close enough. You will need to print a test layer and look at it / measure it. It could be anything from zero height to twice as thick as it should be. If you have flow set to something odd on your first layer, that will make things even more complicated in the check out.

1) Get all your first layer stuff to be the same as the rest of the layers (if it's not) in Slic3r
2) Print something small (25 mm cube)
3) Set it up with a nice wide brim (maybe 5 mm)
4) Do a print, stop it at 4 mm height.

look at the resulting first layer. Is it right or is it to thick / thin. Do the pass meet up? Is there to much plastic? Does it hit the glass and spread out properly?

If it's not quite right, use the Z offset setting in Slic3r to try a *slightly* different height. It will be something like 0.05 mm or so. Repeat steps 2 through 4, check and repeat if not happy.
Re: Bed Auto Leveling.. check this out
December 20, 2013 10:54AM
Quote
p40whk
So add these commands after the G29 command is given?

Yes
jwd
Re: Bed Auto Leveling.. check this out
December 23, 2013 06:21PM
Hi Everyone,

I have a RUMBA board and my servo voor the auto bed leveling feature is delivered tomorrow. Does anyone know how to connect the servo to the RUMBA board?
(I can find a ground and a 5 V pin on the board but where must i connect the third pin?
Re: Bed Auto Leveling.. check this out
December 24, 2013 05:06PM
any one finding they are getting lots of servo chatter?

iv tried shielding cable still get gitter. iv had to use an external 5v supply as the gitter is taking too much strain on the 5v line of the arudino and voltage regulator is getting too hot and crashing 5V line to atmega chip.

also what are people using for servos currently? would be interested in getting one that no one has issues with.
Sorry, only registered users may post in this forum.

Click here to login