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

    Smart effector not remembering sensitivity

    Scheduled Pinned Locked Moved
    Smart effector for delta printers
    5
    15
    529
    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.
    • dgratundefined
      dgrat
      last edited by dgrat

      Hi there,
      I got a replacement. Z probe and LEDs are working fine now. However, the probe does definitely not store the sensitivity when I repower. Seems like the probe always starts with factory settings.

      The weird thing is, that the LED flashes 3 times after setting (M672 S105:8:247) and subsequent repower (as described). However, the sensititviy changed back factory setting. During this time setting the sensitivity is not possible (after sending any command there is no led-feedback or change in sensitivity). After another repower, the LED flashes 2 times and I can set sensitivity again. This behavior makes it even impossible to define the sensitivity in the config.g file and is reproducable in my setup 100%. Firmware issue or EEPROM faulty?

      Somehow I like the smart effector. I mean every third repower event I can probe with it with 0.03 mm tolerance (which will not be done very often anyway). However, it seems that there is quit some trouble. Actually I bought some weeks ago a second from another shop which still did not arrive. If that works I may buy a third but I somehow expect there will be problems again..

      1 Reply Last reply Reply Quote 0
      • dgratundefined
        dgrat
        last edited by dgrat

        I am absolutely not sure, because I was just briefly looking into the code.
        There are two basic options. Either I am extremely unlucky and got a unit with defective EEPROM.
        Or there is a bug in the code. Was just briefly looking, and it seems for me the checksum math does not fit in v2 (generation with check). V1 looks fine for me.

        nvData.checksum = NvData::magic ^ nvData.sensitivity ^ nvData.flags;
        and
        nvDataValid = ((nvData.sensitivity ^ nvData.checksum) == NvData::magic);
        For me it should look like this:
        nvDataValid = (nvData.sensitivity ^ nvData.flags ^ nvData.checksum) == NvData::magic;

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

          I agree with you, the code looks wrong. I'll see if I can reproduce that problem.

          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
          • dc42undefined
            dc42 administrators
            last edited by

            Yes I can reproduce it. I'm sorry about this. I guess nobody else is using custom sensitivity!

            Have you tried moving the sensitivity command to the end of config.g and using G4 to insert a delay before it? The delay will have to be long enough for the LED to have stoppled flashing.

            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
            • dgratundefined
              dgrat
              last edited by

              I am not an embedded developer. Do you have a small guide how to flash the firmware? I will make a push request in github.

              1 Reply Last reply Reply Quote 0
              • dgratundefined
                dgrat
                last edited by

                Definition of M672 S105:8:247 in the config file is useless, because I can just change the sensitivity every third run.
                I guess there is another issue with the error handling, because the checksum check is false, but the led blinks three times.

                1 Reply Last reply Reply Quote 0
                • dgratundefined
                  dgrat
                  last edited by dgrat

                  I think I got it, the LED blinks probably one time because of the check, and two times because it resets ^_^
                  I misinterpreted this as three blinks 😄

                  	if (!nvDataValid && (PINA & BITVAL(PortADuetInputBitNum)) == 0)
                  	{
                  		nvData.flags = 0;
                  		UpdateEEPROM();
                  		FlashLed(2);
                  	}
                  
                  1 Reply Last reply Reply Quote 0
                  • dgratundefined
                    dgrat
                    last edited by

                    What works is to put M672 in the bed file and finish with a reset 131:131.

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

                      @dgrat, thanks for your PR. I have accepted it, made some other minor changes, tested it, and published a new release at https://github.com/dc42/Duet3dSmartEffector/releases/tag/2.01.

                      Flashing the firmware requires an AVR programmer, such as AVRISP, TinyISP, or an Arduino running the ArduinoISP sketch. The pads on top of the Smart Effector have the standard 6-pin ISP layout. We use spring-loaded pins to make contact with them.

                      If you are based in the UK then I can reprogram your Smart Effector. Send me a chat message if you would like to arrange this.

                      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
                      • dgratundefined
                        dgrat
                        last edited by

                        @dc42 I am living in Germany, and I guess, I anyway had to learn it. I will test it out, when I get my pogo pin connector.

                        1 Reply Last reply Reply Quote 0
                        • dgratundefined
                          dgrat
                          last edited by

                          @dc42
                          Okay I flashed the firmware with avrdude. Seems to work now.

                          1 Reply Last reply Reply Quote 0
                          • apakundefined
                            apak
                            last edited by apak

                            I just got a old smarteffector that seems to have this very same problem.

                            No sensitivity store, and need to program it every power cicle.

                            Is it there any instruction on how to flash fw to smarteffector? It´s a V2. So don´t know the best or latest fw to install

                            Phaedruxundefined droftartsundefined 2 Replies Last reply Reply Quote 0
                            • Phaedruxundefined
                              Phaedrux Moderator @apak
                              last edited by

                              @apak said in Smart effector not remembering sensitivity:

                              I just got a old smarteffector that seems to have this very same problem.

                              No sensitivity store, and need to program it every power cicle.

                              Is it there any instruction on how to flash fw to smarteffector? It´s a V2. So don´t know the best or latest fw to install

                              Everything to know about the smart effector can be found here: https://docs.duet3d.com/en/Duet3D_hardware/Accessories/Smart_Effector

                              If you're still stuck, please create a new thread with all the details.

                              Z-Bot CoreXY Build | Thingiverse Profile

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

                                @apak Looking at the release history of the Smarteffector firmware, v2.01 "fixes a problem whereby if a custom sensitivity was set, it was not preserved over a power cycle", so it may be you have older firmware on the SmartEffector. Otherwise, I think you can just set it each time in config.g.

                                For flashing the firmware, see @dc42's notes above https://forum.duet3d.com/post/116211:

                                Flashing the firmware requires an AVR programmer, such as AVRISP, TinyISP, or an Arduino running the ArduinoISP sketch. The pads on top of the Smart Effector have the standard 6-pin ISP layout. We use spring-loaded pins to make contact with them.

                                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

                                apakundefined 1 Reply Last reply Reply Quote 0
                                • apakundefined
                                  apak @droftarts
                                  last edited by

                                  @droftarts already opened a new post for my problem here
                                  https://forum.duet3d.com/topic/37697/smarteffector-v2-sensitivity-not-stored/4

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