Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Kossel delta does not calibrate #26907

Closed
1 task done
AkagiVoid opened this issue Mar 26, 2024 · 11 comments · Fixed by #27088
Closed
1 task done

[BUG] Kossel delta does not calibrate #26907

AkagiVoid opened this issue Mar 26, 2024 · 11 comments · Fixed by #27088

Comments

@AkagiVoid
Copy link

AkagiVoid commented Mar 26, 2024

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

Reporting odd behavior bug for G28 auto home in example code for my kossel Linear Plus non pulley version. >w>
image

Bug Timeline

Possibly a New bug, 2024-03-26

Expected behavior

Auto home Z axis. >w>

Actual behavior

The rod carriage on all three horizontal bars stops within 5mm from hitting the switch lever, and printer triggers a fail safe for no reason. >w>

Steps to Reproduce

Step1: Download latest Marlin and install. :P

Step2: Download latest Arduino and install. :3

Step3: Download latest Marlin 2.1.2.2 Example Configurations, extract, open extract folder to "config\examples\delta\Anycubic\Kossel Linear Plus" copy the .h files. >w>

Step4: pasted the copied files directly into "Marlin" folder then open the .ino file with Arduino. >w>

Step5: Calibrate settings to match what I know about my Kossel like the 96 Esteps should be 155 for mine since I'm running a pancake motor, Diagonal Rods are 271.5 (Did change this back to default 267.0 and same homing failure), and set z probe offset to 17.0 (used a caliper and roughly eye balled it). <w<

Step6: Check the compiling codes, then upload it to printer if no errors. >w<

Step7: Do auto bed leveling with probe. :3

Step8: Fine tune Z Offset with paper roughly the size of 0.15mm (kept getting auto home leveling failed error). XwX

Version of Marlin Firmware

2.1.2.2

Printer model

Kossel Linear Plus

Electronics

Stock

LCD/Controller

Stock

Other add-ons

N/A

Bed Leveling

None

Your Slicer

Cura

Host Software

None

Don't forget to include

  • A ZIP file containing your Configuration.h and Configuration_adv.h.

Additional information & file uploads

KosselLinearPlus-NonPulley.zip

@thisiskeithb
Copy link
Member

Whenever there are homing or leveling issues, we now ask everyone to follow a standard procedure to gather more information:

  • Download Marlin bugfix-2.1.x to test with the latest code.
  • Enable DEBUG_LEVELING_FEATURE and M114_DETAIL and re-flash the firmware.
  • Connect to your printer from host software such as Pronterface, Repetier Host, or OctoPrint.
  • Send M502 and M500 to ensure your Configurations are applied.
  • Issue the command M111 S247 to enable maximum logging.
  • Perform a G28 to do your standard homing procedure.
  • Do a G29 to probe the bed. This will also enable bed leveling.
  • Do some of the moves that revealed problems before. Take notes.
  • Copy the log output into a .TXT file and attach it to your next reply.

Repeat this procedure, if needed, to demonstrate inconsistencies. From these logs we should hopefully get a better idea of what's going on with your machine.

@thisiskeithb thisiskeithb changed the title [BUG] AnycubicKosselLinearPlus-NonPulley_Error-HomingFailedPrinterHaltPleaseReset [BUG] Kossel delta does not home Mar 26, 2024
@ellensp
Copy link
Contributor

ellensp commented Mar 26, 2024

homing z moves 1.5 * z height, which your config says is 300mm, so a z home attempts to move 450mm and expects to hit an endstop or it errors if they are not triggered.

I suspect your steps/mm is just not correct, since its calculated from these, one or more of these is probably incorrect for your machine.
#define XYZ_FULL_STEPS_PER_ROTATION 200
#define XYZ_MICROSTEPS 16
#define XYZ_BELT_PITCH 2
#define XYZ_PULLEY_TEETH 20

Do a simple test, move all carriage up high and home Z
tell marlin to move down a length say 50mm (G91 then G1 Z-50) . measure how far it actually moved

@AkagiVoid
Copy link
Author

@thisiskeithb
This time, doing the g29 makes the delta go to the front of the printer's bed and take z level on the bed instead of center z level for the center of the bed. >:/
Like it probe goes between the right and left horizontal bars where the LCD is facing and takes a z reading there. ?w?

And redoing the bug fix seem to have fixed the g28 problem but produces a new problem of inconsistent g0 z0 f500 when I try to do offset. XwX
Z offset -17.00 nozzle hits bed belts slip, Z offset 0.00 Nozzle hits bed belts slip, Z Offset +17.00 do not hit bed, Z offset +15.00 do not hit bed, +10 Z offset do not hit bed, Z offset +5.00 Do not hit bed, Z offset 0.00 do not hit bed, Z offset -5.00 hits bed and NO BELT SLIP? @w@ Confused

Log 1 after following UR steps. >w>
KosselLinearPlus_LOG2024-03-27.txt

Log 2 after your steps, removed probe, then reboot printer to do z offset check before bed leveling:
KosselLinearPlus-ZOffsetInconsistency_LOG2024-03-27.txt

Firmware after applying bugfixs and edit the codes for my printer:
Mediafire


@ellensp The output result is 49.69mm after measuring three times. >w>

