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

    M955 fails on 3.4.0beta5

    Scheduled Pinned Locked Moved
    Beta Firmware
    3
    8
    602
    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.
    • j3dundefined
      j3d
      last edited by j3d

      I'm in the process of attaching an accelerometer to my Duet 3 Mini 5+ on IO_4. It seemed to connect just fine with 3.3, but after upgrading to 3.4.0beta5, I now get the following error when issuing this M955 command:

      M955 P0 C"io4.out+io4.in" I60
      Error: M955: Pin 'io4.out' is not free
      

      I am aware that io4.out is shared with pson, but I don't see any way to disable that function? This seemed to work just fine with 3.3, so I'm wondering if this is a regression?

      j3dundefined 1 Reply Last reply Reply Quote 0
      • j3dundefined
        j3d @j3d
        last edited by j3d

        My full config is as follows:

        ; Configuration file for Duet 3 Mini 5+ (firmware version 3)
        ; executed by the firmware on start-up
        ;
        ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sun Mar 07 2021 13:03:50 GMT-0500 (EST)
        
        ; General preferences
        G90                                         ; send absolute coordinates...
        M83                                         ; ...but relative extruder moves
        M550 P"Dremel 3D20"                         ; set printer name
        
        ; Network
        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
        
        ; Drives
        M569 P0.0 S1 V40                            ; physical drive 0.0 goes forwards
        M569 P0.1 S1 V40                            ; physical drive 0.1 goes forwards
        M569 P0.2 S1 V20                            ; physical drive 0.2 goes forwards
        M569 P0.3 S1 V40                            ; 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 X88.89 Y88.89 Z400.00 E96.00            ; set steps per mm
        M566 X900.00 Y900.00 Z12.00 E120.00         ; set maximum instantaneous speed changes (mm/min)
        M203 X12000.00 Y12000.00 Z720.00 E1200.00   ; set maximum speeds (mm/min)
        M201 X500.00 Y500.00 Z50.00 E250.00         ; set accelerations (mm/s^2)
        M906 X680 Y680 Z320 E680 I30                ; set motor currents (mA) and motor idle factor in per cent
        M84 S30                                     ; Set idle timeout
        
        ; Axis Limits
        M208 X-80 Y0 Z0 S1                          ; set axis minima
        M208 X275 Y150 Z150 S0                      ; set axis maxima
        
        ; Endstops
        M574 X2 S1 P"!io0.in"                       ; configure active-high endstop for high end on X via pin !io0.in
        M574 Y2 S1 P"!io1.in"                       ; configure active-high endstop for high end on Y via pin !io1.in
        M574 Z1 S2                                  ; configure Z-probe endstop for low end on Z
        
        ; Z-Probe
        M558 P8 C"^io3.in" H1 F240 T9000 A5         ; set Z probe type to switch and the dive height + speeds
        G31 P500 X3 Y-33 Z2.485                     ; set Z probe trigger value, offset and trigger height
        M557 X20:200 Y20:130 S30                    ; define mesh grid
        
        ; Heaters
        M140 H-1                                    ; disable heated bed (overrides default heater mapping)
        M308 S0 P"spi.cs1" Y"thermocouple-max31856" F60 ; configure sensor 0 as thermocouple via CS pin spi.cs1
        M950 H0 C"out1" T0                          ; create nozzle heater output on out1 and map it to sensor 0
        M307 H0 R1.823 C263.1:216.5 D7.84 S1.00 V23.9
        M143 H0 S280                                ; set temperature limit for heater 0 to 280C
        
        ; Fans
        M950 F0 C"out3" Q500                        ; create fan 0 on pin out3 and set its frequency
        M106 P0 C"EXTFAN" S0 H0 T45                 ; set fan 0 name and value. Thermostatic control is turned on
        M950 F1 C"out4" Q500                        ; create fan 1 on pin out4 and set its frequency
        M106 P1 C"DUETFAN" S1 H-1                   ; set fan 1 name and value. Thermostatic control is turned off
        M950 F2 C"out5" Q200                        ; create fan 2 on pin out5 and set its frequency
        M106 P2 C"PARTFAN" S0 H-1                   ; set fan 2 name and value. Thermostatic control is turned off
        M950 F3 C"out6" Q500                        ; create fan 3 on pin out6 and set its frequency
        M106 P3 C"REARFAN" S0 H-1                   ; set fan 3 name and value. Thermostatic control is turned off
        
        ; Lights
        M950 P0 C"io2.out" Q5000                    ; create led strip on io2.out - pwm frequency is 5000 Hz
        M42 P0 S0.25                                ; set strip to 25% brightness
        
        ; Tools
        M563 P0 D0 H0 F0:2                          ; 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
        M671 X65:165:116 Y10:10:150                 ; set positions of bed levelling screws
        M207 S0.6 F3600 T2400                       ; set retraction to 0.6mm at 60mm/s / 40mm/s. Z-hop set in slicer
        M572 D0 S0.025                              ; set pressure advance
        ;M955 P0 C"io4.out+io4.in" I60               ; enable accelerometer
        
        ; Miscellaneous
        T0                                          ; select first tool
        
        j3dundefined 1 Reply Last reply Reply Quote 0
        • j3dundefined
          j3d @j3d
          last edited by j3d

          I noticed the following in the change log for 3.4.0beta4. I wonder if these changes caused the issue?

          state.atxPower is no longer flagged 'live'. It is present if at least one M80 or M81 command has been executed and the PS_ON port is valid.

          M80 now has an optional C parameter allowing the PS_ON port and polarity to be changed

          Though, as you can see, there is no M80 or M81 command in my config.

          T3P3Tonyundefined dc42undefined 2 Replies Last reply Reply Quote 0
          • T3P3Tonyundefined
            T3P3Tony administrators @j3d
            last edited by

            @j3d you chan check if you have a pin assigned to the ATX power port by looking at the state.atxPowerPort in the object model:

            echo state.atxPowerPort
            null
            

            will report null if no pin is assigned which is what i have on my mini 5+ running the latest beta firmware as i also have no M80 commands
            after sending M80 with no commands it switches to the default

            echo state.atxPowerPort
            (io4.out,pson)
            

            So if you have that defined then maybe M80 is somewhere else in a macro? As you say its not in the config.g that you shared ot its a regression in 3.4b5 that is fixed in 3.4b5+1

            www.duet3d.com

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

              @j3d I assume you are not using the PS_ON output. Try using command M80 C"nil" before the M955 command.

              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

              j3dundefined 1 Reply Last reply Reply Quote 0
              • j3dundefined
                j3d @dc42
                last edited by

                Running the following resulted in null:

                echo state.atxPowerPort
                null
                

                However entering M80 C"nil" before the M955 command seems to have worked.

                T3P3Tonyundefined dc42undefined 2 Replies Last reply Reply Quote 0
                • T3P3Tonyundefined
                  T3P3Tony administrators @j3d
                  last edited by

                  @j3d thanks for that confirmation.

                  www.duet3d.com

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

                    @j3d thanks for reporting that. I'm changing things in 3.4.0beta6 so that a power pin will not be assigned by default, and so io4.out will be free.

                    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
                    • First post
                      Last post
                    Unless otherwise noted, all forum content is licensed under CC-BY-SA