Arduino talking clock.

talking clock3

The code for this project along with all WAV files and a copy of the library by ecloud can be found on my GitHub page here. This project was updated on 22 March 2016 to include a larger audio file with better speech.

Another project using this talking board is the Talking Thermometer here.

I had managed to get the WT588D -U 32M to work as a stand alone module in this post here, but wanted to be able to use it with three line control. This mode is similar (identical?) to I2C, but any pins on the Arduino can be used. I started to write a library, but found a perfectly good one on the Arduino forum here and decided to use that instead.

There are several students at the school I work in who are partially sighted and I wanted to build several instruments that they could use that would allow them to be able to take part in Science experiments. Top of the list is a talking thermometer, for although they are available to buy they are expensive and designed to check food cooked on BBQs. The clock was chosen as a first project as it could be turned into a timer.

Getting the speech just right:

The biggest problem with getting this project right was to have as natural a voice as possible. I abandoned my first audio file and decided to produce a file that contained a range of words and phrases that would be useful in a range of measuring instruments. The result was the Talking Measurements file that contains a wide range of words suitable for a number of measuring instruments from Voltage and Current to GPS and Humidity. There is a list of phrases by measuring instrument in the text file Library List.txt.

The circuit:

This project uses an Arduino UNO, a WT588D -U 32M audio module and an RTC module DS1327. The clock has four connections, Vcc, Gnd, SDA (connected to A4) and SCL connected to A5. A simple push button switch is connected between digital pin 2 and Gnd, this is used to make the clock speak. The WT588D comes in several versions and the pin out for the -U version that has a USB connection is shown below.

Pin connections are looking down on the top of the module. Connect a small 8 ohm speaker to pins 9 and 10 and connect the module via a USB lead to a PC and startup the WT588D VoiceChip software.
If the program starts in Chinese click on the second menu item on the right and select English. Load the talking_measurements_winproj file using the Load a project button. Click on the compile button. Now click on the Options button and select Three Line Mode, PWM, Busy Mode – LOW and finally make sure Pull High Resistor is selected. Click on OK to exit the screen. Now click on the Upload to WT588D button, make sure the WT588D is connected to the PC, but not connected to the Arduino and click on the Connect button, the red light will turn green. To upload the audio to the WT588D click on the OneKeyDownLoad button, the green status bar will move across twice. On the second pass it should cross all the way over, if it stop about three quarters of the way over press the OneKeyDownLoad button again.

Once the audio file has been uploaded then connect the WT588D to the Arduino, the complete connection diagram for the clock is shown below.

talking clock diagram

If your DS1307 RTC is set to the correct time then upload the talking clock sketch, otherwise upload and run the sketch to set the RTC. With the clock set to the right time and the talking clock sketch uploaded press the talk button to hear the time.


3 thoughts on “Arduino talking clock.”

  1. Hey! I am following your design for a lightsaber. I am very new to arduino, can you explain how the black ground is split between the ground connection, the push button and the sound module?


    1. Normally when additional modules are connected to an Arduino the ground connections are all connected together. The Arduino has two ground pins (Gnd), this circuit connect one of the Gnd pins to one side of the push button, then connect that pin to the Gnd pin on the talking module. If you are using a solderless breadboard this made easier by connecting a wire from the Arduino Gnd, a wire from the speech module Gnd and one side of the push button and join all three together on the breadboard. I hope I have understood your question and that my reply has answered it.


  2. Hello. This is very good article! I was trying to connect my WT588D via USB on Windows 10 and failed. I cannot found correct USB Driver =( Do you know where I could find USB driver for Win 10 for WT588D module?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s