You are on page 1of 11

3DTouchAutoLevelingSensor

FromGeeetechWiki

Contents
1Introduction
2Feature
3Specifications
4Wiring
5Dimension
6Useof3DTouch
6.1Mechanical
6.2Electrical
6.3FirmwareSetting
6.4Testing
6.5Printersetting
6.6Calibration
6.7wheretobuy

Introduction

3DTouchisanautolevelingsensorfor3DPrintersthatcanpreciselymeasurethetiltofyourprintsurface.3DTouchcangreatlyimprovetheprintingprecisionofyour3DPrinter.

3DTouchfeaturessimple,smartandprecise.Itcouldworkwithnearlyanykindofbedmaterials,suchasglasses,woods,metalsandsoon.Themainfunctionsandcontrolsof3DToucharethesameasmostautobedleveling
sensors,whichconsistsofaRCservoandamicroswitch.Thus,3DTouchcanbeusedonalmostevery3Dprintercontrolboard.

Byusingprogressivelydesignedsolenoidandhallsensor,3DTouchcanintegratehighprecisioninsuchasimplestructure.Tomakeitmoreuserfriendlyandtobringyoumoreenjoyableprintingexperienceweaddmany
smartfunctionssuchasselftest,falsealarm,alarmreleaseandtestmodeforM119.

Feature
1Simple

3DTouchcanbeeasilyapplied,sinceithasasmallandsimplestructure.Gatheringinformation&firmwaresettingwillbeaneasytask,because3DTouchworksasusualautobedlevelingsensor.

2Smart

Selftest:ThepushpinisoperatedthreetimestotestwhenthepowerisonAlarm:TheLEDlightblinksifaproblemfoundonaselftestoronanoperation

3Highprecision

3DTouchsStandardDeviationinrepeatabilityisaround0.005mm,atthatprecise.Ifyouchoose3DTouch,your3Dprinterwillbehighclassmasterpiece,givingyouanenjoyableexperience.

4.InnovativeSolenoid:UltraPowerSaving

Onidlestate,whilethepushpiniswhetherpulledoutorretracted,therearenotanyelectriccurrentflowingonsolenoid,andstandbyelectriccurrentinthewholedeviceisbelow15mAonaverage,whereasonworking
state,whilethepinismovinginsuddenabout100ms,under300mAflowsinthedevice.Lowpowerconsumptionevenfurtherdropsjouleheating,preventingfromheatproblem.

5Technologies

3DTouchconsistsofAtmelATtiny13A,solenoid,andapushpin.

6wideSelectionofBed

3DTouchdoesnotuseseitheroptical,norproximity(inductive/capacitive)sensor.3DTouchiscontrolledbyHallEffect,providinghighprecision.Thusthebedmaterialcanbeselectedfreely.

7Optimizedstructure:LargerBuildSize

3DTouchisasmallandtechnologyintensiveone.Buildsizecanbesetlargerthanotherexistingautobedlevelingsensor.3DTouchusesexistingRCServomotorsignalintactly,sojustplug3DTouchonthesamepinsafter
removingservomotor.

Specifications
Voltage:5V

Current:15mA

Max.Current:300mA

Cablelen3Dh:150mm

Weight:10g

Wiring
3pin:Brown(,GND)Red(+5V)Orange(controlsignal)

2pin:Black(,GND)White(Zmin)

Dimension
Useof3DTouch
Mechanical
Youwillneedasuitablemounttoattachthe3DTouchsensortoyourprinter.

Hereisa3DTouchsensormountforGeeetechPrusaI3proB,proCandApro.

