M3-CRETE Experimental Build Reference: BOM, CAD, and Checkout Limits

M3-CRETE is an experimental open-hardware motion-system design. This page organizes development artifacts for qualified technical teams to inspect and adapt; it is not construction instruction, commissioning approval, or evidence that a physical machine has been validated. Covered hardware is published under CERN-OHL-W-2.0, while identified V-slot CAD-library material remains under CC BY-SA 4.0.

Safety boundary: M3-CRETE is intended for qualified technical users, R&D labs, supervised institutional programs, and experienced builders. It is not a casual hobby kit or finished certified printer. Any AC mains wiring, control-box integration, grounding, disconnects, emergency-stop power circuits, facility connection, inspection, or code compliance work must be performed by qualified personnel, a licensed electrician where required, or a qualified control-panel shop. Public project files identify interfaces and components; they are not AC mains wiring instructions.

1. Why this exists

Concrete-printing research systems vary widely in access, documentation, sourcing, licensing, and physical evidence. M3-CRETE explores whether an inspectable open-hardware reference can make motion-system research easier to review and reproduce without claiming equivalence to commercial equipment or readiness for field use.

M3-CRETE by Sunnyday Technologies publishes development CAD, a reference bill of materials, firmware references, and automated geometry checks. The current default M3-2 configuration targets a 2000 × 1000 × 1000 mm design envelope. Actual external dimensions, load capacity, accuracy, reliability, shipping configuration, electrical integration, and material-process performance remain subject to qualified physical review and testing.

This page documents how to do that. It walks the architecture, the BOM, the CAD workflow, the validation tooling, the licensing model, and the open issues. Concrete 3D printing is not a 280-character problem.

2. Design philosophy

Three commitments shape every component decision in M3-CRETE.

The first is standard-stock sourcing. The reference configuration uses 1000 mm stock segments and splices for the longer axis. This is intended to simplify procurement experiments; it does not establish the assembled footprint, shipment class, doorway clearance, or field-deployment suitability.

The second is sensorless-homing research via StallGuard4. The current configuration uses TMC5160 drivers and motor-stall sensing rather than mechanical motion endstops. This reduces one category of exposed component, but sensing thresholds, stopping distance, repeatability, failure behavior, and safe-state design require qualified commissioning and physical verification for each build.

The third is scope discipline. This repository covers a motion-system reference. Pump, mixer, hopper, hose-management, material-chemistry, structural-use, and professional power/control design are outside its public scope. CEMFORGE is separate early-stage materials-evidence and decision support, while Open3DCP is a draft record schema, not a supplied dataset or ratified standard.

The design exclusions list is unusually explicit and worth reading verbatim:

The exclusions section exists because the project has accreted many rounds of "have you considered adding..." suggestions over the last year and a half. Each rejection is an active engineering decision, documented so that contributors do not waste round-trips proposing rejected directions.

3. Architecture overview

The default model variant is the M3-2, with a configured 2000 × 1000 × 1000 mm design envelope. M3-1 targets 1000 × 1000 × 1000 mm. These are configuration targets, not verified working volumes or exterior dimensions. The motion-system concept has four mechanical subsystems: a 4080 C-Beam frame, a dual-Y belt-pinion gantry, a quad-Z Z-stage, and a printhead carriage on a spliced X-beam.

Frame: 4080 C-Beam, single-length stock

The primary structure is 4080 C-Beam aluminum extrusion, used for Z-posts and Y-gantry rails, with 2040 V-slot for cross-bracing. Every structural member is cut to a single canonical length. There are no custom cuts and no mixed lengths. Single-SKU procurement is a non-negotiable for a kit business and a meaningful gift for any solo builder. The C-channel openings face inward toward the printer cube so the belts and Z lead screws run inside the C, where they are partly shielded from concrete spray and aerosol.

