Auto Bed Leveling / Z Probing for gMax Printers.

#2
I programmed the Simplify3D macro buttons to Lower Z-Probe, Raise Z-Probe and Bed Auto-level. This makes it all easy to control under the same screen and keeps everything tidy.
 
#3
Where did you buy all the supply's to make it work? Any chance you could make a tutorial with step by step walk through? I'm pretty new to 3D printing and these programs.
 
#4
I second the tutorial part. This will be my first 3D printer, I ordered the gmax1.5xt. I have watched numerous videos and envy the auto leveling bed on some printers, it takes almost all the guess work out and gives your printer the best possible chance to produce good prints, I know there are many other factors, but a level bed is crucial from what I understand.

Is there anyway you could do a part list and a tutorial, and even though I'll have the gmax1.5xt, it should still work the same right, it's just 8'' higher in the y direction.

Thanks.
 
#6
This is very cool! I am not sure how it actually levels the bed though... I understand the principle of the switch to detect the position of the bed, but how does the bed actually become level? Does the firmware adjust for the inconsistencies, thus not actually leveling the bed but just compensating for it?

In any case, awesome work! I, too, would love to see how you have pulled this off and see a list of components!
 
#7
You will need to upgrade your printer with new Marlin firmware. You can find the firmware files in the thread that is linked below. There is very detailed information and instructions regarding the new firmware. It has been in use and tested and is fully documented. Follow, the link, read the instructions and download the firmware package that is specific to your printer..

viewtopic.php?f=6&t=497

After upgrading, you will have access to Auto leveling, Ditto Printing (say what?) functional M600 change filament commands and a whole lot more.

Head on over to:

viewtopic.php?f=6&t=497

and get yourself some! :)

Happy Fourth everyone.
 
#8
You will need to upgrade your printer with new Marlin firmware. You can find the firmware files in the thread that is linked below. There is very detailed information and instructions regarding the new firmware. It has been in use and tested and is fully documented. Follow, the link, read the instructions and download the firmware package that is specific to your printer.

viewtopic.php?f=6&t=497

After upgrading, you will have access to Auto leveling, Ditto Printing (say what?) functional M600 change filament commands and a whole lot more.

Head on over to:

viewtopic.php?f=6&t=497

and get yourself some! :)

Happy Fourth everyone.
 
#9
cncpadawan said:
This is very cool! I am not sure how it actually levels the bed though... I understand the principle of the switch to detect the position of the bed, but how does the bed actually become level? Does the firmware adjust for the inconsistencies, thus not actually leveling the bed but just compensating for it?

In any case, awesome work! I, too, would love to see how you have pulled this off and see a list of components!

To answer your question, the firmware compensates for the unevenness on the fly. The Z axis moves in BOTH directions during the print. Physically speaking, nothing is done to the bed.
 
#10
PLEASE HELP

I installed the firmware provided by ShaqFoo and all is good on that end. I also have mounts for my servo and micro switch for the Z probe used in auto leveling.

