Hi! I need help calibrating my BL-touch probe, I have a diy CoreXY printer with thriple Z axis which I want to use for true bed leveling and height map probing.
I have everything working beside the probe, the printer works fine if I adjust the bed manually and for now I'm using three Z endstops for homing each axis and I have manually adjusted the bed.
When I try to follow the calibrating procedure on step 7 it is expected to read a positive value, but I get a negative one: -5.00
This is obviously not right. The probe deploys/retracts and triggers correctly, but the reported value is wrong. If I measure the gap it is about 3.65mm. I have tried to put that value in G31 and do a bed leveling procedure but then it reports as the last point doesn't trigger the probe. But I think the root of the problem, the first wrong thing that I see, is the calibration procedure.
Another strange thing... If I understand it correctly, the command G30 S-1 should NOT change the Z height, but in my case it is changed to -5.00 when I probe on step 7 of the procedure... is this normal?
My diagnostics information:
M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.2.2 running on Duet 3 MB6HC v1.01 or later (standalone mode)
Board ID: 08DJM-9P63L-DJ3S0-7JKD8-3SD6J-TVJM9
Used output buffers: 1 of 40 (19 max)
=== RTOS ===
Static ram: 149788
Dynamic ram: 92840 of which 68 recycled
Never used RAM 116136, free system stack 130 words
Tasks: NETWORK(ready,167) ETHERNET(blocked,114) HEAT(blocked,297) CanReceiv(blocked,848) CanSender(blocked,348) CanClock(blocked,352) TMC(blocked,17) MAIN(running,1119) IDLE(ready,19)
Owned mutexes:
=== Platform ===
Last reset 00:04:36 ago, cause: software
Last software reset at 2021-06-02 20:08, reason: User, GCodes spinning, available RAM 116136, slot 2
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
Aux1 errors 0,0,0
MCU temperature: min 49.0, current 49.6, max 49.8
Supply voltage: min 24.2, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.2, current 12.3, max 12.4, under voltage events: 0
Driver 0: position 60000, standstill, reads 55021, writes 20 timeouts 0, SG min/max 0/486
Driver 1: position 0, standstill, reads 55021, writes 20 timeouts 0, SG min/max 0/132
Driver 2: position 6000, standstill, reads 55027, writes 14 timeouts 0, SG min/max 0/0
Driver 3: position 0, standstill, reads 55030, writes 11 timeouts 0, SG min/max 0/0
Driver 4: position 0, standstill, reads 55031, writes 11 timeouts 0, SG min/max 0/0
Driver 5: position 0, standstill, reads 55031, writes 11 timeouts 0, SG min/max 0/0
Date/time: 2021-06-02 20:12:57
Slowest loop: 9.60ms; fastest: 0.05ms
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest read time 2.4ms, write time 2.9ms, max retries 0
=== Move ===
DMs created 125, maxWait 43007ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 18, completed moves 18, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 9], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
SBC is idle in state(s) 0
Daemon is idle in state(s) 0
Aux2 is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty.
=== Network ===
Slowest loop: 23.25ms; fastest: 0.02ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
HTTP sessions: 1 of 8
- Ethernet -
State: active
Error counts: 0 0 1 0 0
Socket states: 5 2 2 2 2 0 0 0
=== CAN ===
Messages queued 1143, send timeouts 0, received 221, lost 0, longest wait 1ms for reply type 6018, free buffers 48
my config.g:
; General preferences
M111 S0 ; debug off
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"printer" ; set printer name
M669 K1 ; select CoreXY mode
; Network
M540 PBE:73:31:34:53:3E ; set custom MAC address
M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet
G4 S1 ; wait for expansion boards to initialize
; Drives
M569 P0.0 S1 D3 ; physical drive 0.0 goes forwards
M569 P0.1 S1 D3 ; physical drive 0.1 goes forwards
M569 P1.0 S1 D3 ; physical drive 1.0 goes forwards
M569 P1.1 S1 D3 ; physical drive 1.1 goes forwards
M569 P1.2 S1 D3 ; physical drive 1.2 goes forwards
M569 P0.2 S0 ; physical drive 0.2 goes backwards
M584 X0.0 Y0.1 Z1.0:1.1:1.2 E0.2 ; set drive mapping, three Z motors connected to driver outputs 0, 1 and 2 of expansion board
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X200.00 Y200.00 Z400.00 E420.00 ; set steps per mm
M566 X900.00 Y900.00 Z24.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z400.00 E6000.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z100.00 E250.00 ; set accelerations (mm/s^2)
M906 X1000 Y1000 Z1200 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Axis Limits
M208 X-25:328 Y0:300 Z0:286 S1 ; set axis min:max
; Endstops ; no puedo usar io0.in para esto puesto que va con el PanelDue
; Las entradas de final de carrera tienen un pull-up interno de 27kOhm
; Cuando se presiona el final de carrera, este cortocircuita la lÃnea y pasa a 0
M574 X1 S1 P"io1.in" ; configure active-high endstop for low end on X via pin io1.in
M574 Y1 S1 P"io2.in" ; configure active-high endstop for low end on Y via pin io2.in
M574 Z2 S1 P"1.io0.in+1.io1.in+1.io2.in" ; configure active-high endstop for high end on Z via pins 1.io0.in+1.io1.in+1.io2.in
; Z-Probe
;M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
;M557 X15:215 Y15:195 S20 ; define mesh grid
M950 S0 C"io7.out" ; create servo pin 0 for BLTouch
M558 P9 C"io7.in" H10 R0.2 F100 T6000 A5 ; set Z probe type to bltouch and the dive height + speeds
G31 P25 X0 Y20 Z3.67 ; set Z probe trigger value, offset and trigger height
M557 X20:280 Y20:280 P4 ; define mesh grid
; Z-axis leadscrews positions
M671 X-75:150:375 Y10:380:10 S6.0
; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 R0.241 C467.8 D3.07 S1.00 V24.2 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"spi.cs0" Y"rtd-max31865" ; configure sensor 1 as PT100 via CS pin spi.cs0
M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 R2.137 C196.5:184.7 D5.46 S1.00 V24.3; tuning parameters
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C
; Fans
M950 F0 C"out8" Q15000 ; create fan 0 on pin out8 and set its frequency
M106 P0 C"Part Fan" B0.5 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out7" Q500 ; create fan 1 on pin out7 and set its frequency
M106 P1 C"Heatbreak Fan" S0 L1.0 X1.0 H1 T45 ; set fan 1 value. Thermostatic control is turned on
; Tools
M563 P0 D0 H1 F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
;M572 D0 S0.7 ; pressure advance
; Custom settings are not defined
; Miscellaneous
M575 P1 S1 B57600 ; enable support for PanelDue
This is my bed.g but I'm still not doing bed compensation, it may not be correct, but should not be the cause of my calibration issues:
; bed.g
; called to perform automatic bed compensation via G32
G28 ; home
M561 ; clear any bed transform
G90 ; absolute positioning
G1 Z10 H0 ; Making sure we're not going to hit the side of glass
G91
G28 ; home all axis
M400 ; Wait for move to finish
M557 X20:280 Y20:280 P4 ; define mesh grid
G30 P0 X15 Y20 Z-99999 ; probe near left leadscrew
G30 P1 X150 Y290 Z-99999 ; probe near back leadscrew
G30 P2 X285 Y20 Z-99999 S3 ; probe near right leadscrew and calibrate 3 motors
G28
;G29 ; Probe the bed and save height map to file
G1 Z5 F600
G1 X150 Y20 F5000
Thanks!