Welcome! Log In Create A New Profile

Advanced

can´t select negative zoffset on LCD

Posted by hugolainch 
can´t select negative zoffset on LCD
February 10, 2019 07:08PM
Hi all!
I have adapted an E3D extruder on my Atom 2.0 (delta printer) to have the possibility of using an all metal extruder. I am using an external zprobe with has the following offset x=0 y=-16.90 z=-5.0.
I need some help with the firm (based on v1.0.0) because I have updated the values and the G29 auto leveling works fine and then the firm applies the following fórmula: zoffset=zprobe_offset+LCDzoffset_selected.
My problem is that my zprobe has an offset of -4.5mm with the nozzle so, when the firm applies last formula I get a negative value for zoffset, and when I tried to adjust for the first layer the lcd puts extrange symbols (see attached).
It is caused because you cant select a negative value for the zoffset, so to adjust the offset I have to select a possitive value for the offset and repeat again the bed leveling to obtain the new negative value.
After 6 iterations I had been able to adjust fine but i have to repeat the bed leveling each time that i modify the zoffset that is crazy.
I have found the line where It is supposed you select the zoffset on lcd. "Ultralcd.cpp" As you can see the range is between -10 and 70. I can reach 70 on the lcd but I cant reach less than 0...

*extrange symbols on lcd*
[www.dropbox.com]
*zprobe*
[www.dropbox.com]
*marlin version*
[www.dropbox.com]
*lcdconfiguration*
[www.dropbox.com]

configuration.h
#define Z_PROBE_OFFSET {0, -16.9, -4.84, 0} // X, Y, Z, E distance between hotend nozzle and deployed bed leveling probe.

marlin_main.cpp
deploy_z_probe();

z_offset = z_probe_offset[Z_AXIS] + (code_seen(axis_codes[Z_AXIS]) ? code_value() : z_offset);
calibrate_print_surface();
retract_z_probe();

feedrate = 6000;
feedmultiply = saved_feedmultiply;
previous_millis_cmd = millis();
endstops_hit_on_purpose();

Config_StoreSettings();
break;
case 30: // G29 Calibrate print surface with automatic Z probe.
saved_feedrate = 6000*3.5;
saved_feedmultiply = feedmultiply;
feedmultiply = 100;

home_delta_axis(); //Bato add for auto homing ATOM when G29

ultralcd.cpp
static void lcd_setting_zoffset_menu()
{
START_MENU();
MENU_ITEM(back, MSG_MAIN, lcd_main_menu);
MENU_ITEM(gcode, MSG_AUTO_LEVEL, PSTR("G29"));
MENU_ITEM(function, MSG_GOTO_ZERO, deploy_z_zero);
MENU_ITEM_EDIT_CALLBACK(float52, MSG_ZOFFSET, &z_offset, -10.0, 70, Config_StoreSettings);
END_MENU();
}
Sorry, only registered users may post in this forum.

Click here to login