Project · 2023 – 2026

Boaz: one machine, built twice

A DIY CoreXY filament printer, built once the way the hobby builds them and once the way a machine shop would. Same design, mostly the same parts. The difference showed up in every part it made.

  • CoreXY
  • Klipper
  • Kinematic bed
  • Belted Z
  • Eddy probe
  • Input shaping
boaz · final configuration
The finished Boaz printer: a two-tier aluminum extrusion frame with gusset plates and a polycarbonate enclosure on top.
Two-tier 20×40 extrusion frame with gusset plates, CoreXY on a carbon-fiber X beam, a three-actuator belted Z, and a folding polycarbonate enclosure.

The question

Why build another printer?

Almost every convention in hobby printing is inherited from RepRap: printed structural parts, idlers on M5 screws, threaded-rod Z, rails aligned by eye. Those choices were optimized for a machine that could copy itself, not for one that could hold a tolerance.

The claim Boaz tests is narrow. The persistent quality gap is not a materials problem and not a kinematics problem. It is a measurement problem, and machine-tool builders solved it a century ago.

The method

The first build is the control

Boaz was built, run in production, diagnosed, and rebuilt. Both builds share the same design, the same kinematics and most of their components. What differs is how well the precision practices were carried out.

Eight criteria were fixed before construction, each with a number and a way to measure it. The comparison class is other machines a reader might build, not a factory product.


Process

From dependency graph to production plates

The finished machine is the last step of eight. Each step below is shown with the drawing, model, analysis or measurement that it produced. Select an image to enlarge it.

  1. Plan

    Map what blocks what

    Before any aluminum was cut, the build was drawn as a dependency graph. The frame blocks the motion system, which blocks every judgement about print quality.

  2. Sketch

    One master sketch

    A CoreXY belt path is a plane figure. Every belt run, idler center and rail line was placed in a single constrained 2D sketch before any solid part existed.

  3. Model

    CAD with real densities

    Every toolhead part carries its true density in the model, so the center of mass can be checked. It sits in the plane of motion: drive force gives translation, not rotation.

  4. Analyze

    Finite elements pick the plate

    Self-weight sag was computed against thickness. A 1/8 in plate sags 18.9 µm; the 5/16 in plate chosen sags 3.0 µm. Doubling thickness divides the error by four.

  5. Prototype

    Mock it up, and learn the limit

    A printed PLA mock-up confirmed what CAD had already answered and misled on the two things that mattered: bearing seats and pin fits.

  6. Fabricate

    Ream, then press

    Holes are hand-reamed to 4.95 mm for 5.000 mm ground pins: 0.05 mm of interference, pressed on an arbor press through jigs that hold each pin square.

  7. Verify

    Indicator against granite

    All twenty pulleys and idlers were measured after pressing. Any assembly reading more than 0.001 in was taken apart and remade.

  8. Run

    Put it to work

    A ten-day, 1,000-part contract at about 50 boxes a day, with roughly 100 plates in a row started without anyone adjusting the first layer.


Method

Five habits borrowed from machine building

01

Sandwich, don't cantilever

Idler stacks are trapped between two sheet-metal plates on machined standoffs. Belt tension then has no post to bend.

02

Reference against granite

The gantry is squared with a machinist square and a dial indicator on a granite plate. Never align a rail against the frame you are trying to correct.

03

Constrain exactly

The bed sits on a three-point kinematic coupling. Tramming becomes a firmware routine run by the bed's own three motors.

04

Locate on dowels

Ground dowel pins pressed into hand-reamed holes, about 0.05 mm of interference on a 5 mm pin, with the runout verified afterwards.

05

Sense, then decide

Eddy-current bed probing, accelerometer input shaping, driver telemetry. Measure the machine before tuning it.

Mechanics, then measurement, then software. Compensation polishes a machine that is already true. It cannot create one.


The machine

Boaz at a glance

Frame

Two-tier 20×40 aluminum extrusion, gusset plates at every corner, and more joints than a strength calculation asks for.

CoreXY motion

