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

Future Option for Linear Absolute Encoders

Scheduled Pinned Locked Moved
General Discussion
7
22
1.2k
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
    JoergS5 @NeueKlasse
    last edited by JoergS5 9 Jun 2021, 07:00 6 Sept 2021, 06:29

    @neueklasse said in Future Option for Linear Absolute Encoders:

    Nema23, with a 11x2 Spindle

    Steppers +- 2 fullsteps are then +- 0.02 mm, which is inside your range, you're right. Detent Torque of a Nema 23 is also quite high, so the Z axis should not move down when powered off.

    About Renishaw, to use it you should check how to use the supported protocols, as they are all (or most of) protocols for specific commercial products. I thought of an alternative AMT21/23..., part of them are absolute encoders, they use standard protocols/interfaces/bus like RS485, but they need battery buffers to store the absolute position, I suspect. The accuracy is 0.2 degree, which means 1 micrometer for the spindle solution, when no gear is used.

    The 1HCL will not help you imho in this case, as it reads differential quadrature signals for closed loop stepper implementations, but doesn't read absolute positions.

    The hint above using Arduino, ESP32 or alike was imho a good one to install it between the encoder and the Duet. You should check whether there are libraries to support one of the Renishaw protocols (Biss C, DRIVE-CLiQ, FANUC, Mitsubishi, Panasonic, Yaskawa).

    undefined 1 Reply Last reply 6 Sept 2021, 06:59 Reply Quote 0
    • undefined
      o_lampe
      last edited by 6 Sept 2021, 06:52

      I'd look for an ESP to buffer the position, because it wouldn't need level shifters and it has power saving features like wake up on interupt

      1 Reply Last reply Reply Quote 0
      • undefined
        NeueKlasse @JoergS5
        last edited by 6 Sept 2021, 06:59

        @joergs5 How to tell the Duet, (Duet3 btw) the actual Position from the ESP Board?
        then it would be interesting,
        i checked the Information about the HCL Board.. it's simply just a "Standard" for the most common Encodertype that's in Use in the Printers, so for me sadly no way.

        now i test a little bit around with Variables and Assignments...

        i created these 2 in the config.g file:

        ; Variables
        global LastZAxisPosition = 0
        global LastUAxisPosition = 0

        in other Controllers (example ABB, KUKA) they will be updated in the config file if i set an Value,
        in the Duet Framework after a Restart it's 0 again (like i wrote the in the config file...)

        Prusa Mini, Chiron @ BMG X2
        Metal SLS Printer Development

        undefined 2 Replies Last reply 6 Sept 2021, 07:23 Reply Quote 0
        • undefined
          JoergS5 @NeueKlasse
          last edited by JoergS5 9 Jun 2021, 07:27 6 Sept 2021, 07:23

          @neueklasse said in Future Option for Linear Absolute Encoders:

          How to tell the Duet, (Duet3 btw) the actual Position from the ESP Board?

          Duet has a very clever concept: it is controlled by G-Code commands completely. Everything from config.g to sliced 3D printing is based on it. So the ESP32 needs to send a G-Code command like a G92 to the Duet, that's it. You only need a connection between ESP and Duet which is supported by both. ESP and Duet support eg SPI, I2C, http, even TCP through WLAN if Duet supports Wifi. If Duet 3 is in the internal network, the ESP32 could send the data through WLAN and router to the Duet 3.

          undefined 2 Replies Last reply 6 Sept 2021, 07:30 Reply Quote 0
          • undefined
            NeueKlasse @JoergS5
            last edited by 6 Sept 2021, 07:30

            @joergs5, @PCR i think i like that way, i order an ESP to test it out!

            Prusa Mini, Chiron @ BMG X2
            Metal SLS Printer Development

            1 Reply Last reply Reply Quote 0
            • undefined
              JoergS5 @NeueKlasse
              last edited by 6 Sept 2021, 07:30

              @neueklasse said in Future Option for Linear Absolute Encoders:

              work after a Restart it's 0 again (like i wrote the in the config fil

              there was a thread recently how to store global variables:
              https://forum.duet3d.com/topic/24880/does-rrf-have-maintenance-counters-timers

              undefined 1 Reply Last reply 6 Sept 2021, 07:52 Reply Quote 0
              • undefined
                NeueKlasse @JoergS5
                last edited by 6 Sept 2021, 07:52

                @joergs5 i tested that,

                => config.g = global ZAxisPos = 0
                => i created a "VariableBuffer.g" file in the sys Folder and Inside:
                set global ZAxisPos = 0

                then A Macrofile w.

                M28 "0:/sys/VariableBuffer.g"
                set global.ZAxisPos = -25
                M29

                After Calling the Macro the Variable inside the VariableBuffer.g file is Updated,
                it's also persistent through a Restart.

                if i set it under the M29 Command in the Macro: G92 Z{global.ZAxisPos}
                the Z Value Remains 0

                so i checked it in the Objekt Model Browser under "global" ... it remains 0.

                Prusa Mini, Chiron @ BMG X2
                Metal SLS Printer Development

                undefined 1 Reply Last reply 6 Sept 2021, 09:16 Reply Quote 0
                • undefined
                  JoergS5 @NeueKlasse
                  last edited by 6 Sept 2021, 09:16

                  @neueklasse I did not use and test it myself, I only saw the thread. If you have negative results, you could post your try and question in this thread where storing the variable was discussed.

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    NeueKlasse @JoergS5
                    last edited by 6 Sept 2021, 11:13

                    @joergs5

                    the easiest way i think would be over UART, but in my case a PanelDue is connected on IO0,
                    do i have to Activate the SPI Protocol (M576) to send the Commands via the GPIO Header and
                    the SPI Pins?
                    I think the Second UART Port on IO1 is not working right now?

                    Prusa Mini, Chiron @ BMG X2
                    Metal SLS Printer Development

                    undefined 1 Reply Last reply 6 Sept 2021, 11:29 Reply Quote 0
                    • undefined
                      JoergS5 @NeueKlasse
                      last edited by JoergS5 9 Jun 2021, 11:46 6 Sept 2021, 11:29

                      @neueklasse you don't need something fast or permanent for this task, so I would not waste a dedicated line, but use the Lan connection.*)

                      *) but there is https://github.com/technik-gegg/SMuFF-Ifc which could be used to be between Duet and Paneldue. But I2C is sensitive, I would prefer Lan.

                      If I remember correctly, you're using a Raspi with Octoprint also, so using Lan for all communication would be fine and usable for other ideas.

                      A different direction would be CAN-FD, with a board like Teensy 4 or Sammy-C21, or using the MCP2542FD chips. The Duet 3 is a groving environment with CAN-FD components, enlarging it with a component for encoder would be interesting. But this may require some development of the communication.

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        dc42 administrators @NeueKlasse
                        last edited by dc42 9 Jun 2021, 15:58 6 Sept 2021, 15:55

                        @neueklasse I've been looking at whether the forthcoming closed loop board could support this type of absolute encoder. It appears to me that it could, with a little extra hardware (possibly on a daughter board) to provide an RS422 interface. We would use BISS C protocol to communicate with the encoder.

                        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 undefined 2 Replies Last reply 6 Sept 2021, 15:59 Reply Quote 0
                        • undefined
                          NeueKlasse @dc42
                          last edited by NeueKlasse 9 Jun 2021, 16:00 6 Sept 2021, 15:59

                          @dc42 Thanks for the info, that would be great! i'm looking forward to the developments.
                          BISS C would be perfect (at least in my Case)

                          Prusa Mini, Chiron @ BMG X2
                          Metal SLS Printer Development

                          1 Reply Last reply Reply Quote 0
                          • undefined
                            roiki11 @dc42
                            last edited by 8 Sept 2021, 13:43

                            @dc42

                            You could make a completely separate board with hardware quadrature counters or biss-c master ic(ic-haus makes them) then just use SPI to talk to them. The master ic supports SSI too.

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