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

    Step Rate abominably low causing layer shifts.

    Scheduled Pinned Locked Moved
    Using Duet Controllers
    step rate layer shift duet 3 mini 5+ odrive
    8
    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.
    • ryanrocksforeverundefined
      ryanrocksforever
      last edited by

      I am using a Duet 3 mini 5+, with 3 z steps connected to drivers 0,1,2. and the two external drivers connected to an odrive running my X and Y motors. as of right now my steps/mm command is

      M92 X53.05 Y53.05 Z1200 E409.00                        ; set steps per mm
      

      I have the external drivers connected through a shielded cable connecting to both of the pins.
      The duet 3 mini's reported step rate is 250Khz on slightly older firmware. Prints running at lower speeds such as a benchy boat come out fine. When I run a print with travel moves at about 300mm/s, gradual layer shifts occur between travel moves resulting in a slanted part. I have determined tis to be the fault of the duet and not the odrive, because when increasing steps/mm on the duet and increasing my steps/rotation on the odrive, it is always the duet that causes layer shifts. I get 31,800 steps/ sec for just the X and Y axis when moving, does this exceed the 250Khz rated step rate? Another thing to not e is that When I run G0 rapid movements with just the X and Y axis at 300mm/s or faster, I experience no step loss. When adding Z movements to the test commands, the printer slows down significantly to about 200mm/s top speed. Is there anything that could be done to remedy this problem, or would I be better off buying a mainboard 6hc, or maybe trying to use Klipper?

      fcwiltundefined jay_s_ukundefined 3 Replies Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @ryanrocksforever
        last edited by

        @ryanrocksforever

        What kind of X and Y hardware do you have that uses 53.05 for M92?

        Frederick

        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

        ryanrocksforeverundefined 1 Reply Last reply Reply Quote 0
        • ryanrocksforeverundefined
          ryanrocksforever @fcwilt
          last edited by ryanrocksforever

          @fcwilt I have a odrive v 3.6 that runs brushless motors with encoders, as of right now I have 150kv motors, and 20480 cpr encoders. I believe that the Odrive has a max step rate of at least 250Khz. As of right now I have it at 1024 steps per circular range, which is 1024 steps/ rotation

          1 Reply Last reply Reply Quote 0
          • fcwiltundefined
            fcwilt @ryanrocksforever
            last edited by

            @ryanrocksforever said in Step Rate abominably low causing layer shifts.:

            I have determined tis to be the fault of the duet and not the odrive, because when increasing steps/mm on the duet and increasing my steps/rotation on the odrive, it is always the duet that causes layer shifts.

            How did you make that determination?

            Have you tried setting the steps per rotation to a value that allows the Duet steps/mm to be a whole number?

            Frederick

            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

            ryanrocksforeverundefined 1 Reply Last reply Reply Quote 0
            • ryanrocksforeverundefined
              ryanrocksforever @fcwilt
              last edited by

              @fcwilt The odrive provides a graph of incoming steps, and through testing at different speeds, and therfore steps/second, I determined that at higher speeds, not as many steps were coming in as their should have been for the same amount of movement. I have not tried making the steps/mm to be a whole value yet, I am unsure whether that would make a difference.

              fcwiltundefined 1 Reply Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @ryanrocksforever
                last edited by

                @ryanrocksforever said in Step Rate abominably low causing layer shifts.:

                @fcwilt I have not tried making the steps/mm to be a whole value yet, I am unsure whether that would make a difference.

                I don't know either but I cannot quite wrap my head around how the Duet (or any controller) could issue 53.05 steps.

                When I worked with a closed loop controller setup it had steps/revolution options that yield whole numbers in the Duet - it worked fine.

                Worth a try.

                Frederick

                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

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

                  @ryanrocksforever do you have timings set for each drive in M569?

                  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

                  ryanrocksforeverundefined 1 Reply Last reply Reply Quote 1
                  • ryanrocksforeverundefined
                    ryanrocksforever @jay_s_uk
                    last edited by

                    @jay_s_uk No I do not

                    engikeneerundefined droftartsundefined 3 Replies Last reply Reply Quote 0
                    • engikeneerundefined
                      engikeneer @ryanrocksforever
                      last edited by

                      @ryanrocksforever said in Step Rate abominably low causing layer shifts.:

                      @fcwilt The odrive provides a graph of incoming steps, and through testing at different speeds, and therfore steps/second, I determined that at higher speeds, not as many steps were coming in as their should have been for the same amount of movement. I have not tried making the steps/mm to be a whole value yet, I am unsure whether that would make a difference.

                      This and your first post suggests to me that the odrive is just not reading the steps coming in when at high speeds, so is missing steps sent by the Duet and losing position. I'd suggest looking up the recommended pulse timings in the datasheet and setting the M569 command as @jay_s_uk mentions

                      E3D TC with D3Mini and Toolboards.
                      Home-built CoreXY, Duet Wifi, Chimera direct drive, 2x BMG, 300x300x300 build volume
                      i3 clone with a bunch of mods

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

                        @ryanrocksforever post your config.g and response to M115 for firmware version, please.

                        If you are not setting the T parameter of M569 for the odrive axes, where T is:

                        Taa:bb:cc:dd - Minimum driver step pulse width, step pulse interval, direction setup time and direction hold time, in microseconds

                        then the timings are probably defaulting to 'fast' timings, which may well be too fast for the odrive, particularly as speed increases. I had a quick look at the odrive documentation, but couldn't immediately see what the timings should be. Perhaps start with conservative settings of T5:5:10:10

                        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
                        • droftartsundefined
                          droftarts administrators @ryanrocksforever
                          last edited by

                          @ryanrocksforever Also, the links in this thread might help: https://forum.duet3d.com/topic/23476/high-speed-printing-using-odrive

                          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

                          ryanrocksforeverundefined 1 Reply Last reply Reply Quote 0
                          • ryanrocksforeverundefined
                            ryanrocksforever @droftarts
                            last edited by

                            @droftarts My firmware version is 3.4.0. After @jay_s_uk mentioned the M569 command I looked it up in the gcode dictionary, which led me to the max achievable step rate spreadsheet, which I had previously looked at. I also noticed the settings for The 1XD expansion, for a 600 kHz step rate which was T0:0:0, I implemented this with the hopes that it would improve the step rates for the external drivers of a Duet 3 mini 5+. I tested the Printer again, and it was no longer failing on the duets side. Now I am experiencing motor spinouts around 500 mm/s. This printer is very big and heavy, so I did not expect for that much higher. I also plan to use the printer as a CNC mill in the future. Would you know of any information on the expansion 1HCL for closed loop systems, I would be interested in parallel wiring the encoders from my motors to the duet, so I could achieve a true closed loop system. After test prints, a benchy boat, I noticed that the printer is still shifting, I intend to do more test prints, particularly ones that I can look at more to identify layer shifts. One interesting thing that I found is that when I run a movement test macro with z movement included, the top speed goes way down, and caps at 240 mm/s compared to upwards of 400 mm/s otherwise. I believe that this is being reflected in prints, by when a travel move occurs, i have mine set at 300 mm/s, the printer loses a couple steps, resulting in small layer shifts, and a gradual change in accuracy. Why? I think it is because too much bandwidth is taken up. But what do I know.
                            Here is an image i compiled of tests from 10k mm/min, 20k mm/min, and 25k mm/min. Y axis is steps, X is time
                            odrive test.png

                            regarding the vez3d video, I watched it, and He uses a Klipper system to coontrol his odrive, and he does not experience layer shifts. I have a toolboard connected to a hemera on the toolhead, so it is not possible for me to switch to Klipper.

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

                              @ryanrocksforever external stepper driver will not work with T0:0:0:0. They have minimum timing characteristics that you must meet in order for them to recognise the steps and to to the direction changes at the right time. Look up the timing requirements in the datasheet and adjust the T parameter to match. The problem you are having is not to do with insufficient step rate, it is caused by failing to meet the timing requirements of your external drivers.

                              RRF never skips steps if it can't meet the requested step rate, at worst it slows down the step rate.

                              Have you actually calculated the step rate that you need in order to achieve 300mm/sec? It will depend on what steps/rev you have set your ODrives to use.

                              BTW Hangprinter version 4 uses ODrives driven by Duet 3 boards.

                              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

                              ryanrocksforeverundefined 1 Reply Last reply Reply Quote 0
                              • ryanrocksforeverundefined
                                ryanrocksforever @dc42
                                last edited by ryanrocksforever

                                @dc42

                                heres the config.g for the hangprinter

                                ; Communication and general
                                G21              ; Work in millimetres
                                G90              ; Send absolute coordinates...
                                M83              ; ...but relative extruder moves
                                
                                ; Kinematics
                                G4 S1                           ; Wait 1 second because expansion boards might not be ready to receive CAN signal yet.
                                M584 X40.0 Y41.0 Z42.0 U43.0 P4 ; map ABCD-axes to CAN addresses, and set four visible axes. Please excuse that ABCD motors are called XYZU here.
                                M584 E0:1:2:3:4:5               ; Regard all built in stepper drivers as extruder drives
                                M669 K6                         ; "This is a Hangprinter"
                                M669 P2000.0                    ; Printable radius (unused by Hangprinters for now)
                                M669 S430 T0.1                  ; Segments per second and min segment length
                                
                                ; Output of auto calibration script for Hangprinter
                                M669 A0.0:-1610.98:-131.53 B1314.22:1268.14:-121.28 C-1415.73:707.61:-121.82 D-0.00:0.01:2299.83
                                M666 Q0.128181 R75.546:75.659:76.128:75.192
                                ; Explanation:
                                ; ; M669 defines the positions of the anchors, expressed as X:Y:Z distances between a line's pivot points, when the machine is homed.
                                ; ; M666 sets Q=spool buildup, R=spool radii (incl buildup, when homed)
                                
                                M208 Z2000.00  ; set maximum Z somewhere below D anchor. See M669 ... D<number>
                                M208 S1 Z-10.0 ; set minimum Z
                                
                                ; The following values must also be in the auto calibration script for Hangprinter (if you plan to use it)
                                M666 U2:2:2:4         ; Mechanical advantages on ABCD
                                M666 O1:1:1:1         ; Number of lines per spool
                                M666 L20:20:20:20     ; Motor gear teeth of ABCD axes
                                M666 H255:255:255:255 ; Spool gear teeth of ABCD axes
                                
                                ; Flex compensation
                                M666 W1.0                 ; Mover weighs 1 kg. Set to 0 to disable flex compensation.
                                M666 S20000.0             ; Spring constant (rough approximation) for Garda 1.1 mm line (unit N/m).
                                                          ; The real value is somewhere between 20k and 100k.
                                                          ; Lower value gives more flex compensation.
                                M666 I0.0:0.0:0.0:0.0     ; Min planned force in four directions (unit N).
                                                          ; This is a safety limit. Should affect only exceptional/wrong moves,
                                                          ; for example moves outside of the reachable volume.
                                M666 X70.0:70.0:70.0:70.0 ; Max planned force in four directions (unit N)
                                                          ; This is a safety limit. Will affect moves close to
                                                          ; the limits of the reachable volume.
                                M666 T10.0                ; Desired target force (unit N).
                                                          ; The flex compensation algorithm aims for at least
                                                          ; this amount of fource in the ABC line directions at all times.
                                                          ; It can be thought of as a minimum pre-tension value.
                                                          ; It's recommended to set it around 10 times higher
                                                          ; than your W (mover weight in kg) value.
                                
                                ; Guy wire lengths. Needed for flex compenation.
                                ; Guy wires go between spool and final line roller.
                                ; If your spools are all mounted on the D-anchor, on the ceiling plate, then you're all good,
                                ; and you don't need to configure M666 Y values explicitly.
                                ; If your spools are not all on the D-anchor then you must measure guy wire
                                ; lengths and set them here.
                                ; If your spools are all mounted on their respective anchors, so that you have no guy wires,
                                ; then you should configure zeroed guy wire lengths M666 Y0.0:0.0:0.0:0.0.
                                ;M666 Y-1.0:-1.0:-1.0:-1.0
                                
                                ; Torque constants. These are required for reading motor forces from ODrives
                                ; They are the same values as is configured in the ODrives themselves (8.27/330 for motors in the standard  HP4 BOM)
                                ;M666 C0.025061:0.025061:0.025061:0.025061
                                
                                ; Uncomment M564 S0 if you don't want G0/G1 moves to be be limited to a software defined volume
                                ; M564 S0
                                
                                ; Drives
                                M666 J25:25:25:25 ; Full steps per ABCD motor revolution (match with ODrives...)
                                
                                M569 P0 S1 ; Drive 0 goes forwards
                                M569 P1 S1 ; Drive 1 goes forwards
                                M569 P2 S1 ; Drive 2 goes forwards
                                M569 P3 S1 ; Drive 3 goes forwards
                                M569 P4 S1 ; Drive 4 goes forwards
                                M569 P5 S1 ; Drive 5 goes forwards
                                
                                ;; Warning: On a Hangprinter, ABCD motor directions shouldn't be changed, at least not
                                ;;          via this config.g file.
                                ;;          They are duplicated and hard coded into the firmware
                                ;;          to make ODrive's torque mode go the right way.
                                ;;          Please connect BLDC wires, from left to right, looking at the board
                                ;;          from the front, so that ODrive silk screen is readable from left to right:
                                ;;          |---------------------------------------------------------------|
                                ;;          |DC                                                             |
                                ;;          |-                    ODrive                                    |
                                ;;          |+                                                              |
                                ;;          |                          AUX                                  |
                                ;;          |--||---||---||------------------------------------||---||---||-|
                                ;;             ||   ||   ||                                    ||   ||   ||
                                ;; ALT 1:   Black, Red, Blue                                Black, Red, Blue
                                ;; ALT 2:  Yellow, Black, Red                              Yellow, Black, Red
                                
                                M569 P40.0 S1 ; Drive 40.0 (A) goes forwards
                                M569 P41.0 S1 ; Drive 41.0 (B) goes forwards
                                M569 P42.0 S0 ; Drive 42.0 (C) goes backwards
                                M569 P43.0 S0 ; Drive 43.0 (D) goes backwards
                                
                                ; Speeds and accelerations
                                M201 X10000 Y10000 Z10000 U10000 E1000       ; Max accelerations (mm/s^2)
                                M203 X36000 Y36000 Z36000 E3600              ; Max speeds (mm/min)
                                M204 P2000 T4000                            ; Accelerations while printing and for travel moves
                                M566 X240 Y240 Z1200 E1200                 ; Maximum instant speed changes mm/minute
                                
                                ; Currents
                                M906 E1400 I60             ; Set motor currents (mA) and increase idle current to 60%
                                
                                ; Endstops
                                M574 X0 Y0 Z0                                ; set endstop configuration (no endstops)
                                
                                ; Thermistors and heaters
                                M308 S1 P"temp0" Y"thermistor" T100000 B3950 ; Configure sensor 1 as thermistor on temp1
                                M950 H1 C"out1" T1                           ; create nozzle heater output on out1 and map it to sensor 1
                                M307 H1 B0 S1.00                             ; disable bang-bang mode for nozzle heater and set PWM limit
                                M307 H1 A1271.9 C432.5 D8.2 V24              ; Set heater parameters (for Super Volcano 80W. You probably want to tune this yourself with M303.)
                                M143 H1 S280                                 ; set temp limit for nozzle heater to 280C
                                M570 S180                                    ; Hot end may be a little slow to heat up so allow it 180 seconds
                                
                                ; Fans
                                M950 F1 C"out7"
                                M106 P1 X255 T45 H1                                ; Enable Fan 1 thermostatic mode for sensor or heater 1 at 45 degrees
                                M950 F0 C"out8"                                    ; Defines a part cooling fan
                                
                                ; Find "temp0" and "out7" pins in the wiring diagram:
                                ; https://duet3d.dozuki.com/Wiki/Duet_3_Mainboard_6HC_Wiring_Diagram
                                
                                ; Bltouch
                                ; If you have a bltouch, see
                                ; https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_BLTouch
                                ; for how to install it
                                ; Some of the commands below here might be different for you
                                ; (eg if you don't have a Duet3 board, don't use the io7 headers, or have your bltouch mounted differently than me)
                                M950 S0 C"io7.out"
                                M558 P9 C"io7.in" H5 F120 T6000
                                G31 X15 Y27 Z8 P25 ; Measure these values in your own setup.
                                
                                ; These affect how you create and your mesh/grid bed compensation heightmap.csv values
                                ; M557 X-200.001:200 Y-277.001:277 S80 ; Define a A2 sized grid with 1 cm margin...
                                ; M376 H20 ; Taper the mesh bed compensation over 20 mm of z-height
                                ; G29 S1 ; Load the default heightmap.csv and enable grid compensation
                                
                                
                                ; Tool definitions
                                M563 P0 D0 H1                                      ; Tool number 0, with extruder drive 0 uses heater 1 and no fan
                                G10 P0 S0 R0                                       ; Set initial tool 0 active at standby temperature 0
                                
                                ; Miscellaneous
                                M92 E415                                           ; Set extruder steps per mm
                                M911 S10 R11 P"M913 X0 Y0 Z0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
                                T0                                                 ; Select tool 0
                                
                                

                                In the config.g all M569 commands have no augmented timing.
                                One thing that I found that was interesting was

                                ; Drives
                                M666 J25:25:25:25 ; Full steps per ABCD motor revolution (match with ODrives...)
                                
                                

                                I do not know what this line of code affects. In the gcode dictionary it is defined as "Set delta endstop adjustment", and I see no mention of a J parameter.

                                In the odrive configuration for the hangprinter

                                #odrv0.axis1.controller.config.steps_per_circular_range = 400 # 25*16
                                

                                Is the default steps per circular range
                                I Guess that It may have something to do with the kinematics of the hangprinter and steps per turn of the spool.

                                My current microstepping and steps/mm are

                                M350 X16 Y16 Z16 E16 I1                                   ; configure microstepping with interpolation
                                M92 X53.05 Y53.05 Z1200 E409.00                        ; set steps per mm
                                

                                In the hangprinter I see no mention of microstepping Could that be a problem

                                I did some further testing with the movement of the printer.
                                when running this macro to test the y axis

                                G0 F29000
                                G0 X250 Y40
                                G0 X250 Y400
                                G0 X250 Y40
                                G0 X250 Y400
                                G0 X250 Y40
                                G0 X250 Y400
                                G0 X250 Y40
                                G0 X250 Y400
                                G0 X250 Y40
                                G0 X250 Y400
                                G0 X250 Y40
                                G0 X250 Y400
                                G0 X250 Y40
                                G0 X250 Y400
                                G0 X250 Y40
                                

                                It works perfectly and reaches a topspeed of 483 mm/s reported by DWC

                                EDIT
                                heres some more data with speed tests.
                                Untitled.png
                                As you can see there is no difference in the steps recieved when going up to 483 mm/s

                                Edit here’s a photo of a print
                                ![alt text](631CDE77-070E-4E33-82E9-1AD4149A3571.jpeg image url)

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

                                  @ryanrocksforever Hangprinter uses a custom version of RepRapFirmware. M666 is the GCode they use for defining and adjusting various parameters related to the unique kinematics of a Hangprinter; M666 from this example does not apply to your machine.

                                  All the Duet can do is supply step and direction signals. It needs to know the steps per mm of the drive it’s controlling, to send step signals at the correct time, for the acceleration and speeds configured and requested. Everything else is controlled by the external driver.

                                  I would troubleshoot this by swapping things around, as the problem only seems to be on the X axis. First check that it’s not mechanical, eg the pulley loose on the motor shaft. Then swap the driver output of X and Y, changing the the configuration to match: this should show if it’s a problem with the outputs from the Duet. Check/swap your wiring too; it may be something is breaking down or interfering at high speed. (An oscilloscope would be useful.) Otherwise, it’s likely to be something in the odrive configuration.

                                  Also, see https://docs.duet3d.com/en/User_manual/Connecting_hardware/Motors_connecting_external#firmware-configuration

                                  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

                                  ryanrocksforeverundefined 1 Reply Last reply Reply Quote 0
                                  • ryanrocksforeverundefined
                                    ryanrocksforever @droftarts
                                    last edited by

                                    @droftarts I did some more tests with prints at 45 degrees, as to isolate the movement of the motors, as this is a core xy setup. I found that when doing tests with motor 0 no shifting occured. When I tested motor 1, layer shifting occured at speeds higher than 200 mm/s, particularar with travel moves. While testing Motor 0 I got print speeds up to 200mm/s with no shifting and accuracy. I think that the problem may be with step loss in the cable or a loose connection. WIth the hangprinter, How do they connect encoder signals from the odrive to the duet? They run can lines through all external drivers to the duet. I thought that can and can-fd were not compatible, but can-fd can read can signals. Is the odrive sending encoder data to the duet and just not recieving anything back?

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

                                      @ryanrocksforever I don't know much about Hangprinter. Their documentation is here, though, and covers wiring odrive an setup: https://hangprinter.org/doc/v4/

                                      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

                                      ryanrocksforeverundefined 1 Reply Last reply Reply Quote 0
                                      • ryanrocksforeverundefined
                                        ryanrocksforever @droftarts
                                        last edited by ryanrocksforever

                                        @droftarts After doing some digging through the reprap firmware, and hangprinter files, I found that all can commands for the odrive are implemented. This leads me to believe that the Odrive and the duet can communicate through can, and that is what is being used in hangprinters. All commands for the odrive are implemented in files such as the hangprinter kinamatics file, CANinterface, and other files. With all the commands, and methods for communication with odrive implemented, how hard would it be to implement odrive support into closed loop commands for cartesian printers. Specifically the

                                        CanInterface::StartClosedLoopDataCollection
                                        

                                        function. Instead of using encoders connected to expansion boards, could have a conditional that uses

                                        HangprinterKinematics::ReadODrive3Encoder
                                        

                                        to retrieve the encoder position.
                                        I am sure that I am vastly underestimating the work required to implement this though.

                                        I could possibly work on this and contribute code, what would the procces for becoming a contributer to RRF be?

                                        T3P3Tonyundefined 1 Reply Last reply Reply Quote 0
                                        • T3P3Tonyundefined
                                          T3P3Tony administrators @ryanrocksforever
                                          last edited by T3P3Tony

                                          @ryanrocksforever AFAIK the ODrive uses plain CAN, not CAN-FD and the hangprinter uses the second CAN port of Duet 3 6HC, in plain can mode, to send configuration commands to the Odrives.

                                          To add: step/direction commands are still used with the Odrives, CAN is just use to configure them. AFAIK normal CAN is to slow for controlling the motion directly.

                                          www.duet3d.com

                                          ryanrocksforeverundefined 1 Reply Last reply Reply Quote 0
                                          • ryanrocksforeverundefined
                                            ryanrocksforever @T3P3Tony
                                            last edited by ryanrocksforever

                                            @t3p3tony Ok thank you for clarifying. Would there be anyway to wire the encoders in parralel from the odrive to the duet. The Duet supports some encoders, but I am unsure weather the ones on the odrive would work. Particularly the CUI AMT10E2-V which has 20480 cpr

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