Stationary motors and crossed 9 mm reinforced belts on MGN12H rails, with a carbon-fiber X beam.

Triple belted Z

Three geared belt actuators at 1:5 lift the bed. No ballscrews, and the reduction divides the step angle.

Kinematic bed

Cast ATP-5 tooling plate on a three-point Maxwell coupling, trammed by its three motors.

Klipper + TMC5160

Raspberry Pi host, SPI drivers tuned live, and 48 V on the XY pair for torque at speed.

Eddy-current probe

100 × 100 point meshes in minutes, and first layers nobody has to watch.

CPAP part cooling

A remote high-flow blower feeds the toolhead, so cooling costs no carriage mass.

Input shaping

Resonances measured with an accelerometer and shaped in firmware. X is clean; Y still shows two modes.


The model

Designed in CAD, down to the fasteners

This is the final assembly, exported from the model after the rebuild. The sheet-metal profiles are extruded from one master sketch, so a change to a belt run or an idler position moves every part that depends on it.

  • Motors mounted diagonally, which recovered about 50 mm of rail travel on each axis.
  • Idler stacks trapped between two plates on machined standoffs.
  • Three belted Z actuators at a 1:5 reduction under a three-point kinematic bed.
boaz_cad_v7 · final assembly
CAD render of the complete Boaz printer
Boaz, the final CAD assembly after the rebuild.

First build

What broke first

The first build's failures were specific enough to be instructive. The rebuild is where most of the engineering lives.

Press fits, misunderstood

Holes reamed to nominal size gave clearance, not interference. The pins measured 0.04 mm undersize and one idler ran visibly skewed. The rebuild reamed 4.95 mm holes for 5.000 mm pins and verified every joint.

A PCB heatbed

A Prusa MK52 on a partial mount left 1.6 mm of deviation across the bed. No mesh density rescues a warped plate. It took a cast tooling plate to fix.

3D-printed structure

Printed Z-actuator bodies bent under standing belt tension and crept near the heated bed. Load-bearing and locating parts went to sheet metal and machined spacers.

Belt tension as a dial to max

Tensioning one belt and then the other racks the gantry, and the skew lands in every part. Matched tension on proper 9 mm belts removed the slip.

The pattern behind all four: a heuristic fix resolves the symptom and destroys the information you needed to diagnose it.

Results

Before and after, in numbers

Same design, same kinematics, mostly the same parts. These are the measurements that moved between the first build and the rebuild, and the one that did not move far enough.

Bed flatness
1.6 mm→0.2 mm

Eight times flatter, measured at 10,000 points where the first mesh had 70.

Pin fit on a 5 mm dowel
clearance→0.05 mm press

The first build's pins ran 0.04 mm undersize in nominal holes, so idlers leaned. Reamed holes made the fit an interference.

Idler runout
visibly skewed→< 0.001 in

Total indicator reading on every one of the twenty assemblies kept. That is about 25 µm.

First layers without help
0 plates→≈ 100 plates

The first build needed Z offset jogged on every plate. The target was ten in a row.

Speed Benchy
20 min target→16:00

Twenty percent under the target, on the first attempt, with the model unmodified.

Y-axis acceleration
20,000 target→9,500 mm/s²

Not met. The Y sweep shows two resonance peaks. X met it at 20,900 mm/s².

Scorecard

Eight criteria, fixed before the build

Seven were met by the rebuilt machine. The first build failed at least the first four.

