[Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Jakość druku Cię nie zadowala?
Awatar użytkownika
morf
Drukarz
Postów w temacie: 4
Posty: 3203
Rejestracja: 17 sty 2017, 12:28
Drukarka: Reprapy, Prusa MK3S
x 1575

[Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Post autor: morf »

Czesc,

[drukarka z konstrukcja bramową, dwa silniki Z na srubach trapezowych]

otoz mam problem, z Marlinowym ficzerem Z_STEPPER_AUTO_ALIGN.

W telegraficznym skrócie, dla mojej konfiguracji powinien probkowac stół po prawej i lewej stronie i odpowiednio wypoziomowac os Z wzgledem stołu.

Otoż faktycznie próbkuje ale dokładnosc jest caly czas ta sama i mam wrazenie ze po takim wyrownaniu jest jeszcze gorzej niz jak stosowalem MECHANICAL_GANTRY_CALIBRATION(czyli dojechanie do góry drukarki i wyrównanie osi metodą bruteforce.

Wrzucilem nawet najnowszego Marlina stable 2.0.9.3 ale jest to samo

Przykladowo:

Kod: Zaznacz cały

Send: G34
Recv: 
Recv: G34 Iteration: 1
Recv: 
Recv: Z2-Z1=0.22
Recv: 
Recv: G34 Iteration: 2
Recv: Z2-Z1=0.22
Recv: 
Recv: G34 Iteration: 3
Recv: Z2-Z1=0.22
Recv: 
Recv: G34 Iteration: 4
Recv: Z2-Z1=0.22
Recv: 
Recv: G34 Iteration: 5
Recv: Z2-Z1=0.22
Recv: Did 5 of 5
Recv: Accuracy: 0.22

wycinek mojego konfiga:

Kod: Zaznacz cały

/**
 * Z Steppers Auto-Alignment
 * Add the G34 command to align multiple Z steppers using a bed probe.
 */
#define Z_STEPPER_AUTO_ALIGN
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
  // Define probe X and Y positions for Z1, Z2 [, Z3 [, Z4]]
  // If not defined, probe limits will be used.
  // Override with 'M422 S<index> X<pos> Y<pos>'
  #define Z_STEPPER_ALIGN_XY { {  45, 105 }, { 200,  105 } }

  /**
   * Orientation for the automatically-calculated probe positions.
   * Override Z stepper align points with 'M422 S<index> X<pos> Y<pos>'
   *
   * 2 Steppers:  (0)     (1)
   *               |       |   2   |
   *               | 1   2 |       |
   *               |       |   1   |
   *
   * 3 Steppers:  (0)     (1)     (2)     (3)
   *               |   3   | 1     | 2   1 |     2 |
   *               |       |     3 |       | 3     |
   *               | 1   2 | 2     |   3   |     1 |
   *
   * 4 Steppers:  (0)     (1)     (2)     (3)
   *               | 4   3 | 1   4 | 2   1 | 3   2 |
   *               |       |       |       |       |
   *               | 1   2 | 2   3 | 3   4 | 4   1 |
   */
  #ifndef Z_STEPPER_ALIGN_XY
    #define Z_STEPPERS_ORIENTATION 0
  #endif

  // Provide Z stepper positions for more rapid convergence in bed alignment.
  // Requires triple stepper drivers (i.e., set NUM_Z_STEPPER_DRIVERS to 3)
  //#define Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS
  #if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
    // Define Stepper XY positions for Z1, Z2, Z3 corresponding to
    // the Z screw positions in the bed carriage.
    // Define one position per Z stepper in stepper driver order.
    #define Z_STEPPER_ALIGN_STEPPER_XY { { 210.7, 102.5 }, { 152.6, 220.0 }, { 94.5, 102.5 } }
  #else
    // Amplification factor. Used to scale the correction step up or down in case
    // the stepper (spindle) position is farther out than the test point.
    #define Z_STEPPER_ALIGN_AMP 1.0       // Use a value > 1.0 NOTE: This may cause instability!
  #endif

  // On a 300mm bed a 5% grade would give a misalignment of ~1.5cm
  #define G34_MAX_GRADE              5    // (%) Maximum incline that G34 will handle
  #define Z_STEPPER_ALIGN_ITERATIONS 5    // Number of iterations to apply during alignment
  #define Z_STEPPER_ALIGN_ACC        0.02 // Stop iterating early if the accuracy is better than this
  #define RESTORE_LEVELING_AFTER_G34      // Restore leveling after G34 is done?
  // After G34, re-home Z (G28 Z) or just calculate it from the last probe heights?
  // Re-homing might be more precise in reproducing the actual 'G28 Z' homing height, especially on an uneven bed.
  #define HOME_AFTER_G34
#endif

Teraz pytanie czy faktycznie tak to ciulowo działa, czy ja coś zle skonfigurowalem...
Ogladalem tez filmik Chrisa na YT i wyglada, ze wszystko mam okej od strony configu.
Ktos moze ma jakies doswiadczenia z feature?
Done is better than perfect.
Awatar użytkownika
konradsdev1
Postów w temacie: 2
Posty: 434
Rejestracja: 30 wrz 2020, 16:55
Lokalizacja: Warszawa
Drukarka: VORON 0
x 165

Re: [Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Post autor: konradsdev1 »

Korzystałem z tej funkcji w Marlinie 2.0.7 i działało to bardzo dokładnie i powtarzalnie razem z klonem BLTouch.

Kod: Zaznacz cały

> M422 S1 X25 Y100
> M422 S2 X200 Y100
> G34
ITERATION: 1
DIFFERENCE Z1-Z2=0.002500
Target accuracy achieved.
Did 1 of 5
Accuracy: 0.002500
Może spróbuj włączyć debugowanie, w komunikatach powinno być więcej informacji.

Kod: Zaznacz cały

#define DEBUG_LEVELING_FEATURE
> M111 S38
"Everybody needs a hobby" (Tony Stark).
VORON V0.2 (BTT SKR Pico + RPi 4B + Phaetus x Voron Dragon Hotend ST)
DIY MK4 + VORON Stealthburner (BTT SKR PRO V1.1 + RPi Zero 2 W)
Awatar użytkownika
morf
Drukarz
Postów w temacie: 4
Posty: 3203
Rejestracja: 17 sty 2017, 12:28
Drukarka: Reprapy, Prusa MK3S
x 1575

Re: [Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Post autor: morf »

Dzięki za info, spróbuję z włączonym debugiem.
Ale jeśli dobrze widzę na twoim przykładzie to od razu jest dokładnie wypoziomowane i de facto nic nie zmienia...
Done is better than perfect.
Awatar użytkownika
konradsdev1
Postów w temacie: 2
Posty: 434
Rejestracja: 30 wrz 2020, 16:55
Lokalizacja: Warszawa
Drukarka: VORON 0
x 165

Re: [Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Post autor: konradsdev1 »

Nie, tak działało za drugim razem. Niestety nie mam zapisanego logu z kolejnych iteracji, przeważnie wystarczały trzy powtórzenia nawet przy dużym rozjechaniu się osi.
morf
"Everybody needs a hobby" (Tony Stark).
VORON V0.2 (BTT SKR Pico + RPi 4B + Phaetus x Voron Dragon Hotend ST)
DIY MK4 + VORON Stealthburner (BTT SKR PRO V1.1 + RPi Zero 2 W)
Awatar użytkownika
morf
Drukarz
Postów w temacie: 4
Posty: 3203
Rejestracja: 17 sty 2017, 12:28
Drukarka: Reprapy, Prusa MK3S
x 1575

Re: [Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Post autor: morf »

Zrzucilem debugga ale szczerze mowiac nie widze tutaj nic niepokojacego...

Kod: Zaznacz cały

Recv: 2nd Probe Z:6.09 Discrepancy:0.00
Recv: <<< Probe::run_z_probe  X9.00 Y86.00 Z6.09
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z6.09
Recv: >  X9.00 Y86.00 Z7.09
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z7.09
Recv: <<< Probe::probe_at_point  X9.00 Y86.00 Z7.09
Recv: > Z1 measured position is 5.26
Recv: Probing X200.00 Y105.00
Recv: >>> Probe::probe_at_point  X9.00 Y86.00 Z7.09
Recv: ...(200.00, 105.00, raise, 0, probe_relative)
Recv:   current_position= X9.00 Y86.00 Z7.09 :
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z7.09
Recv: >  X164.00 Y86.00 Z7.09
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z7.09
Recv:   current_position= X164.00 Y86.00 Z7.09 : Probe::set_deployed
Recv: deploy: 1
Recv: >>> Probe::run_z_probe  X164.00 Y86.00 Z7.09
Recv: >>> Probe::probe_down_to_z  X164.00 Y86.00 Z7.09
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z7.09
Recv: >  X164.00 Y86.00 Z0.83
Recv:  T:28.25 /0.00 B:25.80 /0.00 @:0 B@:0
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z0.83
Recv:   current_position= X164.00 Y86.00 Z5.89 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X164.00 Y86.00 Z5.89
Recv: 1st Probe Z:5.89
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z5.89
Recv: >  X164.00 Y86.00 Z6.89
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z6.89
Recv: >>> Probe::probe_down_to_z  X164.00 Y86.00 Z6.89
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z6.89
Recv: >  X164.00 Y86.00 Z0.83
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z0.83
Recv:   current_position= X164.00 Y86.00 Z5.90 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X164.00 Y86.00 Z5.90
Recv: 2nd Probe Z:5.90 Discrepancy:-0.01
Recv: <<< Probe::run_z_probe  X164.00 Y86.00 Z5.90
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z5.90
Recv: >  X164.00 Y86.00 Z6.90
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z6.90
Recv: <<< Probe::probe_at_point  X164.00 Y86.00 Z6.90
Recv: > Z2 measured position is 5.07
Recv: 
Recv: Z2-Z1=0.20
Recv: > Z1 corrected by 0.20
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z6.90
Recv: >  X164.00 Y86.00 Z7.10
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: > Z2 corrected by 0.00
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >  X164.00 Y86.00 Z7.10
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: > probing all positions.
Recv: 
Recv: G34 Iteration: 4
Recv: Probing X200.00 Y105.00
Recv: >>> Probe::probe_at_point  X164.00 Y86.00 Z7.10
Recv: ...(200.00, 105.00, raise, 0, probe_relative)
Recv:   current_position= X164.00 Y86.00 Z7.10 :
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >  X164.00 Y86.00 Z7.10
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv:   current_position= X164.00 Y86.00 Z7.10 : Probe::set_deployed
Recv: deploy: 1
Recv: >>> Probe::run_z_probe  X164.00 Y86.00 Z7.10
Recv: >>> Probe::probe_down_to_z  X164.00 Y86.00 Z7.10
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >  X164.00 Y86.00 Z0.83
Recv:  T:28.25 /0.00 B:25.80 /0.00 @:0 B@:0
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z0.83
Recv:   current_position= X164.00 Y86.00 Z5.89 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X164.00 Y86.00 Z5.89
Recv: 1st Probe Z:5.89
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z5.89
Recv: >  X164.00 Y86.00 Z6.89
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z6.89
Recv: >>> Probe::probe_down_to_z  X164.00 Y86.00 Z6.89
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z6.89
Recv: >  X164.00 Y86.00 Z0.83
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z0.83
Recv:   current_position= X164.00 Y86.00 Z5.90 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X164.00 Y86.00 Z5.90
Recv: 2nd Probe Z:5.90 Discrepancy:-0.01
Recv: <<< Probe::run_z_probe  X164.00 Y86.00 Z5.90
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z5.90
Recv: >  X164.00 Y86.00 Z6.90
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z6.90
Recv: <<< Probe::probe_at_point  X164.00 Y86.00 Z6.90
Recv: > Z2 measured position is 5.07
Recv: Probing X45.00 Y105.00
Recv: >>> Probe::probe_at_point  X164.00 Y86.00 Z6.90
Recv: ...(45.00, 105.00, raise, 0, probe_relative)
Recv:   current_position= X164.00 Y86.00 Z6.90 :
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z6.90
Recv: >  X9.00 Y86.00 Z6.90
Recv:  T:28.25 /0.00 B:25.68 /0.00 @:0 B@:0
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z6.90
Recv:   current_position= X9.00 Y86.00 Z6.90 : Probe::set_deployed
Recv: deploy: 1
Recv: >>> Probe::run_z_probe  X9.00 Y86.00 Z6.90
Recv: >>> Probe::probe_down_to_z  X9.00 Y86.00 Z6.90
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z6.90
Recv: >  X9.00 Y86.00 Z0.83
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z0.83
Recv:   current_position= X9.00 Y86.00 Z6.09 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X9.00 Y86.00 Z6.09
Recv: 1st Probe Z:6.09
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z6.09
Recv: >  X9.00 Y86.00 Z7.09
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z7.09
Recv: >>> Probe::probe_down_to_z  X9.00 Y86.00 Z7.09
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z7.09
Recv: >  X9.00 Y86.00 Z0.83
Recv:  T:28.25 /0.00 B:25.68 /0.00 @:0 B@:0
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z0.83
Recv:   current_position= X9.00 Y86.00 Z6.10 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X9.00 Y86.00 Z6.10
Recv: 2nd Probe Z:6.10 Discrepancy:-0.00
Recv: <<< Probe::run_z_probe  X9.00 Y86.00 Z6.10
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z6.10
Recv: >  X9.00 Y86.00 Z7.10
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z7.10
Recv: <<< Probe::probe_at_point  X9.00 Y86.00 Z7.10
Recv: > Z1 measured position is 5.27
Recv: 
Recv: Z2-Z1=0.20
Recv: > Z1 corrected by 0.20
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z7.10
Recv: >  X9.00 Y86.00 Z7.30
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z7.30
Recv: > Z2 corrected by 0.00
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z7.30
Recv: >  X9.00 Y86.00 Z7.30
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z7.30
Recv: > probing all positions.
Recv: 
Recv: G34 Iteration: 5
Recv: Probing X45.00 Y105.00
Recv: >>> Probe::probe_at_point  X9.00 Y86.00 Z7.30
Recv: ...(45.00, 105.00, raise, 0, probe_relative)
Recv:   current_position= X9.00 Y86.00 Z7.30 :
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z7.30
Recv: >  X9.00 Y86.00 Z7.30
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z7.30
Recv:   current_position= X9.00 Y86.00 Z7.30 : Probe::set_deployed
Recv: deploy: 1
Recv: >>> Probe::run_z_probe  X9.00 Y86.00 Z7.30
Recv: >>> Probe::probe_down_to_z  X9.00 Y86.00 Z7.30
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z7.30
Recv: >  X9.00 Y86.00 Z0.83
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z0.83
Recv:   current_position= X9.00 Y86.00 Z6.09 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X9.00 Y86.00 Z6.09
Recv: 1st Probe Z:6.09
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z6.09
Recv: >  X9.00 Y86.00 Z7.09
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z7.09
Recv: >>> Probe::probe_down_to_z  X9.00 Y86.00 Z7.09
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z7.09
Recv: >  X9.00 Y86.00 Z0.83
Recv:  T:28.25 /0.00 B:25.68 /0.00 @:0 B@:0
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z0.83
Recv:   current_position= X9.00 Y86.00 Z6.10 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X9.00 Y86.00 Z6.10
Recv: 2nd Probe Z:6.10 Discrepancy:-0.01
Recv: <<< Probe::run_z_probe  X9.00 Y86.00 Z6.10
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z6.10
Recv: >  X9.00 Y86.00 Z7.10
Recv: <<< do_blocking_move_to  X9.00 Y86.00 Z7.10
Recv: <<< Probe::probe_at_point  X9.00 Y86.00 Z7.10
Recv: > Z1 measured position is 5.27
Recv: Probing X200.00 Y105.00
Recv: >>> Probe::probe_at_point  X9.00 Y86.00 Z7.10
Recv: ...(200.00, 105.00, raise, 0, probe_relative)
Recv:   current_position= X9.00 Y86.00 Z7.10 :
Recv: >>> do_blocking_move_to  X9.00 Y86.00 Z7.10
Recv: >  X164.00 Y86.00 Z7.10
Recv:  T:28.13 /0.00 B:25.68 /0.00 @:0 B@:0
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv:   current_position= X164.00 Y86.00 Z7.10 : Probe::set_deployed
Recv: deploy: 1
Recv: >>> Probe::run_z_probe  X164.00 Y86.00 Z7.10
Recv: >>> Probe::probe_down_to_z  X164.00 Y86.00 Z7.10
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >  X164.00 Y86.00 Z0.83
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z0.83
Recv:   current_position= X164.00 Y86.00 Z5.89 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X164.00 Y86.00 Z5.89
Recv: 1st Probe Z:5.89
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z5.89
Recv: >  X164.00 Y86.00 Z6.89
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z6.89
Recv: >>> Probe::probe_down_to_z  X164.00 Y86.00 Z6.89
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z6.89
Recv: >  X164.00 Y86.00 Z0.83
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z0.83
Recv:   current_position= X164.00 Y86.00 Z5.90 : sync_plan_position
Recv: <<< Probe::probe_down_to_z  X164.00 Y86.00 Z5.90
Recv: 2nd Probe Z:5.90 Discrepancy:-0.02
Recv: <<< Probe::run_z_probe  X164.00 Y86.00 Z5.90
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z5.90
Recv: >  X164.00 Y86.00 Z6.90
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z6.90
Recv: <<< Probe::probe_at_point  X164.00 Y86.00 Z6.90
Recv: > Z2 measured position is 5.07
Recv: 
Recv: Z2-Z1=0.20
Recv: > Z1 corrected by 0.20
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z6.90
Recv: >  X164.00 Y86.00 Z7.10
Recv:  T:28.13 /0.00 B:25.68 /0.00 @:0 B@:0
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: > Z2 corrected by 0.00
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >  X164.00 Y86.00 Z7.10
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: Did 5 of 5
Recv: Accuracy: 0.20
Recv:   current_position= X164.00 Y86.00 Z7.10 : Probe::set_deployed
Recv: deploy: 0
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >  X164.00 Y86.00 Z7.10
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >>> set_axis_never_homed(Z)
Recv: <<< set_axis_never_homed(Z)
Recv: >>> G28  X164.00 Y86.00 Z7.10
Recv: Machine Type: Cartesian
Recv: Probe: FIX_MOUNTED_PROBE
Recv: Probe Offset X36.00 Y19.00 Z-1.83 (Right-Back & Below Nozzle)
Recv: Auto Bed Leveling: BILINEAR (disabled)
Recv: 
Recv: X current: 600 -> 300
Recv: Y current: 700 -> 350
Recv: Raise Z (before homing) by 1.00
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >  X164.00 Y86.00 Z7.10
Recv: <<< do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >>> home_z_safely  X164.00 Y86.00 Z7.10
Recv:   current_position= X164.00 Y86.00 Z7.10 : sync_plan_position
Recv:   destination= X74.00 Y93.00 Z1.83 : home_z_safely
Recv: >>> do_blocking_move_to  X164.00 Y86.00 Z7.10
Recv: >  X74.00 Y93.00 Z7.10
Recv: <<< do_blocking_move_to  X74.00 Y93.00 Z7.10
Recv: >>> homeaxis(Z)
Recv:   current_position= X74.00 Y93.00 Z7.10 : Probe::set_deployed
Recv: deploy: 1
Recv: Probe::do_z_raise(1.00)
Recv: >>> do_blocking_move_to  X74.00 Y93.00 Z7.10
Recv: >  X74.00 Y93.00 Z7.10
Recv: <<< do_blocking_move_to  X74.00 Y93.00 Z7.10
Recv: >>> do_blocking_move_to  X74.00 Y93.00 Z7.10
Recv: >  X74.00 Y93.00 Z7.10
Recv: <<< do_blocking_move_to  X74.00 Y93.00 Z7.10
Recv: Home Fast: -397.50mm
Recv: >>> do_homing_move  X74.00 Y93.00 Z7.10
Recv: ...(Z, -397.50, [4.00])
Recv: <<< do_homing_move  X74.00 Y93.00 Z7.10
Recv: Move Away: 2.00mm
Recv: >>> do_homing_move  X74.00 Y93.00 Z7.10
Recv: ...(Z, 2.00, 4.00)
Recv:  T:28.13 /0.00 B:25.68 /0.00 @:0 B@:0
Recv: echo:busy: processing
Recv: <<< do_homing_move  X74.00 Y93.00 Z7.10
Recv: Re-bump: -4.00mm
Recv: >>> do_homing_move  X74.00 Y93.00 Z7.10
Recv: ...(Z, -4.00, 2.00)
Recv: <<< do_homing_move  X74.00 Y93.00 Z7.10
Recv: >>> set_axis_is_at_home(Z)
Recv: *** Z HOMED WITH PROBE (Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) ***
Recv: > probe.offset.z = -1.83
Recv: Axis Z home_offset = 0.00 position_shift = 0.00
Recv: > home_offset[Z] = 0.00
Recv:   current_position= X74.00 Y93.00 Z1.83 :
Recv: <<< set_axis_is_at_home(Z)
Recv:   current_position= X74.00 Y93.00 Z1.83 : sync_plan_position
Recv:   current_position= X74.00 Y93.00 Z1.83 : > AFTER set_axis_is_at_home
Recv:   current_position= X74.00 Y93.00 Z1.83 : Probe::set_deployed
Recv: deploy: 0
Recv: >>> do_blocking_move_to  X74.00 Y93.00 Z1.83
Recv: >  X74.00 Y93.00 Z1.83
Recv: <<< do_blocking_move_to  X74.00 Y93.00 Z1.83
Recv: <<< homeaxis(Z)
Recv: <<< home_z_safely  X74.00 Y93.00 Z1.83
Recv:   current_position= X74.00 Y93.00 Z1.83 : sync_plan_position
Recv: Restore driver current...
Recv: X:74.00 Y:93.00 Z:1.83 E:0.00 Count X:5920 Y:7440 Z:732
Recv: <<< G28  X74.00 Y93.00 Z1.83
Recv: <<< G34  X74.00 Y93.00 Z1.83
Recv: ok
Send: M113 S2
Recv: ok
Recv:  T:28.13 /0.00 B:25.57 /0.00 @:0 B@:0
Recv:  T:28.00 /0.00 B:25.57 /0.00 @:0 B@:0
Recv:  T:28.00 /0.00 B:25.68 /0.00 @:0 B@:0

Wymuszenie "z palca accuracy tez nie pomaga"

Kod: Zaznacz cały

Send: G34 T0.05
[...]
Printer seems to support the busy protocol, will adjust timeouts and set busy interval accordingly
[...]
Recv: X:74.00 Y:93.00 Z:1.83 E:0.00 Count X:5920 Y:7440 Z:732
Recv: 
Recv: G34 Iteration: 1
[...]
Recv: 
Recv: Z2-Z1=0.20
Recv: 
Recv: G34 Iteration: 2
[...]
Recv: 
Recv: Z2-Z1=0.20
Recv: 
Recv: G34 Iteration: 3
[...]
Recv: 
Recv: Z2-Z1=0.20
[...]
Recv: 
Recv: G34 Iteration: 4
[...]
Recv: 
Recv: Z2-Z1=0.20
Recv: 
Recv: G34 Iteration: 5
[...]
Recv: 
Recv: Z2-Z1=0.20
[...]
Recv: Did 5 of 5
Recv: Accuracy: 0.20
Done is better than perfect.
Awatar użytkownika
morf
Drukarz
Postów w temacie: 4
Posty: 3203
Rejestracja: 17 sty 2017, 12:28
Drukarka: Reprapy, Prusa MK3S
x 1575

Re: [Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Post autor: morf »

Temat do zamkniecia, glupota uzytkownika/konstruktora :DD
Done is better than perfect.
Awatar użytkownika
Jarewa
Drukarz
Postów w temacie: 1
Posty: 1517
Rejestracja: 26 sty 2021, 22:16
Lokalizacja: Głogów
x 326

Re: [Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Post autor: Jarewa »

A co?? Jeden step na dwa silniki??
Awatar użytkownika
Czary
Postów w temacie: 2
Posty: 9
Rejestracja: 17 sty 2020, 19:32
Lokalizacja: Łódź
Drukarka: Ender 3 Pro, Ender 7

Re: [Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Post autor: Czary »

Cześć, podłączam się do tematu. U mnie po wykonaniu G34 głowica zjeżdża za nisko i przy powrocie do środka stołu uderza o jego prawą krawędź.
Używam klackender'a i przy G28 lub G29 wszystko działa jak należy- co widać w drugiej połowie filmiku.

https://www.youtube.com/shorts/7XFfpZTZ5_Q

Niestety w configuration_adv.h nie znalazłem nic co pozwalałoby zmienić zachowanie osi z po wykonaniu komendy G34.
Pozdrawiam, Czarek.
Załączniki
Configuration_adv.h
(173.3 KiB) Pobrany 33 razy
Configuration.h
(124.32 KiB) Pobrany 34 razy
Ender 3 Pro+dual Z belt mod+klackender
Awatar użytkownika
Czary
Postów w temacie: 2
Posty: 9
Rejestracja: 17 sty 2020, 19:32
Lokalizacja: Łódź
Drukarka: Ender 3 Pro, Ender 7

Re: [Marlin] G34 - Z_STEPPER_AUTO_ALIGN

Post autor: Czary »

Ok, po paru dniach coś mnie natchnęło aby jeszcze raz przejrzeć Configuration.h. Ewidentnie w sekcji #define MAG_MOUNTED_PROBE jest po linii PROBE_DEPLOY/STOW_FEEDRATE określenie punktu pobierania/odkładania czujnika dla każdej osi. Domyślnie było { 245, 114, 0 } czyli odkładał klacka na wysokość 0 w osi Z. Zmieniłem tą wartość na 8 i dopasowałem położenie probe retainer. Teraz bez problemu odkłada czujnik, jedynie punkt zahaczenia sondy o uchwyt różni się o ok 5-6mm.

Początkowo pochopnie uznałem wartości występujące w kolejnych linijkach kodu jako tyczące się tylko prędkości odkładania a nie samego punktu pobierania/oddawania czujnika. Teraz wszystko bangla- G28, G29 i G34 bez problemu ;)
Ender 3 Pro+dual Z belt mod+klackender
ODPOWIEDZ

Wróć do „Kalibracja, problemy”