@dc42 said in v2.0 consistently increasing probe heights:
@oarjjj gave you verified that all the boards are now running 3.6.0-beta.1 ?
Any other ideas?
@dc42 said in v2.0 consistently increasing probe heights:
@oarjjj gave you verified that all the boards are now running 3.6.0-beta.1 ?
Any other ideas?
I wonder if there's something wrong on the CAN bus causing unexpected latency? I didn't use a premade cable.
@dc42 Yes.
FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.6.0-beta.1 ELECTRONICS: Duet 3 MB6HC v1.0 or earlier FIRMWARE_DATE: 2024-09-24 10:07:51
Duet EXP1HCL rev 1.0a or earlier firmware version 3.6.0-beta.1 (2024-09-24 08:50:54)
Duet EXP1HCL rev 1.0a or earlier firmware version 3.6.0-beta.1 (2024-09-24 08:50:54)
Duet EXP1HCL rev 1.0a or earlier firmware version 3.6.0-beta.1 (2024-09-24 08:50:54)
Duet EXP1HCL rev 1.0a or earlier firmware version 3.6.0-beta.1 (2024-09-24 08:50:54)
@dc42 said in v2.0 consistently increasing probe heights:
@oarjjj this is fixed in the forthcoming 3.6.0 beta 1 build.
Looks I'm still facing the problem after updating to 3.6.0b1. For some reason it would not update the boards initially:
There are 5 outdated boards:
- Duet 3 MB6HC (3.6.0-alpha.5+1 -> 3.6.0-beta.1)
- Duet 3 Expansion EXP1HCL (3.6.0-alpha.5 -> 3.6.0-beta.1) @ CAN address 121
- Duet 3 Expansion EXP1HCL (3.6.0-alpha.5 -> 3.6.0-beta.1) @ CAN address 122
- Duet 3 Expansion EXP1HCL (3.6.0-alpha.5 -> 3.6.0-beta.1) @ CAN address 123
- Duet 3 Expansion EXP1HCL (3.6.0-alpha.5 -> 3.6.0-beta.1) @ CAN address 124
Would you like to update them all (Y/n)? y
Updating firmware on board #121... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
Updating firmware on board #122... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
Updating firmware on board #123... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
Updating firmware on board #124... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
Updating firmware on mainboard... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
So I did the following:
Upon reconnecting the steppers to the expansion boards I got a similar result as before:
** encoders disabled **
G32 bed probe heights: 0.103 0.112 0.119 0.123 0.134 0.140 0.148 0.159 0.167 0.175 0.189 0.200 0.216 0.224 0.228 0.236 0.247 0.250 0.266 0.269, mean 0.185, deviation from mean 0.053
** encoders enabled **
Driver 123.0 basic tuning succeeded, measured backlash 0.048 step
Driver 122.0 basic tuning succeeded, measured backlash 0.060 step
Driver 121.0 basic tuning succeeded, measured backlash 0.046 step
G32 bed probe heights: 0.082 0.089 0.096 0.099 0.111 0.118 0.127 0.133 0.140 0.152 0.164 0.164 0.172 0.182 0.186 0.197 0.208 0.216 0.227 0.238, mean 0.155, deviation from mean 0.047
I have also tried:
I am starting to think it may be an issue with the E3d Lite6, possibly its spring is compressing? I'm not sure.
I tried running the script a few more times:
G32 bed probe heights: 0.082 0.089 0.096 0.099 0.111 0.118 0.127 0.133 0.140 0.152 0.164 0.164 0.172 0.182 0.186 0.197 0.208 0.216 0.227 0.238, mean 0.155, deviation from mean 0.047
G32 bed probe heights: 0.242 0.250 0.253 0.266 0.277 0.284 0.291 0.299 0.309 0.307 0.317 0.325 0.328 0.343 0.344 0.359 0.359 0.365 0.371 0.377, mean 0.313, deviation from mean 0.041
G32 bed probe heights: 0.399 0.408 0.419 0.426 0.437 0.442 0.456 0.459 0.472 0.479 0.487 0.490 0.497 0.508 0.512 0.519 0.528 0.538 0.549 0.554, mean 0.479, deviation from mean 0.046
G32 bed probe heights: 0.562 0.569 0.577 0.584 0.594 0.599 0.610 0.618 0.622 0.636 0.636 0.651 0.654 0.666 0.674 0.684 0.688 0.703 0.711 0.715, mean 0.638, deviation from mean 0.047
G32 bed probe heights: 0.883 0.891 0.898 0.902 0.913 0.917 0.926 0.933 0.943 0.951 0.959 0.962 0.974 0.978 0.986 0.993 1.001 1.003 1.012 1.018, mean 0.952, deviation from mean 0.042
G32 bed probe heights: 1.023 1.033 1.037 1.044 1.056 1.059 1.071 1.079 1.086 1.098 1.104 1.109 1.119 1.124 1.127 1.136 1.149 1.154 1.162 1.173, mean 1.097, deviation from mean 0.045
The end result of all this is mesh bed leveling is ever increasing in one direction.
config.g
; Configuration file for Duet 3 MB 6HC (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.4.1 on Sat Sep 14 2024 13:39:54 GMT-0600 (Mountain Daylight Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
M665 L490.910:490.930:490.86 r230 B195 H714 ; Set delta radius, diagonal rod length, printable radius and homed height
M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them
; Drives
M584 X122.0 Y123.0 Z121.0 E124.0 ; set drive mapping
M569 P122.0 S0 ; physical drive 122.0 goes backwards
M569 P123.0 S0 ; physical drive 123.0 goes backwards
M569 P121.0 S0 ; physical drive 121.0 goes backwards
;M584 Z0.0 X0.1 Y0.2 E124.0 ; set drive mapping
;M569 P0 S0 ; Drive 0 (Z) goes backwards
;M569 P1 S0 ; Drive 1 (X) goes backwards
;M569 P2 S0 ; Drive 2 (Y) goes backwards
M569 P124.0 S1 ; physical drive 124.0 goes forwards
M350 E16 I0 ; configure microstepping without interpolation
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M92 X266.66 Y266.66 Z266.66 E572.00 ; set steps per mm
M566 X20 Y20 Z20 ; set maximum instantaneous speed changes (mm/min)
M203 X7200 Y7200 Z7200 E3600 ; set maximum speeds (mm/min)
M201 X200.00 Y200.00 Z200.00 E800.00 ; set accelerations (mm/s^2)
M906 X2400 Y2400 Z2400 E500 I60 ; set motor currents (mA) and motor idle factor in per cent
M84 S900 ; Set idle timeout
; Axis Limits
M208 Z0 S1 ; set minimum Z
; Endstops
M574 X2 S1 P"122.io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin 122.io0.in
M574 Y2 S1 P"123.io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin 123.io0.in
M574 Z2 S1 P"121.io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin 121.io0.in
;M574 Z2 S1 P"io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin 121.io0.in
;M574 X2 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin 122.io0.in
;M574 Y2 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin 123.io0.in
; Z-Probe
M558 P8 R0.4 C"io3.in+io3.out" H8 F1200 T3000 ; set Z probe type to effector and the dive height + speeds
G31 P100 X0 Y0 Z-0.39 ; set Z probe trigger value, offset and trigger height
; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4267 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"temp2" Y"thermistor" T100000 B4267 ; configure sensor 1 as thermistor on pin temp2
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 heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C
; Fans
M950 F0 C"out7" Q55 ; create fan 0 on pin out7 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
; Tools
M563 P0 D0 H1 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
M912 P0 S-9.5 ; mcu temperature calibration
G4 S1 ; wait for expansion boards to start
M557 R180 S18
; Miscellaneous
M501 ; load saved parameters from non-volatile memory
T0 ; select first tool
homedelta.g
; homedelta.g
; called to home all towers on a delta printer
;
; generated by RepRapFirmware Configuration Tool v3.3.16 on Fri Oct 06 2023 14:23:27 GMT-0600 (Mountain Daylight Time)
M569 P121.0 D0 ; Make sure we are in open loop mode
M569 P122.0 D0 ; Make sure we are in open loop mode
M569 P123.0 D0 ; Make sure we are in open loop mode
G91 ; relative positioning
G1 H1 X1000 Y1000 Z1000 F1800 ; move all towers to the high end stopping at the endstops (first pass)
G1 H2 X-5 Y-5 Z-5 F360 ; go down a few mm
G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass)
G1 Z-20 F360 ; Move to a known-safe position
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.1 P121.0 T2 C2500 S400 R100 H25 I650 D0.085 A50000 V60 ; Configure Z closed loop
M569.5 P121.0 S2000 A0 R2000 D24830 V0
M569 P121.0 D4 S0 ; Configure the motor on the 1HCL at can address 121 as being in closed-loop drive mode (D4) and reversed (S0)
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.6 P121.0 V1 ; Perform closed-loop calibration
M569.1 P122.0 T2 C2500 S400 R100 H25 I650 D0.085 A50000 V60 ; Configure X closed loop
M569.5 P122.0 S2000 A0 R2000 D24830 V0
M569 P122.0 D4 S0 ; Configure the motor on the 1HCL at can address 122 as being in closed-loop drive mode (D4) and reversed (S0)
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.6 P122.0 V1 ; Perform closed-loop calibration
M569.1 P123.0 T2 C2500 S400 R100 H25 I650 D0.085 A50000 V60 ; Configure Y closed loop
M569.5 P123.0 S2000 A0 R2000 D24830 V0
M569 P123.0 D4 S0 ; Configure the motor on the 1HCL at can address 123 as being in closed-loop drive mode (D4) and reversed (S0)
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.6 P123.0 V1 ; Perform closed-loop calibration
G90 ; absolute positioning
G1 Z700 X0 Y0
macro
g1 x0 y0 z20
var x=0
var y=0
var numProbes=20
g30 s-1
while iterations < var.numProbes-1
G30 P{iterations} X{var.x} Y{var.y} Z-9999
G30 P{var.numProbes-1} X{var.x} Y{var.y} Z-9999 S-1
@dc42 awesome I'll keep an eye on the beta forum for a link to download the new firmware
@dc42 The problem goes away when connecting drives to the main board, bypassing the expansions boards and CAN bus. I'll be happy to test the update when it's ready!
@apak said in v2.0 consistently increasing probe heights:
@oarjjj said in v2.0 consistently increasing probe heights:
M208 Z0 S1 ; set minimum Z
Need to go under Z=0 with contact probe like smarteffector.
Good tip. From what I can tell the probe dive height allows it to go beyond Z0.
@dc42 said in v2.0 consistently increasing probe heights:
@jay_s_uk said in v2.0 consistently increasing probe heights:
@oarjjj i'm also not sure whether this still applies with 3.6 alpha 5.1
The tower motors of a delta printer cannot be driven via CAN-connected expansion boards. Workaround: use M669 to enable segmentation with short (e.g. 1mm) segments.
https://docs.duet3d.com/en/User_manual/RepRapFirmware/CAN_limitations#:~:text=The tower motors of a delta printer cannot be driven via CAN-connected expansion boards. Workaround%3A use M669 to enable segmentation with short (e.g. 1mm) segments.It should be OK to use CAN-connected motors for delta towers on 3.6, however there is a known issue (see https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x-Beta#reprapfirmware-360-alpha51-main-board--alpha5-expansion-boards) that may be relevant. The delay in stopping motion when the probe is triggered may be causing the motors to skip steps. Or perhaps there isn't really a delay in stopping motion but the degree of reversion needed is being calculated incorrectly.
Fixing this is one of my top priorities because it is the last major bug to fix before the 3.6.0-beta.1 release.
I really appreciate your help. Can confirm, segmentation is enabled. The towers do very abruptly stop when performing their homing move. But, I can't seem to notice any difference in motion when probing.
The expansion boards are there for closed loop support. It sounds like delta performance may be better running the motors on the main board though. I don't suppose it's possible to have the best of both worlds?
I'll try connecting the axis motors to the main board to see if the issue persists there.
On my delta, the smart effector trigger height increases linearly with each successive probe. I noticed this problem when performing mesh grid mapping, the build surface appears to rise steadily toward the X axis.
Probing the same spot:
G32 bed probe heights: -1.094 -1.094 -1.090 -1.094 -1.094 -1.071 -1.067 -1.079 -1.056 -1.056 -1.052 -1.045 -1.041 -1.037 -1.030 -1.045 -1.026 -1.037 -1.034 -1.030, mean -1.059, deviation from mean 0.024
Only performing a homing move will reset the sensor to the actual trigger height. Then it proceeds to increase each subsequent measurement.
I am currently testing the printer using quadature encoders, and seeing this problem both with the encoders off and on. Running firmware 3.5.1 I was seeing U-shaped moves (Z was dipping down on longer X-Y moves) so I updated to 3.6.0-alpha.5+1. That solved the dipping problem.
HW setup:
DC42 delta build, linear rails, smart effector, pcb carriages, optical endstops, 400mm bed, 490mm Haydn's arms, E3d Revo 2, currently do not have an extruder setup.
Duet 3 MB6HC, 3.6.0-alpha.5+1, SBC mode Pi4. Runs hotend, fans and smart effector probe
4 X Duet 3 Expansion EXP1HCL, 3.6.0-alpha.5- Each runs an axis
; Configuration file for Duet 3 MB 6HC (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.4.1 on Sat Sep 14 2024 13:39:54 GMT-0600 (Mountain Daylight Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
M665 L490.910:490.930:490.86 r230 B195 H714 ; Set delta radius, diagonal rod length, printable radius and homed height
M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them
; Drives
M569 P122.0 S0 ; physical drive 122.0 goes backwards
M569 P123.0 S0 ; physical drive 123.0 goes backwards
M569 P121.0 S0 ; physical drive 121.0 goes backwards
M569 P124.0 S1 ; physical drive 124.0 goes forwards
M584 X122.0 Y123.0 Z121.0 E124.0 ; set drive mapping
M350 E16 I0 ; configure microstepping without interpolation
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M92 X266.66 Y266.66 Z266.66 E572.00 ; set steps per mm
M566 X20 Y20 Z20 ; set maximum instantaneous speed changes (mm/min)
M203 X7200 Y7200 Z7200 E3600 ; set maximum speeds (mm/min)
M201 X200.00 Y200.00 Z200.00 E800.00 ; set accelerations (mm/s^2)
M906 X2400 Y2400 Z2400 E500 I60 ; set motor currents (mA) and motor idle factor in per cent
M84 S900 ; Set idle timeout
; Axis Limits
M208 Z0 S1 ; set minimum Z
; Endstops
M574 X2 S1 P"122.io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin 122.io0.in
M574 Y2 S1 P"123.io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin 123.io0.in
M574 Z2 S1 P"121.io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin 121.io0.in
; Z-Probe
M558 P8 R0.4 C"io3.in+io3.out" H8 F1200 T3000 ; set Z probe type to effector and the dive height + speeds
G31 P100 X0 Y0 Z-0.39 ; set Z probe trigger value, offset and trigger height
; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"temp2" Y"thermistor" T100000 B4267 ; configure sensor 1 as thermistor on pin temp2
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 heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C
; Fans
M950 F0 C"out7" Q55 ; create fan 0 on pin out7 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
; Tools
M563 P0 D0 H1 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
M912 P0 S-9.5 ; mcu temperature calibration
G4 S1 ; wait for expansion boards to start
M557 R180 S18
; Miscellaneous
M501 ; load saved parameters from non-volatile memory
T0 ; select first tool
; homedelta.g
; called to home all towers on a delta printer
;
; generated by RepRapFirmware Configuration Tool v3.3.16 on Fri Oct 06 2023 14:23:27 GMT-0600 (Mountain Daylight Time)
M569 P121.0 D0 ; Make sure we are in open loop mode
M569 P122.0 D0 ; Make sure we are in open loop mode
M569 P123.0 D0 ; Make sure we are in open loop mode
G91 ; relative positioning
G1 H1 X1000 Y1000 Z1000 F1800 ; move all towers to the high end stopping at the endstops (first pass)
G1 H2 X-5 Y-5 Z-5 F360 ; go down a few mm
G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass)
G1 Z-20 F360 ; Move to a known-safe position
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.1 P121.0 T2 C2500 S400 R100 H25 I650 D0.085 A50000 V60 ; Configure Z closed loop
M569.5 P121.0 S2000 A0 R2000 D24830 V0
M569 P121.0 D4 S0 ; Configure the motor on the 1HCL at can address 121 as being in closed-loop drive mode (D4) and reversed (S0)
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.6 P121.0 V1 ; Perform closed-loop calibration
M569.1 P122.0 T2 C2500 S400 R100 H25 I650 D0.085 A50000 V60 ; Configure X closed loop
M569.5 P122.0 S2000 A0 R2000 D24830 V0
M569 P122.0 D4 S0 ; Configure the motor on the 1HCL at can address 122 as being in closed-loop drive mode (D4) and reversed (S0)
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.6 P122.0 V1 ; Perform closed-loop calibration
M569.1 P123.0 T2 C2500 S400 R100 H25 I650 D0.085 A50000 V60 ; Configure Y closed loop
M569.5 P123.0 S2000 A0 R2000 D24830 V0
M569 P123.0 D4 S0 ; Configure the motor on the 1HCL at can address 123 as being in closed-loop drive mode (D4) and reversed (S0)
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.6 P123.0 V1 ; Perform closed-loop calibration
G90 ; absolute positioning
Test script:
g1 z20
var x=0
var y=0
var numProbes=20
g30 s-1
g1 z8
while iterations < var.numProbes-1
G30 P{iterations} X{var.x} Y{var.y} Z-9999
G30 P{var.numProbes-1} X{var.x} Y{var.y} Z-9999 S-1
RepRapFirmware height map file v2 generated at 2024-09-14 23:56, min error 0.030, max error 0.981, mean 0.453, deviation 0.271
axis0,axis1,min0,max0,min1,max1,radius,spacing0,spacing1,num0,num1
X,Y,-140.00,140.10,-140.00,140.10,175.00,35.00,35.00,9,9
0, 0, 0.030, 0.053, 0.045, 0.078, 0.146, 0, 0
0, 0.170, 0.109, 0.092, 0.077, 0.085, 0.124, 0.185, 0
0.206, 0.178, 0.135, 0.148, 0.167, 0.191, 0.240, 0.308, 0.381
0.334, 0.304, 0.275, 0.277, 0.260, 0.253, 0.310, 0.322, 0.387
0.357, 0.365, 0.381, 0.379, 0.365, 0.422, 0.478, 0.538, 0.546
0.526, 0.544, 0.549, 0.535, 0.537, 0.534, 0.590, 0.591, 0.598
0.548, 0.587, 0.630, 0.665, 0.691, 0.750, 0.740, 0.805, 0.808
0, 0.754, 0.775, 0.825, 0.838, 0.859, 0.861, 0.843, 0
0, 0, 0.823, 0.888, 0.938, 0.945, 0.981, 0, 0
Anyone know how many kHz we can expect from the duet3 mainboard? @dc42?
@lord-binky I have moons motors. They’re an old design, same as stepperonline and don’t run any better.
Maybe try Lin engineering if you’re looking to spend $50 per motor. Same company, totally different level of support and design. Lin has been around for a long time so lots of used ones out there.
I am purchasing a Duet 3 to replace my somewhat broken Duet 2 wifi and was looking at the specs. The processor is much more capable, and I understand the Duet 2 is rated for around 150 KHz with three steppers running.
Is the Duet 3 providing 256 microstepping using interpolation? This relieves the strain on the Duet 2 by only requiring the processor to output 16 microsteps. Do we know what the processor in the Duet 3 can handle?
I understand the expansion boards have their own processor, so I'm also curious what kind of KHz to expect from those too.
Some time has passed (new baby girl!) and I sat down with your advice to find the source of the problem. Moving the (genuine hiwin) carriages manually I found some binding in them at times.
Looking in to the problem I found that each of my carriages were missing 1 ball bearing. After adding the bearings, the problem has been completely solved.
My advice to anyone facing this problem is don't give up! and try practical tests like the ones David has mentioned. It's a frustrating experience but there is a solution!
Thanks again dc42!
@dc42
24 volt PSU. Running at 1.5a I can generally run them as fast as possible. Somewhere around 300mm/s. You can't print that fast so I generally limit them to about 65mm/s.
Anything above 1.5a, with a nozzle speed of higher than 40mm/s generates a lot of noise and vibration. The frame of the printer really rattles and if you feel the carriages, they're very notchy in their movement.
Normally the printer is essentially silent.
This is the 24v PSU I am using.
Cosel ADA1000F-24
https://octopart.com/ada1000f-24-cosel-82700
There some voltage drop from the 400w heated bed so I adjusted it to be about 24.9v. I've tried to reduce the cable lengths as much as possible as well as double 16ga wire to the heatbed, and that's helped with the voltage drop considerably.
At 1.5a the motors have never heated up. Higher than that, although I've only done limited prints at like 1.8a (very noisy) doesn't make any heat either. I can heat up the extruder motor just fine though.
I usually run them at 1/16 with interpolation. They do run smoother at higher currents when using straight 1/64 microstepping.
Here's the mesh leveling with 2.0a current, 1/64 microstepping and 40mm/s max speed.
Well, I ordered new rods and balls from Haydn with 10mm tubes this time. Same problem. I also need to retune my radius as they are .1mm longer than the old set.
I've been using this lube:
White Lightning Clean Ride The Original Self-Cleaning Wax Bicycle Chain Lubricant, 8-Ounce Drip Squeeze Bottle
https://amzn.to/2JZUg9Y
These are the motors, from Amazon:
MOONS' 0.9deg NEMA17 Stepper Motor 3D printer 2A 0.39Nm(55oz-in) 2Phase 39.8mm(1.57in.) High Accuracy Step Motor for CNC (Stepping Motor Cable00723 include, model MS17HA2P4200)
https://amzn.to/2I3dSXV
Current is 1.5a. Anything more than that and I get a lot of vibration and noise from the motors. I'm beginning to think they may need replaced. I used the guide in the wiki to select them based on the recommended specs.
Specs are:
Parameter Unit Value
Phase 2
Step Angle 0.9°
Shaft Single
Frame Size NEMA17(42mm)
Length mm 39.8
Rated Current A 2
Holding Torque Nm 0.39
Holding Torque oz-in 55.23
Resistance Ohms ±10%@20℃ 1.05
Inductance mH Typ. 2.8
Coil Type Bi-Polar
Detent Torque mNm 16
Rotor Inertia gcm² 57
Front Shaft Length mm 24
Front Shaft Diameter mm 5
Terminal Number 4
Connect Plug
Insulation Class B(130°C)
Approvals RoHS
IP Rating IP40
Weight kg 0.29
So, motors next?
They're all tight but I'm going to try some new rods and ball joints to see if that helps since one of the rods is bent.
I've been trying to work out an issue with backlash on my kossel xl. I built it using DC42's guide, almost exactly. I understand the ridges relate to backlash but I can't seem to find it. Actually, I'm not sure which motor it is on based on the direction of the ridges.
The printer does a good job printing, I just have some backlash that's visible depending on what I print.
One of the stepper drivers on my duet wifi is bad. I switched to use the E2 stepper. Could this be related? It says there's a short to ground.
I put some more points on the auto calibration file. It calibrates at around 0.04. I've had it down to as low as 0.02, but the problem with backlash seems to be getting worse.
Things I've tried:
Lowering accel/jerk as much as possible.
Lowering speed and dive height on probe.
Checking the frame is square and level. Build plate is level as far as my micrometer can tell.
Lubricating magballs, carriers, linear rails
Removing zesty nimble entirely
Checking for loose magballs
Things I've found:
The magballs need a lot of regular lubrication. Like every 24 hours of printing.
Linear rails need lubrication every month or so.
One of my rods is bent on the Z axis. When you rotate it on the magball, you can see the bend in it.
My steppers vibrate pretty bad at above 1.5a current. They never get hot. I just leave it at 1500ma.
I tried using steel core belts. I think it helped some but they were wearing out the pulleys so I switched back.
Machine specs:
Followed DC42's large kossel guide
Duet wifi with smart effector
zesty nimble
Rubber gt2 belts, fiber reinforced from amazon
Optical endstops
1m linear rails with genuine hiwin carriages and duet3d pcb !magball mounts
Haydn's arms 480mm
400mm diameter bed on mic6 plate
16 tooth pulleys, smooth upper pulleys
moons 0.9 2.0a steppers
Firmware Version: 2.02(RTOS) (2018-12-24b1)
WiFi Server Version: 1.21
Web Interface Version: 1.22.6
Configs attached:
2_1553361419220_heightmap.csv
1_1553361419219_config.g
0_1553361419219_bed.g