Build Your Own Working Cardboard Record Player
by CreativeLabs in Craft > Cardboard
4310 Views, 48 Favorites, 0 Comments
Build Your Own Working Cardboard Record Player
Welcome to my Instructable! I’ve created a working cardboard record player powered by an ESP32 microcontroller. This isn't just a cardboard model, it actually plays your favorite songs on the built-in speaker and even scans NFC tags integrated into cardboard “vinyl” disks to select the track of your choice. This project blends the nostalgic feel of old record players with the ease and functionality of modern electronics.
Cardboard is an excellent material for this project because it’s easily available, and has a cool aesthetic that adds a unique touch to the record player. By using cardboard and basic components, I aimed to make a record player that is both educational and accessible.
Whether you're a music enthusiast or just searching for a cool project, this Instructable is for anyone that enjoys blending creativity with technology to create something cool and unique.
Ready to dive in and make your own record player? Let’s get started!
Supplies
Here’s what you’ll need for this project:
Components
- ESP32 Microcontroller
- MFRC522 RFID Module
- DFPlayer Mini Module
- 28BYJ-48 Stepper Motor
- ULN2003 Driver Board
- 3W 8Ohm Speaker
- Breadboard Power Rail
- USB-C (Female) Dupont cable
- SD card
- 13x Female to Female Dupont wire
- 6x Male to Female Dupont wire
- Ntag215 NFC stickers
- 8x1mm Round Magnets
Materials
- Cardboard sheet
- A4 Paper sheets
Tools
- Craft knife or scissors
- Ruler and pencil
- Hot glue gun
- Glue
- Cutting mat
- Computer (for programming the ESP32)
Creating the Base
Let's start with the base of the record player. Follow these steps to cut and assemble the pieces:
Making the Top and Bottom Pieces
Grab a piece of cardboard and cut out two rectangles measuring 15x20 cm each. These will serve as the top and bottom of the case.
On the top piece, create a hole of 1 cm in diameter. This hole is intended for the stepper motor.
Making the Side Pieces
- Cut out two pieces measuring 15x5 cm.
- Cut out two pieces measuring 20x5 cm. These 4 pieces will form the sides of the case.
Cut a small notch in one of the 15x5 cm side pieces. This is where the USB-C port will be located.
Assembling the Box
Use a hot glue gun and glue all the pieces together to form a rectangular box. Keep the top open and make sure the edges are aligned properly.
Once all the pieces are glued together, you'll have a sturdy base for the record player.
Retrieving the UIDs of the NFC Tags
Before diving into the programming, you'll need to retrieve the Unique IDs (UIDs) from your NFC tags using an NFC-compatible smartphone and an NFC reader app. Each tag will allow you to play a different song on your record player.
Installing an NFC reader App
Ensure your smartphone supports NFC (Near Field Communication) and download an app that allows you to read NFC tags with your smartphone. For this guide, we'll use NFC Tools.
Reading the NFC Tags
- Go to your smartphone’s settings and enable NFC.
- Open the NFC Tools app and hold your smartphone close to an NFC tag.
- Look for the UID, typically labeled as "Serial Number". It will appear in a format like 04:AB:76:BD:79:00:00
- Note down the UID values of all NFC tags you want to use with your record player. Each tag’s UID will correspond to a different song.
Once you've noted all UIDs you wish to use, we can finally start programming the ESP32!
Programming the ESP32
Before uploading the code, we will have to add the UIDs we have just retrieved into our code. Open the Arduino IDE and make the following changes.
Step 1: Add UIDs to the Code
Locate lines 34-39 in the RecordPlayer.ino file and replace the placeholder values in targetUID1 and targetUID2 with your retrieved UIDs. Each UID is represented in hexadecimal format. In this example: 04:46:B3:CA:78:00:00 becomes {0x04, 0x46, 0xB3, 0xCA, 0x78, 0x00, 0x00}
byte targetUID1[] = {0x04, 0x46, 0xB3, 0xCA, 0x78, 0x00, 0x00}; // Change this value
byte targetUID2[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // Change this value
Add more targetUID arrays if you have additional NFC tags.
// Add extra UIDs if you want to add more songs.
// byte targetUID3[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
// byte targetUID4[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
Step 2: Update Else-If Statements
Navigate to lines 111-133 in the RecordPlayer.ino file. For each additional UID you added:
- Add an else if statement that checks if the detected UID matches the corresponding targetUID.
- Update the song number in myDFPlayer.play() to match the song associated with that UID.
- Ensure each else-if block corresponds to a unique targetUID array and song number.
if (compareUID(uid, targetUID1, length)) {
Serial.println("Playing song 1");
myDFPlayer.play(1); // Play song 1 if UID 1 is detected
songPlaying = true;
} else if (compareUID(uid, targetUID2, length)) {
Serial.println("Playing song 2");
myDFPlayer.play(2); // Play song 2 if UID 2 is detected
songPlaying = true;
}
/*
// Uncomment and add more else-if statements for additional songs
else if (compareUID(uid, targetUID3, length)) {
Serial.println("Playing song 3");
myDFPlayer.play(3); // Play song 3 if UID 3 is detected
songPlaying = true;
}
else if (compareUID(uid, targetUID4, length)) {
Serial.println("Playing song 4");
myDFPlayer.play(4); // Play song 4 if UID 4 is detected
songPlaying = true;
}
*/
Let’s upload the code to the ESP32
In order to upload the code to the ESP32 microcontroller, we will first need to install the necessary libraries and the ESP32 board in the Arduino IDE.
Install Libraries:
In the Library Manager window, search for and install the following libraries:
- DFRobotDFPlayerMini
- MFRC522
Install ESP32 Board Package:
- Go to Tools > Board > Boards Manager....
- In the Boards Manager window, type "esp32" into the search bar.
- Select esp32 by Espressif Systems and click Install. (If already installed, skip this step.)
Uploading the Code:
- Connect your ESP32 board to your computer using a USB cable.
- Go to Tools > Board and select ESP32 Dev Module from the list of available boards.
- Ensure the upload speed is set to 115200. Go to Tools > Upload Speed and select 115200 from the dropdown menu.
- Click the upload button (→) in the Arduino IDE to compile and upload the code to your ESP32.
Monitor the Upload:
- Watch the status messages in the bottom console of the Arduino IDE. Ensure the code uploads successfully without any errors.
- Once uploaded, open the Serial Monitor (Tools > Serial Monitor) to view debug messages from the ESP32. This will help verify that everything is working correctly.
Troubleshooting:
If you encounter errors related to the MFRC522 library (specifically involving if (backData && (backLen > 0))), you may need to edit the library files:
- Navigate to the MFRC522 library folder in your Arduino libraries directory.
- Open the MFRC522Extended.cpp file.
- Replace if (backData && (backLen > 0)) { with if (backData != nullptr && backLen != nullptr && (*backLen > 0)) {
- Save the file and recompile your code.
Congratulations! Your ESP32 is now programmed we can almost start wiring everything up.
Downloads
Downloading Your Favorite Songs Onto the SD Card.
It's time to get your favorite songs loaded onto the SD card for use with the DFPlayer Mini module.
- Plug the SD card into your computer and create a new folder named MP3 on the SD card. Copy all your songs in MP3 format to this folder.
- Rename each MP3 file using the following format. For example:
- 001.mp3 for the first song.
- 002.mp3 for the second song, 003.mp3, 004.mp3, etc.
Each MP3 file corresponds to a specific NFC tag UID that you have programmed into your ESP32 code.
Make sure that the numbering of your MP3 files matches the order and UIDs of the NFC tags listed in the code. For example, if targetUID1 corresponds to the first NFC tag, then 001.mp3 should be the song you want to play when that NFC tag is detected.
Finally insert the SD card into the DFPlayer Mini module.
Wiring the Electronics
Now let's wire up the electronics. Use Dupont wires to connect all the components as follows:
RFID Module (MFRC522):
- VCC: Connect to ESP32 3.3V pin.
- GND: Connect to ESP32 GND pin.
- RST: Connect to ESP32 GPIO pin 22.
- SDA (SS): Connect to ESP32 GPIO pin 21.
- SCK: Connect to ESP32 GPIO pin 18.
- MOSI: Connect to ESP32 GPIO pin 23.
- MISO: Connect to ESP32 GPIO pin 19.
Stepper Motor:
- VCC: Connect to the 5V power rail of the breadboard.
- GND: Connect to the ground rail of the breadboard.
- IN1: Connect to ESP32 GPIO pin 32.
- IN2: Connect to ESP32 GPIO pin 33.
- IN3: Connect to ESP32 GPIO pin 14.
- IN4: Connect to ESP32 GPIO pin 12.
DFPlayer Mini:
- VCC: Connect to the 5V power rail of the breadboard.
- GND: Connect to ground rail of the breadboard.
- TX: Connect to ESP32 GPIO pin 16.
- RX: Connect to ESP32 GPIO pin 17.
Ground Connections:
- Connect the USB-C ground pin to the ground rail of the breadboard.
- Ensure the ground of the DFPlayer Mini, stepper motor, ESP32, and USB-C cable are all connected to the ground rail of the breadboard.
5V Connections:
- Connect the USB-C 5V to the 5V power rail of the breadboard.
- Ensure the 5V of the DFPlayer Mini, stepper motor, USB-C, and the ESP32 VIN pin are all connected to the 5V power rail of the breadboard.
Double-check all connections to ensure they are secure and correctly aligned with the pins specified.
Once you've confirmed that everything is properly wired, connect a USB cable to power up the system. Test the functionality by holding an NFC tag over the RFID reader. You should see the stepper motor spinning and hear music playing from the speaker. This will confirm that the setup is working as intended.
Assembling All in the Case
Now that all the parts are ready, let's put everything together.
Attach Components to the Base:
- Use hot glue to secure the ESP32, DFPlayer Mini, speaker, stepper driver board, and breadboard onto the base piece of cardboard.
- Don't glue the RFID module and stepper motor yet. These will be attached to the top piece.
Attaching Components to the Top piece:
- Take the top piece of cardboard and fit the stepper motor through the hole you made earlier. Use hot glue to secure it in place.
- Attach a small magnet on top of the stepper motor rotor. This will hold your record disks in place magnetically.
Position the RFID reader module next to the stepper motor on the top piece. Secure it again with hot glue.
Double-Check Wiring:
- Recheck all the connections to make sure they are secure and correctly aligned with the specified pins.
- Power it up and test the setup by holding an NFC tag over the RFID reader to see if the stepper motor spins and the speaker plays music.
If everything is working correctly, carefully close up the box and secure the top piece to the base with hot glue.
Creating the Cardboard Record Disks
Let's begin crafting the cardboard "vinyl" disks.
Start by printing out the provided PDF template on A4 paper, then cut out the templates. Glue these cut-outs onto pieces of cardboard.
Cut the cardboard along the edges of the templates to create your vinyl disks.
Glue one or two small magnets onto the bottom center of each disk. Remove the adhesive backing from the NFC tag and paste it right next to the magnets on each disk.
You can repeat this process and create as many disks as you would like.
Downloads
Decorating & Adding Details
In this step, we'll focus on two main tasks: crafting the platform where the disks will rest and constructing the arm holder and the arm of the record player. Additionally, we'll add some cool details like a volume slider and other small cardboard decorations to enhance the look. Feel free to customize these decorations as much as you like. Let your creativity shine and make your record player truly unique!
Crafting the Disk Platform
- Cut out a cardboard disk with a diameter of 8.5 cm. Make a 1 cm diameter hole in the center.
- Cut a strip of cardboard measuring 26.75 cm x 0.3 cm.
Glue the strip around the edge of the disk to create the platform.
Attach the platform to the record player. Make sure the center aligns with the stepper motor. The magnet of the stepper motor should be flush with the surface for smooth operation. If needed, add additional magnets to achieve a flush alignment.
Creating the Arm Holder
- Cut out four small cardboard squares, each measuring 2.5 cm. Stack and glue these squares together, then position and glue the stack at the top right corner of the record player.
- Create an 8 mm diameter, 4 mm high cylinder from cardboard and glue it on top of the stack. Attach a magnet to the top of the cylinder. This will serve as the attachment point for the record player arm.
Creating the Arm
- Cut out a small rectangle of cardboard measuring 14.5 cm x 2.5 cm.
- Draw a "J" shape on the cardboard and cut it out to form the record player arm.
- Glue a magnet to the arm
- Bend the tip of the arm downwards slightly to ensure it makes proper contact with the disks during operation.
The arm magnetically attaches to the base and should move freely. Ensure the tip makes proper contact with the disk so it is able to move towards the center, just like a real record player would.
Adding the Final Touches
We're almost done! The last part is to create the volume slider and add some other aesthetic features.
For the volume slider, cut out two rectangles as shown in the image below and glue them to the bottom right of the record player.
I've personally added some corners to make it really stand out! You can also add your own personal touches in this step.
Enjoy Your Record Player
Congratulations, you have successfully created your own fully functional cardboard record player! Take a moment to relax, load your favorite disks and let the record player do its work. Enjoy the music and the satisfaction of building your own functional cardboard record player!