SO Happy: Finished First Attempt at Antique Reproduction

I posted Periodic Calibration Loss / Z - axis randomly lost steps in middle of a loooong cut a few days ago about my current carving project: here is an update on what happened next:


It turned out that I was losing steps because the two little nuts that hold the gear head to the top of the z-motor cam had wormed their way lose, and when the cam turned the gear was slipping. Once I figured that out, and go them tightened down, magic was ready to happen again:

I used an 1/8" ball mill for the finishing pass. The model is built in fusion 360, using easel as a gcode sender. The toolpath for the clearing passes was a straight 3d pocket clearing, but for the finishing path it was a morphed spiral. All I can say is WOW! here is another view:

when you are mostly doing flat clearing work, as I have been doing, you do not really get a chance to see the x-carve move in all 3-axis at once while cutting or smoothing a complex shape. Watching it do so, while maintaining the tool contact so precisely, was actually thrilling. It made all of the effort to get to that point worthwhile.

Some lessons learned and things I will be thinking about:

The projects I am working on are weird in that they involve very complex mesh shapes being milled into irregular stock. Just getting the stock defined well enough to generate a toolpath is difficult. Then you have to mount the stock into a table that accommodates very deep-z material so it matches the x/y of the toolpath, which is a bit of an adventure in itself:


Finally you have to define a zero that you can come back to repeatedly as the clearing and finishing take place over multiple passes:

here you can see the bit set up for zero: I deliberately set the point on the stock in the single place on the stock that would not be carved and would be left as waste. On the last finishing pass I lost the Zero point, as it snapped off to accommodate the milling head, which ended the milling passes as I no longer had the ability to set zero.

so the thought is to try to set up some other way of defining/recording zero so I can find it again even as I mill the entire surface and lose the physical point. The constraints are that using easel does not allow independent setting of x/y/z: you can only set ‘zero’ once for all three. Also, with a split top table and arbitrary stock placement, a touch plate sort of approach seems like it might not work. I’m literally wondering if I could solve this with a couple of intersecting laser beams. More to follow as I work it out.

Stock Definition
As noted, the stock I am cutting into is non-standard. In this case it is literally a piece of firewood. To define it so I could generate a toolpath, I used Autodesk 123d catch to generate a mesh model.


setup for head in piece of wood

I then had to size the mesh in Fusion 3d so it was the right size to embed the face model into. Turns out I was not too precise in this, but pretty close. There was about 10mm of air cutting happening on either side of the x as the toolpath was written against a stock model that was slightly too big. I did not mind this as it meant that I cut cleanly off the edge of the stock as I had wanted, but it reminded me I need a better tool to generate this mesh model for the stock with and will be looking into that further.

Feeds and Speeds
At one point I had to edit the gcode so I would not have to sit through an hour or two of air cutting to get back to a point where I have been interrupted. It turned out I edited the file down too far: I turned on the mill and watched as it went into the stock and carved a 5 mm deep path straight through part of it at 1500 mm/min. Again, WOW!. I had NO IDEA it could do that: I was still playing with 1mm and 2 mm stepdowns. The notion a high speed pass through the stock like that had never crossed my mind: I thought the x-carve would either stall or snap the bit. So I learned it is stronger than it looks, and more capable than I thought.

so between the model being a first try, the stock being defined very imprecisely, the placement of the stock being somewhat haphazard, and then the multiple passes and technical issues I encountered, the idea I would be at all successful seems very sketchy. The fact it came out as well as it did seems a minor miracle.

some references, just to close this note about this project off:


the message threads that have helped me learn what I needed to know to complete this first project:

and on autodesk:

Finally: thanks to everyone here for your help in pulling this first project together.
You’ve ALL been really awesome, I’ve learned so much, and I feel like I really graduated from school today because of all your help and support. Thank you so much for everything.


nice work



That’s really cool. For zeroing, look into incorporating a homing cycle and G28 with a touch plate.

@NathanButler please help me with this

I understand this to work this way:

  1. I implement homing switches, which give me an absolute never changes home point
  2. I G28 to allow me to go there to set home
  3. I place my work stock so the work zero point is in a known position in relation to the home location
  4. This allows me to then home and determine zero without having to preserve the physical zero location

DO I have this correct?
If so, the challenge becomes the fact that when I place my arbitrary and irregular stock in an arbitrary location,
I need a way of offsetting the gcode so it knows where the zero point is in relation to home.
When I jog the x-carve in easel it does not display coordinates,
so I have no machine way of establishing this in easel.
UGCS does show location, so in theory I could set up homing, jog in UGCS, establish the zero point relationship, and then run the toolpath generator and import that into easel…