@thisiskeithb
Copy link
Member

Log 1 after following UR steps. >w> KosselLinearPlus_LOG2024-03-27.txt

Log 2 after your steps, removed probe, then reboot printer to do z offset check before bed leveling: KosselLinearPlus-ZOffsetInconsistency_LOG2024-03-27.txt

Both of these logs show that you're still running Marlin 2.1.2.2 which is quite buggy.

Please follow the steps listed in my previous comment exactly, which includes downloading the latest bugfix-2.1.x to test with the latest code.

@AkagiVoid
Copy link
Author

AkagiVoid commented Mar 30, 2024

@thisiskeithb
Um, using just the bugfix link provided by you, also the latest Config-Profile examples, and it did dis in log report while compile testing. XwX
ArduinoIDE_CompileTestLog.txt

@thisiskeithb
Copy link
Member

Use VSCode & PlatformIO instead of Arduino IDE and make sure you're using bugfix-2.1.x configs from https://github.com/MarlinFirmware/Configurations/archive/bugfix-2.1.x.zip

@Foxies-CSTL
Copy link
Contributor

@AkagiVoid
For my Deltas to work properly using the latest Bugfix, I must avoid applying #26297 to the sources, otherwise the calibration (G33) and probe test (M48) will cause measurement errors.

If it helps.

@thisiskeithb
Copy link
Member

For my Deltas to work properly using the latest Bugfix, I must avoid applying #26297 to the sources, otherwise the calibration (G33) and probe test (M48) will cause measurement errors.

@Foxies-CSTL: Can you apply just the changes from initial commit in that PR? a72764e

diff:

diff --git a/Marlin/src/module/delta.cpp b/Marlin/src/module/delta.cpp
index cfa134860b86..b624396d5217 100644
--- a/Marlin/src/module/delta.cpp
+++ b/Marlin/src/module/delta.cpp
@@ -242,7 +242,7 @@ void home_delta() {
   #endif
 
   // Move all carriages together linearly until an endstop is hit.
-  current_position.z = DIFF_TERN(HAS_BED_PROBE, delta_height + 10, probe.offset.z);
+  current_position.z = TERN(HAS_BED_PROBE, DIFF_TERN(USE_PROBE_FOR_Z_HOMING,  delta_height + 10, probe.offset.z), delta_height + 10);
   line_to_current_position(homing_feedrate(Z_AXIS));
   planner.synchronize();
   TERN_(HAS_DELTA_SENSORLESS_PROBING, endstops.report_states());
diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp
index 272b16c9ac0f..e96c2ca4d5c0 100644
--- a/Marlin/src/module/motion.cpp
+++ b/Marlin/src/module/motion.cpp
@@ -892,7 +892,7 @@ void restore_feedrate_and_scaling() {
     #elif ENABLED(DELTA)
 
       soft_endstop.min[axis] = base_min_pos(axis);
-      soft_endstop.max[axis] = (axis == Z_AXIS) ? DIFF_TERN(HAS_BED_PROBE, delta_height, probe.offset.z) : base_max_pos(axis);
+      soft_endstop.max[axis] = (axis == Z_AXIS) ? TERN(HAS_BED_PROBE, DIFF_TERN(USE_PROBE_FOR_Z_HOMING, delta_height, probe.offset.z) , delta_height) : base_home_pos(axis);
 
       switch (axis) {
         case X_AXIS:
@@ -2468,7 +2468,7 @@ void set_axis_is_at_home(const AxisEnum axis) {
   #if ANY(MORGAN_SCARA, AXEL_TPARA)
     scara_set_axis_is_at_home(axis);
   #elif ENABLED(DELTA)
-    current_position[axis] = (axis == Z_AXIS) ? DIFF_TERN(HAS_BED_PROBE, delta_height, probe.offset.z) : base_home_pos(axis);
+    current_position[axis] = (axis == Z_AXIS) ? TERN(HAS_BED_PROBE, DIFF_TERN(USE_PROBE_FOR_Z_HOMING, delta_height, probe.offset.z) , delta_height) : base_home_pos(axis);
   #else
     current_position[axis] = SUM_TERN(HAS_HOME_OFFSET, base_home_pos(axis), home_offset[axis]);
   #endif

If that doesn't work, I'll submit a PR to fully revert #26297.

@thisiskeithb thisiskeithb changed the title [BUG] Kossel delta does not home [BUG] Kossel delta does not calibrate May 8, 2024
@Foxies-CSTL
Copy link
Contributor

Foxies-CSTL commented May 11, 2024

@Foxies-CSTL: Can you apply just the changes from initial commit in that PR? a72764e
diff:

If that doesn't work, I'll submit a PR to fully revert #26297.

Test on my Delta QQSP (BugFix 2.1.3 - Bump 2024/04/29):

image

I don't have the same behavior, but the calibration is still not complete. so this doesn't solve the problem.

20240511-CalibbrationDelta2.mp4

Sorry about the quality.
and the function file activated in the firmware.
20240511-Config-BugG29.txt

Log debug file:
20240511-Debug-BugG29.txt

@thisiskeithb
Copy link
Member

Copy link

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.

@github-actions github-actions bot locked and limited conversation to collaborators Jul 16, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants