Closed Luchane closed 7 years ago
values on LCD is then X 90.0 Y 135.0 and Z 13.0.
That's the location the head should be at when it starts & finishes the Z axis homing.
What does M114 report ? It should report the same location as the LCD.
It looks like your config files are set up properly.
I think you've run into a bug. The "take two aspirin & call me in the morning" response is to request that you download the latest RCBugFix and see if that fixes the problem. RCBugFix is the very latest Marlin. It has a lot of bug fixes in it so it clears up a lot of these problems.
ULTRA_LCD and REPRAP_DISCOUNT_SMART_CONTROLLER are both enabled. Why is that? I haven't gotten into the LCDs so I don't know if that's correct or not.
Some minor notes/questions on your config.
#define ENDSTOPPULLUPS should be enabled. This will enable the pullups on all the endstops. Never hurts and is required when using mechanical switches and most hall effect sensors..
#define NUM_SERVOS 3 - just surprised to see it's not 1. Are you running other servo based items besides your Z probe?
//#define Z_HOMING_HEIGHT 4 should be enabled and set to the needs of your printer.
FYI - here's the sections from your config file that pertain to Z homing
#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28).
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28).
#endif
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 200
#define Y_MAX_POS 200
#define Z_MAX_POS 170
#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -35 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER -3 // Z offset: -below +above [the nozzle]
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow
Please make a M119
in mid air. No unused endstop shall appear in the list. No used endstop shall be triggered
Likely your x and y -max.endstop is triggered.
Ehter deactivate them (//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
)
or invert them (#define X_MAX_ENDSTOP_INVERTING false
#define Y_MAX_ENDSTOP_INVERTING false
).
@Blue-Marlin - I hadn't thought of the X_MAX and Y_MAX sensors always being active. That would keep the head at X0, Y0 until endstops are disabled.
If this is the case then enabling endstops (M120) and then issuing G0 X30 and G0 Y30 would result in no head movement and an "endstop hit" message on the screen.
You guys are THE best.
Commented out the unused endstops. Z homed as it did before.
Other minor issues to sort out still.
Thanks again for awesome response.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Hey Guys.
Total noob here. I ran Marlin V1 for LCD 2004 on my printer for over a year now.
I added some fans on the aux pins and LED lights to extruder head for those late night prints. Added Auto bed leveling with servo. Worked awesome until one day. I must have messed with something in the code and the Auto bed leveling was off. It doesnt calc the plane properly anymore and prints iregular.
Thought its time for upgrade. Downloaded the new Marlin firmware. First of all. Well done. It is way better layed out and the fetures in it is awesome.
It does not want to work for me tho. If I home the X and Y axis independantly, It shows "0" on my LCD. When I do a "Auto Home" it homes the X and Y. Does not go to center of the bed to do Z. Just drops the servo in the X and Y home pos. Also the values on LCD is then X 90.0 Y 135.0 and Z 13.0.
I cant see where it gets those values. Also if I send it a G29. It does not move to the grid points. the servo just drops once in the X and Y home positions.
Here is my config.
```cpp /** * Marlin 3D Printer Firmware * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * * Based on Sprinter and grbl. * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, seeAnd `Configuration_adv.h`…
```cpp /** * Configuration_adv.h * * Advanced settings. * Only change these if you know exactly what you're doing. * Some of these settings can damage your printer if improperly set! * * Basic settings can be found in Configuration.h * */ #ifndef CONFIGURATION_ADV_H #define CONFIGURATION_ADV_H /** * * *********************************** * ** ATTENTION TO ALL DEVELOPERS ** * *********************************** * * You must increment this version number for every significant change such as, * but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option. * * Note: Update also Version.h ! */ #define CONFIGURATION_ADV_H_VERSION 010100 // @section temperature //=========================================================================== //=============================Thermal Settings ============================ //=========================================================================== #if DISABLED(PIDTEMPBED) #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control #if ENABLED(BED_LIMIT_SWITCHING) #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS #endif #endif /** * Thermal Protection protects your printer from damage and fire if a * thermistor falls out or temperature sensors fail in any way. * * The issue: If a thermistor falls out or a temperature sensor fails, * Marlin can no longer sense the actual temperature. Since a disconnected * thermistor reads as a low temperature, the firmware will keep the heater on. * * The solution: Once the temperature reaches the target, start observing. * If the temperature stays too far below the target (hysteresis) for too long (period), * the firmware will halt the machine as a safety precaution. * * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD */ #if ENABLED(THERMAL_PROTECTION_HOTENDS) #define THERMAL_PROTECTION_PERIOD 40 // Seconds #define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius /** * Whenever an M104 or M109 increases the target temperature the firmware will wait for the * WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE * degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109, * but only if the current temperature is far enough below the target for a reliable test. * * If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE * WATCH_TEMP_INCREASE should not be below 2. */ #define WATCH_TEMP_PERIOD 20 // Seconds #define WATCH_TEMP_INCREASE 2 // Degrees Celsius #endif /** * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius /** * Whenever an M140 or M190 increases the target temperature the firmware will wait for the * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, * but only if the current temperature is far enough below the target for a reliable test. * * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) */ #define WATCH_BED_TEMP_PERIOD 60 // Seconds #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) // this adds an experimental additional term to the heating power, proportional to the extrusion speed. // if Kc is chosen well, the additional required power due to increased melting should be compensated. //#define PID_EXTRUSION_SCALING #if ENABLED(PID_EXTRUSION_SCALING) #define DEFAULT_Kc (100) //heating power=Kc*(e_speed) #define LPQ_MAX_LEN 50 #endif #endif /** * Automatic Temperature: * The hotend target temperature is calculated by all the buffered lines of gcode. * The maximum buffered steps/sec of the extruder motor is called "se". * Start autotemp mode with M109 S