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

RepRapFirmware 3.01beta1 released

Scheduled Pinned Locked Moved
Beta Firmware
16
60
3.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.
  • undefined
    mwolter
    last edited by 15 Jan 2020, 05:07

    Great work @dc42 This is going to be so helpful! Can’t wait to start using it!

    1 Reply Last reply Reply Quote 0
    • undefined
      insertnamehere
      last edited by insertnamehere 15 Jan 2020, 08:08

      I have a Duet Wifi 2 and I've been trying to access Initial Deviation in the Object Model.

      If I execute the following line from the console:

      echo "Initial Deviation", move.initialDeviation.deviation ^ "mm"
      I get an error:
      echo "Initial Deviation",move.initialDeviation.deviation ^ "mm"
      Error: while executing command: unknown value initialDeviation.deviation

      echo "Calibration Deviation", move.calibration.deviation ^ "mm"
      responds:
      echo "Calibration Deviation", move.calibrationDeviation.deviation ^ "mm"
      Calibration Deviation 0.000mm

      M409 shows
      {"key":"","flags":"","result":{"boards":[{"firmwareFileName":"Duet2CombinedFirmware.bin","firmwareVersion":"3.01-beta1","iapFileNameSD":"Duet2CombinedIAP.bin","mcuTemp":{"current":40.4,"max":44.6,"min":39.9},"name":"Duet 2 WiFi","shortName":"2WiFi","vIn":{"current":24.0,"max":24.4,"min":0.5}}],"heat":{"coldExtrudeTemperature":160.0,"coldRetractTemperature":90.0,"heaters":[{"current":26.7,"sensor":0,"state":"Off"},{"current":27.1,"sensor":1,"state":"Active"}],"sensors":[{"lastReading":26.7,"name":"","type":"Thermistor"},{"lastReading":27.1,"name":"","type":"Thermistor"}]},"job":{"file":{"filament":[],"firstLayerHeight":0.0,"generatedBy":"","height":0.0,"lastModified":"28115-10-29T03:41:51","layerHeight":0.0,"numLayers":0,"printTime":0,"simulatedTime":0,"size":0},"lastFileName":"","layer":0,"timesLeft":{"filament":0.0,"file":0.0,"layer":0.0}},"move":{"axes":[{"homed":true,"letter":"X","max":300.0,"min":0.0,"userPosition":70.000,"visible":true},{"homed":true,"letter":"Y","max":300.0,"min":0.0,"userPosition":35.000,"visible":true},{"homed":true,"letter":"Z","max":350.0,"min":0.0,"userPosition":4.278,"visible":true}],"calibrationDeviation":{"mean":-0.000,"deviation":0.000},"currentMove":{"requestedSpeed":0.0,"topSpeed":0.0},"daa":{"enabled":false,"minimumAcceleration":10.0,"period":0.0},"idle":{"factor":0.7,"timeout":30000},"meshDeviation":{"mean":0.000,"deviation":0.000},"initialDeviation":{"mean":0.003,"deviation":0.001},"printingAcceleration":10000.0,"travelAcceleration":10000.0,"speedFactor":100.0},"network":{"interfaces":[{"actualIP":"192.168.1.142","firmwareVersion":null,"gateway":"0.0.0.0","subnet":"0.255.255.255","type":"wifi"}]},"state":{"currentTool":0,"machineMode":"FFF","status":"Idle"}}}

      undefined 1 Reply Last reply 15 Jan 2020, 09:40 Reply Quote 0
      • undefined
        dc42 administrators @insertnamehere
        last edited by dc42 15 Jan 2020, 09:40

        @insertnamehere said in RepRapFirmware 3.01beta1 released:

        I have a Duet Wifi 2 and I've been trying to access Initial Deviation in the Object Model.
        If I execute the following line from the console:
        echo "Initial Deviation", move.initialDeviation.deviation ^ "mm"
        I get an error:
        echo "Initial Deviation",move.initialDeviation.deviation ^ "mm"
        Error: while executing command: unknown value initialDeviation.deviation

        You've found a bug (the property table wasn't ordered alphabetically after I renamed a property, so the binary search failed). I've fixed it in the latest build at https://www.dropbox.com/sh/3azy1njy3ayjsbp/AACquxr2m00eV568RZg5QG5wa?dl=0. I also added a compile-time check to prevent this happening in future, and an extra property state.upTime.

        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

        undefined 1 Reply Last reply 16 Jan 2020, 08:15 Reply Quote 0
        • undefined
          carlosspr
          last edited by 15 Jan 2020, 14:06

          I have updated and I can only use one tool.
          On the tool configuration I have the following error:

          M563 S"Yellow" P1 D1 H1 F0
          Error: Tool creation: bad drive number

          however on previous release this command was working fine.

          undefined 1 Reply Last reply 15 Jan 2020, 16:13 Reply Quote 0
          • undefined
            kraegar
            last edited by 15 Jan 2020, 14:07

            3.01 now appears to require endstops be defined on a duet2, where the 3.0 upgrade guide specifically says they do not. (That guide also says fans do not, but that change was covered in the 3.01 release notes)

            undefined 1 Reply Last reply 15 Jan 2020, 14:40 Reply Quote 0
            • undefined
              dc42 administrators @kraegar
              last edited by 15 Jan 2020, 14:40

              @kraegar said in RepRapFirmware 3.01beta1 released:

              3.01 now appears to require endstops be defined on a duet2, where the 3.0 upgrade guide specifically says they do not. (That guide also says fans do not, but that change was covered in the 3.01 release notes)

              That's correct. I'll add it to the 3.01 release notes and check the 3.0 upgrade guide.

              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 1
              • undefined
                pipersw @chas2706
                last edited by pipersw 15 Jan 2020, 14:53

                @chas2706 said in RepRapFirmware 3.01beta1 released:

                @dc42

                I just upgraded to this on my Duet Ethernet and I thought my board suddenly broke.
                The extruder fan stays permanently on, I cant move any axis because I get this:
                Screenshot (7).png

                Have you read the readme ?

                If upgrading a Duet WiFi/Ethernet/Maestro from the 3.0 release, note that default fans are no longer created.
                Unless your config.g file already used M950 to create the fans explicitly, add commands M950 F0 C"fan0", M950 F1 C"fan1" and M950 F2 C"fan2" to config.g before your M106 commands.
                Likewise, default endstop switches are not set up, so you will need to set up X and Y endstops (and Z odf needed) explicity, using one M574 line for each, and specifying the port name. Example: M574 X1 S1 P"xstop".

                undefined 1 Reply Last reply 15 Jan 2020, 14:57 Reply Quote 0
                • undefined
                  dc42 administrators @pipersw
                  last edited by 15 Jan 2020, 14:57

                  @pipersw said in RepRapFirmware 3.01beta1 released:

                  Likewise, default endstop switches are not set up, so you will need to set up X and Y endstops (and Z odf needed) explicity, using one M574 line for each, and specifying the port name. Example: M574 X1 S1 P"xstop".

                  To be fair to @chas2706, I have only just added that bit!

                  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
                  • undefined
                    kraegar
                    last edited by kraegar 15 Jan 2020, 15:14

                    Got a macro in testing for iterating on bed leveling, and it's pretty amazing!

                    aa87229d-a254-4898-a54d-e6ac8fc5a6ba-image.png

                    My initial round had two && in one line, which caused the duet to hard crash and reboot. I switched it to nested if statements, and that worked well. I want to tweak it a bit, but definitely working!

                    ( was iterating until initialDeviation was < 0.01 AND deviation was within 0.002 of initialDeviation)

                    undefined 1 Reply Last reply 15 Jan 2020, 16:03 Reply Quote 0
                    • undefined
                      kraegar
                      last edited by 15 Jan 2020, 15:33

                      Cleaned up the output to make it easier to follow. (also changed my leadscrew locations to make it take longer to converge for these tests, so I could troubleshoot easier)

                      2139e476-bf1c-49f6-acea-5f88055f8c39-image.png

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        dc42 administrators @kraegar
                        last edited by dc42 15 Jan 2020, 16:03

                        @kraegar said in RepRapFirmware 3.01beta1 released:

                        My initial round had two && in one line, which caused the duet to hard crash and reboot.

                        Can you provide that version, so that I can fix it?

                        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
                        • undefined
                          kraegar
                          last edited by 15 Jan 2020, 16:04

                          This post is deleted!
                          1 Reply Last reply Reply Quote 0
                          • undefined
                            kraegar
                            last edited by kraegar 15 Jan 2020, 16:08

                            Here is the version that works well:

                            M561 ; clear any existing bed transform
                            ; If the printer hasn't been homed, home it
                            if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
                            G28
                            G1 Z7.5
                            ;Run initial 4 point leveling routine
                            G30 P0 X15 Y45 Z-99999
                            G30 P1 X15 Y227.5 Z-99999
                            ;G30 P2 X235 Y125 Z-99999 S3
                            G30 P2 X235 Y227.5 Z-99999
                            G30 P3 X235 Y45 Z-99999 S3
                            while true
                            if iterations = 5
                            abort "Too many auto calibration attempts"
                            if move.initialDeviation.deviation < 0.01
                            if move.calibrationDeviation.deviation < move.initialDeviation.deviation + 0.005
                            if move.calibrationDeviation.deviation > move.initialDeviation.deviation - 0.005
                            break
                            echo "Repeating calibration because initial deviation (" ^ move.initialDeviation.deviation ^ "mm) must be < 0.01"
                            echo "and (" ^ move.calibrationDeviation.deviation ^ "mm) must be within 0.005 of initialDeviation"
                            G30 P0 X15 Y45 Z-99999
                            G30 P1 X15 Y227.5 Z-99999
                            ;G30 P2 X235 Y125 Z-99999 S3
                            G30 P2 X235 Y227.5 Z-99999
                            G30 P3 X235 Y45 Z-99999 S3
                            echo "Auto calibration successful, deviation", move.calibrationDeviation.deviation ^ "mm"
                            echo "Auto calibration successful, initialDeviation", move.initialDeviation.deviation ^ "mm"
                            G28 Z
                            G1 X0 Y0 F24000 ; move the head to the corner (optional)

                            And removing the nested if's to replace with && crash it

                            if move.initialDeviation.deviation < 0.01 && move.calibrationDeviation.deviation < move.initialDeviation.deviation + 0.005 && move.calibrationDeviation.deviation > move.initialDeviation.deviation - 0.005
                            break

                            Edit: I realize I could just have some major syntax issues, still figuring this out. But that's a hard crash if you do that πŸ™‚

                            undefined undefined 2 Replies Last reply 15 Jan 2020, 16:35 Reply Quote 0
                            • undefined
                              carlosspr @carlosspr
                              last edited by 15 Jan 2020, 16:13

                              @carlosspr Solved. I was missing M584 drive mapping on config.g

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                dc42 administrators @kraegar
                                last edited by dc42 15 Jan 2020, 16:35

                                @kraegar said in RepRapFirmware 3.01beta1 released:

                                And removing the nested if's to replace with && crash it

                                Thanks, I've reproduced the crash by adding that line to my own script. I will look into it. Even if you do make a syntax error, you should get a helpful error message.

                                PS - now I know that the new crash handler I added for uncaught exceptions works!

                                Last software reset at 2020-01-15 16:35, reason: Terminate called, spinning module GCodes, available RAM 9464 bytes (slot 2)

                                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 1
                                • undefined
                                  kraegar
                                  last edited by 15 Jan 2020, 16:58

                                  Trying to test if move.initialDeviation.deviation is 0.000

                                  if move.initialDeviation.deviation != 0
                                  echo "one " ^ move.initialDeviation.deviation

                                  83c9cb72-03ae-4e80-91d3-58941a2c06fd-image.png

                                  I've tried using 0.000 as well, with the same result. == 0.000 or == 0 doesn't match, even though it is.

                                  (I'm trying to determine if leveling has been run at all yet, my only clear method for now is to see if initial and calirbated deviation and mean are all 0.000)

                                  1 Reply Last reply Reply Quote 0
                                  • undefined
                                    dc42 administrators
                                    last edited by 15 Jan 2020, 17:03

                                    Just done some tests. There is a problem with equality between floats.

                                    The other problem you had is because the GCode line was too long. I changed it to throw an exception when that happens, but the exception isn't caught.

                                    This is all very new code, so I was expecting some bugs.

                                    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
                                    • undefined
                                      kraegar
                                      last edited by 15 Jan 2020, 17:06

                                      Yep, I'm just playing, happy to just keep reporting. Variables will clean the code up a lot, but that's a big ask πŸ™‚

                                      1 Reply Last reply Reply Quote 0
                                      • undefined
                                        kraegar
                                        last edited by 15 Jan 2020, 17:09

                                        Once variables are implemented, if they're "system wide" and not constrained to the macro they're called in, I would set a "is_level = false" in config.g, and set to true once leveling is run. Negating the need for this method of checking.

                                        But I can't resist playing πŸ™‚

                                        1 Reply Last reply Reply Quote 0
                                        • undefined
                                          dc42 administrators
                                          last edited by dc42 15 Jan 2020, 17:56

                                          Thanks for your reports. These two issues are now fixed in the latest builds at https://www.dropbox.com/sh/3azy1njy3ayjsbp/AACquxr2m00eV568RZg5QG5wa?dl=0.

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