Results 111 to 120 of 396
Hybrid View
-
11-08-2014, 10:39 AM #1
- Join Date
- Sep 2014
- Posts
- 13
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
-
11-08-2014, 08:06 PM #2
- Join Date
- Jun 2014
- Posts
- 74
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.
-
11-08-2014, 08:24 PM #3
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.Last edited by printbus; 11-09-2014 at 11:10 AM.
-
11-11-2014, 08:46 PM #4
- Join Date
- Jun 2014
- Location
- Dearborn, MI
- Posts
- 23
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...Last edited by RaySuave; 11-11-2014 at 09:35 PM.
-
11-12-2014, 11:21 AM #5
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 :
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:
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
-
11-14-2014, 07:05 AM #6
- Join Date
- Jun 2014
- Location
- Dearborn, MI
- Posts
- 23
Thanks for the tips. It turns out that the code changes recommended were already in the fork so what I ended up doing was take a dremel and rounded off the micro switch case edge where it was contacting the bed since the interference was pretty small. Problem Solved!! Can post a pic if needed.
Regarding the probe position orientation, it would probably be helpful to put in some short descriptive comments after each probe position on the next fork update. Your explanation was clear and made complete sense, now I have the probe area area perfectly adjusted.
-
11-15-2014, 04:16 PM #7
I too have the issue of the Z axis not raising after the G28 before retractions. I put some debug code into the G28 to see if it was indeed running the do_blocking_move(blah, blah, +Z_RAISE_BETWEEN_PROBINGS)
It does run the command, but it never actually does the move on my arduino. Not sure if it is already in the middle of something so the function never runs. or if the move is no good. Not sure, but regardless it never lifts the Z before it retracts.
Stock dacb, just compiled and pushed to my RAMPS. Didnt work, so I put some SERIALPGM's in to get where it was in the program loops.Last edited by BgHurt; 11-15-2014 at 04:21 PM.
-
11-16-2014, 12:53 PM #8
Hi all,
I have just tested a bunch of the changes people have posted including Roxy's. I'll get them into the fork in the next couple of days after a few more prints. Stay tuned!
-
11-16-2014, 02:37 PM #9
Darn! I wish I knew you were going to do that... I fixed a bug in the Bed Level Topology Report for the Front-Right case:
#ifdef ORIGIN_FRONT_RIGHT
for(yy=0; yy<n_points; yy++ {
for(xx=0; xx<n_points; xx++) {
SERIAL_PROTOCOLPGM(" ");
if ( eqnBVector[ (n_points*n_points)-yy-(xx*n_points)-1 ]-mean >= 0.0)
SERIAL_PROTOCOLPGM("+");
else
SERIAL_PROTOCOLPGM("-"); // we need this extra - because Proterface uses a preportional
// font and it causes the columns to not line up nice without it.
SERIAL_PROTOCOL_F( eqnBVector[ (n_points*n_points)-yy-(xx*n_points)-1 ]-mean, 5);
}
SERIAL_PROTOCOLPGM(" \n");
}
SERIAL_PROTOCOLPGM(" \n");
#endif // ORIGIN_FRONT_RIGHT
-
11-30-2014, 08:40 AM #10
Has anyone looked at the change to understand what it does? At just a glance, I couldn't tell if was changing how M0/M1 might be falsely detected, or changing how the M0/M1 command string is parsed when it is received.
Rather than let the question linger, I'll add my take even though I don't have ABL. Multiple people seem to observed quirky issues with an ABL firmware build, including the M0/M1 issue here where for some reason Marlin thinks an command has been received that says to wait for a user prompt. The possibility of stack or variable space corruption has came up. There's a concern that whatever the problem is, it may be related to having a build that includes both the ABL code and the LCD code. One user has recently been fighting issues with a reprap based on an I2C LCD interface. I2C adds considerably more software overhead than the more common REPRAP/ULTIPANEL LCD, so this raises the possibility that maybe Marlin is running into timing constraints that can't always be met with the processor cycles it has to work with. On the hardware side, it has also been determined that the 5V regulator on the MEGA2560 board can't always handle the extra load of the ABL servo, and running the printer standalone presents a risk of the 5V power cutting out or perhaps dropping off. ABL printers should either have a dedicated 5V source added in to provide 5V to RAMPS for the servo, or at least always have the printer connected to a USB source.Last edited by printbus; 11-30-2014 at 11:08 AM. Reason: clarity
Please explain to me how to...
05-13-2024, 03:08 PM in 3D Printer Parts, Filament & Materials