Difference between revisions of "UV and Clench"

From Hyrel3D
Jump to: navigation, search
(Hardware)
(Array Hardware)
 
(64 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|600px]]
  
 
== UV Array ==
 
== UV Array ==
Line 10: Line 13:
 
Please use personal protective equipment and follow your facility safety guidelines at all times.
 
Please use personal protective equipment and follow your facility safety guidelines at all times.
  
=== Hardware ===
+
The UV Arrays are set in a halo arrangement around the nozzle of the head, and they can put out a maximum of between 0.4 and 0.6 watts.
 +
 
 +
=== Array Hardware ===
 +
 
 +
==== Single Controller Boards ====
  
 
The first step is to ensure that the array is properly mounted:
 
The first step is to ensure that the array is properly mounted:
Line 26: Line 33:
 
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.
 
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 (click image for larger version):
  
[[File:Barb.jpg]]  
+
[[File:White_connectors.png|500px]]  
  
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.
+
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 the wire should remain seated in the connector.
  
 
When you seat the connector on the circuit board, it should now look like this:
 
When you seat the connector on the circuit board, it should now look like this:
Line 44: Line 51:
 
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.
 
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 ===
+
==== Dual Controller Boards ====
 +
 
 +
If you have a TAM head, or a newer KR2 head, there is a "piggyback" board for the extra fan. The pinout on the piggyback board is different from the pinout on the main board, so here (will be) an image of where to plug these wires now.
 +
 
 +
=== Array 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.
 
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.
  
==== Basic - On or Off ====
+
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
 +
|-
 +
|}
 +
 
 +
==== Array: 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:
 
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/LEDs)  
+
* '''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)
  
 
Note, M106 T12 S0 is the same as M107 T12; either will turn it off.
 
Note, M106 T12 S0 is the same as M107 T12; either will turn it off.
  
==== Intermediate - During Extrusion ====
+
==== Array: During Extrusion ====
  
 
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/LEDs)  
+
* '''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)
  
==== Advanced - Between Layers ====
+
==== Array: 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:
 
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:
Line 82: Line 121:
 
   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 T13 ; turn on T13 UV at 100%
+
   M106 S100 <span style="color: magenta;">T12</span> ; turn on <span style="color: magenta;">T12/T1</span> 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 T13 ; turn off T13 UV (set it to 0%)
+
   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 137:
 
** '''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 143:
 
* '''M106''' (Set Aux (UV))
 
* '''M106''' (Set Aux (UV))
 
** '''S100''' (100% duty)
 
** '''S100''' (100% duty)
** '''T13''' (On Tool in yoke 1, slot 3 (third from left)
+
** <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)
** '''Y110''' (To position Y110
+
** '''Y110''' (To position Y110)
 
** '''F100''' (At 100 mm/min)
 
** '''F100''' (At 100 mm/min)
 
* '''G1''' (Working (printing) move)
 
* '''G1''' (Working (printing) move)
 
** '''X140''' (To position X140)
 
** '''X140''' (To position X140)
** '''Y120''' (To position Y120
+
** '''Y120''' (To position Y120)
 
** '''F100''' (At 100 mm/min)
 
** '''F100''' (At 100 mm/min)
 
* '''G1''' (Working (printing) move)
 
* '''G1''' (Working (printing) move)
 
** '''X130''' (To position X130)
 
** '''X130''' (To position X130)
** '''Y120''' (To position Y120
+
** '''Y120''' (To position Y120)
 
** '''F100''' (At 100 mm/min)
 
** '''F100''' (At 100 mm/min)
 
* '''G1''' (Working (printing) move)
 
* '''G1''' (Working (printing) move)
 
** '''X130''' (To position X130)
 
** '''X130''' (To position X130)
** '''Y110''' (To position Y110
+
** '''Y110''' (To position Y110)
 
** '''F100''' (At 100 mm/min)
 
** '''F100''' (At 100 mm/min)
 
* '''M106''' (Set Aux (UV))
 
* '''M106''' (Set Aux (UV))
 
** '''S0''' (0% duty)
 
** '''S0''' (0% duty)
** '''T13''' (On Tool in yoke 1, slot 3 (third from left)
+
** <span style="color: magenta;">'''T12''' (On Tool in yoke 1, slot 2 (second from left)</span>
  
 
== UV Pen ==
 
== UV Pen ==
  
=== Hardware ===
+
The UV Pens can be aimed and focused, and they will provide up to between 4 and 6 watts of power.
 +
 
 +
<span style="color: red;">'''Please see more details and examples for UV Arrays and UV Pens at https://hyrel3d.com/wiki/index.php/UV_and_Clench'''<br>'''PLEASE NOTE''' that the UV pen commands DO NOT WORK if you are using '''M229 E1 D1'''. You must use '''M229 E0 D0''' (NOT using E values) to use these codes.</span>
 +
 
 +
