No, it is not tested yet. But I noticed this while trying to work through a problem for MiniMadRyan at http://3dprintboard.com/showthread.p...ll=1#post34112
No, it is not tested yet. But I noticed this while trying to work through a problem for MiniMadRyan at http://3dprintboard.com/showthread.p...ll=1#post34112
I set-up ABL on a 10" i3v this morning with the firmware in the first post of this thread. My issues I'm running into so far are:
- My bed origin has always been on the rear right bed corner (with printer facing forward). Now when homing, after X and Y endstops are activated, the code probes toward the center of the bed for Z. How can I get it to probe in the same rear right corner as X and Y?
- Immediately after probing the center of the bed when homing, the servo retracts and rubs the bed. How can I get it to raise Z-axis a few mm before retracting the probe?
- When issuing a G29 for the ABL routine in Pronterface after homing, I get this error "echo:Home X/Y before Z".
I have googled a while for solutions, but the posted solutions I did find didnt work for any of the above issues.
If you want to leave safe homing on you could follow your G28 command with G28 X0 Y0 to return to the corner before running G29
My #define Z_SAFE_HOMING was turned on but earlier in the morning when I turned it off per a users post, the printer did probe the rear right bed corner, but after, since I was having the front of the micro switch rubbing the bed issue, the front of the micro switch hit the bed, but didnt retract all the way like it did before. When the front of the micro switch hit the bed, everything stopped and the LCD screen went blank but was still illuminated like the code crashed or something. I unplugged the printer then turned the #define Z_SAFE_HOMING back on to try to resolve the bed interference issue first. Hopefully when I get the interference issue fixed then turn this #define Z_SAFE_HOMING back on, the LCD wont go blank.
Can you tell me where in the code this was fixed so I can check the setting?
I apologize for not being clear in my original post, by "homing" I meant using the G28 Auto Home command via Pronterface, then immediately after use G29.
I appreciate the assistance...
It isn't a setting. The code is different. If you are running Dacb's MakerFarm fork of Marlin, you should have it. And, unless you are giving the G29 the E option, it is only going to engage the Z-Probe once at the start. It will wait until the Z-Probe is raised at the end to unengage the probe.
My LCD will go blank at random times, but always if the Z probe on the servo contacts the bed before retracting. The reason for me is the Arduino board doesn't have the voltage needed when the servo stalls momentarily if it contacts the bed during retract. Even after I installed the advanced G29 code from Roxy with the DACB fork and solved bed interference problems with servo retract since the new code does a Z raise before retract, I had a couple of isolated incidents of the Arduino rebooting due to lack of power. The solution for me was simple, just keep the USB cable connected to my laptop whenever the printer is turned on. Even with the laptop closed and sleeping it provides additional 5v through the USB to the Arduino board. It would probably be better to provide additional 5v power from another source to the Arduino, but since this works perfectly for me I just haven't bothered yet. If your LCD resets, it is likely a power to the board issue. Figure out a way to provide more power and it might solve the problem for you as well.
Yep. I go into the numbers starting with this post in my build thread - http://3dprintboard.com/showthread.p...ll=1#post28854. After looking at the design of the MEGA2560 board, my conclusion is that the on-board 5V regulator is pretty much maxed out with the basic LCD-equipped MakerFarm printer. If you add an ABL servo or any other 5V loads onto the printer, you should provide your own 5V source or keep the printer USB port plugged into something that can provide 5V power via USB, thereby bypassing the on-board regulator. I can't help but wonder how many ABL issues are caused by people trying to run the printer standalone off a 12V supply.
FOLLOWUP COMMENT: Stalling a servo will cause the current draw to the servo to surge, further increasing the likelihood of a problem. And my guess is the LCD going blank is likely a sign that the Arduino board is undergoing a reboot.
After some more googling, starting from a fresh version of Dacb's MakerFarm fork of Marlin firmware a few times, and using different versions of Arduino for flashing (on 1.0.5-r2 currently) I still have the issue of the servo arm rubbing the bed on retraction after the G28 command (homing). I also used Roxy's thread to invalidate the EEPROM in case this was a contributing factor. http://3dprintboard.com/showthread.p...lidate-Command Not sure what I'm doing wrong but it appears I am the only one still having this issue after using Dacb's firmware. Any other suggestions on what I could be doing wrong?
I did manage to successfully invoke the G28 command for the ABL procedure and with reading some other posts like the one above, I now understand why I was having the blank LCD issue after the servo arm rubs the bed.
After successfully running the ABL procedure, I have two more questions regarding fine tuning:
- When starting a print after ABL, my nozzle is too low, needs to raise about 0.2mm. Is bumping the "Z_PROBE_OFFSET_FROM_EXTRUDER" value up the only change to make in the firmware?
- For adjusting the probing position, how do the LEFT, RIGHT, FRONT, and BACK probe positions correlate to looking at the printer/bed head-on from the front?
Thanks in advance...
In the Enhanced G29 thread... http://3dprintboard.com/showthread.p...ed-G29-command In the first post... It says:
This step is also optional. Because of how some people's Z-Probe is constructed, it is best to raise the nozzle prior to retracting the probe. The Enhanced G29 code handles this circumstance. But as it turns out, the stock G28 command is also guilty of this bad behavior. If you need the G28 command to raise the nozzle prior to retracting the probe, make the following changes in Marlin_Main.cpp :
It should look like this when you have made the change:Code:Find the following code:
// Retract Servo endstop if enabled
#ifdef SERVO_ENDSTOPS
if (servo_endstops[axis] > -1) {
servos[servo_endstops[axis]].write(servo_endstop_angles[axis * 2 + 1]);
}
#endif
#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
if (axis==Z_AXIS) retract_z_probe();
#endif
add these lines of code immediately after the "// Retract Servo endstop if enabled" comment.
#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
if (axis==Z_AXIS)
do_blocking_move_relative(0, 0, Z_RAISE_BEFORE_PROBING);
#endif
Code:// Retract Servo endstop if enabled
#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
if (axis==Z_AXIS)
do_blocking_move_relative(0, 0, Z_RAISE_BEFORE_PROBING);
#endif
#ifdef SERVO_ENDSTOPS
if (servo_endstops[axis] > -1) {
servos[servo_endstops[axis]].write(servo_endstop_angles[axis * 2 + 1]);
}
#endif
#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
if (axis==Z_AXIS) retract_z_probe();
#endif
I don't know off hand if this change is folded into the DACB fork. But if it isn't you might want to give it a try.
There are a number of configuration settings you can play with to get it tuned for your printer. Have you tried adjusting things with:
Left, Right, Front and Back were the result of a long discussion on what the names should be. The problem is people have their origin in different places on the bed. This was an attempt to not confuse things by saying things like X_MAX or Y_MIN. It remains to be seen if this was a good choice of names. But if you imagine your part on the bed, the Front would be the lowest Y coordinate, Back would be the largest Y coordinate. Left and Right would be the lowest and largest X coordinate of the part.Code:#define Z_RAISE_BEFORE_HOMING 9 // (in mm) Raise Z before homing (G28) for Probe Clearance.
// Be sure you have this distance over your Z_MAX_POS in case
#define Z_RAISE_BEFORE_PROBING 9 //How much the extruder will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points