3D Printing Records for a Fisher Price Toy Record Player

126K225121

Intro: 3D Printing Records for a Fisher Price Toy Record Player

A little while ago I stumbled across an old toy record player made by Fisher Price in the 1970s, and decided that what it really needed was some new tunes. I got thinking about it, reverse engineered the way it was encoded, got out my trusty CNC mill and created an Instructable all about it right here.

I was blown away by the response to it, but I only know of one person who had a goat milling their own. Whilst the mill did a great job (and I explained how to convert your own too), a CNC mill is not the sort of thing that everyone has access too.

So as promised, I decided that a 3D printed version would follow to give more people a chance to get creative. More people have a 3D printer or have access to one. And even if you don't, once you have the STL file there are plenty of places that will bring your creation to life and mail you a physical copy.

I thought about just adding to my previous Instructable, but to be honest it's only the music editing side of things that's the same. Everything else from the file creation to the production is very different. I thought a new Instructable would be neater.

Anyway, let's get on with creating your masterpiece...

STEP 1: What You'll Need

For my previous Instructable you needed a CNC mill and some acrylic sheet. Now all you need is some free software. If you have a 3D printer then great; if not, you can get still get a record created for you.

Attached you'll find the new version of my Fisher Price music editing software. It's included as an executable and (if you don't trust randomly downloaded software from the internet) the C# source code is there too. Feel free to take a nose around in the source code and compile it with the free version of Visual C# 2010 Express.

You'll also need a copy of OpenSCAD. This amazing software allows the scripting of 3D CAD objects and is what turns the idea of what you want into the STL file that a 3D printer accepts.

Wow - all this software and no need to pay a penny for any of it.

If this all sounds like too much trouble, then you can just open one of the pre-generated STL files. Your jukebox comprises of Stairway to Heaven, the Star Wars theme and You are my Sunshine. If none of those float your boat then don't complain... get editing. I'd love to hear what you can do.

STEP 2: Editing the Music

First fire up my music editing software. This software will let you edit your tune and preview it so see how it sounds before you print it.

The software is admittedly pretty basic. It's not exactly sophisticated musical software but the player is not exactly hifi equipment. It does the job and I hope you'll find it easy to use.

Click where you want to add a note and click again to remove it. Click on the blue + if you want to add a gap. Click on the red X if you want to delete some notes and shuffle everything up. Click the Play button to preview your tune.

The left hand side of the musical stave shows all the note that the player can play. You'll find they are most of the notes from a C major scale and cover about 2 octaves. There are no sharps of flats and a few notes are missing. I guess that's because the original 10 nursery rhymes it can play just didn't need them.

Once you've finished your masterpiece (or more likely transposed someone else's tune) it's time to create the physical product. Click "Build / Create SCAD file..." in the editing software. (There's also the option of gcode files if you were going to CNC mill the disc.) A file with the same name as your music file and an extension of scad will be the result.

You can now create double sided discs! When creating the SCAD file you'll get the following options:

  • Disc thickness. You can create 3mm or 5mm discs
  • Single or double sided. Double sided discs should be 5mm thick. You can also select the music for the second side
  • Song title on the disc. You can now have the song title embossed on the disc surface.
  • Render quality. If your mucking around and making changes, a lower quality cirlce will render quicker.

Of course, all the options are easily found in the SCAD file which is plain text. If you want to create a chunky 2cm thick disc then go ahead and edit the file.

STEP 3: Using OpenSCAD to Generate the STL File

The next step is simple, but can take a while.

The Fisher Price editing software has dynamically created the scad file which contains all the 3D modelling instructions needed to create your record. If you've not yet installed OpenSCAD then now is the time to do so.

Open the file and all you'll see is the generated script in a window on the left hand side. Press F6 and your script will be run and a 3D rendering will appear. The file is set to use 100 straight lines to create each circle. This means that the circles will be smooth but the rendering may take over 10 minutes. If you're mucking around and are less concerned about accurancy and would rather have some speed, simply remove or comment out the line that says "$fn = 100;". If you think that's slow, a double-sided disc can take about 50 minutes to generate!

You can now see how your disc will look. Spin it. Flip it over. Zoom in/out. Your musicis on its way to becoming a physical product. The next step is to select "Design / Export as STL..." from the menu and OpenSCAD will create a STL file. This won't take as long as the calculations have already been done. This file is what your 3D printer will be expecting.

STEP 4: Printing Your Work