1.Downloadthestlfilehere(http://www.geeetech.com/wiki/images/6/61/3DTouch_auto_leveling_sensor1.zip)andprintone.

2.FixthemountontheExtruderholderwith2M3*6mmscrew.

3.Fixthe3DTouchsensoronthesensormountwith2M3*16mmscrewsand2M3nuts.

Thingiversealsohasmountsformanyotherprintertypes.here(http://www.thingiverse.com/search/page:2?q=BLTouch&sa=)aresomeexamples

Example1

Example2
Themountneedstobeadjustablesothatthedistancebetweenthebottomofthesensor(notthepin)needstobe8.3mmabovethetipofthenozzle.Thesensorshouldalsobeatleast15mmawayfromthehotbits.

Electrical
The3DTouchAutoLevelingsensorhas5wires,3forthefirstservoconnectionand5vand2fortheZminendstop,negativeandsignalpins.

3DTouchcanbeoperatedinthefollowingcondition.

OneI/Oforcontrol(PWMorSoftwarePWM)

OneI/OforZmin(ZProbe)

GNDand+5Vpower

let'stakeourgeeetechGT25603DPrintercontrolboardasanexample.

Thereareseveralwaystoconnectthe3DTouchAutoLevelingsensortoGT2560,hereistheeasiestway.

step1.RemovetheZmaxconnectorfromtheboardandreplaceitwitha3PinStraightPin.Youneedtousesolderingironhere.

step2.UseDupontwiretoextendthewiresof3DTouch.Itdoesn'tmatterifyoucannotfindthewireswiththesamecolor,butdonotmixthewiresup.

step3.ConnecttheextendedwiretotheGT2560controlboard.

Connectthe3pinwiretotheZmaxpin.

3pin:Brown(,GND)Red(+5V)Orange(controlsignal)
Connectthe2pinwiretotheZminpin.
Notethewireorder.

Whenusing3DTouchAutoLevelingsensor,youdonotneedtoconnecttheorignialZminendstopwires.

That'sallforthewiringofthe3DTouchAutoLevelingsensorandGT2560.

3DTouchAutoLevelingsensorcanaslobeusedtoother3Dprintercontrolboard.Forexample:

Ramps1.4

Rumba

FirmwareSetting
Changesneedtobemadefortheconfiguration.hfileintheMarlinsourcecodefor3DTouch.Therequiredchangesaresimilartohowyouwouldsetupamechanicalservosensor.
Step1.OpenyourfirmwareinArduinoIDE.FindthefollowingcodeinConfiguration.h:Modifythecodeintheredboxinto:

//Numberofservos

//

//Ifyouselectaconfigurationbelow,thiswillreceiveadefaultvalueanddoesnotneedtobesetmanually

//setitmanuallyifyouhavemoreservosthanextrudersandwishtomanuallycontrolsome

//leavingitundefinedordefiningas0willdisabletheservosubsystem

//Ifunsure,leavecommented/disabled

//

#defineNUM_SERVOS1//Servoindexstartswith0forM280command

//ServoEndstops

//

//Thisallowsforservoactuatedendstops,primaryusageisfortheZAxistoeliminatecalibrationorbedheightchanges.

//UseM206commandtocorrectforswitchheightoffsettoactualnozzleheight.StorethatsettingwithM500.

//

#defineSERVO_ENDSTOPS{1,1,0}//ServoindexforX,Y,Z.Disablewith1

#defineSERVO_ENDSTOP_ANGLES{0,0,0,0,10,90}//X,Y,ZAxisExtendandRetractangles

Step2.FindthecodesregardingtoBedAutoLevelinginConfiguration.h.

//=============================BedAutoLeveling=======================

#defineENABLE_AUTO_BED_LEVELING//Deletethecommenttoenable(remove//atthestartoftheline)

1.defineZ_PROBE_REPEATABILITY_TEST//Ifnotcommentedout,ZProbeRepeatabilitytestwillbeincludedifAutoBedLevelingisEnabled.

1.ifdefENABLE_AUTO_BED_LEVELING

1.defineAUTO_BED_LEVELING_GRID

1.ifdefAUTO_BED_LEVELING_GRID

//settherectangleinwhichtoprobe

#defineLEFT_PROBE_BED_POSITION30

1.defineRIGHT_PROBE_BED_POSITION200

1.defineBACK_PROBE_BED_POSITION147

1.defineFRONT_PROBE_BED_POSITION20

Step3:scrolldowntofindthecodestoDefinetheprobeoffset

#defineAUTO_BED_LEVELING_GRID_POINTS2

1.else//notAUTO_BED_LEVELING_GRID

1.defineX_PROBE_OFFSET_FROM_EXTRUDER6
2.defineY_PROBE_OFFSET_FROM_EXTRUDER43
3.defineZ_PROBE_OFFSET_FROM_EXTRUDER1.4

Step4.Findthefollowingcodeinpins.hIfyoudonotfindthepins.htabonArduinoIDE,pleaseopenitseparately,afterthemodification,pleasesaveit.

Findthecodeasshownintheredbox:

/*****************************************************************

Ultimakerpinassignment
1.ifMB(ULTIMAKER)
2.defineKNOWN_BOARD

#defineZ_MAX_PIN1//32

1.defineZ_ENABLE_PIN35

1.defineSUICIDE_PIN54//PINthathastobeturnedonrightafterstart,tokeeppowerflowing.

#defineSERVO0_PIN32//13//untested

Now,wehavefinishedthefirmwarepleaseuploadthemodifiedfirmwaretoyourcontrolboard.

Testing
Whenthe3DTouchisfirstpoweredupitdoesaselftestStartingwiththepinupitthemgoesdown/up3timesandendsupthetheLEDonsolid.Continuousflashingmeansthatthereisanobstructionorfault.

The3DTouchactsonthefollowinggcodethatcanbeusedmanuallytodiagnosefaultsetcbutyoudontneedtonormallyworryaboutthem.

M280P0S10pushesthepindown

M280P0S90pullsthepinup

M280P0S120Selftestkeepsgoinguntilyoudopinup/downorreleasealarm

M280P0S160Releasealarm

AlarmThe3DTouchcansensewhensomethingiswrongandthengoesintoalarmmodewhichiscontinuousflashing.Alarmcanbetriggeredlikeanobstructionthatstopsthepingoingupanddownfreely,itcouldbedirt
etc.

Printersetting
Providingthefirmwareiscorrectlyconfigured,thesensorrespondstothesamecodesasanyothersensoreginductive,capacitiveorIR.TheStartCodeinyouslicershouldcontainthesequenceG28followedbyG29todo
theautobedlevelling.

DontputanotherG28aftertheG29asitwilljustremovetheG29results.

OpenSlicer>printersetting

AddG29commandrightafterG28

DontputanotherG28aftertheG29asitwilljustremovetheG29results.

TheG29commandshouldbeaddedeverytime.

Here(https://www.youtube.com/watch?v=DxAVV_8r3p4)isavideoofusingthe3DTouchAutoLevelingSensoronGeeetechPrusaI3proB3dprinter.

Calibration
TheseinstructionsarewrittentoexplainhowtocalibrateusingacomputerconnectedthroughtheUSBporttoyourprinter.ThisprocessalsoassumesthattheEEPROMhasbeenenabledinMarlin.

FromthecommandwindowofRepetierHostorSimplify3Detcenterthefollowing:

M851notethenumber
M851Z0settheoffsettozero

G28

G1Z0

TheLCDdisplayshouldshowZ=0

FromthedisplaygototheMenuthenPrepare/Moveaxis/0.1mm/MoveZ

NowmovetheZaxisslowlydownuntilthenozzleistherightdistancefromthebuildplate(foldedpieceofpaperorthincard).

*NotetheZaxisvalueonthedisplayitshouldbesomethinglike1.5

M851Z1.5tosettheoffsetyougotinthepreviousstep.

M500StoresthevaluesinEEPROMsothatitisnotresetwhenyoupowertheprinteroffandon.

Nowyouarereadytoprint.

Ifyoufindthatyouneedtoincreaseordecreasethegapthendo:

M851Z1.4thiswouldmakethegapbiggeror

M851Z1.6thiswouldmakethegapsmaller

M500tosavethevaluetoEEPROM

*Rememberthe1.4,1.5and1.6arejustexamples,yourswillbedifferent.

wheretobuy
geeetechofficialonlinestore(http://www.geeetech.com/3dtouchautolevelingsensorfor3dprinterp1010.html)

Retrievedfrom"https://www.geeetech.com/wiki/index.php?title=3DTouch_Auto_Leveling_Sensor&oldid=7914"

Thispagewaslastmodifiedon25October2016,at00:05.
Thispagehasbeenaccessed37,234times.