Close
0%
0%

CubeRaman: 3D-Printed Raman Spectroscopy

An easily reproducible, compacted iteration of my first Raman build. Using a surplus spectrometer, cheap laser and high-quality filters.

Similar projects worth following
CubeRaman aims to make Raman spectroscopy accessible, replicable and - first of all - affordable. It non-destructively identifies chemicals, polymers, pharmaceuticals and minerals: point the objective at a sample, and its molecular "fingerprint" appears as a spectrum. The instrument is built around a single 3D-printed cube in a back-scattering configuration - the same 20x microscope objective both excites the sample and collects the scattered light. A cheap 532 nm laser (~30 mW) provides excitation; a dichroic mirror and longpass filter with a 550 nm cut-on separate the faint Raman signal from the laser light, giving a usable Stokes range of ~600–3000 cm⁻¹. Total cost is around 750 €, dominated by the two Thorlabs filters and a surplus B&W Tek spectrometer. Everything mechanical - including the SM1/SM05 lens tube system, retaining rings, kinematic mounts and beam dump - is 3D-printed without supports. Up-to-date print files are first uploaded on the CubeRaman GitHub.

How it Works - Back-Scattering Configuration

(Green = 532 nm excitation laser, yellow/red = Raman scattering)

The 532 nm laser fires horizontally. The bandpass filter strips IR leakage from the cheap diode module and narrows the laser line. The beam hits the DMLP550 dichroic mirror at 45°, which folds it 90° downward through the 20x infinity-corrected objective and onto the sample.

Back-scattered light travels back up through the objective. The Raman-shifted photons (>550 nm) transmit straight through the dichroic toward the detector, while the unwanted Rayleigh-scattered 532 nm light continues into the beam dump. The FELH0550 longpass filter provides a second stage of Rayleigh rejection, the f = 19 mm achromat focuses the collimated beam onto the 100 µm slit, and the B&W Tek spectrometer records the spectrum.

Signal Processing

The acquired spectrum is processed to remove residual background and fluorescence and make it legible: cropping and Raman-shift conversion, cosmic spike removal, baseline correction (ALS / arPLS / SNIP), smoothing and normalization. Peaks can additionally be detected, fitted (pseudo-Voigt) and matched against a reference library - though fitting matters more for high-resolution, calibrated instruments than for this one, where the 100 µm slit sets the resolution floor.

The processing GUI (CubeRaman-SpectrumPro) is included in the repo.

Performance & Sample Results

Verified (and pictured): polypropylene/-ethylene, paracetamol, isopropyl alcohol, ethanol, diamond, beta-carotene and more. Depending on focus depth / working distance, the instrument can even measure liquids through thin container walls - the objective's (here: 2.4 mm) working distance decides what's reachable.

Status & Next Steps

Ongoing. Current limitations are the 100 µm slit (resolution bottleneck), residual stray light, and magnet-held kinematics that aren't yet truly preloaded. The next iteration will be more compact and rugged - CNC-milled from aluminum.

Recent Updates - YouTube Video


Build Process - YouTube Video

Dump-Body.stl

Standard Tesselated Geometry - 20.39 MB - 03/18/2026 at 09:56

Download

SMA905-SM05.stl

Standard Tesselated Geometry - 6.19 MB - 03/18/2026 at 09:56

Download

Dump-Cone.stl

Standard Tesselated Geometry - 2.27 MB - 03/18/2026 at 09:56

Download

SM1-Tube.stl

Standard Tesselated Geometry - 4.36 MB - 03/18/2026 at 09:56

Download

SM05-RR.stl

Standard Tesselated Geometry - 878.70 kB - 03/18/2026 at 09:56

Download

View all 24 files

  • 1 × Thorlabs DMLP550 Ø1" Longpass Dichroic Mirror, 550nm Cut-On
  • 1 × Thorlabs FELH0550 Ø25.0mm Longpass Filter, 550nm Cut-On
  • 1 × Thorlabs Achromatic Doublet (Lens) AC127-019-A Ø1/2" Achromatic Doublet, f=19mm
  • 1 × B&W Tek BTC 100-2S eBay / Surplus Spectrometer Unit
  • 1 × 532nm Laser Pointer Any Aliexpress 532nm laser with power >30mW

