OpenVinyl: 3D Printable Vinyl Records and Turntable
Inspiration
Vinyl records provide artists with a physical artifact of their music. However, professional vinyl pressing requires minimum orders of 100–300 units at costs of $1,000–$3,000, making it inaccessible to independent and small artists who primarily distribute music digitally.
We developed a system that allows anyone to create playable vinyl records using consumer 3D printers.
What It Does
OpenVinyl consists of three components:
- WAV-to-STL converter: Converts audio files into 3D-printable record geometry
- Printable vinyl records: Playable on our custom turntable (resin-printed versions compatible with standard players)
- 3D-printable turntable: Uses accessible off-the-shelf components
All components are open-source.
How We Built It
Record Generation
The Python encoder converts WAV files to STL mesh files:
- Audio is quantized to 4-bit depth (16 discrete levels)
- Groove depth modulation uses 0.08 mm layer height (vertical encoding)
- Archimedean spiral with 0.55 mm pitch
- Generates watertight manifold mesh for FDM slicing
- Current implementation: 15 seconds playback at 150 RPM
Technical parameters:
- Layer height: 0.08 mm
- Nozzle diameter: 0.4 mm
- Groove width: 0.42 mm
- Outer wall speed: 35 mm/s (groove zone)
- Gaussian smoothing (σ=2.5) for anti-aliasing
Turntable Design
Component list:
- Motor: NEMA 17 stepper motor (150 RPM)
- Bearings: Standard ball bearings
- Cartridge: Ceramic cartridge
- Amplification: Adafruit MAX98357 I2S Class-D Mono Amp
- Tracking force: 2–4 grams via counterweight
- Microcontroller: ESP32
- Driver: L298N motor driver
- Speaker
- 12V power supply
- Amp: LM348 Op Amp
- Transistor: PNP and NPN
- Capacitors: 100μF and 0.1μF
Challenges
FDM Resolution Limits
Vinyl grooves require micron-scale precision. Consumer FDM printers have 400-micron nozzle diameters and typical layer heights of 0.2 mm.
Solution:
- Vertical (Z-axis) encoding at 0.08 mm layer resolution
- Discrete quantization to printable height levels
- Gaussian smoothing to prevent aliasing
- Optimized slicing profiles (reduced acceleration in groove zones)
Iterations: 6 major versions addressing mesh topology, normal orientation, and slicer compatibility.
Motor Speed Stability
Stepper motors exhibit cogging torque, resonance, and load-dependent speed variation. These cause pitch instability (wow and flutter).
Solution:
- 1/16 microstepping for smoother rotation
- Calibrated step timing
- Friction drive to reduce cogging transmission
Accomplishments
- Produced intelligible audio from FDM-printed records on a consumer printer
- Designed turntable using only commodity components
- Complete open-source pipeline from audio file to physical playback
- Demonstrated path to standard turntable compatibility via resin printing
What We Learned
- Slicing parameters significantly affect audio quality (acceleration, speed, cooling)
- Lossy audio formats (MP3) perform poorly; WAV/FLAC required
- Treble pre-emphasis improves intelligibility in quantized audio
- Iterative prototyping essential: first version was unplayable, sixth version is functional
- FDM printer behavior is highly non-linear at this scale
What's Next
Near-term improvements:
- Vibration isolation: TPU dampeners for tonearm mounting, high-pass filtering at 80 Hz, friction drive optimization
- Stereo encoding: Lateral groove modulation for dual-channel audio
- Extended play time: 15s → 3+ minutes via reduced pitch
- Automated calibration: Software-guided tonearm setup
Long-term development:
- Resin printer support: Target 10–20 micron detail for standard turntable compatibility
- Web platform: STL generation from uploaded audio files
- Profile database: Crowdsourced slicing settings for different printer models
Community features:
- Print profile repository for various printer models
- Documentation of successful print parameters
- Assembly instruction refinement based on user feedback
Resources
- GitHub: Source code, STL files, assembly documentation
- Web tool: Audio-to-STL converter
- BOM: Complete parts list with supplier links
Total project cost: <$50 (turntable components, excluding printer)
Built With
- audacity
- esp32
- onshape
- python
Log in or sign up for Devpost to join the conversation.