The X-axis is built from two stock segments spliced at center span to yield the longer build envelope. The splice uses one 1 m 2040 V-slot insert centered in the C-channel across the join, anchored at each end by a small purchased or printed L-bracket, plus straight-line slot connector bars in the beam's front and back slots, clear of the top and bottom slots the wheels run in. No long custom-cut extrusion is required.

Corner joints use 5-screw T-plate or L-plate connectors at every 4080-to-4080 junction.

Motion: belt-pinion drive, GT2 belts, Z lead screws, polycarbonate V-wheels

Every axis rides on polycarbonate V-wheels. X and Y are driven by GT2 belts: a 10 mm loop on each Y rail, and a single fixed 6 mm strand in the X beam's top V-slot that the X carriage's pinion drive rolls along. The Z-axis is driven by Tr8×2 lead screws, one per post.

V-wheels engage the V-groove on the narrow face of each extrusion at a specified engagement depth. This depth is encoded as a hard invariant in the validation harness; any geometry that drops the wheel out of engagement fails CI before the STEP file lands.

Steppers: NEMA23, sensorless homing

The motion system uses NEMA23 motors with heavy-duty shafts: one X, two Y for anti-racking, and four Z for self-tramming. Material pumping is a separate, related project and is not part of the motion system. The shaft sizing is required for StallGuard4 sensorless homing torque compatibility, not a comfort choice.

Z-axis motors sit on top of each post, body above and shaft pointing down, and turn a Tr8×2 lead screw (8 mm diameter, 2 mm lead) through an 8 mm coupler. Each motor stands in a printed mount on the post top. A lock collar and a thrust bearing on each side of the mount's floor carry the gantry weight and the homing thrust, so the motor only supplies torque, and a 608 bearing in a printed holder centers the bottom of the screw. The screw runs inside the post's C-channel, 6 mm in from its open face, and a nut block on the carriage plate rides it. The 2 mm lead is chosen to resist back-driving, so the gantry should hold its height when the motors are off; verify this on the machine. Each corner homes down with sensorless homing until its nut block meets the top of its bottom holder, and each Z-corner can be trammed independently under Klipper's Z_TILT_ADJUST macro.

Controller: BTT Kraken, Klipper, Pi 5

The mainboard is a BTT Kraken with onboard TMC5160 drivers configurable for SPI-mode StallGuard4. The host runs Klipper on a Raspberry Pi 5 with a touchscreen. The firmware repository lives at M3-CRETE-FIRMWARE for kinematic profiles and stepper configuration.

Configured design targets and open verification

Parameter M3-1 M3-2 (default)
Configured design envelope (not physically verified) 1000 × 1000 × 1000 mm 2000 × 1000 × 1000 mm
X-axis splice None Center splice
Y-axis splice None None
Frame primary 4080 C-Beam 4080 C-Beam
Stepper architecture Quad-Z self-tramming, dual-Y anti-racking Same
Assembled footprint / shipping configuration Not established here Not established here
Total build cost Not verified; price the current BOM and excluded professional scope Not verified; price the current BOM and excluded professional scope
License CERN-OHL-W-2.0 CERN-OHL-W-2.0

Variants are configured in config.js as MODEL_VARIANTS with quantity overrides per part. Switching between variants in the BOM viewer is a one-click operation.

4. The bill of materials

The full BOM is served live at bom.m3-crete.com/bom as a static JSON document with no backend. The viewer supports multi-supplier selection, per-part quantity overrides, fabrication-method toggles (Buy / Print / CNC), CSV and JSON export with supplier filters, model variant selection, and a "Suggest Supplier" button that opens a GitHub Issue. The privacy guard in the validation tooling explicitly suppresses vendor names, SKUs, unit costs, prices, and supplier identifiers from any audit emit path; cost data exists in the data file but is not exposed by the public report surface.

Sourcing reality

The current BOM contains supplier and product references gathered during development. It does not establish manufacturer-of-origin, continuing availability, exclusivity, or domestic-content status. Verify the exact profile, alloy, dimensions, origin, inventory, lead time, and landed cost with each supplier before procurement.

