• Welcome to the WDWMAGIC.COM Forums!
    Please take a look around, and feel free to sign up and join the community.You can use your Twitter or Facebook account to sign up, or register directly.

The MagicRadio - feat. The Jungle Cruise's Albert Awol

GlacierGlacier

Well-Known Member
Original Poster
A few weeks back, my friend and I were standing in line for the Jungle Cruise. As we were talking, I got the idea for a physical radio, styled to match the 1930s aesthetic of the Jungle Cruise, that would play the audio loop from the Jungle Cruise. Not only that, but it'd play any fictional radio station I put together. The next day, I got to work on prototyping.

IMG_20180620_153048.jpg

The core of the project is a Raspberry Pi, with a soundcard bonnet attached. This communicates with an Arduino Uno for the use of analog knobs as input.

The main program is written in python, and plays music through PyGame.

My big concern throughout the project was how I'd house the radio. I wanted to use a classic radio, but I didn't want to break anything that was functional. My big break came from when I visited a flea market, and found some functional radios for sale. I got to talking with the shop owner, and after asking if he had any broken radios, he came to me with this, completely complementary.

20180701_215956.jpg

It's taken a while, but I've finally gotten both the hardware and software to a point where I've accomplished the original goal: playing the Jungle Cruise loop with volume controls.

(link removed)

This thread will serve as a log from now on, and I'll hopefully update it daily. I've got a backload of images that I'll be posting here shortly, too.
 
Last edited:

GlacierGlacier

Well-Known Member
Original Poster
Advertisement
Here's some images from the teardown of the radio's internals. The radio had been left out in the sun/rain for a while, as I was told, so most was non-functional. All the tubes were burnt out, a lot of parts were corroded, and it was missing the antenna coil. I tried to preserve as many parts as possible, but I did just simply snip most parts off.

20180708_133045.jpg

20180708_124205.jpg

20180708_123842.jpg

