Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Temperature control
#1
Well, just a quick update on my finding from last a few days. It's interesting and somehow gave us a way to fully control the extruder and bed temperature during the entire printing process.

To have the "full control", you need to know how to do these (search other topics and you will find the tutorial):
1. reset the cartridge chip and change the temperature setting;
2. use slic3r to generate custom g-code and base64 encode it into .3w files.

OK, back to the topic. Generally, there are two places to set the printing temperature on the Da Vanci. As you will see, they have different functions.
First, it is on the cartridge chip, let's call the them Te_max and Tb_max for the extruder and the bed, respectively. (You will see why I call it max).
The second is in the g-code file if you use slic3r or equivalent software to generate your custom g-code. If you use XYZware, you don't have control on this one. Let's call them Te_print and Tb_print, respectively.

How Da Vanci works with these temperature settings is like the following: Once the .3w files transmitted to the printer, the extruder and bed heater are turned on. Once the temperature reaches the preset temperature Te_max and Tb_max (cartridge chip), the motor starts to move and the print starts. However, during the entire printing process, Te_max and Tb_max is no longer referred to. The actual printing temperature is controlled by the temperatures set in the g-code, which are Te_print and Tb_print. One exception: Te_print and Tb_print can not be higher than Te_max and Tb_max, otherwise the printer stops and waiting for the temperature to reach Te_print and Tb_print, which of course will never happen since the Te_max and Tb_max caps temperatures the extruder and bed could possibly reach. But as long as Te_print and Tb_printing is lower than Te_max and Tb_max, everything is fine.

After understand this control logic, we can use it to fully control and change the temperature during the entire printing process. Oliver has a very interesting thread in his blog discussing the optimal temperature setting in printing, which is very instructive. Following his theory, let's say here is what we'd like to do in a PLA printing cycle. I make the example with PLA printing since quite a few folks asked me about it and it is a critical function Da Vanci lacks.

1. First, when laying down the raft and first layer, according to Oliver's theory, one would like to beef up the extruder and bed temperature quite hard to help it stick onto the bed firmly;
2. After the first layer, one would like to do is to print with the lowest possible temperature to avoid warping as long as the filament feeding and material deposition are OK. At this time, you would particularly like to lower the bed temperature below the so called "glass transition" temperature of the filament.

For example, let's say, for the first layer (PLA, ABS temperature should be considerably higher), we set the extruder temperature to 210C and bed temperature to 60C, for the succeeding layers, we lower it down to 190C and 40C, respectively. You can easy set them up in slic3r. (Please refer to slic3r's manual on how to do it).
Then use Olive's code to program the cartridge chip to 210C and 60C, respectively (that's the highest temperature through all your printing process). Next follow the instruction in another thread to transfer your g-code to .3w code (I use notepad++ and MIME encode plugin, works fine). Finally use xyzware to open the .3w file and transmit it to Da Vanci.

Now, you will see the Da Vanci starts to print, firstly the extruder and bed are heated to 210C and 60C, respectively and the printing starts. After laying down the first layer, with the temperature monitoring through the xyzware you will find the heaters are temporarily shut down allowing the temperatures to drop to 190C and 40C. And they are maintained there throughout the entire printing process.

Tip: 190C extruder temperature for PLA works fine for me. To get the best result, I lowered the printing speed a little bit in slic3r's setting. If you hear continuous clicking sound from the filament feeding motor, you should either raise the printing temperature or lower the printing speed. More than that, slic3r allows you to set different speed on the fist layer and succeeding layers, corners, perimeters, infills, all that sorts, which are very powerful.

Hope you will find this info is useful. Happy printing everyone.
Reply
#2
Wen Yang, Thanks for sharing all this information. This goes a long way to de-mystify what exactly is happening in regards to the temps!
Reply
#3
There's no Thanks you button on your post, so WenYang, Thank You!
Reply
#4
Awesome work. Thank you.
I had sent a file to the printer with the temps slightly higher to see if the print quality changed, but it never printed. Started to, then just sat there. Now I know why!
Reply
#5
OK, not too add confusion here, BUT

This is my typical header before modifying it. It prints at set temps of 230 and 90 with no errors. I'll test again in a bit but yeah it does work. Only the counter was reset in cartridge not the temp.


; filename = composition.3w
; machine = daVinciF10
; material = abs
; layer_height = 0.4
; total_layers = 30
; total_filament = 501.40
; extruder = 1
T0
G21 ; set units to millimeters
M107
;M190 S100 ; wait for bed temperature to be reached
;M104 S200 ; set temperature
;M109 S200 ; wait for temperature to be reached
G90 ; use absolute coordinates
G92 E0
M82 ; use absolute distances for extrusion
G1 F1800.000 E-1.00000
G92 E0


And I uncomment the temp lines. and change them to desired temp like bellow. I also make sure slic3r I have the temps set that I desire.

; filename = composition.3w
; machine = daVinciF10
; material = abs
; layer_height = 0.4
; total_layers = 30
; total_filament = 501.40
; extruder = 1
T0
G21 ; set units to millimeters
M107
M190 S90 ; wait for bed temperature to be reached
M104 S230 ; set temperature
M109 S230 ; wait for temperature to be reached
G90 ; use absolute coordinates
G92 E0
M82 ; use absolute distances for extrusion
G1 F1800.000 E-1.00000
G92 E0
Reply
#6
[video]http://https://www.youtube.com/watch?v=01SNqvz04-s[/video]
Reply
#7
[quote pid='16709' dateline='1399527615']
How Da Vanci works with these temperature settings is like the following: Once the .3w files transmitted to the printer, the extruder and bed heater are turned on. Once the temperature reaches the preset temperature Te_max and Tb_max (cartridge chip), the motor starts to move and the print starts. However, during the entire printing process, Te_max and Tb_max is no longer referred to. The actual printing temperature is controlled by the temperatures set in the g-code, which are Te_print and Tb_print. One exception: Te_print and Tb_print can not be higher than Te_max and Tb_max, otherwise the printer stops and waiting for the temperature to reach Te_print and Tb_print, which of course will never happen since the Te_max and Tb_max caps temperatures the extruder and bed could possibly reach. But as long as Te_print and Tb_printing is lower than Te_max and Tb_max, everything is fine.
[/quote]

Hi.

I'm using da Vinci 2.0A Duo (FW: 2.0.1) printer and the procedure is a little different:
- once the .3w file is transmitted, the extruders and bed are heated to a temperature set in the firmware for a given material. For example for ABS it is 210/70C.
- next, printer start processing GCODE and the temperature can be set by M104, M109, M140 and M190 commands. But this temperature can't be greater that temperature from filament EEPROM.
- if you change the extruder using command T0 or T1, the extruders temperature is set to these from firmware so you have to set it again using M104 or M109 command.

--
AWa.
Reply
#8
If your thermal mass is big enough, the change in temperature due to
filament can be ignored in the thermal model. An alternative to actual
modeling is to implement a PID controller.
My overly simplified summary: (You can google the math).
P: (Proportional) Amount of error
I: (Integral) Accumulated error – used to “zero” the errors and small drifts
D: (Derivative) slope of previous change – “predict future”
used to reduce overshoots/oscillations
Take the weighted sum of these to control your device and you got a
PID controller. Play with the weight values to “tune” the control loop.
Aren’t they already using PID for temperature control?
(I am not “into” 3D printing articles.)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)