Issues with Auto calibration



  • So I have a delta printer that has been sitting around for a while and decided to get it back up and running. Was running with the old Duet 0.8.5 and the IR sensor. I replaced that with the Duet Mini 5+ and a Smart Effector.

    Tapping the bottom of the effector triggers the green light so seems to be good there. Set H30 in the M558 command to be safe.

    When running the G32 command it hit the first 6 points with no issues every time. When it moves to the 7th point (P6) the nozzle crashes into the bed ever time, no green light. I changed the sensitivity to 40 and still does not trigger on that one point.

    I have managed to get this to work only once.

    Here is my bed.g.

    M561 ; clear any bed transform
    ; Probe the bed at 6 peripheral and 3 halfway points, and perform 6-factor auto compensation
    ; Before running this, you should have set up your Z-probe trigger height to suit your build, in the G31 command in config.g.
    G30 P0 X0 Y149.9 H0 Z-99999
    G30 P1 X129.82 Y74.95 H0 Z-99999
    G30 P2 X129.82 Y-74.95 H0 Z-99999
    G30 P3 X0 Y-149.9 H0 Z-99999
    G30 P4 X-129.82 Y-74.95 H0 Z-99999
    G30 P5 X-129.82 Y74.95 H0 Z-99999
    G30 P6 X0 Y74.9 H0 Z-99999
    G30 P7 X64.87 Y-37.45 H0 Z-99999
    G30 P8 X-64.87 Y-37.45 H0 Z-99999
    G30 P9 X0 Y0 H0 Z-99999 S6
    

    and config.g

    ; Configuration file for Duet 3 Mini 5+ (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.2.1 on Mon Jan 11 2021 21:34:51 GMT-0700 (Mountain Standard Time)
    
    ; General preferences
    G90                                           ; send absolute coordinates...
    M83                                           ; ...but relative extruder moves
    M550 P"Delta"                                 ; set printer name
    M665 R190 L380.5 B150 H472                 ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0                                 ; put your endstop adjustments here, or let auto calibration find them
    
    ; Drives
    M569 P0.0 S0                                  ; physical drive 0.0 goes forwards
    M569 P0.1 S0                                  ; physical drive 0.1 goes forwards
    M569 P0.2 S0                                  ; physical drive 0.2 goes forwards
    M569 P0.3 S0                                  ; physical drive 0.3 goes forwards
    M584 X0.0 Y0.1 Z0.2 E0.3                      ; set drive mapping
    M350 X16 Y16 Z16 E16 I1                       ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z80.00 E663.00              ; set steps per mm
    M566 X1200.00 Y1200.00 Z1200.00 E1200.00      ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z18000.00 E1200.00   ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z1000.00 E1000.00      ; set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E1000 I30              ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                       ; Set idle timeout
    
    ; Axis Limits
    M208 Z0 S1                                    ; set minimum Z
    
    ; Endstops
    M574 X2 S1 P"!io1.in"                          ; configure active-high endstop for high end on X via pin io1.in
    M574 Y2 S1 P"!io2.in"                          ; configure active-high endstop for high end on Y via pin io2.in
    M574 Z2 S1 P"!io4.in"                          ; configure active-high endstop for high end on Z via pin io4.in
    
    ; Z-Probe
    M558 P8 R0.4 C"io3.in+io3.out" H30 F1200 T6000   ; set Z probe type to effector and the dive height + speeds
    G31 P100 X0 Y0 Z-0.1                            ; set Z probe trigger value, offset and trigger height
    M557 R85 S20                                    ; define mesh grid
    
    ; Heaters
    M308 S0 P"temp0" Y"thermistor" T100000 B3950          ; configure sensor 0 as thermistor on pin temp0
    M950 H0 C"out1" T0                                    ; create bed heater output on out0 and map it to sensor 0
    M307 H0 R0.677 C692.0 D4.38 S1.00 V23.8 B0            ; 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"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1
    M950 H1 C"out2" T1                                    ; create nozzle heater output on out1 and map it to sensor 1
    M307 H1 R2.406 C265.7:216.8 D5.53 S1.00 V23.8 B0      ; 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"out3" Q500                          ; create fan 0 on pin out3 and set its frequency
    M106 P0 S0 H-1                                ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out5" Q500                          ; create fan 1 on pin out5 and set its frequency
    M106 P1 S1 H1 T45                             ; set fan 1 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 S"Nozzle" 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
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    M575 P1 S1 B57600                             ; enable support for PanelDue
    

    There is no confi-overide.g file.

    I am at a loss as to why it does not trigger on that one point.



  • @wcmartino said in Issues with Auto calibration:

    M665 R190 L380.5 B150 H472 ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find

    those do not look like the results of an auto calibration. and there is no M501 in your config.g
    what were the old values?



  • @Veti Thanks for the reply. They are not the results, I am not able to get the auto calibration to complete. There is no M501 as there is no config-overide.g file.

    These are the setting from before. They are slightly different as the effector and carriages have been changed.

    M665 R183.65 L380.5 B150 H464.03 X0.01 Y0.16 Z0.00  ; Set delta radius, diagonal rod length, printable radius and homed height
    X0.16 Y-0.26 Z0.10                                  ; put your endstop adjustments here, or let auto calibration find them
    

    The whole thing is strange. I can physically move the head around and tap it on the bed and it triggers every time, but as soon as I try to auto calibrate it never triggers on the 7th point.



  • are you on firmware 3.2? post the m122

    and is that the new beg.g that the configurator created?



  • @Veti Yes currently running 3.2. The beg.g was created by the configurator.

    m112 output

    m122
    === Diagnostics ===
    RepRapFirmware for Duet 3 Mini 5+ version 3.2 running on Duet 3 Mini5plus WiFi (SBC mode)
    Board ID: MDHLF-5296U-D65J0-40KM0-2G03Z-RL674
    Used output buffers: 1 of 40 (16 max)
    === RTOS ===
    Static ram: 98732
    Dynamic ram: 95016 of which 36 recycled
    Never used RAM 51432, free system stack 192 words
    Tasks: Linux(blocked,120) HEAT(blocked,316) CanReceiv(blocked,947) CanSender(blocked,372) CanClock(blocked,363) TMC(blocked,104) MAIN(running,489) IDLE(ready,20) AIN(blocked,267)
    Owned mutexes: HTTP(MAIN)
    === Platform ===
    Last reset 00:01:20 ago, cause: power up
    Last software reset at 2021-01-12 22:17, reason: User, GCodes spinning, available RAM 51224, slot 2
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task Linu Freestk 0 n/a
    Error status: 0x00
    Aux0 errors 0,0,0
    Aux1 errors 0,0,0
    Supply voltage: min 0.0, current 23.8, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: position 64133, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 11, reads 11547, writes 11, timeouts 0, DMA errors 0
    Driver 1: position 64133, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 11, reads 11547, writes 11, timeouts 0, DMA errors 0
    Driver 2: position 64133, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 11, reads 11547, writes 11, timeouts 0, DMA errors 0
    Driver 3: position 0, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 11, reads 11546, writes 11, timeouts 0, DMA errors 0
    Driver 4: position 0, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 9, reads 11549, writes 9, timeouts 0, DMA errors 0
    Driver 5: position 0, assumed not present
    Driver 6: position 0, assumed not present
    Date/time: 2021-01-13 06:08:06
    Cache data hit count 207678856
    Slowest loop: 3.30ms; fastest: 0.10ms
    === Storage ===
    Free file entries: 10
    SD card 0 not detected, interface speed: 0.0MBytes/sec
    SD card longest read time 0.0ms, write time 0.0ms, max retries 0
    === Move ===
    DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], 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, chamberHeaters = -1 -1
    === GCodes ===
    Segments left: 0
    Movement lock held by null
    HTTP* is doing "M122" 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.
    === CAN ===
    Messages queued 653, send timeouts 651, received 0, lost 0, longest wait 0ms for reply type 0, free buffers 16
    === SBC interface ===
    State: 4, failed transfers: 0
    Last transfer: 4ms ago
    RX/TX seq numbers: 2215/2215
    SPI underruns 0, overruns 0
    Number of disconnects: 0, IAP RAM available 0x10eec
    Buffer RX/TX: 0/0-0
    === Duet Control Server ===
    Duet Control Server v3.2.0
    Code buffer space: 4096
    Configured SPI speed: 8000000 Hz
    Full transfers per second: 0.08
    Maximum length of RX/TX data transfers: 2952/952
    

    This from a fresh power on. Not sure if that makes any difference.

    Thanks again for the assistance.



  • it does sound like a wiring problem to me. like a making intermitten contact.



  • @Veti Agreed. I can get it to trigger consistently. Just fails at the one point during auto calibration.

    I have managed to get it to do a complete auto calibration once or twice but that is it.



  • @wcmartino

    Not sure it will help
    M208 Z0 S1 needs to be Z-0.2 or some negative number as the effector is going negative to measure strain



  • @Carlo I will give it a shot but I suspect this is not an issue as it does probe the first few point just fine and when it fails it just keeps driving into the bed.



  • @wcmartino

    Yeah not sure it respects limits during probing


  • administrators

    @wcmartino said in Issues with Auto calibration:

    When running the G32 command it hit the first 6 points with no issues every time. When it moves to the 7th point (P6) the nozzle crashes into the bed ever time, no green light. I changed the sensitivity to 40 and still does not trigger on that one point.

    A couple of possibilities:

    1. There may be a bad crimp, which causes one of the connections on the 8-pin connector to be lost when the probe moves to that position.

    2. If the bed is not rigid and securely held down, there may be enough give in the bed at that point not to trigger the effector.

    @Carlo said in Issues with Auto calibration:

    @wcmartino

    Yeah not sure it respects limits during probing

    It doesn't respect the bed radius limit during probing, because it's often desirable to probe specific points that are outside the normal print radius.



  • @dc42 I had double and triple checked the wiring and thought everything to be ok even moved the head around manually and tapped the bed with no issues. I went ahead and secured the wiring harness a little better and wouldn't you know it, was able to complete auto calibration multiple times.

    Wiggled the wiring while tapping the bottom and can see that it does in fact seem to be a crimp issue. Just happened to be in the right spot every time I checked it that and the fact that it failed on the exact spot led me to believe it might be something else. Going to re-crimp everything and see what happens. Will update when that is complete.

    Thanks!!



  • @dc42 Good to know Thanks



  • So I pulled harness for the sensor completely out. Stuck pins in the connectors to hook up an ohm meter. Jiggled, pulled, push etc on the cable ends and found there are no issues with the cable.

    Plugged it back in same issue as before. I tied up the cable to the bowden tube to ensure nothing is getting pulled and everything seems to be working again. Do not see anything wrong with the solder connection on the effector either. Still not sure where the issue is coming from but definitely a connection issue.

    I have another effector coming for another project so I will toss it on the printer in hope to eliminate that as a possibility.

    Will update when I have more info.

    Thank all!



  • what happens if you exclude that specific point from the bed.g?



  • @Veti I had not done that as I am able to reproduce the issue manually. If I manually moved the head by hand, wiggle the connector I can cause the failure.

    By providing more strain relief for the connector it works without any issues.


Log in to reply