How to Build a Vintage Gramophone MP3 Speaker With Arduino (Step-by-Step)

by rohanbarnwal in Circuits > Arduino

5 Views, 0 Favorites, 0 Comments

How to Build a Vintage Gramophone MP3 Speaker With Arduino (Step-by-Step)

ChatGPT Image Jun 22, 2026, 05_10_08 PM.png

I love the look of old gramophones — that big brass horn, the wooden cabinet, the sense that it's a machine rather than an appliance. Modern Bluetooth speakers don't have any of that personality. So I decided to build one myself: a desk-sized gramophone replica that actually plays music, using an Arduino UNO R4 WiFi, a DFRobot MP3 player module, and a pair of small cavity speakers hidden inside the horn — with the enclosure itself 3D printed through JUSTWAY, rather than hand-sculpted.

This Instructable walks through every step — designing the horn for 3D printing, getting it manufactured, wiring the electronics, hiding everything inside the base, and loading it with music. By the end you'll have a genuinely functional speaker that looks like a 100-year-old antique.

Skill level: Beginner–Intermediate (basic CAD modeling and basic soldering) Time required: A weekend, plus print turnaround time Cost: Roughly the price of an Arduino + MP3 module + the 3D printing service order

Supplies

Electronics:

  1. Arduino UNO R4 WiFi
  2. DFRobot DFPlayer MP3 module
  3. 2x small cavity speakers
  4. microSD card (8GB or smaller works fine)
  5. Jumper wires, a small perfboard
  6. A small power switch
  7. 5V power source (USB)

Build materials:

  1. A 3D-printed horn and base enclosure (designed in CAD, manufactured via JUSTWAY)
  2. Acrylic paint — gold, bronze, dark brown (for the antique-brass finish on the print)
  3. Super glue / CA glue for final assembly
  4. Fine sandpaper (to clean up any print lines before painting)


Design the Shape for 3D Printing

Before touching any electronics, decide on your form factor. I designed:

  1. A flared horn shape, modeled in CAD
  2. A square base that hides all electronics underneath a rotating "turntable" disc on top

Sketch it first, then model it. The key constraint to keep in mind here: the base needs enough internal volume to fit the Arduino, the MP3 module, the wiring, and still leave the speakers close enough to the horn's throat to project sound properly. I designed the base with a removable panel underneath specifically so I could access the electronics after printing, without having to break the enclosure open.

Once the model was finalized, I uploaded it to JUSTWAY for an instant quote and a free DFM (Design for Manufacturability) check — this caught a couple of wall-thickness issues in my horn design before it ever went to print, which saved me from wasting a print run on something that would have come out too fragile.

Get the Enclosure 3D Printed

WhatsApp Image 2026-06-22 at 12.50.13 PM (1).jpeg

Instead of hand-sculpting the horn and base from clay or filler, I had both parts 3D printed through JUSTWAY. JUSTWAY is an on-demand manufacturing platform — running since 2013, with its own factories in Shanghai, Hangzhou, and Shenzhen — and their 3D printing service let me get clean, precise, repeatable parts straight from my CAD file, with none of the asymmetry or fragility you get from a hand-built shell.

  1. Upload your STL/STEP file to JUSTWAY and get an instant online quote.
  2. Review their DFM feedback — they'll flag thin walls, overhangs, or anything else that might cause print issues.
  3. Choose your material (I went with a durable resin for the horn so it would take paint cleanly and hold fine surface detail).
  4. Place the order and wait for your parts to arrive.

When the printed horn and base showed up, the surface quality was sharp enough that I didn't need any filler at all

Wire the Electronics

Solder these connections onto a small perfboard rather than relying on loose jumper wires — inside a finished enclosure, loose connections are the #1 cause of "it worked yesterday."

This wiring uses the UNO R4 WiFi's dedicated Serial1 hardware UART (on pins D0/D1) to talk to the DFPlayer, while the regular Serial (USB) connection is reserved for sending play/stop/track commands from your computer's Serial Monitor — so you don't need any extra wiring for control, at least for now.

Load the Code

Install the DFRobotDFPlayerMini library from the Arduino Library Manager, then upload:

#include "DFRobotDFPlayerMini.h"

DFRobotDFPlayerMini player;
int currentTrack = 0;

void setup() {
Serial.begin(115200);
Serial1.begin(9600);
Serial.setTimeout(50); // important
delay(1000);

Serial.println("Ready... (1-10, p, s)");

if (player.begin(Serial1)) {
Serial.println("DFPlayer Detected ✅");
player.volume(20);
} else {
Serial.println("DFPlayer NOT Detected ❌");
}
}