The supplier strategy splits the build across three procurement paths:

Cost shape

No verified all-in build cost is published here. The viewer's prices are planning references that can become stale and may omit shipping, tax, duties, fabrication, tools, engineering, professional electrical/control work, guarding, facility work, commissioning, material delivery, testing, maintenance, and replacements. Re-price the current BOM and excluded scope for the actual location and configuration.

The BOM surfaces all of this directly in the viewer. Click a supplier chip to assign that supplier to all matching parts; click "I have this" to exclude a row from the buy list; flip the Buy / Print / CNC toggle on a fabricated part to mark it as locally produced. Export the result as CSV for the spreadsheet, or as JSON for the AI buying-guide assistant.

A short caution: supplier listings in the BOM viewer are community-contributed reference information, not endorsements. Prices and availability change. Verify each line against the live supplier page before placing an order.

A safety caution: electrical parts shown in the BOM are reference components for a development platform. The BOM is not an instruction to perform AC mains wiring. Any AC wiring, enclosure integration, grounding, disconnects, E-stop power circuit, or facility connection must be performed by qualified personnel, a licensed electrician where required, or a qualified control-panel shop.

5. CAD and assembly

The full M3-2 assembly is a parametric CadQuery-driven STEP, generated from a script (CAD/m3_2_assembly.py) that runs against a versioned V-slot library. The STEP file lives in the repository as the human-reviewable artifact; the Python script is the source of truth.

LLM-driven CAD: the AI-CAD whitepaper workflow

The M3-CRETE CAD workflow is documented in the Sunnyday AI-CAD whitepaper, titled Self-Verifying LLM-Driven Parametric CAD Assemblies: Lessons from a Meter-Scale Concrete 3D Printer (Sonnentag, 2026). The headline claim of that paper is intentionally narrow: an LLM coding agent paired with CadQuery is most useful when forced to verify its own geometry against engineering invariants on every iteration, not when asked to "design a part." The harness is the artifact that matters; the agent is a means.

This work sits in a longer lineage. The M3-CRETE printer is the Print stage in Sunnyday's ICME-style closed loop, in the spirit of Olson's Materials by Design framework: predict properties from composition and process, place the candidate material, measure the result, feed the measurements back into the predictor.

The whitepaper documents three layers:

  1. Geometry library, a set of STEP files imported from the OpenBuilds ecosystem (CC BY-SA 4.0), plus extended/compatible parts in CAD/Advanced/ and vendor-sourced models for steppers, the BTT Kraken board, and GT2 pulleys. STEP files have arbitrary native orientations, which is the single largest source of agent placement bugs. A probe_steps.py script reads the bounding box of any STEP file before the agent attempts to place it.
  2. Assembly script, a CadQuery 2.7 script that loads the V-slot library, places every component parametrically against frame topology constants (W, D, H), and writes the assembled STEP. The script evolved through three major versions: a pure-parametric early build, a Phase C completion with stricter component coverage, and a v3 filter-and-replace strategy that loads a human-edited Fusion 360 export and surgically replaces specific components with parametric versions.
  3. Self-verification harness, a preview_assembly.py that runs engineering invariants against the generated geometry, renders three orthographic projections (XY, XZ, YZ) headlessly with matplotlib, and exits non-zero on any failure.

CADCLAW: extracted as its own tool

The assembly-check work was extracted into a separate open-source project called CADCLAW (Zenodo DOI 10.5281/zenodo.19647390). The repository includes a dated v0.6 field-test report that records Doctor 11/11 after one workaround and ten identified issues. Treat that report as version-specific software evidence, not a current-release, physical-validation, structural, manufacturing, or safety claim. CADCLAW can read configured BOM/CAD rules and emit bounded check results.

