Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    3.5.0-rc.1 Brakes not engaging

    Scheduled Pinned Locked Moved
    Beta Firmware
    7
    32
    1.4k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • p8blrundefined
      p8blr
      last edited by p8blr

      Hello, I updated my 6XD to the latest release candidate and noticed that when I send a M18, the brakes on my Z axis don't engage.

      config.g

      ; Configuration file for Duet 3 MB 6XD (firmware version 3.5.0 Release Candidate 1)  
      ; executed by the firmware on start-up 
      
      ; generated by RepRapFirmware Configuration Tool v3.3.15 on Fri Dec 09 2022 12:10:26 GMT-0600 (Central Standard Time) 
      
      ; General preferences
      M575 P1 S1 B57600                                           ; enable support for PanelDue
      G90                                                         ; send absolute coordinates...
      M83                                                         ; ...but relative extruder moves
      M550 P"My Printer"                                            ; set printer name 
      
      ; Declare global variables
      if !exists(global.T1ActuationDist)
      	global T1ActuationDist = 17
      	global T2ActuationDist = {global.T1ActuationDist}
      	global T12FeedRt = 1000
      	global T1ZOffset = -6.34 ; used to be 7.55
      	global T2ZOffset = {global.T1ZOffset} + 0.11
      	global layerSpeed = 2400
      	global pulsarFanSpeed = 0
      	global mosqFanSpeed = 0
      	global vacZone1Pin = "1.out2"
      	global vacZone2Pin = "2.out0"
      	global vacZone3Pin = "2.out1"
      	global vacZone4Pin = "2.out2"
      	global pressureAdvanceT0 = 0
      	global pressureAdvanceT1 = 0.25
      	global pressureAdvanceT2 = 0.25
      	global probeCycles = 5
      	global probeSpeedFast = 300
      	global probeSpeedSlow = 50
      	global errorFlag = false
      	global bedStripTempMin = 0
      	global bedStripTempMax = 0
      	global bedStripErrorCount = 0
      	global heaterFaultBedEnabled = true
      else
      	set global.T1ActuationDist = 17
      	set global.T2ActuationDist = {global.T1ActuationDist}
      	set global.T12FeedRt = 1000
      	set global.T1ZOffset = -6.34
      	set global.T2ZOffset = {global.T1ZOffset} + 0.11
      	set global.layerSpeed = 2400
      	set global.pulsarFanSpeed = 0
      	set global.mosqFanSpeed = 0
      	set global.vacZone1Pin = "1.out2"
      	set global.vacZone2Pin = "2.out0"
      	set global.vacZone3Pin = "2.out1"
      	set global.vacZone4Pin = "2.out2"
      	set global.pressureAdvanceT0 = 0
      	set global.pressureAdvanceT1 = 0.25
      	set global.pressureAdvanceT2 = 0.25
      	set global.probeCycles = 5
      	set	global.probeSpeedFast = 300
      	set	global.probeSpeedSlow = 50
      	set global.errorFlag = false
      	set global.bedStripTempMin = 0
      	set global.bedStripTempMax = 0
      	set global.bedStripErrorCount = 0
      	set global.heaterFaultBedEnabled = true
      ; Wait a moment for the CAN expansion boards to start
      G4 S2
      
      ; Drive Setup
      M18                                     ; disable steppers to disable old axes config
      
      ; Drive setup
      ; TX:X:X:X Min stp pls width, stp ple interval, dir setup time, dir hold time, in microseconds
      M569 P121.0 S1 R1 T1:2:1:1              ; physical drive X dc42 recommends T1:1:0.5:0 but we were using T1:2:1:1 for everything, 0.75:1.5:0.025:1 might make y stall
      M569 P0.0   S1 R1 T1:2:1:1              ; physical drive Y1
      M569 P0.1   S1 R1 T1:2:1:1              ; physical drive Y2
      M569 P0.2   S0 R1 T1:2:1:1              ; physical drive Z1
      M569 P0.3   S0 R1 T1:2:1:1              ; physical drive Z2
      M569 P0.4   S0 R1 T1:2:1:1              ; physical drive Z3
      M569 P0.5   S0 R1 T1:2:1:1              ; physical drive Z4
      M569 P3.1 S1 R1                         ; physical drive E1 Mosquito 1 extruder
      M569 P3.2 S1 R1                         ; physical drive E2 Mosquito 2 extruder
      M569 P122.0 S1 R0                       ; physical drive E0 Primary Extruder
      M569 P4.0 S1 R1                         ; physical drive actuator 1
      M569 P4.1 S1 R1                         ; physical drive actuator 2
      G4 S1                                   ; wait for drive to setup
      
      ; Drive mapping
      M584 X121.0                             ; set drive mapping for x axis
      M584 Y0.0:0.1                           ; set drive mapping for y axis
      M584 Z0.2:0.3:0.4:0.5                   ; set drive mapping for z axes
      M584 E3.1:3.2:122.0                     ; set drive mapping for extruder axes
      M584 U4.0                               ; set drive mapping for mosquito actuator 1
      M584 V4.1                               ; set drive mapping for mosquito actuator 2
      G4 S1                                   ; wait for drives to be mapped to letters
      
      ; Drive config
      M350 E16:16:16 U1 V1                                      ; configure microstepping with interpolation
      M92  X64 Y128 Z6400 E410:410:224.6 U200 V200              ; set steps per mm
      M566 X4000.00 Y2000.00 Z60.00 E600:600:7001 U600 V600 P1  ; set maximum instantaneous speed changes (mm/min)
      M203 X35000 Y76050 Z150000 E1200:1200:9000 U300 V300        ; set maximum speeds (mm/min), XYZ speeds based on cont. torque curve and RMS limit, currently at max values, e value set by Dyze, z used to be 3000 z was Z1500
      M201 X2000 Y2000 Z1000 E3000:3000:5000 U100 V100          ; set accelerations (mm/s^2) X300 Y300 looks best for mosquitos, Y8000 is RMS risk, not tested above 13000 but could cause coupler failure, e was 5000
      M906 E600:600 U500 V500 I30                               ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                                   ; Set idle timeout
      
      ; Brakes
      M569.7 P0.2 C"out3" S100               ; driver 2 on board 6XD uses port out3 to control the brake
      M569.7 P0.3 C"out4" S100               ; driver 3 on board 6XD uses port out4 to control the brake
      M569.7 P0.4 C"out5" S100               ; driver 4 on board 6XD uses port out5 to control the brake
      M569.7 P0.5 C"out6" S100               ; driver 5 on board 6XD uses port out6 to control the brake
      
      ; Endstops
      M574 X1 S1 P"3.io0.in"                 ; configure switch-type (e.g. microswitch) endstop for low end on X via pin 3.io0.in
      M574 Y1 S1 P"0.io1.in+io2.in"          ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in and io2.in
      M574 Z1 S2                             ; configure Z-probe endstop for low end on Z
      M574 U1 S1 P"3.!io3.in"                ; configure actuator 1 endstop, high end, microswitch
      M574 V1 S1 P"3.!io5.in"                ; configure actuator 2 endstop, high end, microswitch
      
      ; Hobby Servos
      M950 S0 C"3.io1.out"			       ; create servo 1 output on 3.io2 for mosquito acutator 1
      M950 S1 C"3.io4.out"				   ; create servo 1 output on 3.io3 for mosquito acutator 2
      
      ;Bed Leveling
      M671 X1205:1205:-285.1:-285.1 Y-207.2:1451.4:1451.4:-207.2 S1.5 P5 F1.0 ;Define Z screw X Y locations, max correction, pitch, fudge factor
      
      ; Axis Limits
      M208 X0 Y0 Z-10 U0 V0 W0 S1                              ; set axis minima
      M208 X1184 Y1175 Z1200 U17 V17 W100 S0                   ; set axis maxima true X max is 1204 so we are using 1184 for safety. true Y max is 1195 so we are using 1175 for safety
      
      ; Z-Probe
      ; servo pin defined in fan accessories section           ; create servo pin for BLTouch
      M558 P8 C"!0.io8.in" H5 F{global.probeSpeedFast}:{global.probeSpeedSlow} T99999999 R0.5 A{global.probeCycles} S0.03  ; set Z probe type and the dive height + speeds R0.5 b/c probe needs time to deploy without triggering.
      G31 P1000 X-47.8 Y15.2 Z4.1                              ; set Z probe trigger value, offset and trigger height for 1mm nozzle
      M557 X-37.8:1126.2 Y25.2:1180.2 P21:21 	                 ; define mesh grid
      
      ; Heaters
      M308 S0 P"0.temp0" Y"PT1000" A"Bed Inner"                ; configure bed A sensor 0 as thermistor on pin temp0
      M308 S7 P"0.temp2" Y"PT1000" A"Bed Outer"                ; configure bed B sensor 9 as thermistor on pin temp2
      M950 H0 C"0.out0" T0                                     ; create bed heater output on out0 and map it to sensor 0
      M307 H0 R0.033 K0.020:0.000 D182.23 E1.35 S1.00 B0       ; disable bang-bang for bed and set pwm
      M140 P0 H0 S0 R0                                         ; bed heater 0 uses heater 0
      M143 H0 S255 P0 T0 A2 C0                                 ; Max heater temp: Heater number, max temp, monitor number, sensor number, action, condition
      
      M308 S1 P"0.temp1" Y"PT1000" A"Chamber Inner"            ; configure chamber A sensor 1 as thermistor on pin temp1
      M308 S8 P"0.temp3" Y"PT1000" A"Chamber Outer"            ; configure chamber B sensor 10 as thermistor on pin temp3
      M950 H1 C"0.out1" T1                                     ; create chamber heater output on out1 and map it to sensor 1
      M307 H1 B0 S1.00                                         ; disable bang-bang for chamber and set pwm
      M141 P0 H1 S0 R0                                         ; chamber heater 1 uses heater 1
      M143 H1 S255 P0 T1 A2 C0                                 ; Max heater temp: Heater number, max temp, monitor number, sensor number, action, condition
      
      M308 S2 P"3.spi.cs0" Y"rtd-max31865" A"Primary Top"       ; configure pulsar sensor top as PT100 on pin spi.cs0
      M950 H2 C"3.out6" T2                                     ; create pulsar heater output on out3 and map it to sensor 2
      M307 H2 A940 C810 D22 S1.0 B0                            ; disable bang-bang for pulsar and set pwm
      M143 H2 S480 P0 T2 A2 C0                                 ; Max heater temp: Heater number, max temp, monitor number, sensor number, action, condition
      
      M308 S3 P"3.spi.cs1" Y"rtd-max31865" A"Primary Middle"    ; configure pulsar sensor bottom as PT100 on pin spi.cs1
      M950 H3 C"3.out7" T3                                     ; create pulsar heater output on out4 and map it to sensor 3
      M307 H3 A940 C810 D22 S1.0 B0                            ; disable bang-bang for pulsar and set pwm
      M143 H3 S480 P0 T3 A2 C0                                 ; Max heater temp: Heater number, max temp, monitor number, sensor number, action, condition
      
      M308 S4 P"4.spi.cs0" Y"rtd-max31865" A"Primary Nozzle"    ; configure pulsar sensor nozzle as PT100 on pin spi.cs0
      M950 H4 C"4.out8" T4                                     ; create pulsar heater output on out0 and map it to sensor 4
      M307 H4 A795 C920 D10 S1.0 B0                            ; disable bang-bang for pulsar and set pwm
      M143 H4 S480 P0 T4 A2 C0                                 ; Max heater temp: Heater number, max temp, monitor number, sensor number, action, condition
      
      M308 S5 P"3.temp1" Y"PT1000" A"Mosquito 1"               ; configure mosquito sensor top as PT1000 on pin 3.temp0 - other thermistor is shorted
      M950 H5 C"3.out0+out1" T5                                ; create pulsar heater output on out3 and map it to sensor 2
      M307 H5 R2.262 K0.361:0.160 D7.99 E1.35 S1.00 B0 V24.1   ; disable bang-bang for pulsar and set pwm
      M143 H5 S505 P0 T5 A2 C0                                 ; Max heater temp: Heater number, max temp, monitor number, sensor number, action, condition
      
      M308 S6 P"4.temp0" Y"PT1000" A"Mosquito 2"               ; configure mosquito sensor top as PT1000 on pin 3.temp0
      M950 H6 C"4.out0+out1" T6                                ; create pulsar heater output on out3 and map it to sensor 2
      M307 H6 R2.364 K0.493:0.022 D7.12 E1.35 S1.00 B0 V24.1   ; disable bang-bang for pulsar and set pwm
      M143 H6 S505 P0 T6 A2 C0                                 ; Max heater temp: Heater number, max temp, monitor number, sensor number, action, condition
      
      ; Heater Faults
      M570 H0 P60 T15 R10
      M570 H1 P60 T15 R10
      M570 H2 P60 T15 R10
      M570 H3 P60 T15 R10
      M570 H4 P60 T15 R10
      M570 H5 P60 T15 R10
      M570 H6 P60 T15 R10
      
      ; Redundant Sensors
      
      M308 S9 P"2.temp0"	Y"PT1000" A"Bed Strip 1"		; configure chamber coil sensor
      M308 S10 P"2.temp1"	Y"PT1000" A"Bed Strip 2"		; configure chamber coil sensor
      M308 S11 P"2.temp2"	Y"PT1000" A"Bed Strip 3"		; configure chamber coil sensor
      
      ; Outputs
      M950 F0 C"0.out7"                     	  ; create chassis fan 0 on relay
      M106 P0 S255 H-1 C"Chassis Fan"           ; set fan 0 value, thermostatic control off
      
      M950 F1 C"0.out8"                     	  ; create chamber fan 1 on relay
      M106 P1 S0 H1 T50 C"Chamber Fan"      	  ; set fan 1 value, thermostatic control from sensor 1
      
      M950 F2 C"0.out2"                         ; create pulsar pc fan 2
      M106 P2 S0 H-1 C"Primary Fan"       	      ; set fan 2 value, thermostatic control off
      
      M950 F3 C"1.out1"                         ; create mosquito pc fan 3
      M106 P3 S0 H-1 C"Mosquito Fan"     	      ; set fan 3 value, thermostatic control off
      
      M950 P0 C{global.vacZone1Pin}         	  ; create bed vac valve 1
      M42 P0 S0								  ; set output value to off
      
      M950 P1 C{global.vacZone2Pin}             ; create bed vac valve 2
      M42 P1 S0								  ; set output value to off
      
      M950 P2 C{global.vacZone3Pin}             ; create bed vac valve 3
      M42 P2 S0								  ; set output value to off
      
      M950 P3 C{global.vacZone4Pin}             ; create bed vac valve 4
      M42 P3 S0								  ; set output value to off
      
      M950 P4 C"2.out6"                         ; create door locks on relay
      M42 P4 S0								  ; set output value to off
      
      M950 F4 C"2.out4"                         ; create radiator on relay
      M106 P4 S1 H2:3:4:5:6 T50 C"Radiator"     ; set fan 8 value, thermostatic control on
      
      M950 P5 C"1.out4"                         ; create probe on relay
      M42 P5 S0								  ; set output value to off
      
      M950 P6 C"2.out3"	                      ; create venturi valve was 1.out0
      M42 P6 S0								  ; set output value to off
      
      M950 F5 C"4.out6"                         ; create head electronics fan
      M106 P5 S255 H-1 C"Head Fan 1"            ; set fan 12 value, thermostatic control off
      
      M950 F6 C"4.out7"                         ; create head electronics fan
      M106 P6 S255 H-1 C"Head Fan 2"            ; set fan 12 value, thermostatic control off
      
      M950 P7 C"1.out8"						  ; create yellow stack led
      M42 P7 S0								  ; set output value to off
      
      M950 P8 C"1.out7"						  ; create green stack led
      M42 P8 S0								  ; set output value to off
      
      M950 P9 C"1.out6"						  ; create white stack led
      M42 P9 S0								  ; set output value to off
      
      M950 P10 C"1.out3"						  ; create beep stack led
      M42 P10 S0								  ; set output value to off
      
      M950 P11 C"2.io0.out"					  ; create secondary extruder reverse
      M42 P11 S0								  ; set output value to off
      
      M950 P12 C"2.io1.out"					  ; create secondary extruder reset
      M42 P12 S0								  ; set output value to off
      
      ; Trigger Inputs
      M950 J0 C"2.io0.in"						  ; assign input J0 to 2.io0.in for emergency stop
      M581 P0 T0 S0 R0					      ; configur external trigger, pin 0, trigger 0, inactive-active, any time
      
      M950 J1 C"2.io1.in"						  ; assign input J1 to 1.io1.in for pause button
      M581 P1 T1 S0 R1						  ; configure external trigger, pin 1, trigger 1, inactive-active, during print
      
      ; Other Inputs
      M950 J3 C"1.io0.in"   				      ; create door lock 1 gpio input
      
      M950 J4 C"1.io1.in"   				      ; create door lock 2 gpio input
      
      M950 J5 C"1.io2.in"   				      ; create door lock 3 gpio input
      
      M950 J6 C"1.io3.in"   				      ; create door lock 4 gpio input
      
      M950 J7 C"1.io4.in"   				      ; create door lock 5 gpio input
      
      M950 J8 C"1.io5.in"   				      ; create door lock 6 gpio input
      
      ; Tools
      M563 P0 S"Primary" D2 H2:3:4 F2    	   		; define tool 0 as pulsar, extruder 2, Heaters 2 3 4, Fan 2
      M568 P0 R0 S0                         		; set tool 0 active and standby temperatures to 0C
      G10 P0 X0 Y0 Z0 U0 V0 W0               		; set tool 0 axis offests
      
      M563 P1 S"Mosquito 1" D0 H5 F3          	; define tool 1 as Mosquito 1, extruder 0, Heaters 5, Fan 3 was H5:6
      M568 P1 R0 S0                           	; set tool 1 active and standby temperatures to 0C
      G10 P1 X-71.815 Y-10.976 Z{global.T1ZOffset} U0 V0 W0   ; set tool 1 axis offests
      
      M563 P2 S"Mosquito 2" D1 H6 F3          	; define tool 2 as Mosquito 2, extruder 1, Heaters 6, Fan 3 was H7:8
      M568 P2 R0 S0                           	; set tool 2 active and standby temperatures to 0C
      G10 P2 X-71.815 Y41.411 Z{global.T2ZOffset} U0 V0 W0   ; set tool 2 axis offests
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      G4 S1
      
      M98 P"0:/macros/Ventrui Enable"
      
      T0 ; switch to T0 when first booting up
      
      M98 P"0:/sys/startup.g"
      
      dc42undefined Amagatthundefined 2 Replies Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @p8blr
        last edited by

        @p8blr motor solenoid brakes are normally engaged until current is applied to the solenoid. So if you power up the machine and don't execute any movement commands, they should be engaged. If you then send M17 Z then VIN should be applied to the brake solenoids and the Z brakes should disengage. If you then send M18 Z then the Z brake solenoids should be turned off and the brakes should re-engage after a short delay.

        M17/M18 with no parameters should have the same effect because they turn all axis motors on or off. A movement command implicitly does the same as M17 if the motor was idle.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        p8blrundefined 1 Reply Last reply Reply Quote 0
        • p8blrundefined
          p8blr @dc42
          last edited by

          @dc42 To be clear, these are "power-off" brakes, which is to say that they apply the brake when power is not applied, and release when powered. You are correct, when the machine starts up, and no movement commands are sent, the brakes are not powered, and when I execute a movement then the brakes are powered. That portion works correctly. What I'm saying is that when I send the machine a M18, the brakes stay powered and I would prefer that they lose power (brakes applied).

          p8blrundefined dc42undefined 2 Replies Last reply Reply Quote 0
          • p8blrundefined
            p8blr @p8blr
            last edited by

            Bumping this thread. I hope my clarification makes sense.

            1 Reply Last reply Reply Quote 0
            • p8blrundefined
              p8blr
              last edited by

              @dc42 Checking in again because it's been a while since you last responded. Please see my clarification.

              1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators @p8blr
                last edited by

                @p8blr thanks for the reminder. It's our intention that when you send M18 the brake solenoid is first turned off (to apply the brake), than after a short delay to allow the brake to engage the signal is sent to disable the driver. As the brake may take a little while to engage, if the delay is not long enough then there might be a small amount of motor movement before the brake engages. Is this what you are seeing, or is the brake solenoid continuing to receive power long after the M18 command is executed, and before any other movement commands are sent?

                Please try the firmware build at https://www.dropbox.com/scl/fo/tjznycpk7bv7sj71p0ssl/h?rlkey=096p4nvgmigyrb20jj8olg3wu&dl=0 and test which this is still not working.

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                1 Reply Last reply Reply Quote 0
                • Amagatthundefined
                  Amagatth @p8blr
                  last edited by

                  @p8blr hey , i have the same probleme , did you find a solution ?

                  p8blrundefined 1 Reply Last reply Reply Quote 0
                  • p8blrundefined
                    p8blr @Amagatth
                    last edited by

                    @Amagatth Unfortunately no. I never had a chance to test @dc42 's firmware build, and by the time we got a chance to look at this issue again, we'd upgraded to the latest firmware. I can report that the latest firmware 3.5.1 does not resolve the issue. A M18 does not engage the brakes, the only way I've found to do that is to turn the printer off and on again. This is an issue for large 3D printers, as some have locking doors with a safety system to de-energize the servos when opened, so the brakes not engaging is unsafe (particularly for something like a Z-axis that may drift due to gravity).

                    There is also the issue of a M18 causing strange homing behavior with the printer which I've reported here:
                    https://forum.duet3d.com/topic/35836/strange-behavior-after-re-homing-printer/3?_=1719417263446
                    No response or fix for that yet though. @Phaedrux are these issues perhaps related?

                    Amagatthundefined 1 Reply Last reply Reply Quote 0
                    • Phaedruxundefined Phaedrux marked this topic as a question
                    • Amagatthundefined
                      Amagatth @p8blr
                      last edited by

                      @p8blr i found the same result , but reboot printer take some MS to active brake and the head go down during this time 😕

                      timschneiderundefined droftartsundefined 2 Replies Last reply Reply Quote 0
                      • timschneiderundefined
                        timschneider @Amagatth
                        last edited by

                        @dc42
                        this is still persistent in 3.5.2

                        my brake is on out8 of Duet3 6HC in SBC mode

                        Product				Short Name 	Version
                        Duet 3 MB6HC 			MB6HC 	3.5.2
                        Duet 3 Expansion MB6XD 		MB6XD 	3.5.2
                        Duet Software Framework 	DSF 	3.5.2
                        Duet Web Control 		DWC 	3.5.2 
                        

                        the brake is configured with

                        M569.7 P2 C"out8"
                        

                        brake is engaged when not powered
                        brake is disengaged when powered

                        • after power on, the brake is engaged (not powered) M569.7 P2 C"out8" in config.g
                        • after G92 Z300, nothing changed
                        • after G91 G1 Z-0.05, the brake is disengaged (powered)
                        • after M17 Z, the brake is still disengaged (powered)
                        • after M18 Z, the brake is still disengaged (powered)
                        • after doing M569.7 P2 C"out8" again, the brake is now engaged (not powered) - so the logic is now inverted
                        • after M18 Z, the brake is still engaged (not powered)
                        • after G92 Z300, still engaged
                        • after G91 G1 Z-0.05 still engaged (it is not possible to move the axis or disengage the brake)
                        • reapplying M569.7 P2 C"out8" will not change the logic again
                        • applying M569.7 P2 C"!out8" will change the logic again

                        so it seams, that the functions EngageBrake and DisengageBrake are not working as expected.
                        I've tried to find the bug in the code, but was unable to get it. The functions are pretty straigt forward. The only thing that caught my attention was the pin access mode PinAccess::write0 and the new PWM voltage divider.

                        		if (!brakePorts[driver].AssignPort(gb, reply, PinUsedBy::gpout, PinAccess::write0))
                        		{
                        			return GCodeResult::error;
                        		}
                        

                        but anyhow I don't know if this should be PinAccess::pwm

                        Another thing is the following inside EngageBrake

                        #if SUPPORT_BRAKE_PWM
                        	currentBrakePwm[driver] = 0.0;
                        #endif
                        

                        if this is not forwared to the Spin() Method - the brake will get disengaged again.

                        timschneiderundefined 1 Reply Last reply Reply Quote 0
                        • timschneiderundefined
                          timschneider @timschneider
                          last edited by timschneider

                          @p8blr
                          @Amagatth
                          I dont need the PWM feature and recompiled the latest 3.5-dev without SUPPORT_BRAKE_PWM
                          Now, the brake is engaging and disengaging as expected.

                          Duet3Firmware_MB6HC.bin

                          dc42undefined Amagatthundefined 2 Replies Last reply Reply Quote 1
                          • dc42undefined
                            dc42 administrators @timschneider
                            last edited by dc42

                            @timschneider thanks for the update. I have created https://github.com/Duet3D/RepRapFirmware/issues/1023.

                            dc42 created this issue in Duet3D/RepRapFirmware

                            closed M17 doesn't re-engage motor brake #1023

                            Duet WiFi hardware designer and firmware engineer
                            Please do not ask me for Duet support via PM or email, use the forum
                            http://www.escher3d.com, https://miscsolutions.wordpress.com

                            1 Reply Last reply Reply Quote 0
                            • droftartsundefined
                              droftarts administrators @Amagatth
                              last edited by

                              Also @Amagatth, regarding your thread https://forum.duet3d.com/topic/35935/controle-nema-23-brake, see @dc42's post above.

                              Ian

                              Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                              T3P3Tonyundefined 1 Reply Last reply Reply Quote 0
                              • T3P3Tonyundefined
                                T3P3Tony administrators @droftarts
                                last edited by

                                @Amagatth @p8blr which boards are you using, both and mainboards and expansion boards, and which ones have motor brakes connected.

                                www.duet3d.com

                                p8blrundefined 1 Reply Last reply Reply Quote 0
                                • Amagatthundefined
                                  Amagatth @timschneider
                                  last edited by

                                  @timschneider thx i try to put your file but i am on 3.5.2 it work ?

                                  timschneiderundefined 1 Reply Last reply Reply Quote 0
                                  • timschneiderundefined
                                    timschneider @Amagatth
                                    last edited by timschneider

                                    @Amagatth
                                    yes this is for 3.5.2 and the brake connected to MB6HC

                                    anyhow, I've applied the patch from @dc42 on RRF to use WriteAnalog and this works.

                                    c689be7c-b6b1-4bdc-94c6-e6eb0b985d9f-grafik.png

                                     src/Platform/Platform.cpp | 4 +++-
                                     1 file changed, 3 insertions(+), 1 deletion(-)
                                    
                                    diff --git a/src/Platform/Platform.cpp b/src/Platform/Platform.cpp
                                    index 874b75ac..f3c2f560 100644
                                    --- a/src/Platform/Platform.cpp
                                    +++ b/src/Platform/Platform.cpp
                                    @@ -2732,8 +2732,10 @@ void Platform::EngageBrake(size_t driver) noexcept
                                     {
                                     #if SUPPORT_BRAKE_PWM
                                     	currentBrakePwm[driver] = 0.0;
                                    -#endif
                                    +	brakePorts[driver].WriteAnalog(0.0);
                                    +#else
                                     	brakePorts[driver].WriteDigital(false);			// turn the brake solenoid off to engage the brake
                                    +#endif
                                     }
                                     
                                     void Platform::DisengageBrake(size_t driver) noexcept
                                    
                                    

                                    Duet3Firmware_MB6HC.bin

                                    @p8blr
                                    this is the file for the 6XD with WriteAnalog(0.0)
                                    Duet3Firmware_MB6XD.bin

                                    Amagatthundefined 1 Reply Last reply Reply Quote 1
                                    • Amagatthundefined
                                      Amagatth @timschneider
                                      last edited by

                                      @timschneider thx for the file i apply it

                                      Amagatthundefined 1 Reply Last reply Reply Quote 0
                                      • Amagatthundefined
                                        Amagatth @Amagatth
                                        last edited by

                                        @Amagatth it work ! now m18 engage break !

                                        1 Reply Last reply Reply Quote 1
                                        • p8blrundefined
                                          p8blr @T3P3Tony
                                          last edited by

                                          @T3P3Tony

                                          (1) 6XD
                                          (5) 3HC
                                          (2) 1XD
                                          raspberry pi 5 in sbc mode

                                          Z motors and brakes on 6XD (out3-6)

                                          p8blrundefined 1 Reply Last reply Reply Quote 0
                                          • p8blrundefined
                                            p8blr @p8blr
                                            last edited by

                                            @timschneider I tried that file but it seems to have messed everything up. Now what do I do?
                                            2024-08-28 14_33_07-Arc.png

                                            @dc42 When will this issue be fixed? I've also noticed that remapping drives do different axes messes up the brake control as well. Only a reboot will fix.

                                            timschneiderundefined 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA