3D Printer with Ballscrews
-
I wish some advise as I am really confused what to do next.
I built this 3D printer with two reciprocating ball screws 12mm and an 8 mm common screw for Z.
I have 60mm Nema 17 Motors which can take a max of 2.4 A x 24V however I am letting them get 1.9 A without getting heated.
The printer is all metal encased in 8mm aluminum plate, Aluminum Heat-bed with 220V.issue 1 is the noise of the ballscrews. This is a nuisance if I need to run the machine overnight, however if I half the speed it will be bearable.
Issue 2 is very serious. When printing 3mm holes the printer does fast moves and there is a crunching noise. Also I had layer shifts when doing such a print.
when printing thin edges it makes a lot of noise and shakes a lot.when printing a flat part like a octagon 40mm AF x 3 mm high or a square flat part it goes well.
My opinion is that it is running fast but what about the jerk settings in view that I have ball screws?
many thanks for some sound afvise.
This is my configuration
M143 H0 S110 ; set the maximum temperature of heatbed to 110°C
M143 H1 S250 ; set the maximum temperature of Hotend 0 to 250°C
M143 H2 S250 ; set the maximum temperature of Hotend 1 to 250°C; Pressure advance
M572 D0:1 S0.6:0.6; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"MENDELEVIUM 3D HULK TWIN TOOLS" ; set printer name; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; NOTE Drives S0 forward S1 reverse
M569 P0 S1 ; X physical drive 0 goes backwards
M569 P1 S0 ; Y physical drive 1 goes forwards
M569 P2 S1 ; Z physical drive 2 goes backwards
M569 P3 S0 ; E0 physical drive 3 goes backwards
M569 P4 S1 ; E1 physical drive 4 goes backwardsM584 X0 Y1 Z2 E3:4 ; set drive
mapping
M350 X16 Y16 Z16 E16:16 I1 ; configure;microstepping with interpolation
M92 X800 Y800 Z400.00 E297.80:297.80 ; set steps per mm
M566 X900.00 Y900.00 Z60.00 E120.00:120.00
M203 X3000.00 Y3000.00 Z1000.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; set accelerations (mm/s^2)
M906 X1900 Y1900 Z1900 E1200:1200 I30 ; set motor currents (mA) and motor idle factor in per centM84 S30 ; Set idle timeout
; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minimum Travel
M208 X346 Y302 Z263.2 S0 ; set axis maximum Travel; Endstops
M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop
M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
M574 Z2 S1 P"zstop" ; configure active-high endstop for high end on Z via pin zstop; Z-Probe
M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
M557 X15:215 Y15:195 S20 ; define mesh grid;MACHINE HEATERS
; Heatbed
M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
M307 H0 R1.058 C224.9 D2.17 S1.0 V24.3 ; autotuned value
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C; Hotend 0-e0
M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 R2.514 C309.6 D4.14 S1.00 V24.3 ; autotuned value
M143 H1 S280 ; set temperature limit for heater 1 to 280C;Hotend 1-e1
M308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp
M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2
M307 pre- autotuned value was M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M307 H2 R2.506 C310.5 D3.62 S1.00 V24.3 ; autotuned value
M143 H2 S280 ; set temperature limit for heater 2 to 280C; Fans
M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off; Tools as per forum instruction
M563 P0 S"EXTRUDER 0" D0 H1 F0 ;TOOL 0 USES DRIVE 0 AND HEATER 1
G10 P0 S0 R0 X-16.5 Y0 ; set tool 0 axis offsets
M563 P1 S"EXTRUDER 1" D1 H2 F1 ; define tool 1
G10 P1 S0 R0 X16.5 Y0 ; set tool 1 axis offsets; FILAMENT MONITOR LASER WITH MICROSWITCH
M591 D0 P6 C"E0stop" R40:120 E3.0 S0
M591 D1 P6 C"E1stop" R40:120 E3.0 S0; Miscellaneous
M575 P1 S1 B57600 ; enable support for PanelDue
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss -
@mendelevium I was running a ball screw in the Y axis of a printer a few years ago. There was some resonance I could not eliminate and it was noisy. I had to limit speed to 40 mm/sec to make the noise tolerable. It produced really nice prints, though.
-
@mrehorstdmd
The idea was to build a formidable machine. my issue is the grinding noise/shift when it was tackling circles and thin walls. However I managed to lower the speed and the nose went down. I am concerned by shifts really and that grinding noise which I suspect the steppers having to make quick moves. -
@mendelevium That can be a problem. A ball screw is massive and if the motor doesn't have sufficient torque it can slip. Resonance can cause slipping problems too. I used a big NEMA-23 motor to drive the ball screw in my printer. I ultimately pulled the ball screw out and went back to belt drive.
-
I don't see where you define the stepper mode, so maybe you are defaulting to Stealthchop and it's the switch to spread cycle that is messing you up.
Try forcing spread cycle mode: ie: M569 P0 D2
-
I have been doing a bunch of research to add ball screws to my CoreXY X and Y. So I could still be wrong.
Steppers motors die off in power after @500RPM. Some math at end..
If screw is fixed on both ends you may get some warp from heat expansion when using aluminum frames. Less is steel is used.
Regardless the size of Screw relates to how fast it can spin before deforming.
12xx are good for Z.
2020/2025, 2520,2525 screws for X and Y. Requiring NEMA 24/34 minimum. Motors need to stop and move a lot of mass.
I was going to use 1616 for X and Y, but after doing math the screws themselves would only be good for @100mms before deforming.
So then we get to the motors that you would need to move 20xx/25xx ball screws.
Steppers just do not do it. Need Servos, and they are the costly.
All ya, 1616 ball screws should have 15mm rails min. 20xx screws should have 20mm rails. Dual blocks per rail.
So, I am now at a point that smaller rails with liner motors may be best.
Also, you need to have you ball screws perfect with your rails. Even 0.01mm will mess things up.
Hope that helps,
`mikeSome math,
Stepper max rpm 500 = 8.3333333 Rotations per second
5 =41.666666665 mms
10 =83.33333333
15 =124.999999995
16 =133.3333328
20 =166.66666666
25 =208.333333325
32 =266.666666656
40 =333.333332 mmsSERVO max rpm 3000
=50 rps /25 rps /10 rps
5 =250 mms
10 =500mms /250mms /100mms
15 =750
16 =800
20 =1000mms at 50rps /500mms at 25rps / *Goal 200mms at 10rps
25 =1250
32 =1600
40 =2000 -
@gallaghersart
Thanks for your input... I believe the screws are not deflecting in any way because the load in a 2d printing is not significant. The motors I am using can deal with it. I think the issue is that the motor has to reverse a lot and at speed since with a ballscrew, the motor spins more.
I have good experience with ballscrews and servos as I have around 16 cnc turning and machining centers. Somebody mentioned forcing spread cycle. I will gave a look and give it a try. I have other similar 3d printers I built and will resist going for the belt with this machine... -
@mendelevium said in 3D Printer with Ballscrews:
that grinding noise which I suspect the steppers having to make quick moves.
I had to rebuild my 1204 ballscrews lately, and was surprised how dirty it was inside the ballnuts. The screws only had a few hours lifting Z-axis on their clock. I guess they appreciate some service after run-in period. ( at least my cheap robodigg ballscrews liked it)
-
@o_lampe
my ball screws have dedicated lubrication. I lubricate them using slide oil by Q8- NS68 slideway lubricant. Ballscrews need to have a seal to take the dirt off but you need to lubricate them thoroughly since the oil drives the dirt away. Avoid dust and fluff as well. My movements run over Hywin reciprocating ball slide-way and they are original ones. there is a lot of Chinese imitation rubbish. I will try to find some time and post some photos. -
Nema 17 motors can max out even with belts.
Moving x any y axis fast on 12xx ball screws with any size of NEMA 17 will not work. Just because they are not hot does not mean they are missing steps.
The best stepper motors die off at 500rpm. No name or cheap will be worse.
If screws are 1205 then your max stepper motor speed would be 41.666666665mms.
The smallest motors I would even try would be NEMA 23 4.+ amp.
nema 17 2.4amp for z axis balls crews should be fine no fast movement, but i still use nema 23 for Z. -
@mendelevium said in 3D Printer with Ballscrews:
so these are my
these are the parameters to introduce spread cycle
M569 P0 D2
how can I modify the following config parameters?; NOTE Drives S0 forward S1 reverse
M569 P0 S1 ; X physical drive 0 goes backwards
M569 P1 S0 ; Y physical drive 1 goes forwards
M569 P2 S1 ; Z physical drive 2 goes backwards
M569 P3 S0 ; E0 physical drive 3 goes backwards
M569 P4 S1 ; E1 physical drive 4 goes backwards -
@mendelevium from your config.g, it looks like you’re running a Duet 2? Duet 2 WiFi/ Ethernet does not have stealthchop, on spreadcycle. Send M115 and post response to confirm this and firmware version.
I would suspect it’s your jerk/instantaneous speed causing problems. M566 is set to X900 Y900, which is 15mm/s. With high steps per mm, possibly under-specced NEMA 17s turning heavy ball screws, and the mass of the carriages to move, I’d say this was a lot to ask. You have to treat the X and Y axes like a Z axis, which normally wouldn’t have a high jerk. Try M566 X300 Y300. It may also help to try the alternative jerk policy by setting P1 at the end of M566.
Ian
-
I have done extensive testing with ball screws before venturing into my current build. You dont need large diameter. Diameter is a function of critical speed and load rating although that's not a factor with the light loads in a 3d printer. Your rails do not have to match your ball screw diameter. That's just the trend and mostly applys to mills.
I have ran these setups for many hours of simulated printing
https://youtu.be/KWK_djAidQs
https://youtu.be/g2fO7k3WzwU
1210 screws, solid mounts and solid couplers . Higher rpm gets the stepper out of mid band resonance and we can easily pump them full of high step rate. 20mm lead would be better. Theres an open builds that uses 60mm lead lead screws and prints beautifully. Several professional grade machines use ball screws. Most with servos instead of steppers though -
@droftarts
FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.3beta1 ELECTRONICS: Duet WiFi 1.02 or later FIRMWARE_DATE: 2021-02-14 16:00:49I am running the Larger Nema 17 motors
Nema 17 Bipolar 1.8deg 65Ncm (92oz.in) 2.1A 3.36V 42x42x60mm 4 Wires which can handle 2.4Amp @ 24V.
Before I had the smaller nema 17 which were not strong enough.I do not believe/feel that the motors are under rated though you might say better than me in this. It involves a lot to mount for larger motors as i do not have much space to mount them but will consider everything, even changing the control board if it sorts the problems. Having said this, the crunching noise/shift comes when dealing with small 3mmholes and thin sections. Somebody suggested motors with a 20mm lead. these will certainly run at lower speeds. What about the M566 and P1. I am willing to give it a try.
Thanks -
@3dpmicro
just looking around... where did you get these? I am beginning to realize that our CNC machining centers have the X and Y axis with large pitches... only the Z axis is with a small pitch which would make sense... -
@mendelevium
I have reduced the jerk value considerably an have have obtained good results. IT is obvious that when the ratio of motor movement to axis movement is high as in the case of a ball-screw,the jerk is magnified. I have reduced the value of M566 from 900 to 120 and all the noise has vanished and there seems very little reduction in speed I have another tweak in the pipeline but will open a new post as it is not related exclusively to jerk issues