Bonjour à tous,
Je sollicite votre aide pour faire fonctionner mon 3Dtouch.
Pour information, il a toujours fonctionné correctement, mais suite au remplacement d'un moteur, j'ai tout démonté et tout remonté, et depuis, le capteur a un comportement que je ne m'explique pas: le homing fonctionne parfaitement, mais le levelling rate dès le premier checkpoint. Le bras du capteur reste rétracté, et ne se déploie pas juste avant le premier checkpoint.
Le capteur en lui-même est celui de chez Geeetech, la board est une GT2560A+, donc celle avec le connecteur dédié. J'utilise Marlin 1.1.9 depuis sa sortie (et le capteur fonctionnait bien), mais quand j'ai tout démonté/remonté, n'ayant pas sauvegardé mon fichier de configuration, je suis reparti d'une base "vierge" (celle dans le dossier examples/geeetech/prusa i3 pro b/bltouch). Je pense donc que le problème est software et non hardware. Malgré tout, je vous joins quelques photos de mon installation.
Pour résumer, ce qui fonctionne:
À l'allumage, le capteur fait son self-test en se déployant/rétractant 2 fois
Homing X, Y et Z
Self test du capteur
Commande manuelle de rétraction et de déploiement
Ce qui ne fonctionne pas:
Le capteur ne se déploie pas juste avant le premier test de nivelage, et donc l'imprimante s'arrête avec le message "Probing failed"
Voici le journal avec debug activé (M111 S32). Il commence après homing manuel, quand je suis allé dans le menu pour lancer le bed leveling:
Send: M111 S32
Recv: echo:DEBUG:LEVELING
Recv: ok
[...]
Recv: echo:enqueueing "G28"
Recv: echo:enqueueing "G29"
Recv: >>> G28
Recv: Machine Type: Cartesian
Recv: Probe: BLTOUCH
Recv: Probe Offset X:15 Y:53 Z:-1.80 (Right-Back & Below Nozzle)
Recv: Auto Bed Leveling: BILINEAR (disabled)
Recv:
Recv: set_bltouch_deployed(0)
Recv: current_position=(85.00, 52.00, 11.80) : setup_for_endstop_or_probe_move
Recv: > endstops.enable(true)
Recv: >>> homeaxis(X)
Recv: Home 1 Fast:
Recv: >>> do_homing_move(X, -336.00, [50.00])
Recv: current_position=(0.00, 52.00, 11.80) : sync_plan_position
[...]
Recv: echo:busy: processing
Recv: <<< do_homing_move(X)
Recv: Move Away:
Recv: >>> do_homing_move(X, 5.00, [50.00])
Recv: current_position=(0.00, 52.00, 11.80) : sync_plan_position
[...]
Recv: <<< do_homing_move(X)
Recv: Home 2 Slow:
Recv: >>> do_homing_move(X, -10.00, 25.00)
Recv: current_position=(0.00, 52.00, 11.80) : sync_plan_position
Recv: <<< do_homing_move(X)
Recv: >>> set_axis_is_at_home(X)
Recv: For X axis:
Recv: home_offset = 0.00
Recv: position_shift = 0.00
Recv: soft_endstop_min = -12.00
Recv: soft_endstop_max = 212.00
Recv: > home_offset[X] = 0.00
Recv: current_position=(-12.00, 52.00, 11.80) :
Recv: <<< set_axis_is_at_home(X)
Recv: current_position=(-12.00, 52.00, 11.80) : sync_plan_position
Recv: current_position=(-12.00, 52.00, 11.80) : > AFTER set_axis_is_at_home
Recv: <<< homeaxis(X)
Recv: >>> homeaxis(Y)
Recv: Home 1 Fast:
Recv: >>> do_homing_move(Y, -339.00, [50.00])
Recv: current_position=(-12.00, 0.00, 11.80) : sync_plan_position
Recv: echo:busy: processing
Recv: <<< do_homing_move(Y)
Recv: Move Away:
Recv: >>> do_homing_move(Y, 5.00, [50.00])
Recv: current_position=(-12.00, 0.00, 11.80) : sync_plan_position
Recv: <<< do_homing_move(Y)
Recv: Home 2 Slow:
Recv: >>> do_homing_move(Y, -10.00, 25.00)
Recv: current_position=(-12.00, 0.00, 11.80) : sync_plan_position
[...]
Recv: <<< do_homing_move(Y)
Recv: >>> set_axis_is_at_home(Y)
Recv: For Y axis:
Recv: home_offset = 0.00
Recv: position_shift = 0.00
Recv: soft_endstop_min = -8.00
Recv: soft_endstop_max = 218.00
Recv: > home_offset[Y] = 0.00
Recv: current_position=(-12.00, -8.00, 11.80) :
Recv: <<< set_axis_is_at_home(Y)
Recv: current_position=(-12.00, -8.00, 11.80) : sync_plan_position
Recv: current_position=(-12.00, -8.00, 11.80) : > AFTER set_axis_is_at_home
Recv: <<< homeaxis(Y)
Recv: Z_SAFE_HOMING >>>
Recv: current_position=(-12.00, -8.00, 11.80) : sync_plan_position
Recv: destination=(85.00, 52.00, 11.80) : Z_SAFE_HOMING
Recv: >>> do_blocking_move_to(85.00, 52.00, 11.80)
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to
Recv: >>> homeaxis(Z)
Recv: current_position=(85.00, 52.00, 11.80) : set_probe_deployed
Recv: deploy: 1
Recv: do_probe_raise(10.00)
Recv: >>> do_blocking_move_to(85.00, 52.00, 11.80)
Recv: <<< do_blocking_move_to
Recv: Home 1 Fast:
Recv: set_bltouch_deployed(1)
Recv: >>> do_homing_move(Z, -300.00, [4.00])
Recv: current_position=(85.00, 52.00, 0.00) : sync_plan_position
[...]
Recv: echo:busy: processing
[...]
Recv: <<< do_homing_move(Z)
Recv: set_bltouch_deployed(0)
Recv: Move Away:
Recv: >>> do_homing_move(Z, 5.00, 20.00)
Recv: current_position=(85.00, 52.00, 0.00) : sync_plan_position
Recv: echo:busy: processing
[...]
Recv: <<< do_homing_move(Z)
Recv: Home 2 Slow:
Recv: set_bltouch_deployed(1)
Recv: >>> do_homing_move(Z, -10.00, 10.00)
Recv: current_position=(85.00, 52.00, 0.00) : sync_plan_position
Recv: echo:busy: processing
Recv: <<< do_homing_move(Z)
Recv: set_bltouch_deployed(0)
Recv: >>> set_axis_is_at_home(Z)
Recv: For Z axis:
Recv: home_offset = 0.00
Recv: position_shift = 0.00
Recv: soft_endstop_min = 0.00
Recv: soft_endstop_max = 200.00
Recv: *** Z HOMED WITH PROBE (Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) ***
Recv: > zprobe_zoffset = -1.80
Recv: > home_offset[Z] = 0.00
Recv: current_position=(85.00, 52.00, 1.80) :
Recv: <<< set_axis_is_at_home(Z)
Recv: current_position=(85.00, 52.00, 1.80) : sync_plan_position
Recv: current_position=(85.00, 52.00, 1.80) : > AFTER set_axis_is_at_home
Recv: current_position=(85.00, 52.00, 1.80) : set_probe_deployed
Recv: deploy: 0
Recv: do_probe_raise(10.00)
Recv: >>> do_blocking_move_to(85.00, 52.00, 11.80)
[...]
Recv: echo:busy: processing
[...]
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to
Recv: >>> do_blocking_move_to(85.00, 52.00, 11.80)
Recv: <<< do_blocking_move_to
Recv: <<< homeaxis(Z)
Recv: <<< Z_SAFE_HOMING
Recv: current_position=(85.00, 52.00, 11.80) : sync_plan_position
Recv: current_position=(85.00, 52.00, 11.80) : clean_up_after_endstop_or_probe_move
Recv: X:85.00 Y:52.00 Z:11.80 E:0.00 Count X:6678 Y:4094 Z:4720
Recv: <<< G28
Recv: current_position=(85.00, 52.00, 11.80) : >>> G29
Recv: Machine Type: Cartesian
Recv: Probe: BLTOUCH
Recv: Probe Offset X:15 Y:53 Z:-1.80 (Right-Back & Below Nozzle)
Recv: Auto Bed Leveling: BILINEAR (disabled)
Recv:
Recv: current_position=(85.00, 52.00, 11.80) : set_probe_deployed
Recv: deploy: 1
Recv: do_probe_raise(10.00)
Recv: >>> do_blocking_move_to(85.00, 52.00, 11.80)
Recv: <<< do_blocking_move_to
Recv: current_position=(85.00, 52.00, 11.80) : setup_for_endstop_or_probe_move
Recv: reset_bed_level
Recv: >>> probe_pt(10.00, 45.00, raise, 0, probe_relative)
Recv: current_position=(85.00, 52.00, 11.80) :
Recv: >>> do_blocking_move_to(-5.00, -8.00, 11.80)
Recv: <<< do_blocking_move_to
Recv: current_position=(-5.00, -8.00, 11.80) : set_probe_deployed
Recv: deploy: 1
Recv: current_position=(-5.00, -8.00, 11.80) : >>> run_z_probe
Recv: current_position=(-5.00, -8.00, 11.80) : >>> do_probe_move
Recv: set_bltouch_deployed(1)
Recv: >>> do_blocking_move_to(-5.00, -8.00, -0.20)
[...]
Recv: echo:busy: processing
[...]
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to
Recv: current_position=(-5.00, -8.00, -0.20) : sync_plan_position
Recv: current_position=(-5.00, -8.00, -0.20) : <<< do_probe_move
Recv: FAST Probe fail!
Recv: current_position=(-5.00, -8.00, -0.20) : <<< run_z_probe
Recv: >>> do_blocking_move_to(-5.00, -8.00, 4.80)
Recv: <<< do_blocking_move_to
Recv: Error:Probing failed
Recv: <<< probe_pt
Recv: current_position=(-5.00, -8.00, 4.80) : set_probe_deployed
Recv: deploy: 0
Recv: do_probe_raise(10.00)
Recv: >>> do_blocking_move_to(-5.00, -8.00, 11.80)
[...]
Recv: echo:busy: processing
Recv: <<< do_blocking_move_to
Recv: >>> do_blocking_move_to(-5.00, -8.00, 11.80)
Recv: <<< do_blocking_move_to
Recv: current_position=(-5.00, -8.00, 11.80) : > probing complete
Recv: current_position=(-5.00, -8.00, 11.80) : clean_up_after_endstop_or_probe_move
Recv: <<< G29
Recv: X:-5.00 Y:-8.00 Z:11.80 E:0.00 Count X:-394 Y:-630 Z:4720
Concernant les photos:
La première est un détail du connecteur sur le capteur avec mon câble qui part vers le haut
La seconde est un détail du connecteur sur la GT2560A+
Le fil brun correspond à la masse, le rouge puis le brun/blanc au +5V, le orange au capteur. Le couple vert/blanc va sur le connecteur Z-min de la carte.
Je joins également mon Configuration.h.
Configuration.h