Is the sort of workflow that would work?

Using firewood gives a new meaning to “burning man!”

Great to see a unique 3D project. I may want to pick your brain about set up.

@DanBrown explained the homing switches to me this way:

"G28 is a really simple concept, but it REQUIRES homing switches to
work. Basically, when your machine starts up, it has no idea where the
tool is in the working volume. It could be down in the lower left, it
could be up on the right side somwhere, it has no clue. So what it
does, with homing switches, is move it slowly forward, up and left until
it trips the switch on each axis. Once each switch is tripped, it
knows exactly where the head is. That position is “machine zero.”
There are two different “zeros” that matter here. “Machine Zero” and
“Work Zero.” Machine Zero is, as I mentioned, where the machine homes
to. Work zero is something you TELL the machine, that is where your
G-code is calculated from. That does not have to be in the same place
as machine zero. Just because machine zero is in the lower left, you
could have your work zero set wherever on the working volume you want.

With that in mind, all G28 is is a specific spot in space, related to MACHINE ZERO. Not work zero.
So G28 will always be related to the zero position the machine finds
when it homes. That is an incredibly handy thing! If you home your
machine, jog the head to any place in the work volume you like, and send
code “G28.1” from the console (that sets where your G28 position is),
then any time in the future that you call out “G28” (note the lack of
the .1 after it) then the machine will go DIRECTLY to that position.
Why is this handy? Because that means you can set up fixturing on your
wasteboard (an X and Y stop are excellent) then jog your machine to line
up your zero just like you would for a normal carve. Raise the Z to
near the top, and send G28.1. Now, any time you turn your machine on,
all you have to do is home it, then send G28, and it will zip right over
to PERFECT zero alignment! You don’t have to ever set a zero for your
work corner again! All you have to do is put in your tool, set your
Z-zero (I use a touch plate, but whatever method you like will work just
fine) and start your cut. By default, Fusion 360 sends your tool to
G28 at the beginning of every operation, and at the end of every
operation. That means it will always return to a safe spot, as long as
you set it properly to begin with. If you set it near the top of the Z
range, it will also mean it’s just in the right place to change tools!
Be warned, the tool will go straight to that position after the end of the cut, make sure
your clamps or work-holding pieces are not between that spot, and G28!
It has no way of knowing if there’s stuff in the way, and will happily
plow the cutter right into a clamp if you don’t keep that in mind!"

I hope this helps.

Several questions here.
Assuming I am using Easel and not UGCS:

  • my work zero is arbitrary for each project. This implies I need to reset g28.1 for each project, after I set work zero, so they align?
  • I have no way of setting g28.1 in easel?
  • Easel asks me to set x/y/z zero in a single step. so how w/could a touch plate work?

Happy to have you pick my brain. Let me know when and how you want to do it.


That just means you can’t use G28 to eliminate the need to zero, Malcom. It doesn’t replace your work zero, or mean you can’t use a separate work zero. Basically all I’m describing there is putting G28 directly at a standard spot, and using fixturing to make sure that your work zero aligns exactly to that spot. That way, you KNOW that your work zero is exactly at the place that G28 runs to, and you can just tell it to zero out right there, since you know that spot and your work zero are coincident.

As long as G28 is in a safe place, you’re fine to leave it wherever you like, and zero the same way you always do, since it runs off of machine zero, not work zero. A good option if you’re not using a clamping fixture or fixed X and Y guides might be to just have it in the lower-left corner, with the Z raised to near the top. Basically, the position it homes to. Then it will go there at the beginning of a program, and at the end of a program. That is an easy spot to change bits anyway, so it’d probably work pretty well. REMEMBER YOUR CLAMPS! The machine will go straight from safety height above your workpiece after the last cut in the program to wherever you have set as your G28 location, and if there is a clamp or something sticking up between those two points, your tool will crash right into it. Not really a problem, just something to keep in mind when setting up your hold-down methods.

I’m not entirely sure how you’d go about it in Easel, since you don’t have a console available to send code directly as far as I know… That’s actually one of the reasons I use ChiliPeppr.

I get it.

In easel after you set work zero it prompts you to raise the bit. After the carve it returns the bit to that raised position. The behavior implies it has set g28 there.

Looks like you really strengthened her up, what do you cut most of the time?