=== Pen Hardware ===
  
 
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.
Line 131: Line 176:
 
[[File:Uvata_front_sm.jpg|150px]]
 
[[File:Uvata_front_sm.jpg|150px]]
  
=== Gcode ===
+
=== Pen 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:
 
  
  M620 T13 E1
+
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.
  
This command is decoded and executed by the printer as follows:
+
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:
 
 
* '''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...
+
{| 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
 +
|-
 +
|}
  
==== Basic - On or Off ====
+
==== Pen: 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:
 
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 D1000 P100
+
  M620 T13 E1 ; enable UV pen
 +
   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:
  
 +
* '''M620''' (enable/disable device)
 +
** '''T13''' (in the third slot from the left)
 +
** '''E1''' (enable (as opposed to disable with E0))
 
* '''M623''' (activate UV pen)  
 
* '''M623''' (activate UV pen)  
** '''D1000''' (for 1000 miliseconds (one second))  
+
** '''D10000''' (duration of 10000 miliseconds (ten seconds))  
** '''P100''' (at 100%)  
+
** '''P100''' (power of 100%)  
 
+
** '''W10000''' (set watchdog timer to 10000 miliseconds (ten seconds))
   M623 D200 P30
+
 
 +
  M620 T13 E1
 +
   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:
  
 +
* '''M620''' (enable/disable device)
 +
** '''T13''' (in the third slot from the left)
 +
** '''E1''' (enable (as opposed to disable with E0))
 
* '''M623''' (activate UV pen)  
 
* '''M623''' (activate UV pen)  
** '''D200''' (for 200 miliseconds)  
+
** '''D200''' (duration of 200 miliseconds)  
** '''P30''' (at 30%)
+
** '''P30''' (power of  30%)
  
==== Intermediate - During Extrusion ====
+
==== Pen: 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 M623:
+
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  
   M623 T14 P100  
+
   M620 T14 E1
 +
  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 176: Line 249:
 
** '''T14''' - Position 4 will also execute commands
 
** '''T14''' - Position 4 will also execute commands
 
** '''S11''' - Executed by position 1
 
** '''S11''' - Executed by position 1
* '''M623''' (Set light emission in vector mode)  
+
* '''M620''' (enable/disable device)
 +
** '''T14''' (in the third slot from the left)
 +
** '''E1''' (enable (as opposed to disable with E0))
 +
* '''M621''' (Set light emission tied to extrusion moves)  
 
** '''T14''' (Fourth head from the left)
 
** '''T14''' (Fourth head from the left)
** '''P100''' (during extrusion moves at 100% duty cycle)
+
** '''P100''' (to 100% duty cycle)
  
==== Advanced - Between Layers ====
+
==== Pen: 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:
+
If you want your pen off while printing, but then want to cure the layer, you will toggle the pen 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
 
   ;---- BEGIN COD CODE
Line 189: Line 265:
 
   G90 ; absolute moves
 
   G90 ; absolute moves
 
   G0 X130 Y110 ; move into position
 
   G0 X130 Y110 ; move into position
   M623 T14 P100 ; turn on T14 UV at 100% with extrusion moves
+
   M620 T14 E1 ; enable UV pen in slot 4
   T3 ; switch focus to slot 4
+
  M621 T14 P100 ; turn on UV at 100% with extrusion moves in slot 4
   G1 X140 Y110 F100 ; move 10 mm in the X at 100 mm/min
+
   T3 ; switch focus to slot 4  
   G1 X140 Y120 F100 ; move 10 mm in the Y at 100 mm/min
+
   G1 X140 Y110 F100 E1 ; 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 X140 Y120 F100 E1 ; move 10 mm in the Y at 100 mm/min
   G1 X130 Y110 F100 ; move -10 mm in the Y at 100 mm/min
+
   G1 X130 Y120 F100 E1 ; move -10 mm in the X at 100 mm/min
   M106 S0 T13 ; turn off T13 UV (set it to 0%)
+
   G1 X130 Y110 F100 E1 ; move -10 mm in the Y at 100 mm/min
 +
   M621 T14 P0 ; turn off UV (set it to 0%) in slot 4
 +
  M620 T14 E0 ; disable UV pen in slot 4
 
   ;--- END COD GCODE
 
   ;--- END COD GCODE
  
Line 207: Line 285:
 
** '''X130''' (To position X130)
 
** '''X130''' (To position X130)
 
** '''Y110''' (To position Y110)
 
** '''Y110''' (To position Y110)
* '''M623''' (Set power)
+
* '''M620''' (enable/disable device)
 +
** '''T13''' (in the third slot from the left)
 +
** '''E1''' (enable)
 +
* '''M621''' (Set power)
 
** '''T14''' (On Tool in yoke 1, slot 4 (fourth from left)
 
** '''T14''' (On Tool in yoke 1, slot 4 (fourth from left)
 
** '''P100''' (100% duty during extrusion moves)
 
** '''P100''' (100% duty during extrusion moves)
Line 213: Line 294:
 
* '''G1''' (Working (printing) move)
 
* '''G1''' (Working (printing) move)
 
** '''X140''' (To position X140)
 
** '''X140''' (To position X140)
** '''Y110''' (To position Y110
+
** '''Y110''' (To position Y110)
 +
** '''E1''' (While emitting/extruding)
 
** '''F100''' (At 100 mm/min)
 
** '''F100''' (At 100 mm/min)
 
* '''G1''' (Working (printing) move)
 
* '''G1''' (Working (printing) move)
 
** '''X140''' (To position X140)
 
** '''X140''' (To position X140)
** '''Y120''' (To position Y120
+
** '''Y120''' (To position Y120)
 +
** '''E1''' (While emitting/extruding)
 
** '''F100''' (At 100 mm/min)
 
** '''F100''' (At 100 mm/min)
 
* '''G1''' (Working (printing) move)
 
* '''G1''' (Working (printing) move)
 
** '''X130''' (To position X130)
 
** '''X130''' (To position X130)
** '''Y120''' (To position Y120
+
** '''Y120''' (To position Y120)
 +
** '''E1''' (While emitting/extruding)
 
** '''F100''' (At 100 mm/min)
 
** '''F100''' (At 100 mm/min)
 
* '''G1''' (Working (printing) move)
 
* '''G1''' (Working (printing) move)
 
** '''X130''' (To position X130)
 
** '''X130''' (To position X130)
** '''Y110''' (To position Y110
+
** '''Y110''' (To position Y110)
 +
** '''E1''' (While emitting/extruding)
 
** '''F100''' (At 100 mm/min)
 
** '''F100''' (At 100 mm/min)
* '''M623''' (Set power)
+
* '''M621''' (Set power)
 
** '''T14''' (On Tool in yoke 1, slot 4 (fourth from left)
 
** '''T14''' (On Tool in yoke 1, slot 4 (fourth from left)
 
** '''P0''' (0% duty during extrusion moves)
 
** '''P0''' (0% duty during extrusion moves)
 +
* '''M620''' (enable/disable device)
 +
** '''T13''' (in the third slot from the left)
 +
** '''E0''' (disable)
  
 
== Clench Valve ==
 
== Clench Valve ==
Line 237: Line 325:
 
=== Hardware ===
 
=== Hardware ===
  
Here is the clench valve:
+
Here is the clench valve; please note that even though it is physically located in the tool position adjacent to the dispensing head, we will address it via the dispensing head; so if the SDS is in T2 and the CV is physically in T3, we will be using T2 to set the primary head and T13 for Mcode commands, including the M106, below:
  
 
[[FILE:Cv_loaded.png]]
 
[[FILE:Cv_loaded.png]]
  
 
Please see the following video explaining how to configure the clench valve: https://www.youtube.com/watch?v=SvX4gKqAQDI
 
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 ===
  
The clench valve requires the use of an "M106" command with a "P100" to open and close:
+
The clench valve requires the use of an "M106" command with a "P100" to open and close. This can be anywhere before the first use of the clench valve, and could be in your header. Additionally, you should set your PRIME and UNPRIME PULSES and DELAY each to 1. See below.
  
 
Here is an example:
 
Here is an example:
Line 254: Line 346:
  
 
* '''M106''' (clench valve)  
 
* '''M106''' (clench valve)  
** '''T12''' (second head from the left)
+
** <span style="color: magenta;">'''T12''' (second head from the left)</span>
 
** '''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).
 +
 +