View all 7 components

  • 1
    Step 1 — Parts and Laser Safety

    Parts can be found in the Components section or on the GitHub

    Total cost lands around 750 €, dominated by the filters, surplus spectrometer and laser safety glasses.

    Notes on the two "wildcard" parts:

    • Spectrometer: the BTC100-2S is the cost compromise of this build. Its 100 µm slit is the main resolution bottleneck. Any spectrometer covering roughly 500–650 nm will work — a better one yields sharper peaks, though often at significant cost.
    • Objective: must be infinity-corrected — the design places the dichroic and longpass filter in collimated space and uses the achromat as the tube lens. A finite (160 mm) objective will not work without redesign! Also keep in mind that anything >20x often features a working distance too short for measuring inside containers or a cuvette (though at higher NA = more signal). 20x is the best compromise, from my experience at least.

    This build uses a 532 nm laser at >30 mW — a Class 3B laser. Direct exposure and even specular reflections can cause permanent eye damage before you can blink.

    • Certified laser safety glasses rated for 532 nm are mandatory. Buy from a reputable supplier, not AliExpress. I use these from Protect Laserschutz (~130 €).
    • Keep the laser disconnected from power during the entire assembly. It is only powered once fully enclosed in the cube.
    • Never look into the beam path or the objective, even with protection on.
    • Remove watches and rings while aligning — stray reflections mostly come as a surprise.
    • Know your local regulations for Class 3B laser operation.
  • 2
    Step 2 — 3D Printing Notes

    All parts print without supports, and each is printed only once (except where noted in the parts table on GitHub). I printed on a Bambu P1S with a 0.4 mm hardened steel nozzle, sliced in BambuStudio.

    Material: ideally dark, non-reflective, and stiff. I used black PETG-CF (matte, my favorite); PLA-CF is a sensible alternative.

    Settings:

    • Layer height 0.12 mm — at least for anything with threads or fine features
    • 4 walls, 50 % gyroid infill
    • Seam position Nearest (or Random) for better thread fit
    • "Precision" parameters set to 0.001 mm (may just be placebo)

    Orientation: print faces flat / perpendicular to the build plate — especially threads, which must be printed vertically for clean engagement. "Auto-Orient" should always do the trick.

    Overview Graphic; be aware that parts might have been slightly modified!

    Order & tips:

    1. Print Base-Cube, Base-Cube-Top and the four Cube-Inserts (Sample, Dump, Laser, FilterFocus) first, then the remaining grouped parts.
    2. The Base-Cube is the most demanding part due to overhangs — everything else is easy.
    3. For the Cube-Inserts and Cube-Lid, let the build plate cool fully before removal, or you risk permanently warping the part.
    4. Also print the two spanner tools (Spanner_SM1RR, Spanner_SM05RR) — they make tightening the retaining rings much easier later.
  • 3
    Step 3 — Base Cube

    Printed: Base-Cube, Base-Cube-Top 

    Sourced: 24× M3 heat-set inserts (4 mm length, Ø4 mm), 24× M3×8 screws

    1. Melt the heat-set inserts into the bosses of the Base-Cube using a soldering iron. Keep the iron perpendicular and let the plastic — not force — do the work.
    2. Fasten Base-Cube-Top with M3×8 screws.

    You don't have to populate every insert at first. I initially left out the bottom row and one full side — the side that later takes the Beam Dump — because that opening doubles as access to the adjustment screws of the 45° mirror inside. The Cube-Insert clearances are relatively tight (tighter still if the cube's overhangs sagged a little), and during testing I ran most inserts on just 2 screws (top-left + bottom-right).

    The following sub-assemblies (Steps 4–7) don't need to be built in order.

View all 11 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates