New heated enclosure printer
-
@coseng They are not moving because I have not turned the 5V output to it on! Is there a command to do this through the web control?
-
@dc42 To turn IO_3_out on to 5V, do I need to define it as a fan then turn the fan on at 100%?
-
@dc42 I'm a stumped and at an impasse if you can spare a little time to help. Everything works but the chamber temp sensors (2 PT1000 in series) still reads 2000C and I can't get the X or Y motor (Driver 1/2) to move through my roach wired BOB arrangement. Z moves fine through Driver 0. I've triple checked the roach wiring and it matches this 'schematic':
I have the 5VDC to the ClearPath's (+) inputs wired externally to the connector thought the 5VDC pin on the 3 pin connector. This allowed me to test the polarity as you indicated in your previous post: 'If you are using single ended 5V drive, then connect ENA+ of your servo to +5V, and ENA- to either Enable+ or Enable- on the EBOB, whichever gives the correct polarity.' Enable- ended up working.
The motors are both enabled (a status LED on the motor body is in the 'enabled and waiting for a move command' state). But I can't get motion with the Clearpath's (-) step and direction lines connected to either BOB connector's polarity. See image.
I'm not sure if I should try swapping the clearpath lines around so +5V goes to brn/yel/ora instead of whi/blk/blu.
Any suggestions are appreciated. Here is the config.g file:
; Configuration file for Duet 3 (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.10 on Thu Apr 14 2022 23:29:28 GMT-0400 (Eastern Daylight Time); General preferences
M575 P1 S1 B57600 ; enable support for PanelDue
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"hyperprinter" ; set printer name
M669 K1 ; select CoreXY mode
M564 H0 ; allow moves before homing; Wait a moment for the CAN expansion boards to start
G4 S2; Network
M552 P192.168.2.1 S1 ; enable network and set IP address
M553 P255.255.255.0 ; set netmask
M554 P192.168.2.20 ; set gateway
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0.1 S1 ; physical drive 0.1 goes forwards
M569 P0.2 S1 ; physical drive 0.2 goes forwards
M569 P0.0 S1 ; physical drive 0.0 goes forwards
M569 P121.0 S1 ; physical drive 121.0 goes forwards
M584 X0.1 Y0.2 Z0.0 E121.0 ; set drive mapping
M350 X32 Y32 Z8 E16 I1 ; configure microstepping with interpolation
M92 X56.14 Y56.14 Z320.00 E837.00 ; set steps per mm
M566 X100.00 Y100.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X2000.00 Y2000.00 Z1000.00 E1200.00 ; set maximum speeds (mm/min)
M201 X50.00 Y50.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
M906 X300 Y300 Z3900 E1500 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S20 ; Set idle timeout; Axis Limits
M208 X-320 Y-290 Z0 S1 ; set axis minima
M208 X320 Y290 Z950 S0 ; set axis maxima; Endstops
M574 X1 S1 P"121.io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin 121.io2.in
M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in
M574 Z1 S2 ; configure Z-probe endstop for low end on Z; Z-Probe
M950 S0 C"121.io0.out" ; create servo pin 0 for BLTouch
M558 P9 C"121.io0.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height
M557 X-300:300 Y-250:250 S100 ; define mesh grid; Heaters
M308 S0 P"temp0" Y"pt1000" ; configure sensor 0 as PT1000 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"temp1" Y"pt1000" ; configure sensor 1 as PT1000 on pin temp1
M950 H1 C"out1" T1 ; create chamber heater output on out1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for the chamber heater and set PWM limit
M141 H1 ; map chamber to heater 1
M143 H1 S150 ; set temperature limit for heater 1 to 150C
M308 S2 P"121.temp0" Y"pt1000" ; configure sensor 2 as PT1000 on pin 121.temp0
M950 H2 C"121.out0" T2 ; create nozzle heater output on 121.out0 and map it to sensor 2
M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H2 S320 ; set temperature limit for heater 2 to 320C; Fans
M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency
M106 P0 C"Chamber 1" S1 H-1 ; set fan 0 name and value. Thermostatic control is turned off
M950 F1 C"out5" Q500 ; create fan 1 on pin out5 and set its frequency
M106 P1 C"Chamber 2" S1 H-1 ; set fan 1 name and value. Thermostatic control is turned off
M950 F2 C"121.out2" Q500 ; create fan 2 on pin 121.out2 and set its frequency
M106 P2 C"XY Extruder" S1 H-1 ; set fan 2 name and value. Thermostatic control is turned off
M950 F3 C"out7" Q500 ; create fan 3 on pin out7 and set its frequency
M106 P3 C"Water Cooler" S1 H-1 ; set fan 3 name and value. Thermostatic control is turned off; Tools
M563 P0 S"xyhead" D0 H2 F2 ; 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
M950 D1 C"spi.cs0+spi.cs2"Thanks.
-
@coseng you need to use M569 commands with T parameters to lengthen the step pulse timing for external drivers. See https://docs.duet3d.com/en/User_manual/Connecting_hardware/Motors_connecting_external#configuring-the-step-timing.
-
@dc42 Yes, that did it, thanks! The Clearpath say .750us step pulse width minimum, so I used a setting of T2 to be safe. Now I need to so some servo tuning with Tecnik then can start printing! Finally!
Thanks to the forum for all the help so far. And to the Duet3D crew for providing a great product and better customer support than most large companies do!
-
Progress! All the axes work and no more errors. And yes, thermistors for the chamber temp sensor. I have not done the thermal tuning for any of the heaters yet, but am expecting the chamber to take a while. Are there timeouts? I can't imagine the chamber coming up to temp quickly.
The from an aural perspective, the clearpath motors are light years ahead of steppers. Compared to the steppered Z axis, they are fast and quiet, and with the long belt runs (about 3ft.) there are no problems with belt span weirdness from really slow moves to nearly 2000ipm/0.9mps rapids. Yes, 2000ipm, that is not an extra zero. I know that it will never print at those speeds, but is nice to know that there is plenty of torque to spare and that the mechanical structure has the stiffness to deal with large acceleration forces. I was surprised that the bellows was not a limiting factor. I had Tom Tullar from Teknic remotely tune the motor parameters and he was very happy with the results, with a very small following error even during accelerations. The software is pretty awesome, their diagnostic oscilloscope feature is very useful and showed very good axis alignment by having a consistent torque requirement along the entire axis length.
Here's a short video of some motion:
https://youtube.com/shorts/0DkGP00Besg?feature=share
I am really impressed with the overall quality of entire the Duet ecosystem. The hardware,firmware, software, and user support were all top quality. It is not often that I can't find something that could be improved, but this is one of those times! It makes me want to build more stuff with it!
Now on to getting it hot and printing!
-
OK, sorry about the drop out there, but had to drive from NJ to Portland, OR to have the bike this is all about at a show, the One Moto show. The show was fun, the drive sucked, but for your viewing pleasure here's a shot of the bike, sans the bodywork that this printer will print.
Lots of other 3d printing in this baby. The first 8" of the exhaust was DMLS printed in 316 stainless steel. The swingarm was sand cast in A356 aluminum in a mold that was printed directly in sand by humtown.com. Same goes for the engine side covers and oil sump, but they are cast in magnesium. The steel chassis lugs were FDM printed in PolyCast filament then investment cast in 4130 steel. Last but not least, the oil cooler mounting brackets were printed on my Anycubic MonoX in Siraya's high temp white resin.
-
OK, plastic has been extruded! Got the alignment good enough, then did some thermal tuning, and got that good enough, then jumped right into printing and it printed! For a little while, at least.
After the first layer, the filament jammed at the spool. The feed entry from the spool dug into the spool and resulted in too much friction for the extruder to overcome.
and
The spool is mounted on bearings and on its own can turn very freely. Any suggestions on how to prevent this from happening? The printer could use an entire 10kg spool in one print, so these problams can waste a lot of time and material. Any suggestions are greatly appreciated!
-
Also, for a large, heated machine like this are there any hints for the heater tuning process?
The first run did them all individually with everything else at room temp.
After a full 25 or so runs and a couple of hours, the bed heater (600x700x8mm Al plate with 3000W 220VAC Keenovo heater) gave me an inconsistent heating warning, but the graph was a very regular sawtooth from 95-101C, so I ignored the error and used the settings.
The hot end (E3D aqua with supervolcano hot end, 24VDC/80W) tuning was pretty quick with no warnings.
The chamber heater had to be reworked a bit to double up on the number of heater coils (ended up with 3200W, two heater fans and two small always on chamber recirculating fans) as the temp rise was way too slow. I ended up with getting a decent response to 60C (at which point the bed temp sensor was reading 80C with the bed heater off) so called it a day and stored the values.
Since none of these heater systems will be working independently as these tuning procedures are run, is there a better way? Maybe set the bed temp to active then run the chamber tuning procedure, then do the reverse? The extruder is small enough mass and well thermally shielded that it may be mostly independent, but the chamber and bed systems seem highly coupled, which makes independent tuning less effective.
-
Also, I had some issues getting the BL touch bed scan to give consistent results, even cold. I did add a thin CF rod to the BL Touch bed probe to allow me to move the BL Touch sensor assembly away from the hot end. This extension adds about 2g to the stock one, so may be causing some problems. Are there parameters that can be tweaked for the BL Touch servo that I can try? I used a dial indicator to mechanically scan the bed and got less than .25mm TIR across the entire thing, so am pretty sure the problem is in the BL Touch mods and not actual bed alignment. The BL Touch was giving me nearly 2mm total variation.
But good progess!!!!
-
Some good successes today, even though the first print attempt ended quickly.
Since I was babysitting it, I saw the filament dig into the spool and jam, causing the failure. So first off, I need to make a spool advancer. Asking the extruder stepper to spin the 10kg spool and stuff filament into the hot end is too much. I saw a few examples online and will whip something up using a stepper and arduino with a slack arm and limit switches.
The second print worked by me sitting for the entire 2hr7min print time manually advancing the spool. I'm very happy with the initial results and welcome any critiques and advise on print settings. I used Cura 4.13 with only the most basic changes.
The part is about 2% undersized and was printed at 100% from the CAD output. Print settings were 60C chamber, 90C bed, 250C nozzle, 150mm/s print speed. 1mm nozzle, 0.8mm layer height. No supports. 4 pass brim. For some reason the non-print moves were at print speed, so a lot of time can be cut without messing with print settings, though I think there is more speed there too. The extruder stepper is the loudest part of the machine, the clearpath servos are silent. The extruder stepper was hot to the touch, but did not seem to stall at all. It has a heatsink and fan with a small air deflector shield on the back but is sitting on top of 6000W of heater.
There were some problem areas I'd like to eliminate: a few wiggles at the end of some ribs, not sure if they are g-code related, if something was hitting something else causing a wobble, or it just sagged from the heat.
And the outer surface had a lot of artifacts of rear side ribbing. I think this is a combination of over extruding and me not matching the CAD dimensions of the walls to the nozzle diameter. Cura was sticking some short infill print segments in the rib areas that was in addition to the perimeter paths. I'd like to make the geometry so that all of the part is made from perimeters.
Thanks to the forum and the Duet3D crew for all the help getting this far.
-
@coseng
Have you looked at Curate 5.0s variable line widths? That seems to be taking aim at your problem of the cad and the nozzle not being multiples. -
@baenwort Awesome! When I downloaded it last week, 4.13 was the latest, but I'll grab this and see what it can do. Sounds like it is exactly what is needed for this issue, thanks!
Now I just have to get this spool feeder working reliably. For some reason the stepper is randomly turning on and I can't trace the problem down. I don't want to come in in the morning and find a 10kg unspooled mess.
-
OK, have Cura 5.0 installed and on a first run it make an improvement, but there are still visible remnants of the ribs. I realized that 'print infill first' was on even though 'print outer walls first' was chosen, so the remnants of the ribs may be due to that.
Here's a shot of the tension arm, it seems to work fine so far, but another mechanical issue has come up. The pivot arms are extra brake levers that had been machined for the motorcycle project.
The small stepper is not up to driving the spool, so a bigger stack is on the way. At 250mm/sec print speed the spool could almost be said to be spinning!
The first mechanical gremlin is that one of the chamber heater ducts points upwards towards the bellows, and i guess softened it, causing it to droop and rub over the top of the part, ruining the print.
I'll make a small deflector duct above the blower (to the left) so it is not blasting directly on the bellows material. I'll also space the bellows up about 1/4" (as much as easily possible without a bunch of rework) to give a little more leeway for some sag without touching the part.
The good news is that the part print (swingarm hugger) looked great up to that point, it is about 22" long with two long thin legs and no signs of warping or bed adhesion problems. It has a flat flange then the main walls and ribbing about .1" thick. I made the front left sloping section solid at 30% infill, the rest of the part was steep enough to print directly with no supports.
Hoping to finish up this bellows stuff tonight and be able to finally run an part unattended.
-
@coseng said in New heated enclosure printer:
Cura 5.0 installed and on a first run it make an improvement, but there are still visible remnants of the ribs. I realized that 'print infill first' was on even though 'print outer walls first' was chosen, so the remnants of the ribs may be due to that.
That sounds right.
-
OK, after a little more extensive bellows rework, it is back up and running.
Came in this morning to a small bird's nest of a filament spool.
I thought it was a filament drive problem, but ended up something simpler: after the print was done it parked the printhead in a position that hit the filament slack arm and engaged the sensor. Talk about an unforced error! If the filament had not jammed, the entire spool would have unrolled! As it is, I only lost about .5kg of material.The part finished printing and came out pretty good. 3.5 hr print time.
There are some issue areas that were due to optimistic overhang estimation, and some that are due to unknown issues.
Optimistic overhang, I had a thick rib at the edge of the part that was a horizontal step. I'll try to blend it in with a chamfer to angle it less.
Getting new print remnants on the opposite side of internal ribbing. Also some weird blobs ad random places. Causes unknown.
The layer stacking alignment seems to vary a lot around the part perimeter. I wonder if it is because this is only 2 or 3 printing passes and a large print bead means on the first pass the bead can fall sideways a bit. I wonder if going to a smaller nozzle and more passes would help. Or maybe in this case printing the inside pass first would help because it is centered on the previous layer instead of the outside pass first where it is perched on the edge or even overhanging the previous layer a little bit.As usual, any comments and suggestions are welcome.
-
There is such a thing as beginner's luck! The first couple of prints were decent and I thought 'full steam ahead'. Then a bunch of bad prints later I needed to take a step back and try to walk before running.
None of the slicer changes were making much of a difference to the wall quality, and even worse, I was getting sagging failures unrelated to slicer settings. So, seeing that I maybe was asking too much with the print geometry, decided to go back to square 1, a 400% Benchy, to see if the problem was the printer mechanics, the slicer settings, or the part geometry.
After a false start with bad print adhesion (it popped off the table after 10mm" of Z printing) It printed successfully with a 3.5hr print time at 20% infill, 1mm nozzle, 0.8mm layer height. Mostly successfully, but good enough for my purposes.The bridging on the underside of the roof started pretty sketchy, but it recovered by the top. Also there are a couple of wiggles at the top of the round window arches. These areas are not features my parts will have much of, so are not much of a worry.
I could use another top layer, but otherwise it is flat. The chimney sagged a bit, I guess a 6sec layer time is too short.
What I am interested in, the side quality, was a lot better than how the fairing parts were ending up.
This is the quality I was hoping to see, on a surface geometry not much different that what I am hoping to print. This is heartening. The random blips match up pretty well with the random wall start points that Cura displays. Maybe I'll try 'sharpest edge' for the start point.
My main conclusion is that I am printing with too big a nozzle for the wall thickness of the fairing parts, leading to an inconsistency with how the bead is laying on the previous layer before cooling. Most of the part is a wall of 2 passes, which I guess does not provide a stable enough base to build on, especially for the slightly angled from vertical surfaces. I have a 0.8mm nozzle and will try that, and also use the Cura option 'Horizontal expansion' to offset the XY profile a bit to get 4 wall passes. If that works, maybe a 0.6mm nozzle test is in order so that the geometry does need that much post-offsetting. A smaller extrusion will also cool and solidify quicker, resulting in less sag. These steps will obviously increase print time, but better a slow successful print than a fast failure.
-
@coseng A lot of the problems in the prints look to me like the ratio of line width to layer thickness is too low. printing in too thick layers with narrow lines will cause quality problems, especially on overhangs. I print with a 1 mm nozzle a lot and keep the line width at 1.2 mm and layer thickness at 0.5 or 0.6 mm and prints come out looking very nice.
-
Are you using Cura 5 yet? It has variable extrusion width support now so it can fit a single extrusion in between the walls for thin sections. Much like the gap fill of Slic3r.
And as @mrehorstdmd says, what is the aspect ratio of your extrusion? I like to try and keep near 2:1 for width:height.
-
@mrehorstdmd and @Phaedrux Thanks for the suggestions. I am using Cura 5 with the variable line widths but most of the walls on this part are only 2 passes wide so that only has an effect in certain areas. My relatively tall and slender beads were likely having an easy time tipping over a little.
I'll try a 1.2mm width and .6mm hight and see what the results are.
Any other setting tips? Cura's got a ton of settings and I'm not sure which to pay attention to.