Close

Hole Center Finding

A project log for Sand/Powder/Clay Printing

Experiments with Sand, Powder and Clay Printing + Firing in a Furnace

dominik-meffertDominik Meffert 05/13/2020 at 00:140 Comments

Because the printer should work with different crucible sizes to save time on smaller objects and because the printer has to know the exact limits of the build area it will use a probe to detect the exact position of the crucible center to use it as origin.

For doing so I connected a sheet metal plate on the top of the buildplate and the nozzle to the Z_MIN pin. Fortunately the crucible, that I'm using is made of graphite which is conductive, what makes probing it with the nozzle possible. It is necessary for printing and center finding, that the inside has a precise cnc milled U shape instead of a coarse V shape.

For finding the right point for start printing I use the following startcode:

G28                 ; home all axes
G1 X100 Y100        ; move to buildplate center
G1  Z150            ; lower Z

G90                 ; absolute
G38.2 Y150          ; probe Y+
G91                 ; incremental
G1 Y-1              ; for trigger open
G90                 ; absolute
G60 S1              ; save Y+
G38.3  Y50          ; probe Y-
G91                 ; incremental
G1 Y1               ; for trigger open
G90                 ; absolute
M92 Y40             ; set half the steps 
G61 Y S1            ; move back only half the distance
M92 Y80             ; back to normal

G90                 ; absolute
G38.2 X150          ; probe X+
G91                 ; incremental
G1 X-1              ; for trigger open
G90                 ; absolute
G60 S1              ; save X+
G38.3  X50          ; probe X-
G91                 ; incremental
G1 X1               ; for trigger open
G90                 ; absolute
M92 X40             ; set half the steps 
G61 X S1            ; move back only half the distance
M92 X80             ; back to normal

G38.2 Z0            ; probe Z-
G92 X0 Y0 Z0        ; set origin

In the Configuration_adv.h the following lines need a change:

#define SAVED_POSITIONS 2 //change 1 to 2
#define G38_PROBE_TARGET //uncomment

There is also a known bug on the G38 command which makes it necessary to set the probe pin in the Configuration.h, to get the probe to trigger on contact (Tested with Marlin 2.0.5.3). Do it with:

#define Z_MIN_PROBE_PIN 18 //use your Z_MIN pin

Discussions