Talkbot v2

September, 2013

After completing the prototype Talkbot a few months ago, I continued to evolve the design to be easier to assemble and less expensive.  My target was to get the price less than $100 USD in order to keep it affordable for as many students as possible.  Also, this year, I’m expanding my program to 2 schools, so wanted to industrialize the prep process as much as possible.  My main areas of focus where on the Speech Chip, the Motor Shield, the bump sensors, the speaker, and sourcing parts for less money.  When compared to the Talkbot v1, the outside may look similar, but the inside has changed significantly.

Speech Chip

My first area of focus was to find a less expensive and easier to use voice chip.  In the prototype, I used the SpeakJet chip.  Even with the Arduino library, I found it difficult to get it to speak the words I wanted (stringing together utterances), and I would not be able to allow each student to customize the words the robot speaks.  So, I researched and found chips like the TTS256 chip which works with the Speakjet chip.  This let me send plain text to make speech based on an expansive dictionary, but had the unwanted effect of increasing the price of the robot.  Strike One.

I started looking for a less expensive speech chip and found the Babblebot chip.  It seems very similar to the Speakjet, but costs less.  Unfortunately, I had some issues buying one to test because the owner took ill and has stopped filling orders (even though his site still takes money).  I then learned that GinSing took over distribution of the Babblebot chips, so bought one, but ultimately found it equally difficult to use as the Speakjet chip.  Strike two.

Next, I investigated an Audio-Sound breakout board Sparkfun created around the WTV020SD chip.  I had to overcome many of the challenges documented in the message posts including finding the correct MicroSD card and providing the proper voltage.  In the end, I got it to work using both a 2GB MicroSD card I found at Micro Center and an old SanDisk 2GB card. that appear to be exceedingly difficult to find.  While the breakout board addressed many of the downsides of the Speakjet and Babblebot chips, it’s price still did not help me to lower the price of the robot.  Strike three.

I had just about given up.  After studying the WTV020SD datasheet, I discovered a much less expensive breakout board called the WTV020-SD-16P.  I found them at a very low price on eBay.  I bought one, but had major problems getting it to work.  I bought another just to be sure and found that feeding it 5V while keeping the jumper set to 3.3V made it work consistently (very strange).  Both the Micro Center and SanDisk MicroSD cards worked perfectly with this new module.  Home Run!

I recorded my own voice as a WAV file using an evaluation copy of i-Sound Recorder at a sample rate of 11025 Hz and it worked great.  I thought it would be clever to make my voice sound like a robot voice, so I evaluated several sound utilities.  I finally decided to just use an old Echo/Delay effects pedal I had from my days as a musician.  I adjusted it to give my voice a metallic, reverb sound.  I plugged in a microphone and used audio patch cables to run the Echo/Delay pedal in line to the mic jack of my laptop.  The end result was excellent, and it didn’t require me to make multiple passes at adding effects to the sound file with other sound utilities.

Motor Controller

My prototype made use of the Sparkfun Ardumoto shield which I had used for a robot in last year’s Robot Club.  It was easy to use and relatively inexpensive, so I wasn’t really looking to replace it until I came across the Adafruit Motor/Stepper/Servo shield for Arduino v2.  This shield does everything the Ardumoto shield did and more, and it costs $5 less.  Another added bonus is that the Adafruit shield uses the I2C interface, so does not use up 4 of the digital IO pins like the Ardumoto shield.

Bump Sensors

A key part of the robot is its bump sensors at the front bottom of the body.  In the prototype, I used a pair of snap-action switches I had lying around.  The arms weren’t long enough for my needs, so I cut a drinking straw and used silicon to fill the straw which gave it strength and adhered well to the switch arm.  However, this was going to require quite a bit of prep work for me, so I set out to find a switch that included a longer arm at a low price.  After weeks of searching, I came across the Cherry Electronics E22-85HX switch which includes a 2.5″ arm that perfectly met my needs.


