We corrected 3.0 mm to 3.175 mm. The calipers read 2.925.

Jerome Privott · · 6 min read

Exploded view of the HC-01 enclosure showing six birch panels sliding into grooved 3D-printed corner posts, with the PCB, fan and sensor above

We corrected 3.0 mm to 3.175 mm. The calipers read 2.925.

The HC-01 humidor controller has a laser-cut Baltic birch shell: six panels that slide into grooves in four 3D-printed corner posts. The groove width is the whole design. Too wide and the panels rattle. Too narrow and they do not go in, and plywood does not compress on demand.

Groove width is derived from one number: how thick the plywood actually is.

We got that number wrong twice before we measured it, and the second time we got it wrong by being careful.

The first assumption

The original spec said Baltic birch is "commonly milled to a true 3.0 mm." That is a real thing people say, it is true of a lot of stock, and nobody had measured anything.

The correction that felt like rigour

Then we caught it. The stock is sold by a US supplier, by the inch, as 1/8". And 1/8 inch is not 3 mm:

25.4 / 8 = 3.175 mm

So we corrected the spec. We wrote down the conversion, noted that the 3.0 mm figure applies to metric-sold stock and is the wrong starting point for a supplier selling in inches, and moved on with 3.175 mm. The arithmetic is correct. The reasoning is sound. You can check the division yourself.

Every downstream dimension was rebuilt on it. The groove went to 3.605 mm. The crush ridge, the small interference rib that is the only thing retaining a wall panel, was set with its tip at 3.050 mm.

What the calipers said

The birch arrived on 25 August. On 28 August we measured it: six readings across three sheets.

2.85, 2.85, 2.90, 2.95, 3.00, 3.00

mean 2.925    min 2.85    max 3.00    band 0.150 mm

The mean is 2.925 mm. Our carefully corrected 3.175 was off by 0.25 mm, which is larger than the entire spread of the material.

It is European 3 mm metric stock, relabelled into the US market as 1/8". The figure our spec spent a paragraph dismissing was the right one all along.

We had reasoned our way from a correct answer to a wrong one, and the reasoning was not sloppy. That is the part worth sitting with. The exact conversion of a wrong label is still a wrong number.

What cutting on it would have produced

This is not a rounding argument. Here is the fit that was loaded into the released cut files, before the measurement.

A real coated panel measures 2.900 to 3.090 mm. The crush ridge tip sat at 3.050 mm.

Panel thickness Interference against a 3.050 ridge tip Result
2.900 -0.150 no contact
2.995 (the mean panel) -0.055 no contact
3.050 0.000 grazes
3.090 +0.040 touches, against a 0.02 grip threshold

More than half the material band never touches the retaining ridge at all. The average panel misses it by 0.055 mm. The fraction that does grip manages 0.040 mm at the extreme top of the range.

Six wooden panels rattling in oversized grooves, with the one feature designed to hold them reaching for material that is not there. Every one of those panels would have been cut correctly, to a spec that was internally consistent and completely wrong.

What measuring actually bought

Assumed (3.175) Calipered (2.925)
Coated band 3.078 to 3.405 2.900 to 3.090
Groove width 3.605 3.290
Ridge tip 3.050 2.760
Grip margin +0.028 +0.140

Grip improved by a factor of five. Not because anyone redesigned anything, but because the measured band is half as wide as the assumed one, which let the ridge sit in the middle of its legal window instead of 8 microns off the floor of it.

Nothing in this release was a design change made by choice. It is all downstream of four numbers becoming real.

Two things the measurement taught us that we were not looking for

The variation is a property of the stock, not of a sheet. One sheet alone spanned 2.95 to 3.00. The sheet-to-sheet spread was 2.85 to 2.90. The within-sheet variation is as large as the between-sheet variation, so there is no thin sheet to sort out and no per-sheet constant worth carrying. Any panel can come from anywhere in the band regardless of which sheet it was cut from, so every fit has to be built against the whole band.

Birch chars, and char reads as material. Cutting a kerf test coupon, the outer square gave 0.20 mm and 0.17 mm on two axes, agreeing within 0.03 mm. The inner bore gave 0.01 mm. An inner feature has to cut large by the same kerf that an outer feature cuts small, so 0.01 is not a plausible second reading. It is char left in the bore, which a caliper happily reads as solid material. A basswood control coupon gave 0.15 mm from both directions in perfect agreement, which is how we know the disagreement tracks the material and not the machine.

We use 0.20 mm, the conservative end. It is used only for safety checks, minimum feature width and closure limits, and never to size a part, so over-estimating can only reject a feature that would have survived. It can never accept one that will not.

Measure your own stock, it takes twenty minutes

You do not need our project to hit this. Any sheet good sold under an imperial label in a metric world can do it to you.

  1. Caliper at least three sheets, in both directions, and record every reading. Not the mean, the readings. A mean with no readings behind it is a number somebody typed.
  2. Check within-sheet spread against sheet-to-sheet spread. If they are comparable, stop looking for a good sheet and design against the whole band.
  3. Cut a kerf coupon and measure the outside, not the hole. If your inner and outer numbers disagree by more than a few hundredths, believe the outer one and suspect char.
  4. If you are coating, measure the coating on the same board. Caliper one coated area and one bare area of the same piece so the board's own thickness cancels. It is the only way to resolve a 0.03 mm film on an instrument that reads to 0.01.
  5. Derive your constants from the readings in code, so the record and the numbers cannot drift apart.

We took six readings where our own procedure asked for twenty-four, and that is recorded in the file rather than glossed over. 2.85 to 3.00 is a sample range, and the real population probably runs slightly outside it. That is exactly why the ridge was re-centred in its window rather than left at the edge: it buys an allowance for stock outside the range we happened to sample.

The rule

A nominal is what you ordered. A caliper reading is what you have. Only one of them belongs in your CAD.

The failure mode here was not carelessness. It was a well-sourced assumption, correctly converted, confidently documented, and wrong. A stated size is a marketing label that survived a supply chain, and no amount of correct arithmetic performed on it turns it into a measurement.

We build parametric enclosures around real boards at byitl, and the rule that comes out of this one is now enforced in code: the design will not release cut files while its dimensions trace to a nominal instead of a reading.

Related