first bltouch, then endstops stop working



  • I have a machine connected to a duet2 and duex2. I was having problems getting my BLtouch to complete a mesh. It would random trigger without hitting the bed. Someone suggested upgrading the firmware fixed his (it was marlin). I can think of no reason this would help but after looking for shorts and disabling fans and heaters, I had no other ideas so I tried that.

    Now, my endstops don't work. I get a G28 error and the machine specific tab shows the endstop states as "n/a." It's almost like it isn't communicating with the duex but the chamber temp is connected through that and I'm still getting sane values off it.

    I can only assume I did something sloppy that the old firmware forgave and the new firmware is stricter about. I cannot find such errors though. I know I had both a Zprobe and Zendstop, but I wanted the endstop to set for absolute zero, me manually dial it in to close enough, and the probe to fine tune. Now, none of these work.

    Below is my config.g.

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Feb 26 2020 15:22:01 GMT-0500 (Eastern Standard Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"foamboard forge" ; set printer name

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P5 S1 ; physical drive 5 goes forwards
    M569 P6 S1 ; physical drive 6 goes forwards
    M584 X0 Y1 Z2 E5:6 ; set drive mapping
    M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z400.00 E824.00:824.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z1800.00 E4000.00:4000.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800:800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X320 Y300 Z350 S0 ; set axis maxima

    ; Endstops
    M574 X1 S0 P"xstop" ; configure active-low endstop for low end on X via pin xstop
    M574 Y1 S0 P"ystop" ; configure active-low endstop for low end on Y via pin ystop
    M574 Z1 S0 P"zstop" ; configure active-low endstop for low end on Z via pin zstop

    ; Z-Probe
    M558 P9 C"^duex.e2stop" H5 F120 T6000
    M950 S0 C"duex.e3heat" ; create servo pin 0 for BLTouch
    G31 P25 X-40.2 Y-7.5 Z2.9 ; set Z probe trigger value, offset and trigger height
    M557 X29:270 Y27:267 S24:24 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"e0heat" T0 ; create bed heater output on e0heat and map it to sensor 0
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M308 S1 P"duex.e2temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin duex.e2temp
    M950 H1 C"duex.e2heat" T1 ; create nozzle heater output on duex.e2heat and map it to sensor 1
    M143 H1 S280 ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

    ; Fans
    M950 F0 C"duex.fan5" Q500 ; create fan 0 on pin duex.fan5 and set its frequency
    M106 P0 C"part cooler" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off
    M950 F1 C"duex.fan4" Q100 ; create fan 1 on pin duex.fan4 and set its frequency
    M106 P1 C"hotend" S0 H1:1 T30 ; set fan 1 name and value. Thermostatic control is turned on
    M950 F2 C"duex.fan3" Q500 ; create fan 2 on pin duex.fan3 and set its frequency
    M106 P2 C"mcu" S0 H-1 ; set fan 2 name and value. Thermostatic control is turned off
    M950 F3 C"duex.fan6" Q500 ; create fan 3 on pin duex.fan6 and set its frequency
    M106 P3 C"lighting" S1 H-1 B0 ; set fan 3 name and value. Thermostatic control is turned off

    ; Tools
    M563 P0 S"hotend" 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
    M563 P1 S"hotend" D1 H1 F0 ; define tool 1
    G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
    G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C

    ; Custom settings
    M308 S2 P"duex.e3temp" Y"thermistor" A"chamber temp" T100000 B3988 C0 R2200 ; chamber temperature sensor
    M307 H0 A150.1 C1119.9 D1.6 V24.2 B0 ; calibrate bed heater
    M307 H1 A348.9 C165.7 D3.7 C24.2 B0 ; calibrate hotend heater
    ; M558 P9 C"^duex.gp1" H5 F120 T2000 ; config UI does not allow gpio/endstop assignments to zprobe input but rrf3 does. Put it in manually. ^duex.e2stop or ^duex.gp1

    ; TODO
    ; When a seperate lighting control method is found, break lighting out from fan controls


  • Moderator

    What firmware version are you using? Send M115 to find out.

    What firmware were you using before?

    How do you have the BLtouch and endstops wired? Where are they connected.

    Also post your homing files.

    When do you get the G28 error? What is the error specifically?



  • I think the old firmware was 3.0.x and the connections are done as much in the duex as possible as it was easier the way everything was laid out. The connections are as described in the civic and worked before the upgrade. So I think there was something in before that shouldn’t have worked but did and the new firmware broke that.

    See anything suspect?


  • Moderator

    Please send M115 to get the exact firmware version. It should be 3.1.1. Then we can go from there.



  • G28
    Error: Failed to enable endstops

    M115
    FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet
    FIRMWARE_VERSION: 3.1.1
    ELECTRONICS: Duet WiFi 1.02 or later + DueX2
    FIRMWARE_DATE: 2020-05-19b2

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Feb 26 2020 15:22:01 GMT-0500 (Eastern Standard Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X-305 Y-305 F4800 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 H2 X5 Y5 F6000 ; go back a few mm
    G1 H1 X-305 Y-305 F360 ; move slowly to X and Y axis endstops once more (second pass)
    G1 H1 Z-355 F360 ; move Z down stopping at the endstop
    G90 ; absolute positioning
    G92 Z0 ; set Z position to axis minimum (you may want to adjust this)
    G1 H2 Z5 F6000 ; don't rest the nozzle on the build surface

    ; homex.g
    ; called to home the X axis
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Feb 26 2020 15:22:01 GMT-0500 (Eastern Standard Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X-305 F4800 ; move quickly to X axis endstop and stop there (first pass)
    G1 H2 X5 F6000 ; go back a few mm
    G1 H1 X-305 F360 ; move slowly to X axis endstop once more (second pass)
    G1 H2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning

    ; homey.g
    ; called to home the Y axis
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Feb 26 2020 15:22:01 GMT-0500 (Eastern Standard Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 Y-305 F4800 ; move quickly to Y axis endstop and stop there (first pass)
    G1 H2 Y5 F6000 ; go back a few mm
    G1 H1 Y-305 F360 ; move slowly to Y axis endstop once more (second pass)
    G1 H2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Feb 26 2020 15:22:01 GMT-0500 (Eastern Standard Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 Z-355 F4800 ; move Z down until the endstop is triggered
    G92 Z0 ; set Z position to axis minimum (you may want to adjust this)
    G1 H2 Z5 F6000 ; Don't rest on the bed surface

    ; Uncomment the following lines to lift Z after probing
    ;G91 ; relative positioning
    ;G1 Z5 F100 ; lift Z relative to current position
    ;G90 ; absolute positioning


  • Moderator

    @Mentaluproar said in first bltouch, then endstops stop working:

    ; Endstops
    M574 X1 S0 P"xstop" ; configure active-low endstop for low end on X via pin xstop
    M574 Y1 S0 P"ystop" ; configure active-low endstop for low end on Y via pin ystop
    M574 Z1 S0 P"zstop" ; configure active-low endstop for low end on Z via pin zstop

    https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_RepRapFirmware_Num_3

    In RRF3 M574 S0 isn't a supported mode anymore. To do the signal inversion now you need to use S1 and a ! in front of the endstop pin name.

    So it should be

    ; Endstops
    M574 X1 S1 P"!xstop" ; configure active-low endstop for low end on X via pin xstop
    M574 Y1 S1 P"!ystop" ; configure active-low endstop for low end on Y via pin ystop
    M574 Z1 S1 P"!zstop" ; configure active-low endstop for low end on Z via pin zstop
    

    And then if you want to use the probe in your homing files you'd need to replace the Z endstop moves with a G30.



  • The inversion didn’t work but simply switching S0 to S1 did. Thanks. Now for the bltouch....

    https://youtu.be/kmfgr1k050U


Log in to reply