In celebration of the season I designed a fan shroud inspired by the stock robo3d one but adds solenoid probing functionality.
After getting the circuitry and wiring done attaching the fan shroud should take less than 5 minutes. Here's how:
#Assembly:
Begin by printing the new fan shroud. 'https://www.dropbox.com/s/lhnkvuxzmx3bk4c/Hexagon%20Probe%20Fan%20Shroud.STL?dl=0'
or click the link below
Any material is fine and prints without support. I suggest at least 50% infill to give it a good amount of strength since you want to minimize any flexing that could distort you calibration.
The links for the solenoid and switch are above, but here they are in order of what you need:
1x $4.95 - Solenoid switch: https://www.sparkfun.com/products/11015
1x $0.184 - $0.513 Per (http://www.amazon.com/Momentary-Hinge-Lever-Micro-Switch/dp/B008SO0IGQ/ref=sr_1_6?s=hi&ie=UTF8&qid=1419447308&sr=1-6&keywords=amico+micro+switch $1.84/10 slow boat or http://www.amazon.com/Pieces-Button-Metal-Lever-Switch/dp/B008LT43P0/ref=sr_1_10?s=hi&ie=UTF8&qid=1419447308&sr=1-10&keywords=amico+micro+switch $6.16 from Prime)Sub Micro Switch
2x~M2- 8mm screws for the switch, could take from existing Z switch
2x M2 - 4mm Self tapping screws $0.563 per ($7.04/25): http://www.mcmaster.com/#96817a840/=v5zsno These are the ones I used but there are many options out there. I think stainless steel is a must as securing into the solenoid was difficult.
With the part ready the first step is to secure in the solenoid with the 2 M2-4mm screws from the back
http://i.imgur.com/nYK9FeL.gif
With the solenoid in place you will then want to attach the switch using any screw around 2mm and at least 8mm in length. It will require tapping into the switch itself but that should be fine.
http://i.imgur.com/YFUPcuo.gif
The final step is wiring it. As the switch is held down during homing, and a release of the solenoid triggers the switch, then we will be using the Normally Open (NO) pins on the switch. This switch plugs into Z_min on your ramps board, replacing your old Z-min switches
For wiring up the solenoid as I suggested above get a set of these:
http://www.ebay.com/itm/121357773068?_trksid=p2059210.m2749.l2649&ssPageName=STRK:MEBIDX:IT JST 2.0 PH 2 pin connectors. They will work directly off the solenoid so no need to cut wires. This is optional.
There are 4 screws holding in the existing 25mm fan, begin by removing them and placing them aside. Be careful when handling the fan to not put too much force on the wires and carefully stow it somewhere.
There may then be another screw that holds the stock fan shroud like this:
http://thingiverse-production.s3.amazonaws.com/renders/60/2a/07/75/52/hexfanpic_preview_featured.jpg
Unless your fan shroud is held on by friction
There is a captive nut on the other side of this screw point so be sure to hold that in place and not lose it while removing the screw.
You will then take the new fan shroud solenoid probe assembly and reattach it the same way
http://i.imgur.com/d9tQijc.gif
The final step with the fan shroud connected to the carriage is to reattach the fan and make sure it still works.
#Electronics:
On the circuitry end of the spectrum there's a basic circuit that needs to be made:
http://i.imgur.com/Bbs3Mmg.png
The mosfet can optionally be replaced with a solid state relay that works with 5v DC.
For the mosfet I used the same version that comes on the Ramps board because I had it on hand. There's certainly other options.
$1.54 http://www.mouser.com/Search/ProductDetail.aspx?R=STP55NF06Lvirtualkey51120000virtualkey511-STP55NF06L MOSFET STP55NF06L
$0.18 http://www.mouser.com/ProductDetail/Fairchild-Semiconductor/1N4001/?qs=sGAEpiMZZMtbRapU8LlZD6Aoap19JQAxIIoiB5N1kdc%3d 1N4001 - For a diode I used an 1N4004 but you could probably just as well use a LED and a 100ohm resistor.
$0.10 http://www.mouser.com/ProductDetail/KOA-Speer/MF1-4LCT52R103J/?qs=sGAEpiMZZMtlubZbdhIBID0wPG5x1Smo7s1vIxRENeo%3d 10k Resistor 1/4W 5% tolerance
$1.20 per ($11.98 total ) http://www.ebay.com/itm/301120877446?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT Step down power converter
#Firmware:
I have provided pre-modified firmware available for Download here
https://www.dropbox.com/s/4ydxgmeehxv6avt/Robo3dR1V2_Solenoid_5-16.zip?dl=0 Robo3d with 5/16" Rods
https://www.dropbox.com/s/zx9cs4alufxje4g/Robo3dR1V2_Solenoid_M8.zip?dl=0 Robo3d with M8 Rods
or click the link below
The firmware consists of a few main changes, by order of what you need to do:
Z_Probe_Offset:
In configuration.h there is a variable Z_Probe_Offset that needs to be adjusted.
This can be done two ways.
The first is to modify the firmware value. Your value should be somewhere between 1 and 1.5, you will need to calibrate this yourself.
define Z_PROBE_OFFSET_FROM_EXTRUDER 1.0
The second is to use the M565 command, eg
G28 ; Home all axis
M565 Z1.0 ; Z probe offset of 1.0mm, adjust for your printer
G29 ;Run autolevel routine.
X and Y Offsets
The Y and Z probe offset values will be set as such
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
define X_PROBE_OFFSET_FROM_EXTRUDER 24.7
define Y_PROBE_OFFSET_FROM_EXTRUDER 21.5
Uncomment
define PROBE_SERVO_DEACTIVATION_DELAY 300
Enabling Servos:
At the very bottom of configuration.h you need to enable service by uncommenting:
define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
Setting to at least 1
Then uncommenting
define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 0,0} // X,Y,Z Axis Extend and Retract angles
Setting the angle to 0
In pins.h you need to add a new value:
define Z_PROBE_PIN 63 // IO pin, 5v, extend and retract touch probe
Using the Pin 63 as our control pin. You can change this for any other digital output.
Place this between
define SDPOWER -1
define SDSS 53
define LED_PIN 13[/code]
And
endif
if MOTHERBOARD == 33 || MOTHERBOARD == 35 || MOTHERBOARD == 67 || MOTHERBOARD == 68
define FAN_PIN 9 // (Sprinter config)
else[/code]
The biggest revision is modifying conifguration.h with these calls:
[code]
static void engage_z_probe(int d = 100) { //lower z probe
digitalWrite(Z_PROBE_PIN, HIGH);
delay(d);
}
static void retract_z_probe(int d = 100) { // raise z probe
digitalWrite(Z_PROBE_PIN, LOW);
delay(d);
}[/code]
Commenting out the old engage and retract commands
That should be everything you need to do to get running! Again the only thing you need to add is the Z_offset, everything else is done for you.