Here is an example of setting the PRIME and UNPRIME PULSES and DELAY for the tool in the second position. This should be placed anywhere before the first use of the clench valve, and could be in your header.
 +
 +
M721 T12 E1 P1
 +
M722 T12 E1 P1
 +
 +
This command is decoded and executed by the printer as follows:
 +
 +
* '''721''' (unprime)
 +
** <span style="color: magenta;">'''T12''' (second head from the left)</span>
 +
** '''E1''' (set pulses to 1)
 +
** '''P1''' (set delay to 1)
 +
* '''722''' (prime)
 +
** <span style="color: magenta;">'''T12''' (second head from the left)</span>
 +
** '''E1''' (set pulses to 1)
 +
** '''P1''' (set delay to 1)

Latest revision as of 17:42, 11 August 2025

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: Positions.jpg

UV Array

Please use personal protective equipment and follow your facility safety guidelines at all times.

The UV Arrays are set in a halo arrangement around the nozzle of the head, and they can put out a maximum of between 0.4 and 0.6 watts.

Array Hardware

Single Controller Boards

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:

CSD HW.png

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:

COD HW.png VCD HW.png KCD HW.png

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 (click image for larger version):

White connectors.png

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 the wire should remain seated in the connector.

When you seat the connector on the circuit board, it should now look like this:

