Just got my auto levelling carriage completed for my Prusa I3.

Just got my auto levelling carriage completed for my Prusa I3. It was built around an E3d-v5 bowden hotend. More info available at: http://forum.e3d-online.com/viewtopic.php?f=7&t=28
Big thanks to @ZennmasterM for his amazing guides on getting auto levelling set up. They helped a lot.
http://www.youtube.com/watch?v=0vTvOp6-MhM

Why move the switch back up between each test point? Wouldn’t that create inaccuracies if the switch position does not line up with the same spot every time?

Not sure why this happens, its built into the G29 command. I guess its just to make sure it doesn’t collide with anything.

If you look in Marlin_main.cpp, you will see #ifdef ACCURATE_BED_LEVELING at around line 1356. This is where the level routine starts in the code. if you don’t like the retraction after each move you can move the function call retract_z_probe() (line 1412) outside of the for loops (line 1444) so that it only does a retraction after the points were picked. In my opinion, this is how the routine should be since you are at the mercy of a 2 dollar servo (if you bought it on ebay like I did) for the multipoint accuracy. I do the 9 point leveling and don’t want to rely on the movement returning to the exact position each time when it can just stay in position.

If you are worried about the lack of probe retraction due to possible collision, then you can just increase the #define Z_RAISE_BETWEEN_PROBINGS in Configuration.h so that your probe doesn’t drag on the bed.

Very cool!

I always thought that you could just put a physical stop that the probe arm can’t move past when it’s in the extended position, and then just have the servo setpoint set at a position slightly beyond the maximum limit of motion so that the servo pushes into the stop and is held firm and thus doesn’t have that setpoint hunting wobble problem.

A lot of users seems to pull the 5 volt servo source from the arduino. If you implement the mechanical stop and are also pulling 5 volts from the arduino, you could cause some problems since the servo will source more current than the arduino likes as it tries to move past the limit you set physically.

FWIW, when I first got this going I was using extend/retract angles of 5 deg to 170 deg. The servo didn’t like going all the way to 5 degrees so i changed it to 30ish/150 degrees and it no longer moves about (as much). The cheap servo definitely did not like going so close to its limits.Sometimes it would even overshoot and cause a head crash. So IMO don’t try moving the servo full swing like i did in the video.