My issue is how to wire up and configure the firmware for the micro switch. I was following these videos (https://www.youtube.com/watch?v=awsI9bMndJA&list=PLU2kePyB_WAZlCnA-fMbLDbGeFXTffiP9) which helped my through everything but the micro switch wiring.

I am using the same switch from the video OMRON SS-5 and need to know where to hook each pin to on my RAMPS boards. My current setup turns the board/lcd off until I trigger the switch which then kicks it back on which can't be right. Any help is greatly appreciated.
 
#13
Hi shaqFoo,

Thanks for this! I've been green with jealousy looking at all the newer printers that do auto leveling.

I have a question that is really bothering me. how do we attach the probe to the extruder assembly, the link (https://www.youtube.com/watch?v=awsI9bM ... GeFXTffiP9) earlier is predicated on replacing a part that's does not exist on the gMax. The explanation with pics if possible and (maybe some stl please ;) ) on how to mount the probe would be greatly appreciated).

Thank You in Advance,

Nick
 
#14
Im having some trouble with this
Using proterface to send commands to my Gmax 1.5 XT
I cant get my Servo Z Prob to Extend or Retract with an M401 / M402 Command

I can get it to extend if i send a "M280 P0 S145"
and retract on a "M280 P0 S0"
No Problem

I can send a G28 and it homes using the original Z Endstop no problem
When I send a G29 My Servo does not extend or retract at all it does the Grid tests using the existing Z Endstop instead.

I have my Z probe Servo switch connected to the Zmax endstop pins as per Shaqfoo's photo
When I trigger the Servo Z it sends an M600 command and starts freaking out.

even if I manually extend the arm The Z Servo switch doesnt trigger the printer to stop it keeps going and crushes it (Ouch) (Ive tried Normally open and Normally Closed wiring and inverted the Zmax logic on both occasions.

I have it wired NO with the logic set as follows:

//ShaqFoo Notes:
//IF YOU ENABLE AUTO LEVELING AND USE A MECHANICAL ENDSTOP AS THE PROBE,
// THEN CHANGE Z_MIN_ENDSTOP_INVERTING TO FALSE! DO NOT INVERT IF USING A MECHANICAL ENDSTOP

const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. ShaqFoo note: Filament sensor
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS

// Disable max endstops for compatibility with endstop checking routine
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
//#define DISABLE_MAX_ENDSTOPS
#endif



If I change the const bool Z_MAX_ENDSTOP_INVERTING = true
to False then I get a change fillament error that buzzes from the LCD
Ive tried changing the Switch to NC and it still gives me the change filament error

The config ive got does not give me the error and allows the printer to operate normally but I just cant seem to get this working!!!
Please help
 
#15
nrapopor said:
Hi shaqFoo,

Thanks for this! I've been green with jealousy looking at all the newer printers that do auto leveling.

I have a question that is really bothering me. how do we attach the probe to the extruder assembly, the link (https://www.youtube.com/watch?v=awsI9bM ... GeFXTffiP9) earlier is predicated on replacing a part that's does not exist on the gMax. The explanation with pics if possible and (maybe some stl please ;) ) on how to mount the probe would be greatly appreciated).

Thank You in Advance,

Nick

Hey Nick

My setup is still a work in progress but the file I used to attach the servo to the Print head was this
http://www.thingiverse.com/thing:902402

I bought a couple of SG90 Tower pro Servos from Ebay
http://www.ebay.com/itm/5-Pcs-SG90-...849?pt=LH_DefaultDomain_0&hash=item2a4fb16f41

to attach it to the carriage ive just replaced the hex nut that attaches the bottom left X Carriage roller wheel with a 40mm long M5 bolt and nylock nut.

this is just a temp setup for me because ive found that the servo slightly knocks into the X endstop when homing but only slightly,
 
#16
Mule5000 said:
nrapopor said:
Hi shaqFoo,

Thanks for this! I've been green with jealousy looking at all the newer printers that do auto leveling.

I have a question that is really bothering me. how do we attach the probe to the extruder assembly, the link (https://www.youtube.com/watch?v=awsI9bM ... GeFXTffiP9) earlier is predicated on replacing a part that's does not exist on the gMax. The explanation with pics if possible and (maybe some stl please ;) ) on how to mount the probe would be greatly appreciated).

Thank You in Advance,

Nick

Hey Nick

My setup is still a work in progress but the file I used to attach the servo to the Print head was this
http://www.thingiverse.com/thing:902402

I bought a couple of SG90 Tower pro Servos from Ebay
http://www.ebay.com/itm/5-Pcs-SG90-...849?pt=LH_DefaultDomain_0&hash=item2a4fb16f41

to attach it to the carriage ive just replaced the hex nut that attaches the bottom left X Carriage roller wheel with a 40mm long M5 bolt and nylock nut.

this is just a temp setup for me because ive found that the servo slightly knocks into the X endstop when homing but only slightly,

Thanks Mule5000,

I will try this out and give it some thought, I will post any changes that I will make. I'm really excited about the auto-leveling. Leveling the printer is my least favorite activity ...

BTW, does anyone have the STL or a part file for the front plate for a double extruder (the one that covers the light strip). I can't seem to find it in the parts zip file.

Thanks Again,

Nick
 
#17
Mule5000 said:
I can send a G28 and it homes using the original Z Endstop no problem
When I send a G29 My Servo does not extend or retract at all it does the Grid tests using the existing Z Endstop instead.

I have my Z probe Servo switch connected to the Zmax endstop pins as per Shaqfoo's photo
When I trigger the Servo Z it sends an M600 command and starts freaking out.
My bad. Your description of the issues were symptomatic of the two Z end stops being reversed. I looked at the z-probe end stop image and saw it was incorrect.

The Auto level probe should connect to the Z-Min end stop. The Z-Max is used for the out of filament sensor and is the reason why an M600 was sent when you triggered the Z-Max endstop. Simply switch the two plugs on the ramps (Z-Min and Z-Max) and you should be good to go. You do not need an out of filament sensor for this to work. If you only have the one plug (autolevel Z-probe) just make sure that gets plugged into Z-MIN. Your current Z-min endstop is no longer used.

The image has been updated.

My apologies and happy auto leveling :)

ShaqFoo
 
#18
Mule5000 said:
to attach it to the carriage ive just replaced the hex nut that attaches the bottom left X Carriage roller wheel with a 40mm long M5 bolt and nylock nut.

this is just a temp setup for me because ive found that the servo slightly knocks into the X endstop when homing but only slightly,
I found the best way to attach the SERVO to the carriage was with gorilla glue. You do not want any movement on the servo when it is probing or it will be inaccurate. With glue, it is rock solid and doesn't move. It doesn't get in the way of the wheel bolt and it doesn't get in the way of the end stop. There aren't a lot of places to mount the servo ( I tried several) I really don't have a need to remove it. The servos aren't going to go bad, and if I need a new probe arm, I'll unscrew it from the servo horn and replace it. So in the end, the simplest solution won out.

ShaqFoo
 
#20
gCreate Kyle / Spudwheelie said:
How do you adjust the z-height of the servo? with gcode or hardware?
Kyle,

The servo is fixed so there is no hardware adjustment. It's all software. You could make an adjustable or fixed bracket and do it with hardware, but then you would have to change the software settings anyway. So in a fixed position, the values don't change and it makes things easier. That's why I like glue. It's the main difference but it's significant. It makes it virtually maintenance free. I have well over 200 probes on each printer without ever having to adjust any of the probes or any of the beds. Not once.

The servo itself is fixed and does not/should not move. The probe attaches and rotates on the servo arm. That is the only thing that moves. This is important to anyone who reads this--> Make sure the probe extends LOWER than the nozzle before attaching it. In other words, when the probe is extended the endstop should be lower than the nozzle. This way, the probe touches the bed before the nozzle. If it was higher, than bad things will happen (nozzle crash into bed).

The Z-offset between the probe and the nozzle is set in the configuration.h file. See the documentation in the firmware. When a G28 is issued it will home x, then y, then raise to xxx mm height (set in config.h) and then lower and probe for Z home. While printing, the z offset that is entered in configuration.h will be added to the home value during the print to accommodate for the offset between the probe and the nozzle. Changing the z-offset value is the key to fine tuning the probe to nozzle space and guarantee a perfect first layer.

The new firmware allows you to change the z-offset via the LCD. To do this, go to the control->motion->z-offset setting. This can be adjusted before, after or during a print. If you power off the printer, any changes to the z-offset will revert back to the configuration.h value. I completely forgot to mention the new firmware provides a vastly improved LCD menu system with A LOT more control.

If you want to store the values in EEPROM here is the info on that:
M500 - stores parameters in EEPROM
M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
M503 - print the current settings (from memory not from EEPROM)

ShaqFoo

As my grandfather used to say,
"Never bet on the wrong horse"