COD,CV ports small.jpg

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:

COD off.png COD 100.png

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.

Dual Controller Boards

If you have a TAM head, or a newer KR2 head, there is a "piggyback" board for the extra fan. The pinout on the piggyback board is different from the pinout on the main board, so here (will be) an image of where to plug these wires now.

Array 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:

T Commands and T Variables for Standard Addresses
Command 1st Slot 2nd Slot 3rd Slot 4th Slot 5th Slot
Tool Change T0 T1 T2 T3 T4
Variable T11 T12 T13 T14 T15

Array: 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.

Array: 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)

Array: 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 T12/T1 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

The UV Pens can be aimed and focused, and they will provide up to between 4 and 6 watts of power.

Please see more details and examples for UV Arrays and UV Pens at https://hyrel3d.com/wiki/index.php/UV_and_Clench
PLEASE NOTE that the UV pen commands DO NOT WORK if you are using M229 E1 D1. You must use M229 E0 D0 (NOT using E values) to use these codes.

Pen Hardware

The pen is its own head, and is loaded into a tool position like most heads.

Uvata front sm.jpg

Pen 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:

T Commands and T Variables for Standard Addresses
Command 1st Slot 2nd Slot 3rd Slot 4th Slot 5th Slot
Tool Change T0 T1 T2 T3 T4
Variable T11 T12 T13 T14 T15

