loading
Picture of DIY Turntable
IMG_7192.JPG
IMG_7189.JPG
You always wanted to be a Disc-Jockey. You know nothing about beats, delays or mixing but, damn, scratching is like the coolest thing ever invented!

If this is also your case, follow this instructable to build a low-fi DJ set: the DIY Turntable as featured on Gizmodo and Engadget, and take the chance to recycle your old cassette player into a new cool instrument.
 
Remove these adsRemove these ads by Signing Up

Step 1: Materials

Picture of Materials
DSC_3434.JPG
Minimum:
- Cassette player (better if it's an old one)
- Wire and wire strippers
- Prototyping breadboard
- Soldering iron + solder
- Screwdriver
- 5 to 9V battery with battery holder
- Some kind of variable resistor or potentiometer

Advanced:
- Arduino with its USB cable
- IRF540 Mosfet (transistor)
- 5 LEDs
- 5 220ohm resistors (brown-red-red)
- one 1kohm resistor (red-black-brown)
- Computer cooling fan
- Box or some kind of enclosure

This project is divided in two parts. By doing only the basics you’ll be able to control the speed of the music  without even having to touch an Arduino or write a line of code. Almost zero budget and quite fun.

If you decide to follow to the advanced part, you’ll be able to have the pc fan act as a turntable (although it won’t be real scratching because the gears of the walkman won’t let you play backwards). You'll have total control over the speed of the music and will add whatever effects you like, like the LED indicator.

So, let’s get started!

Step 2: Walkman hacking

The core of this project is the following: In a cassette player, there’s a small DC motor that spins the tape. It’s powered by a battery that provides a constant voltage. Our goal is to supply our own voltage to the motor: higher than the battery to speed up the song or lower to slow it down.

Opening
Start by taking off the battery. Unscrew all the screws on the back case and inside the battery place and remove the case. Do it carefully because some parts like the volume gear are loose and you may have to place them again. Take a picture or remember where everything is.

The tricky part
Once you see the guts of your old player, you’ll have to find the two wires (red and black) that provide voltage and ground to the small, round-shaped DC motor that will usually be on the right side. If you’re lucky you’ll see the points where they are soldered, otherwise you’ll have to cut them.

To check they are the ones we’re looking for, press the play button and try to apply some volts on this wires by connecting them to your battery. If the song plays, you found the right spot!
Now solder your own black and red wires to where the original ones are soldered, or cut the original ones and attach yours. Leave your wires quite long to have room to play.

Close it
We’re almost done. Find a place to pass your wires once the case is closed. Many players have a hole for DC-In that’s very useful for that. If yours doesn’t you might have to drill yours, or pass them through the space for the battery.

Finally, put everything in its place again, close the case and screw it on.

Step 3: Be creative!

Picture of Be creative!
Now, your walkman is hacked. Insert your favorite tape, apply whatever voltage you want to the wires and, if play button is pressed, the song will play faster or slower. Be aware that there’s a minimum voltage to start the motor, and a maximum you shouldn’t go over if you don’t want to burn the circuitry.

But the fun thing is to have control, and the easy way to do it is with variable resistors. Start with a simple slide or knob potentiometer like the one in the image.  After that, you can try with more interesting stuff, like placing a photocell between the positive wires of your battery and the motor (sorry, I didn't have one to show you!). You'll probably need more power, but eventually you'll be able to play your walkman like a theremin.

These cheap parts will change their resistance depending on different inputs and allow you to control the walkman with a simple analog circuit.

So here’s my challenge: Be creative and invent your own controllers!

Step 4: Digital wiring

Picture of Digital wiring
DSC_3369.JPG
Turntable_bb.png
If you, like me, are more comfortable with digital electronics, here’s how I wired everything up.
The fan positive wire is connected to pin A1 in the Arduino, and the negative one is connected to ground through one 1k ohm resistor (it acts as pull-down).
The walkman is connected to the digital pin 6 of the Arduino using an IRF540 transistor.

Notice some important things:

- You’ll need to have a battery holder with a jack to plug it to the Arduino. This way can we power both the Arduino and the Motor. 

- We're only using the red and black wires of the fan, the other is for control but we don't need it in this case. Some newer models maye even have more wires.

- The fan is plugged directly to the analog pin of the Arduino, which is something you should never do because you could fry it, if it reads more than 5V. I did it because I previously tested the fan and found I couldn’t generate more than 2V by spinning it manually. So, if you can, test it too.

Step 5: Arduino coding

The code basically performs one task: read the input from the fan and map it to a proportional output to the walkman. It also smoothes the readings from the fan, since they are quite unstable.

Download the attached file, compile it and upload it to the Arduino (is it your first time? check out the guide )

When testing it, you may find that you have to tweak the ranges for both the input and the output, since they will change depending on your hardware and battery. Try adjusting this 3 constants:

- minV
- maxV
- maxFan

Step 6: Make it look nice!

Picture of Make it look nice!
DSC_3353.JPG
DSC_3356.JPG
Turntable_bb2.png
DSC_3349.JPG
IMG_7170.JPG
When everything works, you can add the LEDs for some extra eye candy. Solder black wires to their short legs and red to the long ones. Then plug the negative (black) to the ground line of the breadboard with a 220ohm resistor inbetween. Their positive legs should be plugged directly to digital pins 8, 9, 10, 11 and 12 of the Arduino.

Build a nice enclosure from whatever material you have available and attach the devices to it. Since mine was cardboard, I fixed the cassette player and the cooling fan with their own screws, and it was easy to drill holes for the wires. You’ll have more work with more sturdy materials, but it will look better.

Fix the battery, breadboard and Arduino inside of the box and wire everything up again. Plug the battery, choose a tape and... make them dance!

You can now play with different tapes and see how vocals, instruments and rythms are distorted by the changing speed in different genres of music.
ajalademola2 years ago
I like this project but im having a problem with it. The problem is that I'm not sure if I can I use a cd player instead of the walkerman and if I can use a cd attached to a motor instead of an old computer cooling fan?
You cannot use a CD player as the data stored on cds is digital (You would just get a read error, or something like that.)
McMchriis3 years ago
Any Videooo!!!!
I made all the connections, doubled checked the code to make sure I had the right pins, but the motor wont spin. I checked the motor and it works fine. I used the IRF540 Mosfet, could it be something with my fan? Or is there something else?
araid (author)  samuelhtrowbridge3 years ago
Thanks for trying it. It's hard to tell what's wrong from here... I suggest you test things separately. Try to analogWrite a specific vaue on the motor pin, without using the fan. Then try to print the readings from the fan.

You can also try to plug it directly to the arduino pin and the ground, without the IRF540, and see if you can write enough power to run it.

Values will be different for every hardware, so you might have to play a little with them before getting the right effect.
Thanks for the quick response. I tried reading the fan with analogRead, it only read 0 so i think the fan might be busted.

What's really strange is I tried plugging the motor directly to the arduino pin and the ground (i tried digtal and power to make sure) , but the motor doesnt budge. I tried digital and analog write with all different values but I know there should be no problem because I tested the motor with a D battery which is about 1.5V.

The arduino runs fine with everything else. What do you think?
Sorry to be a pest but this is really weird.
araid (author)  samuelhtrowbridge3 years ago
I found the current to be as important than the voltage when trying to power motors, so, although you can power it with a 1.5V battery, yo might not be able to do it directly from the Arduino pin, since it provides different current.

From the Arduino website:
DC Current per I/O Pin 40 mA

On another note, although you can connect small motors to the Arduino, it's usually not recommended. That's why you would use a transistor inbetween. You can check out this tutorial if you want to know a bit more http://itp.nyu.edu/physcomp/Tutorials/HighCurrentLoads

Hope it helps
ghurse3 years ago
If you are concerned that the Fan may generate more than 5V: insert a 5V Zener Diode from the Positive to ground, and a series limiting resistor. As input is a high impedance.. there should be no problem with that resistor being 47k but even a 4k7 will provide current limiting and allow the pulses from the fan motor. May I also recommend a .01uF ceramic or Poly cap across the motor as well as the zener.. some motors (typically the brush type) can generate some very potent spikes this will keep you from upsetting the Arduino input.
araid (author)  ghurse3 years ago
Yes, the zener diode is a very good idea. As for the resistors, I initially placed them like a voltage divider (there are some equations if you google it) but I found the signal to be so weak that there was no way to exceed 5V.

But, again, it will depend on your fan, so it's always good to prevent!
What's an easy way to see how much voltage the fan makes? Just attach to a multimeter and spin?
araid (author)  samuelhtrowbridge3 years ago
Yes, spin as fast as you can an that's the maximum it will generate. Although it's quite jittery and can be hard seeing it with a multimeter. Maybe it's better to record it with the Arduino.
soshimo araid3 years ago
You could also tie the arduino pin to the base of a tip120. Tie the ground of the fan to ground, and the positive terminal to the emitter of the tip120. Tie the collector of the tip120 to the fans positive supply (up to 12vdc for computer fans). You drive the fan using PWM to the base of the TIP120. You could also just write a digital one to the port tied to the transistor for 100% duty cycle.
agis683 years ago
wow.....is that a joke or what?....where are the LP's with the black shiny silked surface? where is the vermouth drink, the smooth lights....omg i belong to an old era.....ura! new turntables in shops doing what?????......omg
Twenty first century.
Get with the program brother....
Do I have to use a MOSFET?
araid (author)  blinkyblinky3 years ago
The IRF540 Mosfet is the one I'm used to, but you could probably use a similar transistor, like IRF510 or IRF520 or TIP120... just try with what you have.
Thanks.
dokcal3 years ago
LOL! I'm so old, I think a turntable is a thing you play vinyl records on...
WVvan dokcal3 years ago
That makes two of us.
more : at least three if you accept to count me in !!!.
;D
crapier dokcal3 years ago
I think it is. I really wondered how he was going to get the capstan motor to spin a 12"
nigelh3 years ago
That makes three of us :D
That is awesome! I've been trying to think of a use for an old cassette player! Now if I only still had cassette tapes lol
araid (author)  DarkRubyMoon3 years ago
Haha, I also had to go buy them at the thrift store
jresqyr3 years ago
Groovy!