The dated v0.6 report also exercises a privacy guard intended to omit selected supplier fields from report output. That test does not prove that every version, configuration, log, exception, or downstream integration is free of sensitive data; review actual outputs before sharing them.

Specific design decisions

A few CAD decisions deserve calling out because they fail in obvious ways if you do not know them:

6. Mix design and printability

M3-CRETE is a hardware platform, not a materials platform. We do not ship a recommended concrete mix in the repository. The reasons are practical: cementitious printability is a function of local aggregate, ambient humidity, fresh-state rheology, set-time targets, and structural intent. A mix that prints well in Appleton in October will not print well in Phoenix in July. Hard-coding a recipe would be a disservice.

The Sunnyday projects can be used as separate inputs to a human-controlled evidence workflow:

The academic literature on 3DCP printability is robust enough that a builder does not have to start from scratch. Chen et al. (2020) studied the effect of printing parameters on interlayer bond strength of 3D printed limestone-calcined-clay-based cementitious materials and showed how interval time and nozzle standoff drive cold-joint formation. TU Delft's set-on-demand work (2021) demonstrated chemical activation strategies that decouple pumpability from buildability. The TU Delft graded-clays study (2021) identified calcined-clay supplementary cementitious materials as a viable LC3 path for 3DCP. An, Zhang, and Yang (2024) reviewed coarse aggregate incorporation strategies in Virtual and Physical Prototyping (DOI 10.1080/17452759.2024.2351154). For limestone-blended binder fundamentals relevant to PLC-based 3DCP, Tennis et al. (2024) is the current state-of-the-art reference for limestone in cement.

The boundary is deliberate: M3-CRETE is an experimental hardware reference, CEMFORGE is bounded decision support, and Open3DCP is a draft record schema. None of the three validates the other, and public accessibility does not grant data-training or reuse rights.

7. License and contribution model

M3-CRETE ships under a dual-license structure that almost no one in 3D printing has bothered to read carefully, so this section is worth your time.

CERN-OHL-W-2.0 for hardware

The hardware design itself (frame, motion system, custom brackets, BOM, firmware configurations) is licensed under CERN Open Hardware Licence Version 2 - Weakly Reciprocal, commonly written CERN-OHL-W-2.0. CERN-OHL-W is the open-hardware analog of LGPL: derivatives of covered files must be made available under the same license, but you can integrate the design into a larger product without infecting the entire product with the license. You can build M3-CRETE printers commercially, sell them, modify the design, and ship that modified design as a kit, provided the modified design files (CAD source, BOM changes, firmware patches) remain available under CERN-OHL-W-2.0.

Why CERN-OHL-W and not, say, MIT or Apache 2.0? Because hardware is not software. A permissive software license assumes that downstream users will keep contributing upstream because the marginal cost of doing so is trivial. Hardware does not work that way. A weakly reciprocal license keeps the design files open without preventing commercial integration. CERN-OHL-W is the closest the open-hardware community has to a battle-tested, lawyer-reviewed, internationally enforceable instrument for this trade-off.

CC BY-SA 4.0 for V-slot CAD

The V-slot component models in CAD/Components/ derive from the OpenBuilds ecosystem, which licensed those models under CC BY-SA 4.0. We preserve that license on the component files and require derivative V-slot models in our repository to remain CC BY-SA 4.0. This is a license-compatibility matter, not a preference. Note that the OpenBuilds company itself dissolved in May 2025; the CAD ecosystem is community-maintained.

How to contribute

Three paths, all on GitHub:

Email [email protected] for non-repository company inquiries. Use GitHub issues or discussions for design feedback, build reports, supplier suggestions, and technical questions.

8. What we know that's missing or open

Honest open issues are the most credible content on this page. Concrete printers are mechanical systems with hundreds of edges; pretending otherwise is a tell that the documentation has not survived a real build. Below is the current open-issues list, drawn from internal mechanical audits and the most recent CADCLAW field-test report.

Mechanical open items

CAD model gaps

