4 months by cncdivi

We’re on the 11th installment of our series that focuses on Principles of Lean Manufacturing.

TooManyWrongMistakesPoka-Yoke is a Japanese term meaning “mistake proofing.”  A poka-yoke is any mechanism or technique in a lean manufacturing process that helps the operator avoid (yokeru) mistakes (poka). In so doing, poka-yoke seeks to eliminate or at least minimize defects that are due to human errors.

We see many good examples of poka-yoke in the everyday world around us.  For example, your car may have interlocks that require you to have your foot on the brake pedal or depress the clutch before it will start.  Many types of cable are designed so they can only be plugged in one way, ensuring the proper connection.

It isn’t hard to go from those examples to manufacturing and imagine how poka-yoke might be applied.  For example, when designing a fixture, if the orientation of the part on the fixture matters, we want to design the fixture so the part will only fit that one correct way.

Types of Poka-Yoke

Poka-Yoke was originated in the 1960’s by Shigeo Shingo.  He recognized three types of pola-yoke for detecting and preventing errors in a mass production system:

  1.  The contact method identifies defects by testing the product’s shape, size, color, or other physical attributes.  Suppose we want to avoid placing a part upside down in a fixture for a second operation.  If the part is asymmetrical, a simple pin that protrudes into air when the part is correctly oriented but that blocks the part if it is upside down provides a contact method poka-yoke.
  2.  The fixed-value (or constant number) method alerts the operator if a certain number of movements are not made.  Counters of various kinds can be used to implement fixed-value poka-yokes.  For example, if you put together a complex assembly using a kit containing exactly the right number of fasteners and you have fasteners left at the end (hopefully not those scary grade 8 ones!) you know the assembly has a problem.
  3. The motion-step (or sequence) method determines whether the prescribed steps of the process have been followed.  Color coding and tagging are common motion-step poka-yokes that are inspected to ensure that critical prior steps were performed before the current step can be executed.

In other words, did we do it with the right thing the right number of times in the right order.  Ideally, the poka-yoke prevents the error altogether by the nature of how it is designed (remember the fixture where the part can only be put on the fixture in one orientation), but failing that the poka-yoke must warn if the error occurs.

DFM for Poka-Yoke

The best poka-yoke is a design that eliminates the need for poka-yoke.  Take our part that must not be placed in the fixture upside down.  What if there was a way to make the process immune to whether the fixture was upside down in the fixture?  We could either redesign the part to be more symmetrical or we might automatically sense that it is upside down (perhaps with a probe) and via g-code logic force the features to be machined in a slightly different place.  Such a strategy might work well for drilling through holes, for example.

Whenever we change a design to make manufacturing easier or cheaper we are “Designing for Manufacturing“–DFM for short.  It makes sense to design a part so mistakes are less likely too.

Poka-Yoke Examples for CNC

Let’s go over a bunch of specific poka-yoke examples for CNC just to get the ideas flowing.

  • Avoid the wrong tooling.  How does your shop make sure the correct tools are installed for job?  This is certainly a good opportunity for poka-yoke.  One can imagine many possibilities.  A very highly automated solution for a job that is run many times might include bar code reading the tooling as it is installed in the changer and verifying all the tools are there based on whether all the barcodes are presented in the correct order.  We’ve talked about various g-code tests that can be applied to verify tooling in our article on 37 things you can do with gcode that your CAM won’t do for you.  You could even do something simple like programming the gcode to bring each tool needed by the program to exactly 2 inches above some reference like a vise jaw.  The operator would be expected to verify with a 1-2-3 block that the tool tip was in the right place.


  • Avoid the wrong fixture or an improperly installed fixture.  This is a great opportunity for probing.  Suppose we require a trammed vise for a particular process.  We can eliminate the need to tram by sweeping the vise jaw with the probe and rotating the coordinate system of the part program in gcode.  Now the operator just has to get the vise on the table in more or less an “eyeball” close enough orientation and things are good to go.  That’s a lot of poke-yoke.  Or, we might probe to ensure certain features are present on a fixture before proceeding.  The orientation of the features would let our g-code even ensure the correct work offsets are in place before we run the actual parts.


  • Ensure GCode is Checked Before Running.  Proving out gcode rather than just firing up a full production run is important.  Often there are problems due to design errors, CAM bugs, and a host of other sources. Many shops require various steps be taken to prove out the gcode.  How can we help automate poka-yoke for such a process?