Pen: 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:

 M620 T13 E1 ; enable UV pen
 M623 D10000 P100 W10000

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))
  • M623 (activate UV pen)
    • D10000 (duration of 10000 miliseconds (ten seconds))
    • P100 (power of 100%)
    • W10000 (set watchdog timer to 10000 miliseconds (ten seconds))
 M620 T13 E1
 M623 D200 P30 

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))
  • M623 (activate UV pen)
    • D200 (duration of 200 miliseconds)
    • P30 (power of 30%)

Pen: 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 
 M620 T14 E1
 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
  • M620 (enable/disable device)
    • T14 (in the third slot from the left)
    • E1 (enable (as opposed to disable with E0))
  • M621 (Set light emission tied to extrusion moves)
    • T14 (Fourth head from the left)
    • P100 (to 100% duty cycle)

Pen: Between Layers

If you want your pen off while printing, but then want to cure the layer, you will toggle the pen 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
 M620 T14 E1 ; enable UV pen in slot 4
 M621 T14 P100 ; turn on UV at 100% with extrusion moves in slot 4
 T3 ; switch focus to slot 4 
 G1 X140 Y110 F100 E1 ; move 10 mm in the X at 100 mm/min
 G1 X140 Y120 F100 E1 ; move 10 mm in the Y at 100 mm/min
 G1 X130 Y120 F100 E1 ; move -10 mm in the X at 100 mm/min
 G1 X130 Y110 F100 E1 ; move -10 mm in the Y at 100 mm/min
 M621 T14 P0 ; turn off UV (set it to 0%) in slot 4
 M620 T14 E0 ; disable UV pen in slot 4
 ;--- 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)
  • M620 (enable/disable device)
    • T13 (in the third slot from the left)
    • E1 (enable)
  • M621 (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)
    • E1 (While emitting/extruding)
    • F100 (At 100 mm/min)
  • G1 (Working (printing) move)
    • X140 (To position X140)
    • Y120 (To position Y120)
    • E1 (While emitting/extruding)
    • F100 (At 100 mm/min)
  • G1 (Working (printing) move)
    • X130 (To position X130)
    • Y120 (To position Y120)
    • E1 (While emitting/extruding)
    • F100 (At 100 mm/min)
  • G1 (Working (printing) move)
    • X130 (To position X130)
    • Y110 (To position Y110)
    • E1 (While emitting/extruding)
    • F100 (At 100 mm/min)
  • M621 (Set power)
    • T14 (On Tool in yoke 1, slot 4 (fourth from left)
    • P0 (0% duty during extrusion moves)
  • M620 (enable/disable device)
    • T13 (in the third slot from the left)
    • E0 (disable)

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 note that even though it is physically located in the tool position adjacent to the dispensing head, we will address it via the dispensing head; so if the SDS is in T2 and the CV is physically in T3, we will be using T2 to set the primary head and T13 for Mcode commands, including the M106, below:

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:

COD,CV ports small.jpg

Gcode

The clench valve requires the use of an "M106" command with a "P100" to open and close. This can be anywhere before the first use of the clench valve, and could be in your header. Additionally, you should set your PRIME and UNPRIME PULSES and DELAY each to 1. See below.

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).

Here is an example of setting the PRIME and UNPRIME PULSES and DELAY for the tool in the second position. This should be placed anywhere before the first use of the clench valve, and could be in your header.

M721 T12 E1 P1
M722 T12 E1 P1

This command is decoded and executed by the printer as follows:

  • 721 (unprime)
    • T12 (second head from the left)
    • E1 (set pulses to 1)
    • P1 (set delay to 1)
  • 722 (prime)
    • T12 (second head from the left)
    • E1 (set pulses to 1)
    • P1 (set delay to 1)