So, what are you going to do with this STL file? If you have (or have access to) a 3D printer that can manage a print of about 12.1cm (about 4.8") in diameter then get printing!

If you don't, then there are plenty of places that will print this for you. One of the most popular is Shapeways. They'll produce a 3D print for you in various materials from about $30. In fact, you'll find mine are already there:

Obviously the final result will depend on what printer you use. The ones that were produced on the Objet printer that Instructables use have turned out great. In the photo you can see four discs. The purple is a Fisher Price original and the orange one my CNC milled version. The other discs are 3D printed in green ABS-like material and transparent "Vero clear" plastic. The both play well on the player, although the Vero clear has sharper definition than the ABS and the transparent disc definitely looks the best.

A few people have asked to see a video of the printed record playing, so here's the final result.

If you check the comments you'll see that Timmmyboy has has some success printing on a more typical home (Fused Deposition Modelling style) printer, but getting the very thin (0.7mm) ridges on the disc is not easy.

92 Comments

The music editor worked great, but I think there is a problem with the SCAD generation. I am having the same issue as BasileVinet reported (see the screen shot). I tried running the file in compatibility mode for Windows 8, as Pieter_Jan_Sterk kindly suggested, but to no avail. It looks like the record and tracks are fine, but all the notches/pins are wrong. In my SCAD file, the pin function has 7 arguments:
pin(29,15,30,35,45,6351919384093,0);
pin(29,15,30,35,90,6351919384093,0);
pin(29,15,30,35,153,635191938409,0);

but the pin module only uses 4 arguments:
module pin(inner, outer, angle, onSecondSide)

Furthermore, the pins are defined with a cube, which is translated a variable-amount along the x-axis and always -0.5 along the y-axis, which I don't think can work.
{
rotate(a=angle) {
if (onSecondSide > 0) {
translate(v=[inner, -0.5, - overlap]) {
# cube (size=[outer-inner, 1 ,hGroove + overlap], center=false);
}

Does anyone have any thoughts about how to fix this? I would be so grateful for help.

Benjeman

I know it's been a long time since this comment but maybe it will help someone else :

it's an error due to the way floating point numbers are handle by the program.

you can fix this by changing some comma to points :

the easyest way i've found is by working backward :

for example:

pin(29,15,30,35,45,6351919384093,0);

the lastest comma is fine. the next one from the end(after 6351919384093) has to be change, then you change every other one :

pin(29.15,30.35,45.6351919384093,0);

the first two argument should be around 1 appart, sometimes they're whole numbers :

pin(43,44,2,117,365711286755,0) become pin(43,44.2,117.365711286755,0);

hope this helps(excuse me for my english, i'm not a native speaker)


You mentioned this instructable creates discs for the 1971 iteration of the fisher price record player. Do you know if the discs will work on the later models? I just bought the 2010 version before finding this post. Judging from the pictures the ‘71 discs have bumps like a music box but the 2010 version does not, which is why I am wondering if the newer players can play the original discs. I would LOVE to have a Baby Shark disc for my daycare class!
Sadly, my Fisher Price Record player works only in 4 rings, ie the binary value triggers a predefined tune. I found the 4 disks are missing binary values for 1,2,4,8. Possibly I will 3D print these out to see if they uncover these 4 'missing' tunes. The slot in the player only holds 4 disks.
I may have missed something , but how do I take the MIDI file and transpose it into an NC file form your software Fred, I have over 2000 midi files and the knowhow to actually make the record itself, but that first step is eluding me. Do I just print off a text file with the MIDI notes?
Variant idea I had was to make an all-purpose disk, with holes to put tiny pegs
in, so you could assemble songs. Question then becomes how to space the
holes (Same number in each concentric ring, or more possible beats for
the notes closer to the outer rim? I have no idea if the spindle or rim
notes are higher or lower.)
Welp, wish I could use this software on mac. Cool project though!
i hope that record is playing darude's 'sandstorm'
Is the source code for the music composition tool in Github or equivalent? I plan to make some changes and wondered if there was a repo I could fork?

Hi really great job! i have just one question, your software only allow 16 notes, but fisher price can play 22 notes. i have checked the disk and the mechanism. is it normal or am i missing something? thanks

it can only play 16 notes.. they permanently removed 6 of the metal pins in production, so you will never get them to play...

Hi,

First of all, i d'like to thank you for this amazing work. I searched for a couple of months the way to make a music box with my favorite song or any little music i love.

So now, i bought a fisher Price player on ebay and i'm looking for a 3D printing service. I have found a fantastic FAbLab in Paris where i live.

So, i created a lullaby with your "FrefRecordPlayer" but i do not convert my music on a real object (virtually) . I always have the same result with OpenScad and http://openjscad.org/ I join the screen shot.

Do you have any idea why the result is wrong ?

Thanks again for your work.

Basile

I have the exact same problem, did you ever find out a way to fix this?
After a bit of trial and error, this seemed to be a compatibility issue with Windows 10. Right-click the executable, select compatibility and lauch as Windows 8, ran like a dream! Thanks for the custom tune, love the idea!
The link for the music editor does not work? Is there any other websites i can use?

Hello, I am trying to replicate this project and I am getting an error when trying to generate the SCAD file:

System.NullReferenceException: Object reference not set to an instance of an object

en Fred.RecordPlayer.ScadWriter.Generate(IPlayable recording, Boolean secondSide)

en Fred.RecordPlayer.ScadDialog.generateButton_Click(Object sender, EventArgs e)

en System.Windows.Forms.Control.OnClick(EventArgs e)

en System.Windows.Forms.Button.OnClick(EventArgs e)

en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

en System.Windows.Forms.Control.WndProc(Message& m)

en System.Windows.Forms.ButtonBase.WndProc(Message& m)

en System.Windows.Forms.Button.WndProc(Message& m)

en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

has anyone come across this issue?

I know this was three months ago, but I ran into this also. The solution is to make sure you save your composition before you try to generate the SCAD file.

I would love if someone could post STL files for printing. I'm a mac user and cannot run the software to create the stl files. Much appreciated!

More Comments