how to setup a hotend for directly printing metal and ceramic.
-
@lynnmt the M303 PWM limit controls the PWM that will be used for heater tuning. If you then use M500 to save the model parameters then I am fairly sure it will include that same PWM limit in those parameters. However, the PWM limit you use in M303 is not remembered in any other way. In theory the remaining model parameters resulting from tuning shouldn't depend on the PWM limit you used in M303 provided that the tuning completed successfully.
Tuning uses the same 4Hz sample rate as temperature control. That may be too slow for tuning to succeed if your heater has a very fast response time. Increasing the M303 Y parameter may help.
-
@lynnmt said in how to setup a hotend for directly printing metal and ceramic.:
The conditions of printing metals and ceramics are harsh by default. I am designing around expectation values for a temperature control system that needs to at least keep up with the speed of phase change in semisolid metals.
Interesting device...
One possible solution would be to use a thermal buffer, but this would complicate things extremely much, I think.
Lets hope that 4Hz PID would be enough. Otherwise, you may try a higher speed solution, like the one I suggested above, if you are not willing to build one. 40Hz sampling is an order of magnitude faster than DUET boards...
Maybe you may also consider increasing your thermic capacity of your heater? -
@soare0
Thanks for the sage suggestion and the link.Thermal capacitance increases are highly undesirable, because they have to be quite large to be meaningful given the density and thermal conductivity of the semisolid metals... metals are excellent coolants.
this also means that most thermal capacitors will "quench" at the interface with the flowing metal, and this causes local granular jamming, and sometimes, outright freezing of the feedstock.It is critically important that the heater(and sensing and control system) be fast, and responsive enough to dynamically adjust for the phase changes in the material.
for pure copper the window is barely 1/10 of a degree C wide . any thermal capacitor would need to be made of diamond or the like in order to not locally quench the feedstock into the frozen state at standard FDM printing speeds.
Thus, I have resolved this problem by placing the heat source exactly inside the deposition region, in direct contact with the metal at all times. The heat source being made of a hard, ultrarefractory electroceramic of a relatively large thermal conductivity (about 80-120 w/m*k)I understand that the thermal capacitance may simplify control. but the materials I am trying to print will not tolerate such simplification in any way that does not also make the printhead a huge mass, and temperature gradient constrained to low flowrates.
I am not the first to attempt this project, the others who have tried, have all done as you suggested and encountered very difficult granular jamming and very slow extrusion performance mostly due (as far as I can tell from interviewing them and doing my own experiments) to large thermal gradients caused by a reliance on excess thermal mass and a heater from the load:
https://hackaday.io/project/179846-semisolid-metal-printing
https://par.nsf.gov/servlets/purl/10351861
https://link.springer.com/article/10.1007/s00170-017-1058-7The problems they have encountered get worse as temperatures rise toward useful metal printing temperatures, like bronze 510 at ~975 C. higher temperatures mean higher radiative losses and steeper gradients still. More importantly, most thermal mass materials will react with the semisolid metals and will be erroded thereby, thus, you then need some sort of protective lining, which adds more insulation, and so on. this problem spiral quickly out of hand.
hopefully this provides a bit more transparency into the logic of the situation.
-
@dc42
any thoughts on how one should tune the Y parameter to adjust for a very fast thermal response rate?
the heater does actually respond at 1000 C /second while heating up, and about 300 per second when cooling down in still ambient air.After attempting an autotune with the following command:
M303 H1 P0.2 S800,
the autotune fails due to poor curve fit, though the heater does ramp to the target temperature and oscillate around the target set point.
I do get some leakage to the thermocouple due to temperature induced thermal conductivity in the ceramic insulator around it I believe. -
@lynnmt when it reports poor curve fit, what values does it report?
-
@dc42
"Auto tune of heater 1 failed due to bad curve fit (R=89.617 K=0.929:0.000 D=1.16)" -
@lynnmt thanks. Can you post a screenshot of the temperature while tuning?
PS - the maximum value of Y supported is currently 20. So I suggest you try Y20 in the M303 command.
-
some images....the first is the requested screen capture.
this last tune I screep caped had this warning:
"Auto tune of heater 1 failed due to bad curve fit (R=61.202 K=0.807:0.000 D=1.59)" -
@lynnmt thanks. Please try tuning again with a higher PWM (maybe 0.3 or 0.35) and Y20. At the current PWM the heater is barely capable of reaching 800C.
-
as requested.
seems to provide the same error with model parameters:
"Auto tune of heater 1 failed due to bad curve fit (R=70.881 K=1.071:0.000 D=1.08)"what does this mean?
-
@dc42
I would also mention that it is not the heater it is the thermocouple whose temperature is below the setpoint at the output power due to all the insulation around the Thermocouple.the heater itself is glowing white hot.
here is a picture of the setup. the thermocouple is inside a 0.05" OD aluminum oxide sheath inside the stainless steel ring, pasted on with zirconia paste as close as possible to the heater.
-
@dc42
if it helps here are some more hardware shots...
-
@lynnmt that looks like a good tuning cycle. I'll look at why the resulting parameters are rejected and see if it makes sense to widen the limits. Thanks for the photos.
-
@dc42 I am working on making the sensor response even faster.
so I would expect the limits to need to be substantially wider even than those determined by the autotune.
in practice, making up for sensor delay in a system like this is going to be a huge problem.Thanks for taking a look!
I will be in touch here and on the discord! -
@lynnmt said in how to setup a hotend for directly printing metal and ceramic.:
R=70.881 K=1.071:0.000 D=1.08
This command works for me:
M307 H0 R70.881 K1.071:0.000 D1.08
So I think that in RRF 3.5.x the limits have already been extended sufficiently. Please try upgrading to the RRF 3.5.0 build. As you are using an attached SBC you will need to upgrade to 3.5.0-rc.3. After that you may optionally upgrade to the latest RRF 3.5 firmware binary from https://www.dropbox.com/scl/fo/ljnewqssbl9bdo9vex37f/h?rlkey=m11nef0mvuc9pc8wri7rabf1b&dl=0.
-
@lynnmt Ah! I forgot to mention a important detail!
the glowplug heater is PTC!
-
@dc42
excellent. Thanks for running the test.
I will try the upgraded firmware.
A further question,
is there some way to know what these heater limits are and to make them user adjustable without needing to compile firmware?all the best,
Michael Lynn -
@lynnmt
is this an unstable package release?also,
will the instructions here be sufficient for making this firmware update or are there other sources to consider?https://docs.duet3d.com/User_manual/Machine_configuration/DSF_RPi#software-installation
when I run the commands suggested for upgrading to unstable releases, here:
sudo rm -f /etc/apt/sources.list.d/duet3d.list
sudo bash -c "echo 'deb https://pkg.duet3d.com/ unstable armv7' > /etc/apt/sources.list.d/duet3d-unstable.list"my command prompt on SBC returns
bash - "permision denied"
-
@dc42
I have successfully upgraded to RRF 3.5.0-rc.3.
Autotuning of my heater still fails with the warningrunning M303 H1 Y20 P0.27 S750 returns:
"Autotune failed due to bad curve fit (R=53.131 K=0.801:0.000 D=1.25)
If i then take the provided model parameters, and plug them into M307 as:
M307 H1 R53.131 K0.801 D1.25
this command returnsError M307 : Bad model parameters.
The autotune makes a very nice curve, see picture here:
Not sure what to make of this.
-
@lynnmt do you have a temperature limit set for that heater? Use M143 H1 to check. If so then it may be set too low. If the heater has been assigned to a tool then it will have a default temperature limit. I found that I needed to increase the temperature limit to 1750C (M143 H1 S1750) for those parameters to be accepted.
Please post your config.g file.