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

    New stable firmware bundle 3.2 released

    Scheduled Pinned Locked Moved
    Firmware installation
    18
    41
    3.5k
    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.
    • garyd9undefined
      garyd9
      last edited by

      Will DSF ever reach feature parity with RRF?

      I remember that early in the 3x series, there was a push to get DSF at the same level of functionality as RRF, and while the version numbers now match, the supported feature set doesn't.

      It's confusing that "version 3.2" means different things depending on if a SBC is being used or not, and those differences don't appear to be documented anywhere. (If they are, please point me to that document so I can read about any other differences before they surprise me.)

      As an example (and asked about in the DSF section), conditional gcode functions (https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands#Section_Functions) don't seem to be implemented in DSF 3.2, but have been supported in RRF for almost a year now (at least since version 3.1.)

      "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

      A Former User? 1 Reply Last reply Reply Quote 0
      • A Former User?
        A Former User @garyd9
        last edited by

        @garyd9 said in New stable firmware bundle 3.2 released:

        and while the version numbers now match, the supported feature set doesn't.

        this was a demand from other users that had issues with having to keep up with using dsf version x, rrf version y and dwc version z - and nothing to do with reflecting features.

        conditional gcode functions

        which ones are you finding not working, i think the majority has been working for a while at least

        garyd9undefined 1 Reply Last reply Reply Quote 0
        • garyd9undefined
          garyd9 @A Former User
          last edited by

          @bearer said in New stable firmware bundle 3.2 released:

          @garyd9 said in New stable firmware bundle 3.2 released:

          conditional gcode functions

          which ones are you finding not working, i think the majority has been working for a while at least

          None of them appear to be implemented. I've only tried "abs", "min", and "max" in my own gcode (and then had to rewrite some stuff to not use them), but then I searched the DSF code for other function names (via github's search) and found nothing. From an earlier post I made, I specifically searched for the strings "atan2", "acos", and "radians" with no results.

          Here's the other thread I mentioned: https://forum.duet3d.com/topic/20852/conditional-gcode-with-dsf-3-2-error-works-standalone/4

          (Note that I used the search facility built into github which is lacking to begin with.)

          "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

          garyd9undefined 1 Reply Last reply Reply Quote 0
          • garyd9undefined
            garyd9 @garyd9
            last edited by

            Grepping the actual source (cd DuetSoftwareFramework/src, grep -ri token *) shows the same (non-)results as github searching. I also checked for some other function names via grep with no hits:

            radians
            sqrt
            atan
            degrees
            floor

            That said, it's possible they are implemented, but somehow without actually including the strings that are implemented. Of course, if they ARE implemented, then it's a bug that they don't actually work.

            Try the following gcode in a macro using the duet3+SBC on RRF/DSF 3.2 (or 3.1.1):

            echo "debug " ^ abs(3)

            The same thing works with standalone RRF 3.2 (and RRF 3.1.1.)

            I do think it's important to point out that I'm not exactly complaining that they aren't implemented. I'm only asking when feature parity will be reached (or if it's even being attempted.)

            Over the past week or so, I've been trying to migrate to "try out" using the SBC, but it's been a series of disappointments finding that things that work fine with standalone don't with the SBC (and those things aren't documented to be non-functional.)

            Before I started, I asked on the forum what limitations I might run into and was pointed to a document here: https://duet3d.dozuki.com/Wiki/Duet_3_firmware_configuration_limitations

            That was a good generic answer, but if you check the document, it's not only out of date, it doesn't mentioned any differences between running RRF and running RRF+DSF.

            I'd submit new wiki pages describing the differences to future people who might embark on the same journey as I am, but doing that requires factual information. For example: It would be useful to mention if feature parity between DSF and RRF is planned or not. That brings me back to the my question of: "Will DSF ever reach feature parity with RRF?"

            "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

            chrishammundefined 1 Reply Last reply Reply Quote 0
            • DaBitundefined
              DaBit
              last edited by

              Small bug, or user error?

              5ff37cc1-56cf-4cc6-8fdf-2e6398b680ac-image.png

              Renaming the Duet3_SDiap32_Minip5plus.bin file to Duet3_SDiap_Minip5plus.bin works.

              1 Reply Last reply Reply Quote 0
              • Vetiundefined
                Veti
                last edited by

                user error. that file should have been on the original sd card.

                that file is required for the next firmware update

                1 Reply Last reply Reply Quote 0
                • DaBitundefined
                  DaBit
                  last edited by

                  Before powering the (Mini 5+) board the first time I took out the SD card, inserted it into the PC, renamed the original sys/ directory to sys.original/, copied it's contents into a fresh sys/ and then copied an RRF-configurator generated set into sys/ over the existing files.

                  There is no Duet3_SDiap_Mini5plus.bin file in the original sys/ ...

                  2b07cd1d-b1f6-425a-ac4b-8165ee7396ae-image.png

                  Firmware upgrade was done by uploading Duet2and3Firmware-3.2.zip. This initially failed on the missing file, so I renamed the Duet3_SDiap32_Mini5plus.bin and entered M997 S0 manually to perform the upgrade.

                  This works, I am running 3.2 (2021-01-05) now.

                  1 Reply Last reply Reply Quote 0
                  • Vetiundefined
                    Veti
                    last edited by

                    that look like the content for the duet 2 not the mini 5+

                    1 Reply Last reply Reply Quote 0
                    • DaBitundefined
                      DaBit
                      last edited by DaBit

                      The contents are coming from the 8GB Sandisk Edge SD-card that was inserted in the board when it arrived. As-delivered the firmware was RRF 3.2-beta (2?), same for DWC; that was a 3.2 beta too.

                      Maybe someone swapped cards or images, although the default contents of config.g mention Duet 3 Mini 5+. There is no image on the card for use with a Pi either, but I am not sure if it should have been on it with the Mini 5+.

                      As a side note: may I suggest putting M550 P"Duet3D" / M552 P0.0.0.0 S1 / M586 P0 S1 in the config of the Ethernet-version as-delivered?
                      That way the board is accessible on the network out of the box using http://duet3d.local on a regular home network setup. Saves all the initial terminal hassle; since DWC is accessible it is easy to do the config upload from there. A bit more userfriendly.

                      Phaedruxundefined 1 Reply Last reply Reply Quote 0
                      • ErwinH78undefined
                        ErwinH78
                        last edited by

                        is there a known problem with the bl touch after the update? my bl touch sometimes doesn't work. sometimes during homing, sometimes during true bed leveling and the z-axis then crashes into the nozzle

                        Vetiundefined 1 Reply Last reply Reply Quote 0
                        • Vetiundefined
                          Veti @ErwinH78
                          last edited by

                          @ErwinH78

                          that sounds like a bltouch problem with the wiring

                          1 Reply Last reply Reply Quote 0
                          • ErwinH78undefined
                            ErwinH78
                            last edited by

                            ok i will check thx

                            1 Reply Last reply Reply Quote 0
                            • Phaedruxundefined
                              Phaedrux Moderator @DaBit
                              last edited by

                              @DaBit said in New stable firmware bundle 3.2 released:

                              As a side note: may I suggest putting M550 P"Duet3D" / M552 P0.0.0.0 S1 / M586 P0 S1 in the config of the Ethernet-version as-delivered?
                              That way the board is accessible on the network out of the box using http://duet3d.local on a regular home network setup. Saves all the initial terminal hassle; since DWC is accessible it is easy to do the config upload from there. A bit more userfriendly.

                              You've got an early production run of the mini. 3.2 final wasn't out yet so they have 3.2beta2. The next run should have 3.2 final I think. As for the M550 out of the box I asked for that too and was told that future SD cards won't actually have a stock config on them at all, instead you'll be directly to the config tool to generate a bespoke config.

                              I've also asked that the config tool include the required IAP files when you've selected to include the firmware files in your config package. Renaming the IAP file worked in this case because nothing actually changed between the renaming for the mini5. Normally renaming the IAP file won't work because it's not usually the same file at all. For future updates you'll need the SDiap32 file and to go back to older firmware versions you'd need the non-32 version.

                              Z-Bot CoreXY Build | Thingiverse Profile

                              1 Reply Last reply Reply Quote 0
                              • chrishammundefined
                                chrishamm administrators @garyd9
                                last edited by

                                @garyd9 said in New stable firmware bundle 3.2 released:

                                Try the following gcode in a macro using the duet3+SBC on RRF/DSF 3.2 (or 3.1.1):

                                echo "debug " ^ abs(3)

                                The same thing works with standalone RRF 3.2 (and RRF 3.1.1.)

                                Thanks for pointing this out, it looks like DSF interprets the round braces as a comment. You can work-around this problem by putting the whole echo payload into curly braces like

                                echo {"debug " ^ abs(3)}

                                I'll fix this in the next build.

                                Duet software engineer

                                garyd9undefined 1 Reply Last reply Reply Quote 0
                                • garyd9undefined
                                  garyd9 @chrishamm
                                  last edited by

                                  @chrishamm said in New stable firmware bundle 3.2 released:

                                  @garyd9 said in New stable firmware bundle 3.2 released:

                                  Try the following gcode in a macro using the duet3+SBC on RRF/DSF 3.2 (or 3.1.1):

                                  echo "debug " ^ abs(3)

                                  Thanks for pointing this out, it looks like DSF interprets the round braces as a comment. You can work-around this problem by putting the whole echo payload into curly braces like

                                  echo {"debug " ^ abs(3)}

                                  Thank you. Please be aware that the following gcode also doesn't work (which is similar to your suggestion):

                                  if {abs(move.calibration.final.deviation - move.calibration.initial.deviation)} < 0.005
                                  		break;
                                  

                                  (I'll try your suggestion above when I'm near my printer again.)

                                  "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

                                  chrishammundefined 1 Reply Last reply Reply Quote 0
                                  • chrishammundefined
                                    chrishamm administrators @garyd9
                                    last edited by chrishamm

                                    @garyd9 Thanks, that seems to be a different issue. The workaround for that one looks like this:

                                    if {abs({move.calibration.final.deviation - move.calibration.initial.deviation}) < 0.005}
                                    	break
                                    

                                    I'll fix it too.

                                    Duet software engineer

                                    dc42undefined garyd9undefined 2 Replies Last reply Reply Quote 0
                                    • dc42undefined
                                      dc42 administrators @chrishamm
                                      last edited by dc42

                                      @chrishamm said in New stable firmware bundle 3.2 released:

                                      if {abs({move.calibration.final.deviation - move.calibration.initial.deviation}) < 0.005} break

                                      For reference, when everything is working as intended, this form ought to work too when the printer is in FFF mode:

                                      if abs(move.calibration.final.deviation - move.calibration.initial.deviation) < 0.005
                                      	break
                                      

                                      This is because round brackets are not treated as enclosing comments in FFF mode. Whereas in CNC mode, if you need to use ( ) in an expression then you must always have { } outside that expression.

                                      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
                                      • garyd9undefined
                                        garyd9 @chrishamm
                                        last edited by

                                        @chrishamm said in New stable firmware bundle 3.2 released:

                                        if {abs({move.calibration.final.deviation - move.calibration.initial.deviation}) < 0.005}
                                        	break
                                        

                                        Thank you. The work-around seems to work.

                                        On a side note, can you tell me where in the DSF source that the conditional gcode function are parsed? My reason for asking is that I grep'd the DSF source tree trying to find the strings for some functions ("atan", "degrees", "radians", etc) but came up with no results. (grep -ri radians *)

                                        Being that 'echo {radians(10)}' actually does work, however, perhaps DSF doesn't actually parse the gcode but instead passes it to RRF?

                                        Thank you
                                        Gary

                                        "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

                                        chrishammundefined 1 Reply Last reply Reply Quote 0
                                        • chrishammundefined
                                          chrishamm administrators @garyd9
                                          last edited by

                                          @garyd9 It only evaluates properties from the DSF object model that have the LinuxProperty attribute. This is done in Model/Expressions.cs and I think I will need to add a fix for round braces to that file. When those expressions have been replaced, the remaining term is sent to RRF for final evaluation.

                                          Duet software engineer

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