I wasn’t sure if this post should go here or in my project blog but it is Austin related and makes a nice change from car things so I put it here.
A film showing the experimental stages is here on YouTube (Eventually, if it ever bloody uploads. Rather ironically I used a phone to film it!).
This film shows the phone in the garage and working.
And this film is it playing the Austin 7 song which will be of most interest to the Austin folks.
If you’re been paying attention to my Austin building you might have noticed in the background of my pictures an old telephone I have on the wall. This phone is an old Bakelite generator model. It has no dial, just a handle to turn to signal the exchange. As I hate phones I never bothered to wire it up out there. I decided to do something more useful with it.
I’ve been playing with Arduinos for a wee while now. These are small microprocessors you can build things with. They use the idea of shields which are small daughter boards that connect to the Arduino to provide extra hardware to do useful things with. One shield I have been playing with the the Adafruit Waveshield. This little board allows you to hook an SD card up to the Arduino and play .wav files from it. These are in mono, 22kHz format. Not HiFi but good enough for little projects. I decided to use one in my old phone to make it play music.
I made up a Waveshield kit but did it a little differently to normal. Usually these plug onto the Arduino board. With these sorts of projects I usually use the Arduino to get everything running then I make my own bare bones Ardunio on strip board for the actual project. In this case I did that and made it so the Arduino plugged onto the shield. A bit backwards but it works well.
Waveshield and stand alone Arduino boards.
One really annoying thing about the standard Arduino is the damn header pins are not on a consistent 0.1mm pitch. The 0-7 digital header is offset half a grid. This means you can’t use normal stripboard to make your own shields if you want all the headers to line up. Luckily I was able to leave out the offset pins.
First I needed to see if the earpiece in the phone would run off the Waveshield board. This seems to work fine. I believe the earpiece is a high impedance one so this shouldn’t cause any problems. Next I had to decide what I wanted the thing to do. Play old 1930s period music obviously but how?
Since the phone has a generator I was thinking about powering it all off that. It turns out to be tricky though. The generator develops between 60 – 120 V AC depending on how hard you yank the crank. I couldn’t think of a good, simple way to make a power supply that would take such a varying voltage and give me the stable 5 volts the micro-controller needed. Also I didn’t want to have to be winding the handle the whole time to play music. I did ponder about charging batteries with it or charging a really large capacitor to power the electronics but I gave up on those ideas.
Instead I decided to power it off simple AA batteries and have the music play normally for a time then slow as if it were winding down. Then a few cranks on the handle would ‘recharge’ it and it would play normal speed again. I needed a way to detect if the handle was being cranked but I didn’t want to feed high voltage AC straight into the micro. So I made a poor man’s, high voltage opto isolator.
I took a standard neon indicator bulb and attached it to the generator. Turning the handle will make this light up. It is also a tiny, tiny load on the generator so it is very easy to turn the handle. I then used an LDR (a light dependent resistor saved from a junked solar garden light) hooked to the Arduino to tell when the bulb was lit. This was simple and works well. I just joined the bulb and LDR with black tape in my experiments then a piece of heatshrink tube in the real version.
This all worked well. For software I am using the WaveHC library to read tracks off the SD card. My device simply plays all the tracks one after another then starts again. I can easily change cards to change the songs played. As the music plays I increment a counter in the software. When the counter rolls over I start slowing down the playback speed a little at a time. How to do this is described here on Adafruit. Then, when the handle is turned, I reset the counter and speed the playback up to normal speed again. The effect is just like an old wind-up gramophone. Turning the handle at any time resets the counter so a quick turn now and then keeps it playing at normal speed.
The other feature I wanted was a way to change the track. The phone itself has very little UI! No dial, just a receiver button. I remembered something from my telephony days called a hookflash. Basically this is when you rapidly hit the receiver as if you were hanging up then picking up again quickly. It used to be used for things like switching between calls on call waiting. I could use a hookflash to change tracks.
To do this I cheated a bit. I power the circuit off four AA cells. I connect these up to the Arduino via a series diode which then charges up a 5.5 volt super capacitor. The circuit is powered off the capacitor side of the supply. I tweaked the pins used in the WaveHC library to free up digital pin 2 on the Arduino. This pin is a hardware interrupt pin. I connected this to the battery side of the diode (so the diode effectively isolates it for the supercap). I then simply wired the battery up via the receiver switch on the phone. This switches the power to the device on as the receiver is lifted.
With the receiver on the cradle the circuit is off. Lift the receiver and the circuit turns on and the cap starts charging and the music plays. If you now hookflash the receiver button the battery is momentarily disconnected. The Arduino keeps running on the charge stored in the capacitor. But the drop in voltage on the battery side of the diode triggers the interrupt. I then stop playing the current track and the software automatically starts playing the next. Simple but effective. There is no de-bounce on the switch so it can sometimes skip several tracks but this doesn’t really matter.
I assembled everything but there is no room inside the phone to fit it all (unless I gutted the phone but I didn’t want to ruin it). I will put the electronics under the phone in a suitable old junction box when I find one.
The phone works very well. The sound is clear and the slowdown and speedup effects work nicely. I only had a few songs on the SD card for this demo but I will convert some of my existing music to .wav format to play on the phone. It is a 2GB card so I can fit a large number of songs on there.
And yes, I know Adele isn’t from the 1930s. Actually it turns out she isn’t even IN her 30s. That track is for a someone very special who I hope will one day get to hear it on the phone herself.
Oh, and just so this is more car related here is a shot of my valance panels in 1mm steel cut and marked ready for the top lip to be folded. The other piece of car news is I am going to call the car the Austin 7 Cricket. Austin fellows will be familiar with the Grasshopper cars already. And I always did think mine looked a bit insect shaped. So Cricket seems to work!