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

    distorted prints Z direction (micro stepping and steps per mm)

    Scheduled Pinned Locked Moved Solved
    General Discussion
    2
    5
    573
    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.
    • aprzundefined
      aprz
      last edited by aprz

      I’m using an acceleration test print to calibrate my printer but I am lost as to what I messed up. Now when I have a new print start the height is shorter than before and looks as though the steps on the z access aren’t moving up in a normal fashion as before.

      Nothing shows when I send the m98 p”config.g” command.

      Also I’ve tried to look over my stl file for any odd moves but I don’t see anything. Could it be the cura software or is it something I have wrong in my config file. In advance thanks for the help.

      
       General preferences
      G90                                                     ; send absolute coordinates...
      M83                                                     ; ...but relative extruder moves
      M550 P"Duet 3"                                          ; set printer name
       
      ; Drives
      M569 P0.4  S1                                             ; X axis physical drive 0.4 goes forwards
      M569 P0.5  S1                                             ; X axis physical drive 0.5 goes forwards
      M569 P2.0  S1                                             ; Y axis physical drive 2.0 goes forwards
      M569 P2.1  S1                                             ; Y axis physical drive 2.1 goes forwards
      M569 P1.1  S0                                             ; Y axis physical drive 1.1 goes forwards
      M569 P1.0  S0                                             ; Y axis physical drive 1.3 goes backwards
      M569 P0.0  S1                                             ; Z axis physical drive 0.0 goes forwards
      M569 P0.1  S1                                             ; Z axis physical drive 0.1 goes forwards
      M569 P0.2  S1                                             ; Z axis physical drive 0.2 goes forwards
      M569 P0.3  S1                                             ; Z axis physical drive 0.3 goes forwards
      M569 P121.0 S0                                            ; Tool 0 physical drive 20.0 goes forwards
      M584 X0.4:0.5 Y2.0:2.1:1.1:1.0 Z0.0:0.1:0.2:0.3 E121.0    ; Four Z motors connected to driver outputs Z axis
      M671 X-30:-30:380:380 Y-30:380:380:-30 S7                 ; leadscrews at rear left, front left, front right, rear right (connected to Z) 
      M208 X0:370   Y0:370                                      ; X carriage moves from 0 to 370, Y bed goes from 0 to 380
      M350 X16      Y16      Z256        E256       I1           ; configure microstepping with interpolation
      M92  X160.00  Y160.00  Z25600.00   E13392.00                ; set steps per mm
      M566 X400     Y400     Z130.00    E7000.00                ; set maximum instantaneous speed changes (mm/min)
      M203 X7250.00 Y7250.00 Z180.00    E10000.00               ; set maximum speeds (mm/min)
      M201 X300.00  Y300.00  Z130.00    E8000.00                ; set accelerations (mm/s^2)
      M906 X2400    Y2400    Z3200      E980      I30            ; set motor currents (mA) and motor idle factor in per cent
      M84  S30                                                   ; Set idle timeout
      
      ; Axis Limits
      M208 X0   Y0   Z0   S1                                    ; set axis minima
      M208 X380 Y380 Z380 S0                                    ; set axis maxima
       
      ; Endstops
      M574 X1 S1 P"2.io2.in"                                    ; configure active-low endstop for low end on X via pin 2.io2.in
      M574 Y1 S1 P"1.io2.in"                                    ; configure active-low endstop for low end on Y via pin 1,io2.in
      M574 0Z S1                                                ; N/a endstops
      
       
      ; Z-Probe
      M558 P8 C"121.io0.in" H2 F180 T5200                     ; set Z probe type to unmodulated and the dive height + speeds
      G31  P500 X0 Y0 Z0.34                                  ; set Z probe trigger value, offset and trigger height
      M557 X0:380 Y0:380 S45                                   ; define mesh grid X/Y and probe spacing
       
      ; Heaters
      M308 S0 P"121.temp0" Y"pt1000"                          ; configure sensor 0 as thermistor on pin 20.temp0
      M950 H0 C"121.out0" T0                                  ; create nozzle heater output on 20.out0 and map it to sensor 0
      M307 H0 R1.555 C397.7 D6.96 S1.00 V24.1 B0              ; PID auto tune results for Tool 0 Titan Aqua 1.75
      M308 S1 P"temp0" Y"thermistor" T100000 B3950            ; configure sensor 1 as thermistor on pin temp0
      M950 H1 C"out0" T1                                      ; create bed heater output on out0 and map it to sensor 1
      M307 H1 R0.224 C219.6 D7.78 S1.00 V24.1                 ; PID auto tune results for Tool 1 bed heater
      M140 H1                                                 ; map heated bed to heater 1
      M143 H1 S120                                            ; set temperature limit for heater 1 to 120C
       
      
      ; Fans
      M950 F0 C"out8" Q200                                    ; create fan 0 on pin out8 and set its frequency
      M106 P0 S255 H0 T45 C"Radiator Fan"                     ; set fan 0 value. Thermostatic control is turned on
      M950 F1 C"out9" Q500                                    ; create fan 1 on pin out9 and set its frequency
      M106 P1 S200 H0 T45 C"water pump"                       ; set fan 1 value. Thermostatic control is turned on
       
      ; Tools
      M563 P0 S"Titan Aqua 1.75" D0 H0 F0                      ; define tool 0
      G10  P0 X0 Y0 Z0                                         ; set tool 0 axis offsets
      G10  P0 R0 S0                                            ; set initial tool 0 active and standby temperatures to 0C
       
      
      ; Custom settings are not defined
       
      
      

      image.jpg image.jpg
      image.jpg

      1 Reply Last reply Reply Quote 0
      • aprzundefined
        aprz @aprz
        last edited by aprz

        Ok, the problem was the incorrect steps per millimeter, i changed them from 1600 to 3200 for x16 microstepping. Thats embarrassing but hopefully this helps any one else with a "distorted" print. Thanks for the help.

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

          Can you provide the results of M122 as well?

          Using x256 microstepping isn't recommended and provides no real benefit. I would suggest switching your Z microstepping back to x16 and adjust your steps per mm accordingly and try again.

          Can you send M584 in the console by itself and see if it matches your expected mapping?

          Z-Bot CoreXY Build | Thingiverse Profile

          aprzundefined 1 Reply Last reply Reply Quote 0
          • aprzundefined
            aprz @Phaedrux
            last edited by aprz

            @phaedrux said in Odd z axis issue with prints:

            Using x256 microstepping isn't recommended and provides no real benefit. I would suggest switching your Z >microstepping back to x16 and adjust your steps per mm accordingly and try again.

            Well i guess ill change it back to x16 micro stepping, I was hoping it would be fine and actually improve the resolution. i'll report back if it was the differences in micro stepping. I did notice that at lower microstepping with combination of lower current improved the noise and ghosting of my prints but also noticed a decrease in noise with a higher microstepping at low speeds and high current. Is there an article or other resources that you can point me to to learn more about microstepping and current, to get the best quality with the right combination. Really appreciate the help.

            Also, even with a 0.9 degree motor the advantage of using higher micro stepping isn't worth it? i know that when you increase the micro stepping you decrease torque and the 0.9 motor already has less torque than a 1.8. So you would need a higher current to increase torque and that would solve the issue of lost torque?

            Can you provide the results of M122 as well?

            here's the M122:

            m122
            === Diagnostics ===
            RepRapFirmware for Duet 3 MB6HC version 3.2.2 running on Duet 3 MB6HC v1.01 or later (SBC mode)
            Board ID: 08DJM-956L2-G43S8-6J9F8-3S86S-9B3QD
            Used output buffers: 1 of 40 (10 max)
            === RTOS ===
            Static ram: 149788
            Dynamic ram: 62396 of which 76 recycled
            Never used RAM 146572, free system stack 200 words
            Tasks: Linux(ready,77) HEAT(blocked,297) CanReceiv(blocked,832) CanSender(blocked,371) CanClock(blocked,352) TMC(blocked,51) MAIN(running,1203) IDLE(ready,19)
            Owned mutexes: HTTP(MAIN)
            === Platform ===
            Last reset 00:08:20 ago, cause: software
            Last software reset at 2021-04-15 11:27, reason: User, none spinning, available RAM 146336, slot 1
            Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task Linu Freestk 0 n/a
            Error status: 0x00
            Aux0 errors 0,0,0
            Aux1 errors 0,0,0
            MCU temperature: min 46.8, current 46.9, max 48.9
            Supply voltage: min 24.1, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
            12V rail voltage: min 12.0, current 12.0, max 12.2, under voltage events: 0
            Driver 0: position 0, standstill, reads 11130, writes 14 timeouts 0, SG min/max 0/0
            Driver 1: position 0, standstill, reads 11130, writes 14 timeouts 0, SG min/max 0/0
            Driver 2: position 0, standstill, reads 11131, writes 14 timeouts 0, SG min/max 0/0
            Driver 3: position 0, standstill, reads 11131, writes 14 timeouts 0, SG min/max 0/0
            Driver 4: position 0, standstill, reads 11131, writes 14 timeouts 0, SG min/max 0/0
            Driver 5: position 0, standstill, reads 11131, writes 14 timeouts 0, SG min/max 0/0
            Date/time: 2021-04-15 11:35:53
            Slowest loop: 0.53ms; fastest: 0.04ms
            === Storage ===
            Free file entries: 10
            SD card 0 not detected, interface speed: 37.5MBytes/sec
            SD card longest read time 0.0ms, write time 0.0ms, max retries 0
            === Move ===
            DMs created 125, maxWait 0ms, bed compensation in use: none, comp offset 0.000
            === MainDDARing ===
            Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
            === AuxDDARing ===
            Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
            === Heat ===
            Bed heaters = 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
            === GCodes ===
            Segments left: 0
            Movement lock held by null
            HTTP* is doing "M122" in state(s) 0
            Telnet is idle in state(s) 0
            File is idle in state(s) 0
            USB is idle in state(s) 0
            Aux is idle in state(s) 0
            Trigger* is idle in state(s) 0
            Queue is idle in state(s) 0
            LCD is idle in state(s) 0
            SBC is idle in state(s) 0
            Daemon is idle in state(s) 0
            Aux2 is idle in state(s) 0
            Autopause is idle in state(s) 0
            Code queue is empty.
            === CAN ===
            Messages queued 1989, send timeouts 0, received 3952, lost 0, longest wait 2ms for reply type 6049, free buffers 48
            === SBC interface ===
            State: 4, failed transfers: 0
            Last transfer: 1ms ago
            RX/TX seq numbers: 17434/17434
            SPI underruns 0, overruns 0
            Number of disconnects: 0, IAP RAM available 0x2c8a8
            Buffer RX/TX: 0/0-0
            === Duet Control Server ===
            Duet Control Server v3.2.2
            Code buffer space: 4096
            Configured SPI speed: 8000000 Hz
            Full transfers per second: 35.18
            Maximum length of RX/TX data transfers: 2555/736
            

            Can you send M584 in the console by itself and see if it matches your expected mapping?

            here's my M584:

            m584
            Driver assignments: X0.4:0.5 Y2.0:2.1:1.1:1.0 Z0.0:0.1:0.2:0.3 E121.0, 3 axes visible```
            aprzundefined 1 Reply Last reply Reply Quote 0
            • aprzundefined
              aprz @aprz
              last edited by aprz

              Ok, the problem was the incorrect steps per millimeter, i changed them from 1600 to 3200 for x16 microstepping. Thats embarrassing but hopefully this helps any one else with a "distorted" print. Thanks for the help.

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

                0.0000390625mm per step at 25600 steps per mm. That kind of resolution is eaten up by slop in the mechanics and even the motor +- accuracy. It's really not helping anything.

                the only time you might want to increase microstepping is on an axis that has very low steps per mm naturally. Like maybe an ungeared direct extruder.

                for the Z axis as long as you're able to hit your layer heights as a even multiple of the full step size you can't get much better.

                You can learn more about stepper motors here:
                https://duet3d.dozuki.com/Wiki/Choosing_and_connecting_stepper_motors

                @aprz said in Odd z axis issue with prints:

                Also, even with a 0.9 degree motor the advantage of using higher micro stepping isn't worth it? i know that when you increase the micro stepping you decrease torque and the 0.9 motor already has less torque than a 1.8. So you would need a higher current to increase torque and that would solve the issue of lost torque?

                This isn't quite right. The torque generated in stepper motors comes from the angle difference between where the motor is commanded and where the shaft lags behind. The larger the difference the larger the torque. A 0.9 motor has less torque per step, but there are twice as many steps. The amount of torque at the same position is the same as a 1.8 motor. 1 step of a 1.8 motor is the same as 2 steps of a 0.9 motor.

                Z-Bot CoreXY Build | Thingiverse Profile

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