One approach would be to use gcode variables and macro control structures.  Suppose we assign a standard variable to each step of the process.  Perhaps we want to see the code run in a GCode Simulator, then make sure it “cuts air”, or some other series of steps all the programs in the shop are expected to go through.  At the top of the program create a series of gcode variables that represent the steps.

Perhaps #1000 is the simulator, #1001 is checking the tooling with the 1-2-3 block like we mentioned above, and so on.  Assign the initial value of “0” to each variable at the top of the part program.  This can be done by just copying in a standard block of code to every program or modifying your CAM post to do it for you.

As each step is completed, the operator changes the “0” to another acceptance value, for example “100”.  Code checks each variable and alerts the operator if a prior step was not performed.  If all are good, execution falls through quickly and the part program begins to run.


  • Check all fixture slots are loaded.  This is easily done with a probe, or we can have the operator visually check.  With the optional stop capabilities of many controls, coupled with comments in the gcode, we can arrange for the operator to perform manual tasks such as checking all slots are loaded.  They read the comment, perform the task, and press Cycle Start to go on to the next task.


  • Ensuring proper use of workholding.  Any time workholding is manually operated, the potential exists to apply poka-yoke to achieve better results.  Perhaps your milling vise can make a thin-walled part deflect if it isn’t set to proper torque.  Provide a torque wrench to tighten the vise.  The Repeater from Proclamp is one such device:

The Repeater is designed to allow repeatable torque on milling vises…

  • Ensuring best machining processes are always used.  Suppose your shop has identified some key machining processes it likes to use for best results in specific situations.  Sometimes you can use your CAM software or at least the Post to help implement those processes.  Many CAM packages have templating capabilities that include some level of decision-making.

Perhaps you want to make sure that tapping in aluminum is always done with form taps and never cut taps.  Or perhaps you want threads of a certain size to be done via thread milling rather than tapping.  These are common of the types of things you might do with a template-based (sometimes called Knowledge Based Machining) CAM package.

Here’s another–drilling deep holes can be a bit of a Black Art.  Up to a certain depth you just drill the hole.  Then you need a peck cycle.  Then you need a very special Custom Deep Hole Cycle.  With the right CAM templates, Post, or with suitable custom gcode, you can automate many of those choices to fit your shop’s best practices.  That’s poka-yoke for your CADCAM operator’s work.

We can go on with these examples for quite some while, but you get the idea.

Poka-Yoke Pitfalls

There are cases where a lot of time is spent on poka-yoke only to see it ultimately abandoned for a return to the original methods.  This typically happens because the poka-yoke chosen had pitfalls:

  1. It was too burdensome for the operator making the part.
  2. It was so strict that the machine was spending too much time stopped.
  3. It gave too many false positives that hindered production, or it was so unreliable it stopped production too often.

It’s important to ensure that poka-yoke is reliable, easily diagnosed, and not burdensome if you expect it to achieve its goal of increasing productivity.


Powerful Tools for Poka-Yoke

Sometimes implementing poka-yoke is a matter of designing specials features such as interference pins into your fixtures.  But many of the examples above benefit from two specific technologies that can be endlessly applied to poka-yoke applications in CNC:

  • Probes.  The ability of the machine to reach out and touch its environment makes it possible to automate many things that are otherwise dependent on the operator.


Probes like this one from Renishaw can be extremely useful for implementing CNC poka-yoke…

  • GCode Programming.  The examples above are not going to be implemented in very many cases by CAM.  They’re going to require some custom gcode programming even if you’re going to have your CAM post add the gcode automatically.

Being able to implement poka-yoke in your shop can pay off investments in technologies like probing and gcode very quickly.


Like what you read on CNCCookbook?

Join 100,000+ CNC'ers!  Get our latest blog posts delivered straight to your email inbox once a week for free. Plus, we’ll give you access to some great CNC reference materials including:

  • Our Big List of over 200 CNC Tips and Techniques
  • Our Free GCode Programming Basics Course
  • And more!

Just enter your name and email address below:

Full Name
Email *
100% Privacy: We will never Spam you!

Rate this post

Recently updated on March 11th, 2024 at 09:43 am