CADCLAW false-positives (already triaged)

The latest field test surfaced a small set of false-positives on the M3-CRETE BOM that are scheduled for the next CADCLAW milestone:

These are CADCLAW issues, not M3-CRETE issues. The fact that they exist in the current release is documented in the field-test report; the fact that they are not yet fixed is also documented.

Material and process variability

We document these openly because builders should know what they are signing up for. Closed-source competitors hide identical issues behind support contracts.

9. Get started

Three reader profiles, three paths.

Path A: I just want to read the BOM

Open the interactive BOM viewer. Click through the parts. Toggle suppliers. Select a model variant (M3-1 or M3-2). Export a CSV when you want to take it to a spreadsheet. No login required — the viewer is a static site that runs entirely in your browser.

If you want the underlying data, bom/data.json is the source of truth and is human-editable. The schema is documented in config.js.

Path B: I want to actually build one

This is a planning sequence for qualified teams, not a complete construction or commissioning procedure. Stop until the mechanical, electrical, controls, guarding, material-delivery, facility, and emergency-response scope has an identified competent owner.

  1. Read this page, the safety boundary, open issues, licenses, and source history in full.
  2. Read the project README on GitHub and the AGENTS.md file in the repository root, which captures every design exclusion the project has accreted.
  3. Compare the configured model targets with measured facility space, loads, access, guarding, and service clearances; do not infer them from the model name.
  4. Export the BOM, identify excluded/reference-only entries, and reconcile every quantity and compatibility assumption against the current JSON.
  5. Obtain current supplier quotations and verify lead time, origin, substitutions, return terms, and landed cost before ordering.
  6. Run the repository's automated CAD checks and review their documented limits. A passing software check is not structural, electrical, safety, or manufacturing approval.
  7. Have qualified owners review fabricated parts, frame/load assumptions, controls, power, guarding, stop functions, and commissioning tests before assembly or energized motion.
  8. Treat pump, hose, pressure, material, nozzle, and process control as separately engineered systems; M3-CRETE does not qualify them.
  9. Use CEMFORGE, if appropriate, only as decision support and physically validate any candidate material/process combination.
  10. After authorized physical testing, retain provenance and rights for the results. The Open3DCP draft schema may help structure records but does not publish or validate them.

If you get stuck, open a GitHub Discussion. Build experience reports are some of the most valuable contributions the project receives.

Path C: I want to contribute

Easiest first issues:

Email [email protected] for partnership conversations or speaker invitations. Sunnyday Technologies is based in Appleton, Wisconsin, and we travel for conference talks where it makes sense.

10. Citations and further reading

Sunnyday Technologies stack

Selected academic literature

Open-hardware tooling


Cite this work

cff-version: 1.2.0
message: "If you use M3-CRETE designs in research or a build, please cite it as below."
title: "M3-CRETE: Open-Source Concrete 3D Printer"
abstract: >-
  M3-CRETE is an experimental open-source concrete/paste-printing
  motion-system design for qualified research and development. It includes
  development CAD, a reference bill of materials, firmware references, and
  automated checks; physical suitability requires independent validation.
type: software
authors:
  - family-names: Sonnentag
    given-names: Nicholas
    email: [email protected]
    affiliation: Sunnyday Technologies
license: CERN-OHL-W-2.0
license-url: "https://cern.ch/cern-ohl"
repository-code: "https://github.com/sunnyday-technologies/M3-CRETE"
url: "https://m3-crete.com"
identifiers:
  - type: doi
    value: 10.5281/zenodo.19647435
    description: Zenodo concept DOI (all versions)
keywords:
  - 3D-printing
  - concrete
  - construction
  - CNC
  - open-hardware
  - DIY
  - 3DCP
  - additive-manufacturing

Zenodo concept DOI: 10.5281/zenodo.19647435, citable identifier for M3-CRETE across all versions. Each tagged GitHub release gets its own version DOI, archived automatically by Zenodo.