I tried to de-solder stuff at first, but it was taking way too long and smelled a bit like the burning Rome portion of Spaceship Earth (which is a great smell, except when it's actual burning).

20180708_133108.jpg

I also found that the original volume potentiometer operates identically to a modern potentiometer with a linear switch, so I managed to preserve that for use.

20180708_133102.jpg

My big hold-up right now is manufacturing the right parts to get the tuning data. The original part used some odd configuration of plates and knobs, but I'm just going to do some string things and wheels to connect the original **** to a potentiometer.

20180708_160106.jpg20180708_133108.jpg20180708_160010.jpg

There was a ton of parts riveted directly into the metal frame, too. I had to drill those guys out, but broke a drill bit or two in the process.

20180708_165638.jpg

20180708_211823.jpg
 

yaksplat

Well-Known Member
This. Is. Awesome.

I've played this loop around my house countless times. It makes me want to do the exact same thing.

Do you have it start at a random time each time it's turned on? Maybe make the old tuning sound when you change the station and then queue up a different part of the track...

You could always use a linear pot for tuning off of the needle position.
 

GlacierGlacier

Well-Known Member
Original Poster
This. Is. Awesome.

I've played this loop around my house countless times. It makes me want to do the exact same thing.

Do you have it start at a random time each time it's turned on? Maybe make the old tuning sound when you change the station and then queue up a different part of the track...

You could always use a linear pot for tuning off of the needle position.
When you tune into any station for the first time, the music starts at an offset determined by the remainder of time since a certain date (in seconds) and the duration of the song/loop. This allows a certain 'persistance' that makes it feel like a real radio, with the stations 'playing' when you're not there.

Since this post, I've gone and designed a mechanism to convert the rotation of the big wheel below the tuning dial to a potentiometer I have, and am attempting to have it 3D printed. Unfortunately, the person who is printing it has a broken printer, so it may be delayed. But i'm really hopeful. I'll update the thread later today with photos of the designed parts.
 
Last edited:

GlacierGlacier

Well-Known Member
Original Poster
The Tuning Mechanism
(Quick technical vocabulary lesson: a potentiometer is a dial which outputs a signal based upon its position)
The original radio has this beautifully simple tuning mechanism, which not only translates the rotation to the radio tuning mechanism but a simple linear display, all done through the pulling of a string. I really wanted this display for use with the radio, but it took me quite a bit to figure out how to do it. I had a few problems with just implementing it:
  1. Different Turning Ranges: The tuning dial on the radio turns somewhere between three and five full rotations, granting the user a lot of fine control when it comes down to changing stations. This is great for me, as it means I can pack in a lot more stations. However, the potentiometers I have only rotate about 270°.
  2. Very Strongly Attached: The original dial is pretty much just a single rod very, very firmly kept in place in the front of the radio. I could theoretically drill it out and replace it with my potentiometer, but then you have the turning range issue and I'd likely have to scrap the linear display
  3. Alternate Displays are Complicated: I could theoretically go through and just throw my dial onto the metal frame, scrap the display, and put together my own using either a screen (e-ink or lcd would be great) or a motor to pull the string back and forth, but all that stuff is annoying and adds extra complication to what is already a kind-of complicated project.
The Solution
Below the original tuning dial is a wheel which converts the many, many turns of the tiny tuning dial into the ~180° range that the original tuning mechanism uses (If I had the tools/knowledge, I could've bodged together a way to use the original mechanism, but again, complication).
20180701_213256.jpg
Tuning Mechanism is on the left side of the frame, with the linear display in between the dials and the original mechanism for tuning below the left dial
I realized that if I could get a wheel of the appropriate diameter, I could connect the big wheel and that wheel together using a rubber band or belt and get exactly the range I needed. Time to pull out the calculator and do some simple algebra! (Math hidden in spoiler because it's math)
The diameter of the big wheel was measured at about 51.91mm, and would turn about 180°. Using the formula for the arc of a circle, c=2πr(arc/360), we plug in our variables c=51.91π(180/360) to get an arc length of about 81.54mm. This means that over the 180° rotation of the big wheel, about 82mm would roll through. We can use the same formula from before, this time trying to find out r instead of c. We plug everything in, 81.54=2πr(270/360). This gives us a final radius of about 17.3mm.
Now that we've got our radius (17.3mm), we throw that into my CAD program of choice, Fusion 360, to give us a wheel. I then go through and put together a simple little frame to hold the potentiometer in place, and that gives us this:
Fusion360_2018-07-25_17-20-09.pngFusion360_2018-07-25_17-20-35.pngFusion360_2018-07-25_17-20-18.png
The grey parts are pre-existing parts, the potentiometer, metal frame, and big wheel. The parts I'm having 3D printed are in white, and the red is the rubber band. Only now that I'm re-doing my math I realize I may be off by a bit with the small wheel, but it should be ok. The contact I had printing the parts said he printed them last night, but who knows at this point. Still waiting for any message or news. I may even pick up my own printer at some point. I don't know. But the plans all work and should be ok. Hopefully...

Anyway, right now I've got a full plate. I'm working on the new skin for the radio, working on the final stage of software (for audio playback with dynamic fictional stations) and beginning to look into operations as a bluetooth speaker. I just hope this stage is done soon so I can get the potentiometer a real home instead of dangling on three wires inside of the box.
 

yaksplat

Well-Known Member
Looking good!

You may want a spring loaded idler pulley to keep the tension constant on the band, unless the band is already in constant tension.

Check out the monoprice printers.

My 3d printer isn't up to par, but I've got a mill and lathe that I'm adept at.

I'm hunting down an old radio...
 

GlacierGlacier

Well-Known Member
Original Poster
Looking good!

You may want a spring loaded idler pulley to keep the tension constant on the band, unless the band is already in constant tension.

Check out the monoprice printers.

My 3d printer isn't up to par, but I've got a mill and lathe that I'm adept at.

I'm hunting down an old radio...
Thank you!

The band is in constant tension, thanks to the distance I've measured out for it.

I'm definitely looking at a Monoprice one, the only worry on my end is that I'm heading off to college shortly. Space / Money is constantly a concern - though I do believe my university has a 3D printing service available for students. Regardless, thanks for the tips.

Also, if you are interested in putting a radio like this together, I'll gladly upload the software framework I've put together once I get that done.
 

yaksplat

Well-Known Member
That would be great. I haven't done much python outside of building a NES out of a pi, but i'm sure i could wade my way though it. Stay away from the M3D printers. They're absolute garbage.
 

GlacierGlacier

Well-Known Member
Original Poster
Sorry for lack of updates - I've been working quite fast to get it done before I head to college.

Here's a recent recording - the tuning mechanism is installed (different than what I originally posted), software v1.0 is completely done, and most importantly, the outside has its new skin

(link removed)

Todo: finish handle, attach rubber feet, manufacture and install back panel, clean up/reinforce soldering.
 
Last edited:

yaksplat

Well-Known Member
I'm thinking of expanding the audio choices. In the old cartoons, there are plenty of good audio clips. Donald and the gorilla, duck pimples, various cooking shows, etc... Different stations could hit these audio clips. Then the radio is more than a one trick pony.
 

GlacierGlacier

Well-Known Member
Original Poster
I'm thinking of expanding the audio choices. In the old cartoons, there are plenty of good audio clips. Donald and the gorilla, duck pimples, various cooking shows, etc... Different stations could hit these audio clips. Then the radio is more than a one trick pony.
Currently the radio has 14ish stations, but most act just like a shuffled audio playlist. I've got two special ones which loop audio dramas (Orbiting Human Circus, Second Imaginary Symphony), two which recreate entirely the radios from the games Fallout 3 and Fallout New Vegas, including a DJ which has dynamically generated radio shows.

I really want to do more 'special' station types, like having procedurally generated soundscapes or maybe even a procedural soundtrack, but right now I'm just finishing it up ASAP so I can have it done for a "everyone is leaving for college" end of summer party. Luckily, I've made it quite easy to add music, additional station logic, and even change the patterns of the DJs.

And it functions as a Bluetooth speaker, too. That covers any gaps I miss in terms of music playback for now.


But if you have ideas for more dynamic stations, definitely post them. I'm always up for a software challenge.
 

GlacierGlacier

Well-Known Member
Original Poster
Software/Technical Stuff!
The source code is now available on Github!

Includes documentation of setup, design, configuration, and the different bits and bobs.
Code itself is heavily commented / documented to shed a light on how/why it was written as it was
Please visit for explanations on pretty much every part of the software/hardware stuff.

I'll be posting the final physical stages of construction here soon, sorry for delays in updates.
I'm pretty much done now, so now I can finish documenting everything both physical and digital.​
 
Last edited:

GlacierGlacier

Well-Known Member
Original Poster
What actually happened with the tuning mechanism...
I got the parts in eventually, and reveled in the feeling of seeing something you designed in CAD suddenly be physical.
Snapchat-1881163516.jpg
Afterwards, it was a simple deal to mount them to the existing mechanism, attach the potentiometer, and band it together.
20180726_175940.jpg
Unfortunately, I shortly found an issue with the rubber band and the string.
20180726_175956.jpg
The band would apply extra tension to the string, so much in fact that it wouldn't turn with the dial. So I had to look into other ways of converting the rotation.

I ended up settling on mirroring the existing system. The black string is anchored in two places on the wheel, with one side being fixed and the other side attached using a spring to provide tension. I decided to use floss (I didn't have much else that was capable of resisting high tension at the time) and half of a spring from a pen of mine to mirror the pattern, and ended up with something like this:
20180731_154837.jpg
This ended up working perfectly. There's a bit of jank there with the low quality spring, and it does sometimes make spring noises, but other than that it works perfectly. I switched out the black wheel for a new print from shapeways which properly matches the math required for rotation, but I didn't get any good pics of it with the floss string. It can be seen in further photos that I'll upload later, and can be identified as a white wheel instead of the big black one.

Next Post: Final Wiring
 

GlacierGlacier

Well-Known Member
Original Poster
Final Wiring:
With the prototyping stage, I'd been having issues with the wiring coming undone due to weak connections - not the soldering, surprisingly, but the thin wires were getting twisted up and breaking apart. To combat this, I got me some heat shrink tubing, and that definitely worked. I also picked up a nice box of 6 colors of wire, organized so it kind-of acts as a dispenser. Quite nice.
So, with these new things in hand, I went through and converted from my jumper-wire setup to a fully soldered and insulated setup.
I did have to keep some of the jumper-wire stuff, as the arduino had the proper bits on it for that and I didn't really trust myself with unsoldering circuit boards quite yet.

First up, the potentiometer used in the tuning mechanism. I went through, soldered that, and attached some zip ties throughout to keep the wires out of the way. These are also my longest wires throughout the whole project.
20180731_153306.jpg
Next up, the main board, including the arduino and the volume dial and switch. This guy was a bit of a worry, since I hadn't had any experience with properly sizing cables to fit and these were especially close quarters. Eventually I got what I wanted, and came up with this kinda-messy but ultimately functional assembly
20180731_154524.jpg
The red wire looping around there was done because I made an oops in measurement, and instead of cutting, soldering, and shrinking the wire I decided to be kind-of lazy and just loop it through the frame.
Finally, I had to do the assembly of the raspberry Pi and the speaker. In an effort to cut down on vertical space (I had hoped to fit the raspberry pi in its original case, but the DAC on top of it limited that for me) I soldered the speaker wires directly to the DAC. This just means I have to be a bit careful when dealing with disassembly, but now that's not something that will happen often.
20180802_133033.jpg
Making an appearance in this photo is the white wheel I was talking about previously, as well as the new fabric covering I applied to the radio. My next post will be a write-up on the fabric / upholstery process.
 

GlacierGlacier

Well-Known Member
Original Poster
Turns out I really didn't take many pictures of the upholstery process. For the most part, I'd been pushing the process to my social media, specifically instagram and snapchat. And snapchat doesn't automatically save stuff. I've got some photos, but it's going to be mostly text.

So, first things first when it came to upholstery of the MagicRadio: measuring and removing all the old stuff. It had a really nice material and pattern, a pseudo-alligator leather thing, with these beautiful side straps, and I wanted to recreate that exactly. So, after stripping the radio clean, I laid out the intact material on top of one material I had bought, and...
20180721_202329.jpg
Not quite what I wanted, material-wise. It was far too stretchy, a tad thick, and not even a great color. Even so, I cut out a test piece and taped that to the radio, just to see how it would feel/fit. I was not satisfied.
20180721_210647.jpgEven ignoring the loose application of leather, it just really didn't feel right. So, off to amazon I went, ordered a yard of some copper-like alligator fabric, and it eventually came back. Using a colored pencil I outlined the parts on the backside of the new fabric, cut everything out, then applied it to the frame using Mod Podge. The material was cut into five major parts - the main body (consisting of the top, front, bottom), the side panels (left and right sides), and the straps (left and right sides). I went through and cut four straps, simply because I knew I was going to be doing some sewing with that and had no idea how that was going to turn out.
20180728_140436.jpg
While this was going on, I found out that the radio itself was held together using wood-joinery and glue. Honestly quite impressive work, with nice smooth edges, solid connections, and some reinforcements throughout. Unfortunately, the glue had broken down over time, resulting in a bit of wibbling and wobbling. Using some elmer's wood glue and a six pack of propel to hold it down, I solidified those joints.
20180721_201957.jpg
With the new material cut and applied with glue, I had only the straps remaining. On the original radio, those were held in place by the rubber feet and the handle. I decided I would do the same. First things first though - the straps on the original had folded-over edges, which were then sewn shut. This gave it a really nice look I wanted to replicate. One problem though - I had never sewn before. Then again, much of this project I had never done before. So, with some guidance from my mom, I was using a sewing machine in no time. The biggest issue, however was folding over the edges and then sewing it together. Glue, tape, anything couldn't hold it down properly for my sewing, and I ended up giving up on the whole folding bit and just sewed the pattern right into the unfolded pattern. It works. It's a little crude, but in the end it looks pretty good.

Finally to attach the sides, I used similar rubber feet and the exact same handle. Resulting in the final, beautiful, product:
20180802_132304.jpg
More images are available on my google photos album (link removed)
 
Last edited:

yaksplat

Well-Known Member
It's great to see a CS student using tools. Only a handful of my peers in mechanical engineering knew which end of a hammer to use and even fewer when i went through CS.

Well Done.
 

GlacierGlacier

Well-Known Member
Original Poster
It's great to see a CS student using tools. Only a handful of my peers in mechanical engineering knew which end of a hammer to use and even fewer when i went through CS.

Well Done.
Thank you! One of my big inspirations is Adam Savage - his skill in pretty much anything physical is amazing.

I love CS, but I'm not satisfied just plumbing websites. It's projects like this where I integrate computer programming with real-world interactions that I enjoy. I spent two years making apps in C for the Pebble Smartwatch, before that went bankrupt, and seeing something I wrote behave properly on my wrist was awesome.

Anyway, thanks again. I've got a few more steps to complete (back panel, decorative logo) but they're quite small. This has been my favorite project I've ever done.
 
Top Bottom