Sept. 28, 2012
Update: Be sure to check out our new article MatterControl - Automatic Print Leveling. This new solution is all software, you will not need to change any hardware or firmware. It will work today.
Hey everyone, here is the promised update to our first post about our work on automatic bed height calibration and leveling. In that post we showed a working implementation of custom firmware gathering data on the level of the print bed and then automatically compensating its movements. Since then we've been working to put the final pieces in place in order to have a full solution that can be used in day-to-day 3D printing. Now, with two printable parts (a z-probe and a modified x-carriage), some magnets, and a switch, it is possible to add automatic bed height calibration and leveling to a Mendel90.
Z-Probe on X-Carriage
MatterHackers RepRap Mendel90 Preparing to Printing with Auto Calibration and Bed Leveling
As described in the initial post, our goal with this project was to implement automatic calibration and leveling in a way that would be simple to implement and require no special ongoing interaction with the machine itself. Which is why most of the heavy lifting is being done within the firmware. On the hardware side of things, we were specifically looking to avoid a solution that would require manually lowering the z-probe. With that in mind we modified the G29 command (our bed-leveling command, as mentioned in our first post) so that when G29 is sent at the beginning of a print, the printer will automatically lower the z-probe, probe the bed and then raise the z-probe.
Here is a quick run down on what we actually did:
Designed parts for a z-probe and a z-probe mount.
Added the z-probe mount to the mendel90's x-carriage. To do this we took the scad file for x-carriage, opened it and then pasted in our z-probe mount at the bottom.
Installed the modified x-carriage with z-probe. The z-probe attaches to the mount using an M3 screw.
Installed a small screw onto the back wall, behind the x-carriage so that we can push on it to raise and lower the z-probe.
Wrote the movement paths to lower and then raise the z-probe.
Compiled all the code together and loaded it onto our mendel90.
Added the new G29 (new probe bed instruction) just under the G30 (home all) in slic3r custom gcode section, and processed an STL file.
For the intrepid adventurers who want to test this solution out themselves, here is everything you will need:
1x Printed x-carriage
1x Printed z-probe-mount
1x Printed up-down-bar
5x 2.5m x 12m socket head cap screws
1x 3m x 25m socket head cap screw
4x 3m washers
1x 3m nyloc nut
1x mechanical limit switch
2x 10mm x 5mm x 3mm neodymium magnets (ours came from a sonicare brush head)
You will also need to configure the offset to the extruder in the firmware (Auto_Bed_Level branch) for you exact printer.
The offset of the z-probe can be found in configuration.h, starting at line 201 it looks like this:
define X_EXTRUDER_OFFSET_FROM_Z_PROBE 35
define Y_EXTRUDER_OFFSET_FROM_Z_PROBE -14
define Z_EXTRUDER_OFFSET_FROM_Z_PROBE 7.10
Currently this is only set up to work with RAMPS boards. If you have another board, you will have to get the z-bed switch working on the z-min switch for your printer. If you do, we would love to have your patch.
Have fun printing,
MatterHackers RepRap Mendel90 Extends and Retract a Z Bed Height Probe
MatterHackers RepRap Mendel90 Printing with Dynamic Bed Leveling
MatterHackers RepRap Mendel90 Printing on Unlevel Bed
Get The Latest From MatterHackers
Please enter a valid email.