loading
Picture of Make a Talking Clock
This clock announces the time using your own voice! 

I put it together as a tribute to the old Popcorn service in Northern California.  You could dial POPCORN from any phone, and a recording would tell you the time of day. 

Originally, I wanted to use Joanne Daniels' voice (she was the voice of Popcorn), but I couldn't get enough samples of her saying all the numbers.  Pat Fleet (the lady that says "A, T, and T") actually offers recordings, but you have to pay for them.  So I settled on using my voice, and it's easy to substitute your own.

First, a little demo, then flip to the next page and I'll show you how to make it on a breadboard.



 
Remove these adsRemove these ads by Signing Up

Step 1: FAQ

Picture of FAQ
4512176579_e22b518b1d.jpg
Q: How does it work?
Audio samples are stored on an SD card.  The time is tracked with the DS1307 RTC.  The microcontroller polls the RTC every second to update the display and watches the big red 'announce' button.  Once you hit the button, the microcontroller plays the appropriate samples based on the current time. 

Q: How do I use my voice?
You just record your voice and copy to the SD card.  I'll show you how in a bit, but it's easy.

Q: Can I make it do x?
Probably.  You can download the code on the next step - you can poke through it and change things fairly easily.

Q: What are the technical details?
It's a Parallax Propeller running at 80Mhz connected to a DS1307 Real-time clock and an HD44780 8x2 Character LCD (4-bit interface).  The Propeller manages everything including audio playback using rayman's excellent wav playback objects.  16kHz mono or stereo wav playback is supported. 

Here's a walkthrough of how it works.  Note that I'm using an LCD UI module and Propeller Platform SD, but this instructable will show you how to build it with a breadboard.

Step 2: Materials

I built my clock with a Propeller Platform SD and an LCD UI module.  If you've got those, then the only thing you'll need is a headphone jack to connect the clock to speakers.  Setup is a little different, and I'll show you how to do that later. 

First I'll show you how to build your clock on a breadboard - and here's what you'll need for that;

Code
Here's the sourcecode.  Everything is available under the MIT license.

SD card slot
I mounted mine on a protoboard and cut to size with a dremel.  I'm using a slot from mouser, You can also solder to the pads of one of those microSD - SD adapters.  I've put mine on a protoboard to make it easier to connect.

8x2 Character LCD
Displays the time.  Sparkfun has a 16x2 LCD that will work, too

little speaker
I ripped this out of a little stereo set I had.  You can also use a headphone speaker

3xAA battery box
Mouser Part#12BH331/CS-GR

Parallax Propeller
Available at Parallax

DS1307 RTC
Mouser Part #700-DS1307N

5Mhz Crystal
Available at Parallax

32.768 KHz Crystal
Mouser Part #73-XT262

32kb EEPROM
Mouser Part #579-24LC256-I/P

10k Pot
Available at Parallax

5x Tactile Switches
Mouser Part #653-B3F-1000 

3.3v Voltage Regulator
Mouser Part #511-LD1117V33

Around 10 10k ohm Resistors

4x 4.7k ohm Resistors

3 or 4 .1uF Ceramic Caps

3 47uF Electrolytic Caps

A Prop Plug

If you want to add a battery backup to the RTC, you'll need either a 3v battery, or a super cap and diode

Breadboard and a bunch of hookup wire.

An SD or microSD card. 

Step 3: Recording Your Voice

Picture of Recording Your Voice
Let's start by capturing your voice samples.  If you'd rather skip this, you can use the samples I made (download here).

Audacity is a great program for recording audio.  You can download Audacity here.  When using Audacity, be sure to set the track properties to 16-bit PCM, 16khz rate.  Mono is fine, stereo will work, but I only hooked up a single speaker (and why does your clock need to be in stereo?). 

Each number gets it's own wav. file.  You'll need the following samples:

Numbers
  • 00.wav
  • 01.wav
  • 02.wav
  • 03.wav
  • 04.wav
  • 05.wav
  • 06.wav
  • 07.wav
  • 08.wav
  • 09.wav
  • 11.wav
  • 12.wav
  • 13.wav
  • 14.wav
  • 15.wav
  • 16.wav
  • 17.wav
  • 18.wav
  • 19.wav
  • 20.wav
  • 30.wav
  • 40.wav
  • 50.wav
