Difference between revisions of "UV and Clench"
(25 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
Using the UV Array, the UV Pen, and the Clench Valve are a little complicated (but closely related), so here are more details and examples. | Using the UV Array, the UV Pen, and the Clench Valve are a little complicated (but closely related), so here are more details and examples. | ||
For the descriptions below, please refer to this diagram of tool positions: | |||
[[File:Positions.jpg|800px]] | |||
== UV Array == | == UV Array == | ||
Line 24: | Line 27: | ||
The next step is to ensure that the UV Array is connected to the material head circuit board. | The next step is to ensure that the UV Array is connected to the material head circuit board. | ||
Firmly but gently grasp the 18-pin connector and pull it straight away from the circuit board. You will seat the black wire in the top row, third position (marked "Gnd" on the board), and the red wire in the bottom row, second position (marked "Aux" on the board, if you can read it). | Firmly but gently grasp the 18-pin connector and pull it straight away from the circuit board. You will seat the black wire in the top row, third position (marked "Gnd" on the board), and the red wire in the bottom row, second position (marked "Aux" on the board, if you can read it). This will allow the 12VDC to power the array. | ||
The best method to seat these crimped wires is to align the barb on the crimp up or down to point toward the plastic finger that will hold it in place. The barb is tiny, and is on the side that extends down to the wire insulation (sorry about the focus): | The best method to seat these crimped wires is to align the barb on the crimp up or down to point toward the plastic finger that will hold it in place. The barb is tiny, and is on the side that extends down to the wire insulation (sorry about the focus): | ||
Line 47: | Line 50: | ||
Now that the hardware is working, we need to set up the gcode to control it. The array can be used primarily in three ways. Note that there is a safety timeout, so you can't simply turn the array on and leave it on; there must be a printing (G1 with E value) move involved. | Now that the hardware is working, we need to set up the gcode to control it. The array can be used primarily in three ways. Note that there is a safety timeout, so you can't simply turn the array on and leave it on; there must be a printing (G1 with E value) move involved. | ||
Remember, this is how we address the tool positions; note that the 30M and ESR have four positions, not five. Counting from the leftmost position: | |||
{| border="1" class="wikitable" style="width: 60%; text-align: center;" | |||
|+ T Commands and T Variables for Standard Addresses | |||
|- | |||
! style="width: 15%;" | Command | |||
! style="width: 15%;" | 1st Slot | |||
! style="width: 15%;" | <span style="color: magenta;">2nd Slot</span> | |||
! style="width: 15%;" | 3rd Slot | |||
! style="width: 15%;" | 4th Slot | |||
! style="width: 15%;" | 5th Slot | |||
|- | |||
! Tool Change | |||
| T0 | |||
| '''<span style="color: magenta;">T1</span>''' | |||
| T2 | |||
| T3 | |||
| T4 | |||
|- | |||
! Variable | |||
| T11 | |||
| '''<span style="color: magenta;">T12</span>''' | |||
| T13 | |||
| T14 | |||
| T15 | |||
|- | |||
|} | |||
==== Basic - On or Off ==== | ==== Basic - On or Off ==== | ||
Line 52: | Line 83: | ||
If you want your array to turn on at a certain percentage, stay on while printing, and later (or at the end of the job) turn off, a simple M106 command is all that you need: | If you want your array to turn on at a certain percentage, stay on while printing, and later (or at the end of the job) turn off, a simple M106 command is all that you need: | ||
M106 T12 S25 | M106 <span style="color: magenta;">T12</span> S25 | ||
This command is decoded and executed by the printer as follows: | This command is decoded and executed by the printer as follows: | ||
* '''M106''' (Set Cooling/ | * '''M106''' (Set Cooling/LED array) | ||
** '''T12''' (Second head from the left) | ** <span style="color: magenta;">'''T12''' (Second head from the left)</span> | ||
** '''S25''' (On at constant 25% duty cycle) | ** '''S25''' (On at constant 25% duty cycle) | ||
Line 66: | Line 97: | ||
If you want your array to come on at a certain value, but only while making extrusion moves: | If you want your array to come on at a certain value, but only while making extrusion moves: | ||
M106 T12 P100 | M106 <span style="color: magenta;">T12</span> P100 | ||
This command is decoded and executed by the printer as follows: | This command is decoded and executed by the printer as follows: | ||
* '''M106''' (Set Cooling/ | * '''M106''' (Set Cooling/LED array) | ||
** '''T12''' (second head from the left) | ** <span style="color: magenta;">'''T12''' (second head from the left)</span> | ||
** '''P100''' (during extrusion moves at 100% duty cycle) | ** '''P100''' (during extrusion moves at 100% duty cycle) | ||
Line 82: | Line 113: | ||
G0 Z5 ; drop bed | G0 Z5 ; drop bed | ||
G90 ; absolute moves | G90 ; absolute moves | ||
<span style="color: magenta;">T1</span> ; have tool position two execute commands | |||
G0 X130 Y110 ; move into position | G0 X130 Y110 ; move into position | ||
M106 S100 | M106 S100 <span style="color: magenta;">T12</span> ; turn on T13 UV at 100% | ||
G1 X140 Y110 F100 ; move 10 mm in the X at 100 mm/min | G1 X140 Y110 F100 ; move 10 mm in the X at 100 mm/min | ||
G1 X140 Y120 F100 ; move 10 mm in the Y at 100 mm/min | G1 X140 Y120 F100 ; move 10 mm in the Y at 100 mm/min | ||
G1 X130 Y120 F100 ; move -10 mm in the X at 100 mm/min | G1 X130 Y120 F100 ; move -10 mm in the X at 100 mm/min | ||
G1 X130 Y110 F100 ; move -10 mm in the Y at 100 mm/min | G1 X130 Y110 F100 ; move -10 mm in the Y at 100 mm/min | ||
M106 S0 | M106 S0 <span style="color: magenta;">T12</span> ; turn off T12 UV (set it to 0%) | ||
;--- END COD GCODE | ;--- END COD GCODE | ||
Line 97: | Line 129: | ||
** '''Z5''' (+5 mm in the Z) | ** '''Z5''' (+5 mm in the Z) | ||
* '''G90''' (Use absolute moves) | * '''G90''' (Use absolute moves) | ||
* <span style="color: magenta;">'''T1''' (Send commands to second slot from left)</span> | |||
* '''G0''' (Non-working move) | * '''G0''' (Non-working move) | ||
** '''X130''' (To position X130) | ** '''X130''' (To position X130) | ||
Line 102: | Line 135: | ||
* '''M106''' (Set Aux (UV)) | * '''M106''' (Set Aux (UV)) | ||
** '''S100''' (100% duty) | ** '''S100''' (100% duty) | ||
** ''' | ** <span style="color: magenta;">'''T12''' (On Tool in yoke 1, slot 2 (second from left)</span> | ||
* '''G1''' (Working (printing) move) | * '''G1''' (Working (printing) move) | ||
** '''X140''' (To position X140) | ** '''X140''' (To position X140) | ||
Line 121: | Line 154: | ||
* '''M106''' (Set Aux (UV)) | * '''M106''' (Set Aux (UV)) | ||
** '''S0''' (0% duty) | ** '''S0''' (0% duty) | ||
** ''' | ** <span style="color: magenta;">'''T12''' (On Tool in yoke 1, slot 2 (second from left)</span> | ||
== UV Pen == | == UV Pen == | ||
Line 128: | Line 161: | ||
The pen is its own head, and is loaded into a tool position like most heads. | The pen is its own head, and is loaded into a tool position like most heads. | ||
[[File:Uvata_front_sm.jpg|150px]] | |||
=== Gcode === | === Gcode === | ||
Next, we need to set up the gcode to control it. The array can be used primarily in three ways. Note that there is a safety timeout, so you can't simply turn the array on and leave it on; there must be a printing (G1 with E value) move involved to use it for more than one second. Our first step is always to enable the UV Pen with an M620 command: | Next, we need to set up the gcode to control it. The array can be used primarily in three ways. Note that there is a safety timeout, so you can't simply turn the array on and leave it on; there must be a printing (G1 with E value) move involved to use it for more than one second. | ||
Remember, this is how we address the tool positions; note that the 30M and ESR have four positions, not five. Counting from the leftmost position: | |||
{| border="1" class="wikitable" style="width: 60%; text-align: center;" | |||
|+ T Commands and T Variables for Standard Addresses | |||
|- | |||
! style="width: 15%;" | Command | |||
! style="width: 15%;" | 1st Slot | |||
! style="width: 15%;" | 2nd Slot | |||
! style="width: 15%;" | 3rd Slot | |||
! style="width: 15%;" | 4th Slot | |||
! style="width: 15%;" | 5th Slot | |||
|- | |||
! Tool Change | |||
| T0 | |||
| T1 | |||
| T2 | |||
| T3 | |||
| T4 | |||
|- | |||
! Variable | |||
| T11 | |||
| T12 | |||
| T13 | |||
| T14 | |||
| T15 | |||
|- | |||
|} | |||
Our first step is always to enable the UV Pen with an M620 command: | |||
M620 T13 E1 | M620 T13 E1 | ||
Line 147: | Line 212: | ||
If you want your array to turn on at a certain percentage and then turn off, you'll use an M623 to turn it on for some duration. For example: | If you want your array to turn on at a certain percentage and then turn off, you'll use an M623 to turn it on for some duration. For example: | ||
M623 | M623 D10000 P100 W10000 | ||
This command is decoded and executed by the printer as follows: | This command is decoded and executed by the printer as follows: | ||
* '''M623''' (activate UV pen) | * '''M623''' (activate UV pen) | ||
** ''' | ** '''D10000''' (duration of 10000 miliseconds (ten seconds)) | ||
** '''P100''' ( | ** '''P100''' (power of 100%) | ||
** '''W10000''' (set watchdog timer to 10000 miliseconds (ten seconds)) | |||
M623 D200 P30 | M623 D200 P30 | ||
This command is decoded and executed by the printer as follows: | This command is decoded and executed by the printer as follows: | ||
* '''M623''' (activate UV pen) | * '''M623''' (activate UV pen) | ||
** '''D200''' ( | ** '''D200''' (duration of 200 miliseconds) | ||
** '''P30''' ( | ** '''P30''' (power of 30%) | ||
==== Intermediate - During Extrusion ==== | ==== Intermediate - During Extrusion ==== | ||
If you want your pen to come on at a certain value, but only while making extrusion moves, you will clone it to the dispensing head with an M703, and then set the power with an | If you want your pen to come on at a certain value, but only while making extrusion moves, you will clone it to the dispensing head with an M703, and then set the power with an M621: | ||
M703 T14 S11 | M703 T14 S11 | ||
M621 T14 P100 | |||
These commands are decoded and executed by the printer as follows: | These commands are decoded and executed by the printer as follows: | ||
Line 174: | Line 240: | ||
** '''T14''' - Position 4 will also execute commands | ** '''T14''' - Position 4 will also execute commands | ||
** '''S11''' - Executed by position 1 | ** '''S11''' - Executed by position 1 | ||
* ''' | * '''M621''' (Set light emission tied to extrusion moves) | ||
** '''T14''' (Fourth head from the left) | ** '''T14''' (Fourth head from the left) | ||
** '''P100''' ( | ** '''P100''' (to 100% duty cycle) | ||
==== Advanced - Between Layers ==== | ==== Advanced - Between Layers ==== | ||
Line 232: | Line 298: | ||
The clench valve us operated the same way as the UV Array; open during extrusion, off other times. | The clench valve us operated the same way as the UV Array; open during extrusion, off other times. | ||
=== Hardware === | |||
Here is the clench valve: | |||
[[FILE:Cv_loaded.png]] | |||
Please see the following video explaining how to configure the clench valve: https://www.youtube.com/watch?v=SvX4gKqAQDI | |||
When you seat the connector on the circuit board, it should now look like this: | |||
[[File:COD,CV_ports_small.jpg|150px]] | |||
=== Gcode === | === Gcode === | ||
Line 246: | Line 324: | ||
** '''T12''' (second head from the left) | ** '''T12''' (second head from the left) | ||
** '''P100''' (to open during extrusion moves at 100% duty cycle (full strength)) | ** '''P100''' (to open during extrusion moves at 100% duty cycle (full strength)) | ||
Note that this uses the P variable to flag this to trigger only with extrusion moves. For a simple on/off test, you can use M106 T12 S100 (on) and M106 T12 S0 (off). |
Latest revision as of 14:14, 12 February 2021
Using the UV Array, the UV Pen, and the Clench Valve are a little complicated (but closely related), so here are more details and examples.
For the descriptions below, please refer to this diagram of tool positions:
UV Array
Please use personal protective equipment and follow your facility safety guidelines at all times.
Hardware
The first step is to ensure that the array is properly mounted:
If you are using an SDS head (which takes plastic syringes), we mount the array with M3 standoffs:
If you are using an EMO, VOL, KRA, KR2, or TAM head (which take aluminum or stainless reservoirs), we mount the array with M4 standoffs:
The next step is to ensure that the UV Array is connected to the material head circuit board.
Firmly but gently grasp the 18-pin connector and pull it straight away from the circuit board. You will seat the black wire in the top row, third position (marked "Gnd" on the board), and the red wire in the bottom row, second position (marked "Aux" on the board, if you can read it). This will allow the 12VDC to power the array.
The best method to seat these crimped wires is to align the barb on the crimp up or down to point toward the plastic finger that will hold it in place. The barb is tiny, and is on the side that extends down to the wire insulation (sorry about the focus):
On your connector, since the black wire will go on the top row, the barb should be pointing up; the red wire will go on the bottom row, and the barb should be pointing down. If you pull gently on the wires, you should feel the barb catch on the plastic finger, and thee wire should remain seated in the connector.
When you seat the connector on the circuit board, it should now look like this:
If you load the head onto the printer, you should be able to toggle the COD button on the interface and control the UV Array intensity:
Depending on your wavelength, this might not be visible to the eye without using a full spectrum camera (some smartphone cameras work).
The D6 LED on the head's STM-103 circuit board should always be illuminated with the relative intensity of your M106 output, between 0 and 100 percent.
Gcode
Now that the hardware is working, we need to set up the gcode to control it. The array can be used primarily in three ways. Note that there is a safety timeout, so you can't simply turn the array on and leave it on; there must be a printing (G1 with E value) move involved.
Remember, this is how we address the tool positions; note that the 30M and ESR have four positions, not five. Counting from the leftmost position:
Command | 1st Slot | 2nd Slot | 3rd Slot | 4th Slot | 5th Slot |
---|---|---|---|---|---|
Tool Change | T0 | T1 | T2 | T3 | T4 |
Variable | T11 | T12 | T13 | T14 | T15 |
Basic - On or Off
If you want your array to turn on at a certain percentage, stay on while printing, and later (or at the end of the job) turn off, a simple M106 command is all that you need:
M106 T12 S25
This command is decoded and executed by the printer as follows:
- M106 (Set Cooling/LED array)
- T12 (Second head from the left)
- S25 (On at constant 25% duty cycle)
Note, M106 T12 S0 is the same as M107 T12; either will turn it off.
Intermediate - During Extrusion
If you want your array to come on at a certain value, but only while making extrusion moves:
M106 T12 P100
This command is decoded and executed by the printer as follows:
- M106 (Set Cooling/LED array)
- T12 (second head from the left)
- P100 (during extrusion moves at 100% duty cycle)
Advanced - Between Layers
If you want your array off while printing, but then want to cure the layer, you will toggle the array on while you pass it over your print. You can add this to your layer change gcode in your slicer recipe if you want to do it after every layer:
;---- BEGIN COD CODE G91 ; relative moves G0 Z5 ; drop bed G90 ; absolute moves T1 ; have tool position two execute commands G0 X130 Y110 ; move into position M106 S100 T12 ; turn on T13 UV at 100% G1 X140 Y110 F100 ; move 10 mm in the X at 100 mm/min G1 X140 Y120 F100 ; move 10 mm in the Y at 100 mm/min G1 X130 Y120 F100 ; move -10 mm in the X at 100 mm/min G1 X130 Y110 F100 ; move -10 mm in the Y at 100 mm/min M106 S0 T12 ; turn off T12 UV (set it to 0%) ;--- END COD GCODE
These commands are decoded and executed by the printer as follows:
- G91 (Use relative moves)
- G0 (Non-working move)
- Z5 (+5 mm in the Z)
- G90 (Use absolute moves)
- T1 (Send commands to second slot from left)
- G0 (Non-working move)
- X130 (To position X130)
- Y110 (To position Y110)
- M106 (Set Aux (UV))
- S100 (100% duty)
- T12 (On Tool in yoke 1, slot 2 (second from left)
- G1 (Working (printing) move)
- X140 (To position X140)
- Y110 (To position Y110
- F100 (At 100 mm/min)
- G1 (Working (printing) move)
- X140 (To position X140)
- Y120 (To position Y120
- F100 (At 100 mm/min)
- G1 (Working (printing) move)
- X130 (To position X130)
- Y120 (To position Y120
- F100 (At 100 mm/min)
- G1 (Working (printing) move)
- X130 (To position X130)
- Y110 (To position Y110
- F100 (At 100 mm/min)
- M106 (Set Aux (UV))
- S0 (0% duty)
- T12 (On Tool in yoke 1, slot 2 (second from left)
UV Pen
Hardware
The pen is its own head, and is loaded into a tool position like most heads.
Gcode
Next, we need to set up the gcode to control it. The array can be used primarily in three ways. Note that there is a safety timeout, so you can't simply turn the array on and leave it on; there must be a printing (G1 with E value) move involved to use it for more than one second.
Remember, this is how we address the tool positions; note that the 30M and ESR have four positions, not five. Counting from the leftmost position:
Command | 1st Slot | 2nd Slot | 3rd Slot | 4th Slot | 5th Slot |
---|---|---|---|---|---|
Tool Change | T0 | T1 | T2 | T3 | T4 |
Variable | T11 | T12 | T13 | T14 | T15 |
Our first step is always to enable the UV Pen with an M620 command:
M620 T13 E1
This command is decoded and executed by the printer as follows:
- M620 (enable/disable device)
- T13 (in the third slot from the left)
- E1 (enable (as opposed to disable with E0))
This can be just before the first use, or at the beginning of the file. Now, to actually turn it on...
Basic - On or Off
If you want your array to turn on at a certain percentage and then turn off, you'll use an M623 to turn it on for some duration. For example:
M623 D10000 P100 W10000
This command is decoded and executed by the printer as follows:
- M623 (activate UV pen)
- D10000 (duration of 10000 miliseconds (ten seconds))
- P100 (power of 100%)
- W10000 (set watchdog timer to 10000 miliseconds (ten seconds))
M623 D200 P30
This command is decoded and executed by the printer as follows:
- M623 (activate UV pen)
- D200 (duration of 200 miliseconds)
- P30 (power of 30%)
Intermediate - During Extrusion
If you want your pen to come on at a certain value, but only while making extrusion moves, you will clone it to the dispensing head with an M703, and then set the power with an M621:
M703 T14 S11 M621 T14 P100
These commands are decoded and executed by the printer as follows:
- M703 - Begin to Duplicate Commands:
- T14 - Position 4 will also execute commands
- S11 - Executed by position 1
- M621 (Set light emission tied to extrusion moves)
- T14 (Fourth head from the left)
- P100 (to 100% duty cycle)
Advanced - Between Layers
If you want your array off while printing, but then want to cure the layer, you will toggle the array on while you pass it over your print. You can add this to your layer change gcode in your slicer recipe if you want to do it after every layer:
;---- BEGIN COD CODE G91 ; relative moves G0 Z5 ; drop bed G90 ; absolute moves G0 X130 Y110 ; move into position M623 T14 P100 ; turn on T14 UV at 100% with extrusion moves T3 ; switch focus to slot 4 G1 X140 Y110 F100 ; move 10 mm in the X at 100 mm/min G1 X140 Y120 F100 ; move 10 mm in the Y at 100 mm/min G1 X130 Y120 F100 ; move -10 mm in the X at 100 mm/min G1 X130 Y110 F100 ; move -10 mm in the Y at 100 mm/min M106 S0 T13 ; turn off T13 UV (set it to 0%) ;--- END COD GCODE
These commands are decoded and executed by the printer as follows:
- G91 (Use relative moves)
- G0 (Non-working move)
- Z5 (+5 mm in the Z)
- G90 (Use absolute moves)
- G0 (Non-working move)
- X130 (To position X130)
- Y110 (To position Y110)
- M623 (Set power)
- T14 (On Tool in yoke 1, slot 4 (fourth from left)
- P100 (100% duty during extrusion moves)
- T3 (Focus on fourth slot from the left)
- G1 (Working (printing) move)
- X140 (To position X140)
- Y110 (To position Y110
- F100 (At 100 mm/min)
- G1 (Working (printing) move)
- X140 (To position X140)
- Y120 (To position Y120
- F100 (At 100 mm/min)
- G1 (Working (printing) move)
- X130 (To position X130)
- Y120 (To position Y120
- F100 (At 100 mm/min)
- G1 (Working (printing) move)
- X130 (To position X130)
- Y110 (To position Y110
- F100 (At 100 mm/min)
- M623 (Set power)
- T14 (On Tool in yoke 1, slot 4 (fourth from left)
- P0 (0% duty during extrusion moves)
Clench Valve
The clench valve us operated the same way as the UV Array; open during extrusion, off other times.
Hardware
Here is the clench valve:
Please see the following video explaining how to configure the clench valve: https://www.youtube.com/watch?v=SvX4gKqAQDI
When you seat the connector on the circuit board, it should now look like this:
Gcode
The clench valve requires the use of an "M106" command with a "P100" to open and close:
Here is an example:
M106 T12 P100
This command is decoded and executed by the printer as follows:
- M106 (clench valve)
- T12 (second head from the left)
- P100 (to open during extrusion moves at 100% duty cycle (full strength))
Note that this uses the P variable to flag this to trigger only with extrusion moves. For a simple on/off test, you can use M106 T12 S100 (on) and M106 T12 S0 (off).