CriterionHow it was measuredTargetRebuilt machineOutcome
Geometric accuracyCaliflower artifact; X, Y and both diagonalsSkew < 0.1°; axis error < 0.2%Met after firmware correction. The pre-correction values were not recorded.Met
Functional toleranceA printed threaded lid engages and turns freely≤ 0.2 mmLids engage freely. The first build could not print the part.Met
Bed flatness as firmware sees itKlipper bed mesh over the full print areaEnvelope ≤ 0.2 mm0 to 0.2 mm over 100 × 100 points at 70 °CMet
First-layer autonomyConsecutive production plates started without jogging Z offset≥ 10 platesAbout 100 platesMet
Locating-feature runoutDial indicator on each pressed idler, several angles and heights< 0.001 in TIRMet on every assembly retained; those above the limit were remadeMet
Dynamic behaviorKlipper resonance sweep, accelerometer on the toolheadOne dominant peak; ≥ 20,000 mm/s²X: one peak, 20,900 mm/s². Y: two peaks, 9,500 mm/s².Not met
Speed and quality#SpeedBoatRace 3DBenchy, model unmodified≤ 20 min at acceptable quality16 minutes, first attemptMet
Sustained productionParts per day over a multi-day contract≥ 50 per dayAbout 50. The comparison machine did 60.Met, at its floor

Reported honestly

Where the comparisons are weak, or lost

The claim is about construction method against other machines a reader might build. It is not about beating a mass-produced machine on throughput per dollar.

Lost

The 1,000-part contract

Boaz made about 50 PETG boxes a day for ten days. A $300 Elegoo Centauri Carbon beside it made about 60. Boaz lost by roughly 20%. What the contract did establish is functional tolerance: threaded lids that engage freely.

Flattering

The charity toy run

About 200 toys against about 150 from a Prusa i3 alongside it. The comparison flatters Boaz: the new machine got tuning and attention that the Prusa did not.

Anecdote

The paired Speed Benchy

At an equal 16 minutes, Boaz's Benchy has a cleaner smokestack and fewer artifacts at bow and stern than a HevORT's. One paired print is an anecdote, not a margin.

No data

Input shaping

No matched before-and-after resonance sweep exists, so input shaping cannot be credited with a measured improvement.


Reflection

What the project taught

From the book's closing chapters.

The first effort went to the wrong problem

The project began by copying open designs built from printed plastic. In an early mock-up those parts broke under ordinary assembly loads, not after long service. That ended the plastic-structure phase.

The new idea was measurement, not parts

A community of builders who use granite, indicators and machinist squares showed that shop practice applies at this scale. The machine does not need to be a machine tool. It needs to be built like one.

A budget of about $100 a month

Everything was bought in small increments. That left time to think between purchases, and it compressed testing at the end. Several choices that look like engineering judgements were budget decisions.

Rebuilding instead of settling

The first machine worked and printed 200 toys. Rebuilding it anyway is what produced the evidence: because the two builds differ in execution and not in design, the first is the control.

early_mockup · broken parts
Broken printed plastic parts from an early CoreXY mock-up
Broken plastic parts from an early mock-up. They failed under ordinary assembly and operating loads.
Fix causes, or accept that you will never know which of your fixes worked. Building Boaz, chapter 28

Shown in public · October 2026

Exhibited at Maker Faire Rocklin 2026

“Boaz: A DIY 3D Printer, Built Twice” was accepted as an exhibit at Maker Faire Rocklin, at Sierra College on October 3, 2026: the machine running, with a poster on the method and the results.


Conclusion

Eleven rules, each with evidence

Each rule was earned by a failure on the first build and a measurement on the second. A rule without evidence attached is an opinion.

  1. Stiff frame in large-section extrusion, gusset-joined, with more joints than strength requires.
  2. Enclose the machine.
  3. Enclose the electronics separately.
  4. Design the toolhead for flow, cooling and center of mass.
  5. Put load-bearing and locating parts in sheet metal and metal spacers.
  6. Idlers on dowel pins in reamed holes, about 0.05 mm of interference on a 5 mm pin.
  7. Square the frame on granite, during assembly.
  8. Align rails and verify pressed joints against external granite, never against the frame.
  9. Remove mass from what moves; add it to what does not.
  10. Adopt sensing that removes the human.
  11. Calibrate with printed artifacts, and again after every mechanical change.

Gallery

Photographs, CAD and measurements. All images are the author's own.

Go deeper

The full account is in the book

Twenty-nine chapters of theory, failures and fixes, with the evidence behind each of the eleven rules. The paper, article, poster and slides are in the library.