void loop() {
if (Serial.available()) {
String cmd = Serial.readStringUntil('\n');
cmd.trim(); // removes \r and spaces

// STOP
if (cmd == "s") {
player.stop();
Serial.println("Stopped ⏹");
}
// PLAY / RESUME
else if (cmd == "p") {
if (currentTrack > 0) {
player.start();
Serial.println("Resumed ▶");
} else {
Serial.println("No track ❌");
}
}
// NUMBER
else {
int trackNumber = cmd.toInt();
if (trackNumber > 0 && trackNumber <= 10) {
currentTrack = trackNumber;
Serial.print("Playing: ");
Serial.println(trackNumber);
player.play(trackNumber);
} else {
Serial.println("Invalid ❌");
}
}
}
}

This uses Serial1 — the UNO R4 WiFi's dedicated hardware UART on pins D0/D1 — to talk to the DFPlayer, while Serial over USB is reserved purely for your commands. Open the Serial Monitor, set the baud rate to 115200, then type a track number (1–10) and press enter to play it, p to resume, or s to stop.

Load your MP3 files onto the microSD card (name them 0001.mp3, 0002.mp3, etc. — DFPlayer reads them by track number), insert it into the DFPlayer module, and power on to test before sealing anything inside the case.


Test Everything on the Bench

Don't skip this. Power it up with the wiring exposed and confirm:

  1. Track plays cleanly through both speakers
  2. Serial Monitor commands (track numbers, p, s) reliably control playback
  3. No buzzing or rattling from loose wires against the speaker cones

It's much easier to fix a wiring issue now than after the horn is glued shut.

Final Assembly

WhatsApp Image 2026-06-22 at 12.50.12 PM.jpeg

Mount the Arduino and perfboard inside the base.

Route speaker wires up into the horn cavity, positioning the speakers close to the throat for the best acoustic effect.

Secure the power switch in a discreet spot on the base trim.

Glue the horn onto the base permanently.

Add the final decorative touches — a small spinning disc on top to mimic a turntable record really sells the illusion.

Why I Used JUSTWAY Instead of Hand-Building the Enclosure

download (10) - Copy.png

A hand-sculpted clay-and-paint enclosure is a completely valid way to build a first version of something like this — but it's fragile, slow to replicate, and hard to get perfectly symmetrical. Since I wanted this gramophone to actually hold up and look clean enough to show off at a demo or exhibit, I had the horn and base 3D printed through JUSTWAY instead of sculpting them by hand.

JUSTWAY is an on-demand manufacturing platform that's been running since 2013, with its own factories in Shanghai, Hangzhou, and Shenzhen. For this project specifically, their 3D printing service meant:

  1. An instant online quote as soon as I uploaded my CAD file — no back-and-forth emails for pricing
  2. A free DFM (Design for Manufacturability) review that caught wall-thickness issues in my horn design before it ever went to print
  3. A clean, precise, repeatable part straight off the printer, with sharp surface detail that took paint far better than a hand-filled clay surface would have

If you want to go even further than I did, JUSTWAY also offers a few other manufacturing routes worth knowing about for future versions of a project like this:

  1. Rapid Prototyping for fast iteration with DFM feedback before committing to a print or part
  2. CNC Machining for a precision aluminum or steel internal chassis instead of a glued-in mount
  3. Sheet Metal Fabrication for a riveted metal base instead of a printed one
  4. Injection Molding if you ever want to produce more than a handful of units at consistent quality
  5. Urethane Casting for small-batch (10–50 unit) production-quality parts without full tooling cost

The electronics and code stay exactly the same regardless of which manufacturing route you pick — it only changes how professional the final object looks and feels.

Enjoy Your Gramophone

Turning an Arduino Into a Vintage Gramophone 😍 #tech #arduino #diytech #photography #smartphone

Plug it in, hit play, and enjoy the slightly surreal experience of music coming out of something that looks like it belongs in a museum.

Tips

  1. If the sound seems muffled, check that the speaker cavity isn't too deep relative to the horn's throat opening — depth affects resonance a lot.
  2. Keep the microSD card accessible (even if hidden) so you can swap playlists later.
  3. A small vent hole hidden in the base trim prevents heat build-up around the Arduino.

Troubleshooting

  1. No Sound: Check RX/TX aren't swapped; confirm SD card is formatted FAT32
  2. Distorted sound: Speaker too close to horn throat, or volume set too high for the module
  3. Commands don't respond: Confirm Serial Monitor baud is set to 115200 and line ending to "New Line"