#milleniummilo #cnc #epoxy-granite #mineral-cast #damping #materials
# Overview
Epoxy granite (EG) is a room-temperature-cured composite: graded mineral aggregate (granite/quartz/sand, sometimes with fine spheres or aluminum oxide) bound with epoxy resin — typically 7–15% by weight for machine-base work. On the Milo it's poured into the ballast box / hollow frame cavities purely as a **damping and mass** measure — it is not structural and it is not required to run the machine.
The key thing to understand up front: **"epoxy granite" and "mineral casting" are the same material family.** Mineral casting (also called polymer concrete, synthetic granite, precision granite casting) is the industrial name; epoxy granite is what the DIY community calls it. The practical difference is process control, not chemistry — commercial mineral cast uses computer-optimized aggregate gradation, vacuum degassing, and vibratory compaction on a shaker table, which a hobbyist bucket-mix won't match.
Related: [[Millenium Milo V2]]
# Design
## What EG actually buys you
| Material | Relative internal damping |
|---|---|
| Steel weldment | baseline (worst) |
| Cast iron | ~3× steel |
| Natural granite | ~3.3× cast iron equivalent basis |
| Epoxy granite / mineral cast | up to 10× cast iron, up to 30× steel weldment |
Source: [RepRap wiki](https://reprap.org/wiki/Epoxy_granite) / [Wikipedia](https://en.wikipedia.org/wiki/Epoxy_granite), both tracing to McKeown & Morgan, *Precision Engineering* 1979.
On a hobby machine the mechanism is mostly: added mass lowers the amplitude of forced vibration, and the aggregate/epoxy interfaces convert ringing into heat. The audible test is the honest one — an empty extrusion rings, a filled one thuds.
## EG vs. mineral cast — the honest comparison
| | Epoxy granite (DIY) | Mineral casting (commercial) |
|---|---|---|
| Binder | Epoxy resin, 7–15% by weight | Epoxy resin, tightly controlled |
| Aggregate | Whatever you can source; gradation approximate | Computer-optimized multi-size gradation |
| Process | Hand mix, hand pack, maybe a vibrator | Vacuum mix, vibratory compaction, controlled cure |
| Voids | Meaningful; hard to eliminate | Near-zero |
| Achievable accuracy | Rough as-cast | Precision surfaces straight from the mould |
| Cost at hobby scale | ~$50–150 in materials for a Milo (directional — no quoted source) | Historically industrial-only, but see EPUSELF below |
| Names | EG, polymer concrete | Granitan (Studer), EPUMENT (Rampf), Schneeberger Mineralguss |
So: mineral cast is EG done properly at industrial scale. For a ballast box fill — where you are not casting precision surfaces and not carrying structural loads — the DIY version captures most of the benefit.
## The middle option: RAMPF EPUSELF
Worth knowing before mixing your own — RAMPF sells [**EPUSELF**](https://www.rampf-group.com/en-us/news/2022/epuself-do-it-yourself-mineral-casting-from-rampf-machine-systems/), a pre-measured DIY mineral casting kit: 25 kg containers with mineral filler, resin, and hardener already proportioned, plus the mixing bucket. Marketed explicitly at "research institutes, machine builders, makers, artists, and hobbyists." Mix with a slow-running stirrer, pour directly into sheet-metal assemblies or a mould.
This is factory-graded aggregate at a hobby quantity, which sidesteps the entire sourcing problem that makes DIY EG annoying. RAMPF also sells [EPUFILL](https://www.rampf-group.com/en/products-solutions/details/composite-constructions-epufill/), their cavity-filling mineral cast for hybrid machine-bed structures — conceptually exactly the Milo ballast box use case, though that one is an industrial service rather than a shelf product.
==Price and North American availability for EPUSELF unknown — worth a quote request before committing to a DIY mix.==
Datasheet: [EPUSELF PDF](https://www.rampf-group.com/fileadmin/Downloads/RMA/Epuself-RAMPF-EN.pdf)
## The dissenting view (worth reading before you commit)
Thijs at The Yield Point argues [EG is oversold for DIY CNC](https://theyieldpoint.com/avoid-epoxy-granite-for-diy-cnc/): citing Fraunhofer-IWU data via Durcrete, a steel tube filled with EG measures ~0.050, versus ~0.070 for the *empty* tube, ~0.180 for fine concrete, ~0.220 for light concrete, and ~0.380 for Durfill UHPC. His conclusion is that a cement-bound UHPC fill outperforms epoxy granite substantially, is cheaper, and is far easier to work with (just add water — self-compacting, self-venting).
==Treat these numbers with real skepticism.== Two problems: (1) the table shows EG *below* an empty steel tube, which flatly contradicts the classic 10×-cast-iron literature; (2) 0.070 for a bare steel tube is physically implausible as a material loss factor — structural steel is ~0.0002–0.001, and even a welded assembly with joint friction lands around 0.002–0.01. The table is almost certainly measuring something other than material loss factor (system damping ratio, or a differently normalized quantity). I haven't chased the Fraunhofer primary source. The *ordering* is probably meaningful; the absolute values are not usable.
Counterpoint in EG's favor for the Milo specifically: the frame is **aluminum extrusion**, not steel. Cement-bound fills shrink and want composite anchors or shear cams to bond; epoxy bonds adhesively to a degreased, blasted metal surface without them. The [companion CNC Router Info article](https://cncrouterinfo.com/article/revolutionary-polymer-concrete-vibration-dampening/) (same operation as The Yield Point) documents filling 80/20 extrusion with Durfill and skipping anchors entirely, so it's clearly workable either way.
# Configuration
## Official Millennium Machines guidance
The V2.0 sourcing guide is currently a [placeholder](https://millenniummachines.github.io/docs/milo_2.0/bom/sourcing_guide/) — vendor tables haven't been consolidated yet, and the V2 [FAQ](https://millenniummachines.github.io/docs/milo_2.0/faq/) doesn't cover ballast at all. The [V1.5 sourcing guide](https://millenniummachines.github.io/docs/milo_1.5/bom/sourcing_guide/) is the only official word:
> **Epoxy Resin & Granite Sand** — A mix of epoxy resin and granite sand can be used to fill the ballast box of your machine. This is optional, but can help to dampen excessive vibration.
BOM quantities listed: **1 L epoxy resin** + **granite sand (qty 1)**. That's the whole spec — no ratio, no gradation, no procedure. Scale up for V2's larger frame.
==Check MiloV2-Manual.pdf directly for any V2-specific ballast section — the PDF wasn't parsed for this note.==
## Mix ratios — what the sources actually say
Epoxy % below is **percent by weight of the total mix**, epoxy including hardener. Aggregate breakdowns marked *(agg)* are percent of the aggregate fraction only, not of total mix — the sources state them that way and mixing the two conventions is an easy trap.
**Consensus band: 10–15% epoxy, 85–90% aggregate.**
| Source | Epoxy % | Notes |
|---|---|---|
| CNCCookbook / Bob Warfield | 14% | 62% gravel, 23% sand, 14% resin (sums to 99 — rounding). Home Depot pea gravel + play sand |
| Davo727 (RF-45 base, via CNCCookbook) | 15% | 38 lb gravel, 17 lb sand, 10 lb epoxy = 58/26/15 |
| Walter627 (CNCZone) empirical | ~10% | *(agg)* equal volumes: #6 Agsco Brown, #4/#2/#2-0 Agsco Quartz, G800 + G200 Zeeospheres |
| CNCZone simulated optimum | ~10% | *(agg)* 20% each: Agsco #6 Al₂O₃, #4 quartz, #2 quartz, #2/0 quartz, 3M #800 Zeeospheres |
| UK commercial producer (via CNCCookbook) | 7% | *(agg)* 30% @14 mm, 15% @10 mm, 10% @6 mm, 10% @3–4 mm, 20% @1 mm, 5% silicon powder, 10% ≤500 µm |
| Forum reports (stiffness-optimized) | 8–10% | ~40 GPa at 10% epoxy, ~50 GPa at 8%. 20% is "a very wet mix" |
| Published research (damping-optimized) | 12.5–20% | 80:20 granite:epoxy gives peak damping |
The pattern for machine-base work: **less epoxy = stiffer; more epoxy = easier to pour and more forgiving.** Below ~8% you need real compaction equipment to avoid voids. For a ballast box where nothing is being cast to dimension, 12–15% is the sane hobby target.
==One caveat on the research row: several studies also report peak tensile/flexural strength around 50:50 granite:epoxy. That's a resin-dominant system, not a machine-base formulation — it's optimizing a different property in a different regime, and shouldn't be read as "more epoxy is stronger" for our purposes. Flagging it because it's easy to misread.==
## Why gradation matters
The whole game is minimizing epoxy by maximizing aggregate packing density. Large aggregate leaves voids; progressively finer particles fill those voids; the epoxy only has to fill what's left. That's why every optimized recipe has 4–6 size fractions spanning ~14 mm down to sub-micron.
**Milo constraint:** the ballast box cavity is small. Borrowing the ACI concrete rule, cap top aggregate size at **1/5 of the narrowest cavity dimension** — realistically 3–6 mm max, not the 14 mm the UK recipe calls for. Shift the whole gradation down accordingly.
## Practical Milo-scale recipe
A reasonable starting point using hardware-store-available material (percent of total mix):
- **60%** granite chips / crushed granite, 2–6 mm (landscape supply, or aquarium substrate for consistent sizing)
- **20%** coarse silica or play sand, ~0.5–1 mm
- **7%** fine filler — glass bead blast media, silica flour, or 3M glass bubbles
- **13%** epoxy + hardener
Three size fractions, not the 4–6 the optimized recipes use — a deliberate tradeoff of some packing density (and therefore a slightly higher epoxy fraction) for aggregate you can buy locally without industrial minimums. If you're ordering from AGSCO anyway, use one of the graded recipes above instead.
Wash and **thoroughly dry** all aggregate before use. Moisture is the #1 cause of poor bonding.
**Consistency test (the "snowball"):** squeeze a handful. Too dry and it crumbles apart; too wet and it runs through your fingers. It should hold shape like damp sand. Adjust with a little more resin or a little more fine filler.
# Build Log
## 2026-08-07
- Researched EG vs mineral cast for the Milo V2 ballast box; note created
- Found RAMPF EPUSELF — pre-measured 25 kg DIY mineral cast kits. Changes the buy-vs-mix calculus
- No pour attempted yet — ==run a test batch in a paper cup before committing to the frame==
# Decisions
==Open: no fill vs. plain dry sand vs. DIY epoxy granite vs. RAMPF EPUSELF vs. UHPC (Durfill/Nanodur).==
Rough framing, cheapest/most reversible first:
- **No fill** — free, reversible, zero risk. The Milo is usable without it; MM lists it as optional.
- **Plain dry sand** — cheap, fully reversible, surprisingly effective. Grain-to-grain friction provides real damping with no thermal-expansion mismatch and no permanent commitment. Genuinely worth testing first.
- **DIY epoxy granite** — the documented Milo path, permanent, bonds to aluminum without anchors. Main cost is the hassle of sourcing graded aggregate.
- **RAMPF EPUSELF** — factory-graded mineral cast in 25 kg pre-measured DIY kits. Removes the aggregate-sourcing and ratio-guessing problem entirely. ==Price and US availability unknown — this is the first thing to price out.==
- **UHPC (Durfill)** — best damping in the Fraunhofer table, dead easy to mix, but sourcing in the US looks like the blocker. Durcrete is German; Moertelshop sells 25 kg bags in Germany. ==No North American distributor found.==
Leaning: test dry sand first since it costs nothing and is reversible. If it isn't enough, get an EPUSELF quote before defaulting to a hand-mixed batch.
# Resources
## Official Milo
- [Milo 2.0 documentation hub](https://millenniummachines.github.io/docs/milo_2.0/)
- [Milo V2 assembly manual (PDF)](https://github.com/MillenniumMachines/Milo-V2.0/blob/main/Manual/MiloV2-Manual.pdf)
- [Milo V1.5 sourcing guide — epoxy resin & granite sand section](https://millenniummachines.github.io/docs/milo_1.5/bom/sourcing_guide/)
- [Milo-V2.0 GitHub repo](https://github.com/MillenniumMachines/Milo-V2.0)
## DIY guides and build reports
- [CNCCookbook: Epoxy Granite Fill](https://www.cnccookbook.com/epoxy-granite-cnc-machine-fill/) — **the single best practical writeup.** Full photo walkthrough of filling an IH mill base: containment dams, silicone sealing, wax-plugging bolt holes, layered pours, torch for bubble-popping. Includes Davo727's RF-45 numbers
- [CNCZone: Epoxy-Granite machine bases](https://www.cnczone.com/forums/epoxy-granite/30155-epoxy-granite-machine-bases-polymer-concrete-frame-244.html) — the 240+ page mega-thread. Walter627's simulation work lives here
- [CNCZone: Epoxy Granite In Practice](https://www.cnczone.com/forums/epoxy-granite/100555-epoxy-granite-practice-mineral-casting-polymer-concrete-2.html)
- [CNCZone: Epoxy Concrete Aggregate Ratio Mixing Method](https://www.cnczone.com/forums/epoxy-granite/127485-posts.html)
- [CNCZone: How-to Guide on Building Cast Epoxy Granite Machine Bases](https://www.cnczone.com/forums/vertical-mill-lathe-project-log/332686-cnc.html)
- [Duet3D Forum: Making an epoxy granite machine base](https://forum.duet3d.com/topic/14036/making-an-epoxy-granite-machine-base)
- [MyCNCUK: Epoxy granite or mineral casting](https://www.mycncuk.com/threads/4970-Epoxy-granite-or-mineral-casting)
- [RepRap wiki: Epoxy granite](https://reprap.org/wiki/Epoxy_granite) — Walter627's writeup, good on process and the "avoid" list
- [Hackaday: Precision CNC With Epoxy Granite](https://hackaday.com/2016/05/01/precision-cnc-with-epoxy-granite/)
- [Hackaday: Casting Machine Bases In Composite Epoxy](https://hackaday.com/2017/03/27/casting-machine-bases-in-composite-epoxy/)
## The counterargument / alternatives
- [The Yield Point: Avoid Epoxy Granite for DIY CNC](https://theyieldpoint.com/avoid-epoxy-granite-for-diy-cnc/) — read this before buying anything
- [CNC Router Info: Polymer Concrete vibration damping](https://cncrouterinfo.com/article/revolutionary-polymer-concrete-vibration-dampening/) — same operation as The Yield Point. Hands-on Durfill fill of 80/20 extrusion, the Fraunhofer loss-factor table, and the mixing spec (2.3 L water per 25 kg bag)
- [Durcrete (Durfill / Nanodur)](https://www.durcrete.com/references-machines) — manufacturer. Ready dry-mix in paper bags, self-compacting, self-venting
## Materials sourcing
| Item | Where |
|---|---|
| Epoxy (105 resin + 205/206 hardener) | West System — widely available, metering pumps make ratio foolproof |
| Graded quartz / Al₂O₃ aggregate | [AGSCO Corp](https://www.agsco.com/quartz/) — industrial, phone orders, minimums apply |
| Zeeospheres (G200, G800/G850) | The Cary Company — 50 lb bags. Forum-quoted pricing ~$25 G800/G850, ~2× for G200, $50 minimum. ==Stale, verify== |
| Pre-measured mineral cast kit | [RAMPF EPUSELF](https://www.rampf-group.com/en-us/news/2022/epuself-do-it-yourself-mineral-casting-from-rampf-machine-systems/) — 25 kg, filler + resin + hardener + bucket |
| Granite chips, pea gravel, play sand | Home Depot / Lowes / landscape supply — what CNCCookbook actually used |
| Glass bead media | Any blast-media supplier — excellent fine-fraction void filler |
## Commercial mineral casting (mostly context)
- [Studer Granitan](https://www.studer.com/en/cylindrical-grinding-machines/software-options/granitanr/) — among the earliest, Ciba-Geigy binder, mid-1970s. Now produced with Schneeberger in Cheb, CZ
- [Schneeberger Mineral Casting](https://www.schneeberger.com/en/products/mineral-casting/)
- [Rampf EPUMENT (formerly EPUCRET)](https://www.rampf-group.com/en/machine-beds/machine-component-materials/) — also the source of the hobby-scale EPUSELF kit
- [Rampf EPUFILL](https://www.rampf-group.com/en/products-solutions/details/composite-constructions-epufill/) — mineral-cast cavity filling for hybrid machine beds, in use since the early 1980s
- [Rampf: filling steel and cast structures with epoxy-bonded mineral casting](https://www.rampf-group.com/en/aktuelles/blog/2021/an-ultra-stable-combination/)
# Troubleshooting
Failure modes to design around, mostly from the RepRap wiki "avoid" list and CNCCookbook's writeup:
- **Epoxy leaking into bolt holes / threads.** The most common ruin. Plug with tubing, tape from the inside, or candle wax poured over a partially-inserted bolt (melt out after cure). CNCCookbook had leaks even with silicone-sealed dams — over-seal everything.
- **Trapped air at the top surface.** A quick pass with a butane torch or heat gun pops surface bubbles. Bubbles deeper in the mix are mostly avoided by good mixing and vibration.
- **Voids from too-dry a mix.** If the snowball crumbles, you don't have enough resin to coat every particle. Add resin, not water.
- **Exotherm.** Large single pours of epoxy generate heat, which accelerates cure, which generates more heat. Pour in layers. Use a **slow hardener** (West 206, not 205) for anything sizeable.
- **Skin sensitization.** Epoxy allergy is cumulative and permanent once you develop it. Nitrile gloves every time, no exceptions. Ventilate.
- **Layer bonding.** Subsequent layers bond chemically as long as the previous one is still soft enough to take a thumbnail impression. Past that you're on mechanical adhesion only.
- **Amine blush.** West System epoxies develop a waxy amine blush on fully cured surfaces. If you're pouring onto a layer that cured overnight, **wash it with water and a scrub pad first** — sanding alone won't fix it, and the next layer will delaminate. Only matters if you miss the green-cure window above.
- **Avoid in general:** thin sections under ~25 mm, high tensile loading, shock loading, tapped holes near an edge.
# TODO
- ==Extract the ballast/EG section (if any) from MiloV2-Manual.pdf and reconcile with the V1.5 guidance==
- ==Measure actual Milo V2 ballast box cavity volume to size the batch — determines aggregate top size and total epoxy needed==
- ==Ask in the Millennium Machines Discord what V2 builders are actually using; community practice likely ahead of the docs==
- ==Test plain dry sand fill first — free, reversible, and if the ring goes away it may be enough==
- ==Mix a paper-cup test batch and let it cure 24 h before committing to the frame==
- ==Get a RAMPF EPUSELF quote + US availability — likely the best effort/result tradeoff if the price is sane==
- ==Chase a North American UHPC source (Durfill / Nanodur equivalent) before ruling it out==
# References
- [[Millenium Milo V2]]
- [[Touchscreen CNC Controller]]
- McKeown, P. A.; Morgan, G. H. (1979). "Epoxy granite: a structural material for precision machines." *Precision Engineering* 1(4): 227–229. [doi:10.1016/0141-6359(79)90104-1](https://doi.org/10.1016/0141-6359(79)90104-1)
- [Stiffness and Damping of Epoxy Granite (IJEAT, PDF)](https://www.ijeat.org/wp-content/uploads/papers/v9i3/B3326129219.pdf)
- [Enhancing strength and damping: cast iron reinforced granite-epoxy hybrid composite (Cogent Engineering, 2024)](https://www.tandfonline.com/doi/full/10.1080/23311916.2024.2368105)
- [Dynamic performance enhancement of machining center with epoxy granite base (ScienceDirect)](https://www.sciencedirect.com/science/article/abs/pii/S0141635924001107)