Summary
ATTENTION! PLEASE BEWARE, THAT AS OF MARCH, year 2020, I've officially ABANDONED the sailfish firmware and installed marlin firmware, that as of today works pretty good and better supports the auto-leveling code, also, you can activate the autoleveling with only a gcode command, making it really simpler.
If you want some help, I can write a little guide.
For what it refers the below code, it only works for the original sailfish (the gcode for starting print/ending).
The electrical wiring and anything else remains the same.
I feeled it was time to switch from a fixed Z-min value, given at a fixed time, and having always to be really careful for plate level loss.
Beware, I'm not telling that this will solve the situation, but it will HELP a lot:
- You can level the buildplate using the sensor, if correctly calibrated, without the need to worry too much;
- You can check the leveling of the plate less often, thus making the printer more productive (maybe once every two months);
- if you need to raise or lower the plate, but the plate itself is leveled already, you can trim with the pot present on the sensor itself, thus leaving you with only a screw to turn slightly right or slightly left (more on leveling BELOW)
- YOU WILL NEED TO PUT THE Z OFFSET TO A VALUE LESS THAN ZERO, TO AVOID PLATE TOUCH FROM THE SENSOR, or unwanted sensor activation. the trimmed value suggested is from 0.1 to 0.2 with a feeler.
Now the most important fact, this is an old makerbot clone, with dual extruder, Mightyboard REV E and SAILFISH version 7.8 (my modifications got inside, since I have an all-metal hot ends, plus other mods for power and cooler, as I need to print to temperatures up to 300°C, even if not often, there is much more, you can find that at https://github.com/uoitalia/Sailfish-MightyBoardFirmware ). Remember that for AUTO LEVELING you will need an updated firmware, look here: https://github.com/uoitalia/Sailfish-MightyBoardFirmware/releases/ (this is functional even for the ATMEGA 1280 boards! - read carefully the description there!)
The starting GCODE script can be found in the printer settings, as well as the small electrical written scheme, that will make this sensor work as it should
For leveling:
It will become really easy and simple, when in need of leveling, pick the control panel of the printer, raise the z until the plate touches the hotend, now pick a feeler and lower the hotends as per your need (0.1 - 0.2 - 0.3, 0.2 is recommended, less is better, but you have to be careful with Z offset, that should become negative and a lot...).
after trimming the sensor so that it will switch on (there is a led on top), lower and raise Z by 0.1 to check that it correctly works, now you can begin leveling the plate, simply move the toolhead around, and screw or unscrew until the light of the sensor turns on...this time it takes really no time to check if the bed is really leveled!
EDIT ON 31 MAY 2018:
i added a version 2 of the holder, if in need to thighten the screw or if in need of an inductive sensor type.
Remember that in the inductive sensor type you MUST use the diode and control if the voltage is near to zero in the black wire, before connecting it to the board!
Print Settings
Printer:
CTC Bizer
Rafts:
No
Supports:
No
Resolution:
150 microns
Infill:
50%
Notes:
Everything should come out good, there is no need to raise the infill, the object is really resistant as it is.
You can print it in ABS or PLA, it doesn't really matter, since the position is not subject to high temperatures that could deform it. Exception should be taken for the HOLDER CLIPS, just use 100% infill, as 50% maybe could create a weakness in the system (and a weak spot)
The GCODE for using the sensor is below (for simplify3d, but it requires very little modification for other slicers), please, keep in mind that I have placed the old switch as a Z-MAX endstop (instead of above, it will stop the plate below, photo is attached), so you will need to do so accordingly.:
;RIGHT EXTRUDER
; Replicator 1 dual start.gcode
M73 P0 ; Enable build progress
G21; set units to mm
G90 ; absolute positioning
G162 Z F3000 ; Home Z maximum
G28 X Y ; Home X Y maximum
G92 X0 Y0
M140 S[bed0_temperature] T0 ; Heat buildplate
M134 T0 ; Stabilize bed temperature
M104 S180 T0 ; Heat right extruder
M104 S70 T1 ; Heat lightly left extruder
M133 T0 ; Stabilize right extruder temperature
M133 T1 ; Stabilize left extruder temperature
M104 S0 T1 ; cool down left extruder
G0 X-45 Y-15; estrema destra in fondo punto di calibrazione ZERO prende offset primario di asse Z
G161 Z F800
G92 Z-5 ; Set Z to 5
G4 P20000 ; 20 seconds wait, before beginning, to stabilize ambient temps
G1 Z0
G161 Z F50 ; Home Z maximum slowly
M132 Z ; Recall home offsets for Z
G1 Z10
G28 X Y ; Home X Y maximum
M132 X Y A B ; Recall home offsets for everything but Z
G1 X-80 Y65 Z10 F2000 ; Prima posizione di calibrazione
G161 Z F100
M131 A ; prima posizione memorizzata
G1 X100 Y-10 Z10 F2000 ; Seconda posizione di calibrazione
G161 Z F100
M131 B ; seconda posizione memorizzata
G1 X-70 Y-10 Z10 F2000 ; Terza posizione di calibrazione
G161 Z F100
M131 AB ; Terza posizione memorizzata
M132 AB ; avvio del livellamento automatico
M135 T0 ; Load right extruder offsets
G1 X-120 Y-75 Z30 F9000 ; Move to wait position off table
G130 X20 Y20 Z20 A20 B20 ; Lower stepper Vrefs while heating
M126 S[fan_speed_pwm] ; Set fan speed
M104 S[extruder0_temperature] T0 ; Heat right extruder
M133 T0 ; Stabilize right extruder temperature
G130 X127 Y127 Z40 A127 B127 ; Default stepper Vrefs
G92 A0 B0 ; Zero extruders
G1 X100 Y-75 F9000 ; Move to front right corner of bed
G1 Z0.4 F6000 ; Move down to purge
G1 X-90 Y-75 E24 F2000 ; Extrude a line of filament across the front edge of the bed
G1 X-100 Y-75 F180 ; Wait for ooze
G1 X-110 Y-75 F5000 ; Fast wipe
G1 Z0.2 F100 ; Lift
M73 P1 ;@body (notify GPX body has started)
; end of start.gcode
;LEFT
; Replicator 1 dual start.gcode
M73 P0 ; Enable build progress
G21; set units to mm
G90 ; absolute positioning
G162 Z F3000 ; Home Z maximum
G28 X Y ; Home X Y maximum
G92 X0 Y0
M140 S[bed0_temperature] T0 ; Heat buildplate
M134 T0 ; Stabilize bed temperature
M104 S180 T1 ; Heat left extruder
M104 S70 T0 ; Heat lightly right extruder
M133 T1 ; Stabilize left extruder temperature
M133 T0 ; Stabilize right extruder temperature
M104 S0 T0 ; cool down right extruder
G0 X-45 Y-15; estrema destra in fondo punto di calibrazione ZERO prende offset primario di asse Z
G161 Z F800
G92 Z-5 ; Set Z to 5
G4 P20000 ; wait 20 seconds before beginning, to stabilize ambient temperature
G1 Z0
G161 Z F50 ; Home Z maximum slowly
M132 Z ; Recall home offsets for Z
G1 Z10
G28 X Y ; Home X Y maximum
M132 X Y A B ; Recall home offsets for everything but Z
G1 X-80 Y65 Z10 F2000 ; first position for calibration
G161 Z F100
M131 A ; first position saved
G1 X100 Y-10 Z10 F2000 ; Second position for calibration
G161 Z F100
M131 B ; second position memorized
G1 X-70 Y-10 Z10 F2000 ; Third position for calibration
G161 Z F100
M131 AB ; Third position mem
M132 AB ; begin auto leveling
M135 T0 ; Load right extruder offsets
G1 X-120 Y-75 Z30 F9000 ; Move to wait position off table
G130 X20 Y20 Z20 A20 B20 ; Lower stepper Vrefs while heating
M126 S[fan_speed_pwm] ; Set fan speed
M104 S[extruder1_temperature] T1 ; Heat left extruder
M133 T1 ; Stabilize left extruder temperature
G130 X127 Y127 Z40 A127 B127 ; Default stepper Vrefs
G92 A0 B0 ; Zero extruders
M135 T1 ; Load left extruder offsets
G1 X-100 Y-68 F9000 ; Move to front left corner of bed
G1 Z0.4 F6000 ; Move down to purge
G1 X90 Y-68 E24 F2000 ; Extrude a line of filament across the front edge of the bed
G1 X100 Y-68 F180 ; Wait for ooze
G1 X110 Y-68 F5000 ; Fast wipe
G1 Z0.2 F100 ; Lift
G92 A0 B0 ; Zero extruders
M73 P1 ;@body (notify GPX body has started)
; end of start.gcode
;BOTH EXTRUDERS
; Replicator 1 dual start.gcode
M73 P0 ; Enable build progress
G21; set units to mm
G90 ; absolute positioning
G162 Z F3000 ; Home Z maximum
G28 X Y ; Home X Y maximum
G92 X0 Y0
M140 S[bed0_temperature] T0 ; Heat buildplate
M134 T0 ; Stabilize bed temperature
M104 S180 T1 ; Heat left extruder
M104 S180 T0 ; Heat right extruder
M133 T1 ; Stabilize left extruder temperature
M133 T0 ; Stabilize right extruder temperature
G0 X-45 Y-15; extreme right, the farest calibration point, the zero, that sets also z home offset
G161 Z F800
G92 Z-5 ; Set Z to 5
G4 P20000 ; wait 20 seconds before beginning, to stabilize temps
G1 Z0 ; Move Z to 0
G161 Z F50 ; Home Z minimum slowly
M132 Z ; Recall home offsets for Z
G1 Z10 ; move z to 10
G28 X Y ; Home X Y maximum
M132 X Y A B ; Recall home offsets for everything but Z
G1 X-80 Y65 Z10 F2000 ; first calibration point
G161 Z F100
M131 A ; first point saved
G1 X100 Y-10 Z10 F2000 ; Second calibration point
G161 Z F100
M131 B ; second point saved
G1 X-70 Y-10 Z10 F2000 ; third calibration point
G161 Z F100
M131 AB ; third point saved
M132 AB ; autoleveling init
M135 T0 ; Load right extruder offsets
G1 X-120 Y-70 Z30 F9000 ; Move to wait position off table
G130 X20 Y20 Z20 A20 B20 ; Lower stepper Vrefs while heating
M126 S[fan_speed_pwm] ; Set fan speed
M104 S[extruder0_temperature] T0 ; Heat right extruder
M104 S[extruder1_temperature] T1 ; Heat left extruder
M133 T0 ; Stabilize right extruder temperature
M133 T1 ; Stabilize left extruder temperature
G130 X127 Y127 Z40 A127 B127 ; Default stepper Vrefs
G92 A0 B0 ; Zero extruders
G1 X100 Y-70 F9000 ; Move to front right corner of bed
G1 Z0.4 F6000 ; Move down to purge
G1 X-90 Y-70 E24 F2000 ; Extrude a line of filament across the front edge of the bed
G1 X-100 Y-70 F180 ; Wait for ooze
G1 X-110 Y-70 F5000 ; Fast wipe
G1 Z0.5 F100 ; Lift
G92 A0 B0 ; Zero extruders
M135 T1 ; Load left extruder offsets
G1 X-100 Y-68 F9000 ; Move to front left corner of bed
G1 Z0.4 F6000 ; Move down to purge
G1 X90 Y-68 E24 F2000 ; Extrude a line of filament across the front edge of the bed
G1 X100 Y-68 F180 ; Wait for ooze
G1 X110 Y-68 F5000 ; Fast wipe
G1 Z0.2 F100 ; Lift
G92 A0 B0 ; Zero extruders
M73 P1 ;@body (notify GPX body has started)
; end of start.gcode
Post-Printing
Sensor Type: LJC12A3-5-Z/BX (at amazon for a few bucks)
Other things needed, a normal DIODE (for safety reason) and a 10k Ohm resistance, please assure that the diode is a normal one, not a ZENER diode.
This sensor has three wires (check wiring anyway):
BLACK -> Signal for the printer
BLUE -> NEGATIVE (-)
BROWN -> POSITIVE (+)
The operating voltage for the sensor is minimum 6 volts, so the 5 volt from the board will not suffice, you have to pick the voltage directly from the transformer, that outputs 24v (it's in the operating range of the sensor, that can take even above 30volt).
Since the output of the sensor could be more than 5 volt, depending on the sensor, we have to do the things this way (to make a direct discharge to ground, not a floating on&off), and to prevent damage to the printer mainboard:
- connect positive and negative to the transformer;
- pick the diode and solder the cathode (- don't reverse it or it won't work! go to wikipedia if you're looking for help) in the black WIRE (signal from the sensor, this signal normally outputs 3v if open, goes to ground if closed), on the anode solder the resistance and on the other side of the resistance solder a wire that will go on the Z-MIN of the printer, on the +5v (read mightyboard specs if in doubt, the voltage pin is marked usually red on the wire that connects to the switch), always on the anode you have to solder another wire that will go to the opposite pin of the +5v of the Z-MIN (signal, usually yellow wire for the switch on the already connected OLD pin), the other two central pins will remain free and won't be used anymore...
IF you have problems, see the attached hand written scheme in the files.
The scheme can be explained as this:
5volt will go to the signal, the voltage from the sensor will be blocked by the diode (check always with a digital multimeter BEFORE connecting to your board!), so you have, through the resistance, a signal for open circuit, when the sensor activates, you have something near ZERO volt, indicating that the circuit is closed, the resistance is only there to avoid the short circuit, thus avoiding to damage the board and lower the power, causing possibly a shutdown of the printer.
you can pack all of this inside a heat shrink tubing...now you're done!
Etiquetas
Fuente del modelo
