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

    Disable Bed Compensation (M561) disabled / greyed out

    Scheduled Pinned Locked Moved
    Duet Web Control
    5
    11
    409
    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.
    • Sevimuelliundefined
      Sevimuelli
      last edited by

      Hi
      On the Dashboard under Compensation & Calibration, the field "Disable Bed Compensation (M561)" is constantly disabled. As far as I understand, ones one does a calibration with G32 ( not a Mesh Compensation), this field should be active and one should be able to deactivate the previous calibration.
      cc501922-6e93-44fc-8f9e-69c909972263-Screenshot 2023-04-04 at 13.34.55.png Screenshot 2023-04-04 at 13.34.55.png

      Looking into the source code, under MovementPanel.vue, this field is disabled if: "!move.compensation.type || move.compensation.type.indexOf('Point') === -1". So if the mesh grid compensation is active, this field should be available. But even then, the field is disabled because ".indexOf('Point')" always returns -1, because type can only be "none" or "mesh". This behaviour is probably wrong anyway, because this button corresponds to the G32 calibration and not to the mesh compensation. Or am I not seeing something here? So if after calibration the type would be set to "Point", it would work but then again as far as I understand, this would be in the wrong category. So one needs a property "Type" under move.calibration, not move.compensation, as this are two different categories, right? And to be completely correct, shouldn't it say something like "Disable Bed Calibration" to differentiate between this and mesh compensation?

      So with the proper values in the object model, this will be an easy fix. But as long as they are not available, one can't do anything about it.

      I have updated the system today and run Duet Web Control 3.4.5. I use Duet3D with a Delta 3D printer.

      Thanks very much in advance ๐Ÿ™‚

      jay_s_ukundefined droftartsundefined 2 Replies Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @Sevimuelli
        last edited by

        @Sevimuelli whats probably misleading is that M561 and G29 S2 do the same thing.
        I would really be proposing that one got removed.

        so to sum up, M561 is only enabled when a mesh is loaded with G29

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

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

          @Sevimuelli G32 runs bed.g, which is used for delta calibration, or bed levelling. This is not compensation; itโ€™s getting the bed plane level to the XY axes. Mesh compensation then runs after that, compensating for any unevenness in the bed plane.

          The only other compensation is Orthogonal axis compensation https://docs.duet3d.com/en/User_manual/Tuning/Orthogonal_axis_compensation
          I think if this is applied, it also counts as a compensation type, but I might be wrong.

          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

          1 Reply Last reply Reply Quote 0
          • Sevimuelliundefined
            Sevimuelli
            last edited by

            @droftarts @jay_s_uk Thanks for the replies. Yes I understand how it should work and what's the difference between calibration and compensation. The issue here is that this button can never be enabled because it is only enabled if the object property "move.compensation.type" is set to "Point". That's how they have done it in DuetWebControl:

            <v-list-item :disabled="!move.compensation.type || move.compensation.type.indexOf('Point') === -1" @click="sendCode('M561')">
                <v-icon class="mr-1">mdi-border-none</v-icon> {{ $t('panel.movement.disableBedCompensation') }} 
            </v-list-item>
            

            But if you check the source code of reprapfirmware, the type will only ever be set to either "none" if no mesh bed compensation ( no matter what about the calibration) or to "mesh" if a mesh bed compensation is active. There is no option for "Point".

            So the main issue is that right now you have a button which never can be active. It is not possible. Yeah sure one option is to just remove this button, but in my opinion, it would be really helpful to have some sort of indication if a calibration is active or not. Use this button for what is originally was intended for.

            I would make a new issue on GitHub, but I'd like to know what it's actually about this button. I could even make a pull request for DuetWebControl, it's an easy fix. But for this to work one needs a corresponding property in the object model and to be honest, I feel less comfortable changing something in the reprap firmware.

            Sevi

            jay_s_ukundefined droftartsundefined 2 Replies Last reply Reply Quote 0
            • jay_s_ukundefined
              jay_s_uk @Sevimuelli
              last edited by jay_s_uk

              @Sevimuelli the button activates if you load a mesh though...
              You also can't disable a bed calibration

              Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

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

                @Sevimuelli This does seem to be a bug in DWC 3.4.5, but does seem to have been fixed in the DWC 3.5 beta version I'm running. This is DWC 3.4.5:
                a5e8ad62-418f-417e-842b-76a74a4f3c93-image.png
                This is from DWC 3.5.0-beta.3+pre2
                8ad95ab9-e0fa-41ab-8c11-b41af473cc08-image.png
                Thanks for pointing it out!

                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

                jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                • jay_s_ukundefined
                  jay_s_uk @droftarts
                  last edited by

                  @droftarts ah, I'm running 3.5b2.
                  Still seems a bit pointless when both buttons do the same thing. You can't disable a compensation

                  Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

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

                    @jay_s_uk Yes, M561 and G29 S2 do the same thing as far as I'm aware. I can't remember if it's different on a delta, but I don't think so. Also, M556 Orthogonal Axis Compensation (or axis skew compensation) doesn't count as a 'compensation in use' when set, and isn't cleared by M561 or G29 S1. I'll ask @dc42 if that is intentional.

                    @Sevimuelli I think the 'Point' compensation might be the old 'bed probing using G32' method. This is now obsolete, and I think support for it has been removed from the firmware. The only reference to it now is on the old Dozuki pages (which may not last too much longer); see
                    http://web.archive.org/web/20221202023413/https://duet3d.dozuki.com/Wiki/Setting_up_automatic_probing_of_the_print_bed#Section_Obsolete_information

                    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

                    1 Reply Last reply Reply Quote 1
                    • Sevimuelliundefined
                      Sevimuelli
                      last edited by

                      @droftarts Thanks for the explanation! Ok now it makes sense because I am running DWC 3.4.5 and it never worked.
                      I have to agree with @jay_s_uk that it's a bit pointless if both do the "same" thing. Looking at the dev-version, both buttons are now active only when the mesh compensation is active. And yes you can disable the bed calibration as it just resets the bed probing as described in the G Code reference but for this to be useful it needs to be active as soon as a calibration is active. But then again you can just home the printer and it has the same effect. Don't get me wrong but I feel like now it's more confusing than helpful. But that's not my place to decide.

                      Sevi

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

                        @Sevimuelli I agree that the "Disable bed compensation" button should be removed. One for @chrishamm.

                        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

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

                          @dc42 @Sevimuelli Done.

                          Duet software engineer

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