The prototype used an old PC speaker I harvested from an ancient desktop PC in my basement as its “mouth”.  It had no screw mounting holes, so I had to glue it onto the robot body and it didn’t look great.  Also, that approach would be a challenge to do for every student (they can be a bit impatient).  To my surprise, few stores sell those small PC speakers anymore, since most motherboards come with a piezoelectric buzzer.  Just as I started searching, Adafruit started carying a 3-inch, 8-ohm, 1 Watt speaker with nice screw holes that perfectly met my needs.


In order to shrink the overall cost of the robot further, I went shopping to find the pieces I needed at a lower cost.  In general, I found Menards to have slightly lower prices on items than Home Depot and Lowes so I was able to shave a few dollars off the price of the robot by buying parts there (PVC parts, aluminum bar, polystyrene sheet, etc).

After evaluating a wide variety of Arduino Uno clones, I finally settled on buying one from a Chinese manufacturer via AliExpress which included a USB cable.  Although the samples I bought took 3 weeks to arrive, they met my needs and were far less expensive than any other option available (even without the cable included – that was a nice bonus).

MCM Electronics has good prices for the toggle switches I need.  I was quite shocked to see the price some companies (Radio Shack and others) charged for a simple toggle switch. I found the SPST and DPDT toggle switches I needed at a fraction of the price.  The down side is that MCM charge a lot for shipping, so I’ll need to take advantage of a bulk order to make it worth my while.


Overall, I was successful in refining the Talkbot design to be easier to assemble and less expensive.  The cost per student, when bought in bulk, will be about $95.  Adding some additional expenses for spare parts and PTO fees, the students will actually pay about $110.  I’m not adding any margin for myself – I’m not doing this to make money.  :)

During the refinement process, I created templates for rapidly creating the base and body so I could minimize prep time.  Looking forward to starting the first session in October!

Arduino Uno Source Code



misc 527  The finished product – Talkbot

misc 535  Inside is a spaghetti mess of wires.  Electronics and motors are mounted on the main board

misc 542Each student will receive these parts which they will use to assemble their own Talkbot

misc 546 I package up the parts into a kit for easier transportation.  This is the package that each student receives at the beginning of class.

Parts List

Talkbot parts list

14 thoughts on “Talkbot v2”

  1. Great looking project. I was curious about the difficulties you had with the Babbelbot IC w/r to programming, being the designer of the API for it on the Arduino. One thing that might have helped is a program that I’m about to release ( the Babbletron ) that lets you construct words and phrases using a java based sofwtare tool that creates the function call code on the Arduino. If you have an email address I’d be happy to send you a few screen shots and summary; I will be releasing the program within the next few weeks with an accompanying video. Here is a simple demonstration of a hardware version ( sans phrase library ).

    Please feel free to let me know what troubles you had; I’m always interested in getting feedback on how the Babblebot / GinSing gets used in the real world.

    1. Mike,
      First, your video is amazing – I especially like the animated face during playback. It really shows off the versatility of the chip. My main concern with using Babblebot with Talkbot was the trial-and-error approach I needed to use to string together the utterances to get the words to sound good. I’m personally a big fan and will look to use it on other projects, but for the purposes of 5th – 8th graders in my class who don’t know how to code yet, I was concerned that this approach might be frustrating in the short time we had to complete the software portion of the Talkbot build. A true “text to speech” chip would have been good to allow the students to enter a string of words to speak and I was headed in that direction until I came across the WTV020-SD-16P and went with the recorded voice option.

      1. Thank you very much for the feedback. I am convinced that the trial-and-error method issue will be resolved with the release of this new program; its sole purpose is to provide a sandbox for building words and phrases using an expanding dictionary. It will also include the face just like the Babbletron. If will post a beta version ( a simple java file ) on my website by the end of the week if you’d like to give it a try.

    1. That would be possible, but probably outside the scope of the project. The Babbletron still uses the GinSing board. The program does not generate the sounds – it only sends the command codes down to the Arduino, which relays them to the GinSing board that generates them. Since the Babblebot IC has its own sound generation using waveform synthesis there would it would not be able to use voice samples. However, it would be possible to modify the program to use voice samples instead of talking to the GinSing, which is an interesting possibility if you don’t want to use a GinSing. In that case it would just require interpreting the allophone code as a sample playback.

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