Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Auto Leveling Platform

by atntias, published

Auto Leveling Platform by atntias Mar 2, 2012




Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag


Thing Statistics

12469Views 601Downloads


Ok so updates, first i have first pcb tests working ! using this method.

i opened a github project for this here https://github.com/Atntias/probz/commits/master

i wrote the code as a part of printrun. the code is very messy but its starting to work :).

im using a dilling head based on the mantis i designed to fit the prusa X carrige, wich i will shortly upload to a thing too.

This is based on few ideas i saw online to use and automated process in order to measure distances from head to bed on all the working area.
then you can take that data and use it to offset gcode accordingly.

this is critical for pcb milling, and nice to have in 3D printing, as the whole leveling process becomes not critical as it is.

gcode offset calculation differs from CMC milling to 3D printing, but im planing on developing both.

i can probe the surface by replacing the z end stop with 2 wires 1 goes to the aluminum bed and the other to the extruder nozzle/drilling head.

video of the probing in action http://youtu.be/tKFhiu2a64I

the pcb holder you see in the video is another thing il make soon.


yet to come...
note: you need to use marlin firmwre as it return endstop hits locations.
make sure in setting #USE_ENDSTOP_ONLY_FOR_HOMEING isnt selected.
right now when printing/milling i just disconnect the endstop, but il add a M code to turn the above #USE_ENDSTOP function on and off.
you might have to invert your z endstop nc/no in the firmware.

im using mayavi view to show the data, and numpy to do some calculation, so best way to get all that is get pythonxy instead of python 2.7.2 and make sure to select ETS on the packge list on installtion.

All Apps

Upgrade this Thing with Thingiverse Apps

No results.

I am having a problem. I have attempted to use a roller switch in place of a physical probe. I have commented out the #define USE_ENDSTOP_ONLY_FOR_HOMING. The machine moves to what looks like 30, 30, touches, and stops. Is there any more information I need to share? The switch is connected between sense and ground. It is connected to the NC side of the switch.

 It would seem I was premature. I managed to get it to work once. I don't know what I am missing.

also, have you managed to compile the python offseting code? if you haveing truble let me know il try to help

 What is this python offsetting code you speak of?

i mean the printrun modifed version that does the offseting..

if you are using an updated marlin, you dont need to touch the code, i have included new M code's M120/M121 for disableing and enabling the endstops only for homing. so at the start of gcode and after each home if you send M120 it will ignore the endstops below the 0 level

I like it a lot! It looks like you can manipulate the scale of more easily see the shape of the table. Using that tool you can improve the mechanical set-up to eliminate some of the major planar error.

It would seem to me the condition of the work piece is also an issue, especially with PCB material. Work holding techniques play a roll as well. Is that not the case?

i agree, but as i go forwork il see how it goes, im developing a printed pcb holder that snaps to the printbed, and as this goes forword il see.

Sounds interesting. Unrelated question: how'd you get Print Run to look nice?

just download the latest version :)

You are so wise. I, however, am dumb for asking! Thanks.

but he assumes the platform is flat, thats almost never the case

The idea was to use his probe to generate a point cloud to use in your offset.

i might to that, but il have to redesign it to be lillte more comact and simple.

but i can think of its need. since plastic can get in the way if not clean and assuming you are printing on kapton, you will need to remove it each time you probe, but with his solution its not nececcery.

but for development this is good enough, after i get done il do that.

I believe it would be possible to bypass the need for a conductive bed surface by having a second lead coming off of the tip that would close the circuit when it pushed against the bed. The spring of the leads should open the circuit as the tip pulls away.

Just put a piece of fr4 pcb onto the bed copper side up.

Im doing leveling manualy this way, copper board laid on tbe bed croc clip to resistance mode on my mulitimeter, clip on hotend to other side, so it beeps when the nozzle touches the copper.

Then i just use pronsole to position the nozzle in the center and setup z with my endstop and the beep, then move to each corner and raise lower the screw until it beeps.

Its crude but it works.

Very cool - check out the pcbgcode forum and http://forums.zentoolworks.comforums.zentoolworks.com - Someone has a working EMC script to do this already - it would be very cool to be able to do this on any 3D printer.

yeah, i saw it, but on 3d printer i think il offset the gcode in first layer 100% 2nd layer 60% 3rd layer 40% and from then on wont touch the z offset.