0% found this document useful (0 votes)
418 views

3DTouch Auto Leveling Sensor - Geeetech

The 3DTouch is an auto leveling sensor that uses a solenoid and hall sensor for high precision bed leveling. It has several advantages: [1] It is simple to use and integrate with printers. [2] It performs a self-test on startup and indicates errors through an LED. [3] It achieves high precision of 0.005mm. [4] The solenoid design uses very little power. Firmware changes and wiring to the control board are needed to implement it. G29 must be added to start gcode to perform auto bed leveling.

Uploaded by

ordam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
418 views

3DTouch Auto Leveling Sensor - Geeetech

The 3DTouch is an auto leveling sensor that uses a solenoid and hall sensor for high precision bed leveling. It has several advantages: [1] It is simple to use and integrate with printers. [2] It performs a self-test on startup and indicates errors through an LED. [3] It achieves high precision of 0.005mm. [4] The solenoid design uses very little power. Firmware changes and wiring to the control board are needed to implement it. G29 must be added to start gcode to perform auto bed leveling.

Uploaded by

ordam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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.

You might also like