words
  • am.wav
  • pm.wav
  • geve.wav (good evening)
  • morn.wav (good morning)
  • anoon.wav (good afternoon)
  • and.wav (and)
  • oclock.wav (O'Clock)
  • secs.wav (seconds)
  • exact.wav (exactly)
  • beep.wav, a beep sound
  • standard.wav (Pacific standard time will be)
  • dlight.wav (Pacific daylight time will be)
Record each of them as separate files and save to the root directory on your SD card.  I recorded all of them as a single wave, then chopped them up into separate files.  It seemed easier to control the volume levels that way.

Also, if you have a laptop, you'll get better results using an external microphone.  Depending on your laptop, you might get some hiss or buzz.

Step 4: Make it: Schematic

Picture of Make it: Schematic
First, review the schematic below to understand how everything is connected.  The box on the left is the SD card slot, and the box on top is the Prop Plug.  I'll walk through breadboarding it, but the schematic is your best guide.  Here's a hi-res version, the lo-res version is below.

Step 5: Make it: Power and Propeller

Picture of Make it: Power and Propeller
4565997515_36ff9a6213.jpg
4565997865_5797df2694.jpg
4566627692_765d24fc3b.jpg
Connect the battery box to the breadboard and build the power stage. 

Then add the Prop, connecting Vdd and Vss on both sides of the chip.  Notice I've added 2 .1uF Ceramic caps to each power rail. 

Now add the EEPROM and 2 10k resistors, right above the Prop

Finally, add pin headers and wires to connect the headers to RST and P30 and P31. 

Step 6: Make it: Testing

Picture of Make it: Testing
4566624312_1335c9666a.jpg
Your basic Propeller setup is now complete.  Plug your Prop Plug into the headers, connect the usb cable and fire up the Propeller Tool.  Hit F7 and make sure you can communicate with the Prop

Step 7: Make it: RTC

Picture of Make it: RTC
4565999423_721638aaf3.jpg
Now, let's add the Propeller's 5Mhz crystal (at Xo and Xi).  The Prop needs the crystal to run at 80mhz, which is required to do wav playback. 

Add the DS1307, connecting it to P29 and P28, the same pins as the eeprom.  Also add the watch crystal to the DS1307's P1 and P2. 

Optionally, you can give the DS1307 a battery backup by either connecting a 3v battery to P3, or using a super cap and diode.  The super cap will charge up whenever the power is applied to the circuit, and the small diode will make sure it only discharges to the DS1307 (instead of powering the entire circuit)



Step 8: Make it: SD Card, Speaker, Display

Picture of Make it: SD Card, Speaker, Display
4566630072_07805e1a74.jpg
4566001049_2674b2ac94.jpg
4566001709_1c23a3e14f.jpg
Connect the speaker to the Propeller, then the SD Card.  Note that each line on the SD card has a pull-up 10k resistor. 

Connect the LCD Display.  This is a complicated connection - refer to the schematic for each pin.  Note that DB4-DB7 go through 4.7k resistors. 

Finally add the switches you'll use for input.

Step 9: Make it: Programming

Picture of Make it: Programming
Once you've got everything wired up, download the sourcecode (here), connect your Prop Plug and program the Propeller.  Here's what it will look like;

Step 10: Make it: Using the LCD UI and Propeller Platform SD

Picture of Make it: Using the LCD UI and Propeller Platform SD
4566002609_63dd2710fc.jpg
If you're using the Propeller Platform SD and LCD UI, setup is a little different;

1 - The Propeller Platform SD is pre-assembled.

2 - Follow this instructable to put together the LCD UI.

3 - You don't need a Prop Plug.  The Propeller Platform SD has a bootloader, so you just unzip this file and copy to the root of your SD Card.

4 - You'll need to add a headphone jack or just add hookup wire to a small speaker on the LCD UI.  You can see in the photos how I did it.

That's it!  Have fun with your new talking clock!



bluebear883 years ago
Wonderful n helpful info~

How would I make the talking clock to alarm and talk for every 2 hours?
Do I need a timer ? What components that I should add on ?

Really need your guide very much :D
Thank you =)
iamuke4 years ago
Nice instructable!

I was wondering if the propeller can play sounds polyphonically? I'm thinking of building a drum module, and weighing different microcontrollers.  if the prop plays polyphonically then I'm good to go.

Thanks!
DonEduardo4 years ago
Oh yeah, gonna build this over the weekend. Exactly what I was looking for. Have all the parts at home waiting to be soldered. My father is blind and although he has plenty of talking clocks, this one will have his own voice.

Nicely done. Thank you for sharing.
barunicorn5 years ago
 hey please help me on this how did you connect the propeller to the usb port. What is that u have used
Gadget Gangster (author)  barunicorn5 years ago
You can use a Prop Plug or a USBthumb - something to convert USB to RS232 
i hit f7 and it said that a propell chip has found then what how can i fire up the code in to the chip?
nikolas104 years ago
hi, thanks for all the information. What component is the super cap and what type of diode did you use? Also what happens when you push the button before it finish the time announce ?
tbone1215 years ago
could you make me one. ill pay you
barunicorn5 years ago
 can a microsd card be used instead of sd card
Gadget Gangster (author)  barunicorn5 years ago
Sure - that's what I was using.  The newest fsrw libraries let the prop use SD, uSD, and SDHC.
Azayles5 years ago
If you could calculate in real time how long the message would take to play (or make it a set time for each message) then you could have the *beeeep* coincide with the precise time change :D
Gadget Gangster (author)  Azayles5 years ago
Yeah, right now I grab the current time, then start playing the audio, i.e., 

If you push the button at 11:10:55, the audio will start playing immediately and announce 11:10:55, but the tone won't sound until something like 11:11:05. 

Having it be correct wouldn't be hard, but it would take a bit more work.


 it wouldn't be exact seeing as there are longer sounds than others but you could just change the time by a few seconds but then i suppose the display would be off oh well. :) cool instructable!
leprasmurf5 years ago
Looks sweet!  Though I think an IR motion sensor or something more broad would improve the design.  That way, you could just wave your hand in the general direction to get the time.  Thanks for sharing.
 The best feature is the beeeep tone :)

That is great! I'm going to get my Polish girlfriend to do the samples, she loves the sound of her own voice!
A great idea!

Foxtrot705 years ago
What is the total cost of this project that we can not live without?
Gadget Gangster (author)  Foxtrot705 years ago
Doing it on a breadboard is probably about $40 in parts.  You'll also need a Prop plug, which is $25.    With an LCD UI & Prop Platform SD, it's $75, but you don't need a Prop Plug. 

Either way, you'll also need a microSD card, a power adapter and an old pair of headphones.
macgeek5 years ago
in NYC you dialed NERVOUS for the time!

:)

Jonathan
Nicely done! Somehow I can see some spy stuff in here that when you press at the right time the person gets a secret message :p
Gadget Gangster (author)  MichelMoermans5 years ago
Ha!  I found a recording of Jane Barbe saying, "At the tone Pacific Standard Time will be Party Time!", but I wasn't sure when it should play.  It's on Pat Fleet's site, though.
lemonie5 years ago
I could have some fun with that.

L