Here's an explanation of how I implemented noise margins for the Logical Engine design. Recall that rods have holes for bumps every 0.3125 inches (5/16"), and that the spacing between rods is 1/2" vertically and 0.625 (5/8") horizontally. Also, I am using 1/4" hex standoffs that have the following measurements:

Here's a setup which will illustrate noise margins. The logic here is two inverters, but that doesn't really matter.

The blue bumps are the bit bumps, while the green bumps are the sense bumps. The hexes are aligned so that the pointy end is along the direction of motion.

Here are the measurements of the bottom pair:

The key measurement is the distance between the flat end of the bit bump and the pointy end of the sense bump: 0.0432". The geometry of the second pair is identical, so the same measurements apply. So if the bit bump on rod #1 were to be slid in front of the sense bump...

Then rod #2 will only be able to move that much, 0.0432":

And now, if we slide rod #3, since the bit bump on rod #2 isn't in the way of the sense bump on rod #3, rod #3 can slide the full 0.3125". Or can it?

Zero clearance! So if the sense bump on rod #2 were just a little thinner, rod #2 will move that much more, and then the sense bump on rod #3 will smack right into the bit bump. You might figure that because the sides are sloped with respect to each other, it's not such a big deal: rod #2 gets slid back by the force of rod #3.

But that's not what noise margin is about. The idea is that the bit on rod #2 should **stop short** of rod #3's sense bump's path, so that any noise in the movement will not affect the result.

By making the bit bumps square, we solve this problem:

And so the noise margin for a zero bit is 0.0193". The noise margin for a one bit is, of course, 0.125", being half the width of a bit bump.