| Modifying the SP03 |
Last Modified: 2006-10-23
The Devantech SP03 text-to-speech synthesizer is a flexible, reasonably priced, well designed speech module that is being used by many robotics enthusiasts. Its ease of interface and integral audio amplifier make the SP03 useful for many applications.
My autonomous mobile robot has, however, demonstrated that in my application, the relatively low audio output level is a shortcoming. Currently, my robot does not know how to "come home and recharge", so when it gets "hungry" it simply parks itself and periodically cries out for assistance. Since it wanders freely about the house, it is often in a relatively remote location when hunger pangs strike. Often I have been unable to hear it's diminutive plea for help.
The information which follows describes how I modified the SP03 for increased audio output. My robot is now loud enough that I'm thinking of implementing a "Shhhh" command!
The audio output level of the existing module is limited primarily by the 5-volt supply which powers the LM-386 audio amplifier. In this modification, increasing the audio output level depends on the availability of a power source with a voltage greater than 5 volts. My robot uses a 12-volt lead-acid gelcell as it's primary power source.
By electrically isolating the SP03's LM-386 and then repowering it with 12 vdc, audio output level is increased dramatically. Even though the existing 8 ohm, 0.4 watt pancake speaker can be left as-is, I find that replacing the pancake unit with a "real" speaker improves the quality of the audio dramatically. I am currently using a 2-inch diameter, 16-ohm, 0.2 watt unit, but I have successfully used several different 8-ohm units. Four- ohm units should work as well. The speaker is capacitively coupled to the LM-386, so you can raid your junkbox and try just about any speaker to see how its works for you.
If you absolutely need the last audio ounce out of your SP03, I'll also show you how you can shunt one of the existing chip resistors with a low wattage resistor to wring out that last little bit.
No Free Lunch
As with most things in this world, you're going to have to give up something to get something. There are no free lunches.
To keep the modification neat, we must give up two pins. Fortunately, the SP03 has two unused pins, the PL1 "No Connect" pin and the PL1 "Spare" pin. "No Connect" is connected to the PIC 16F872 pin 1. This connection is not needed by SP03 users. We will isolate the "No Connect" pin and use it to feed the amplified audio to the external speaker. If you do not want to add the external speaker as I did, you will not have to sacrifice the "No Connect" pin.
The PL1 "Spare" pin is connected to pin 12 of the PIC 16F872. As before, this connection is not needed, so we will isolate "Spare" and use it to bring +12 volts to the LM-386.
We need a third PL1 pin (Gnd), but a Gnd pin already exists and can be used without modification.
Let the Fun Begin
Warm up your fine-point soldering iron, lay out your tools, and chase the family cat off the workbench... we're ready to begin:
Use your diagonal pliers to snip the two solid wire jumpers that connect the printed circuit board to the pancake speaker, cutting between the PCB and the speaker terminals.
Remove the two nut/bolt/washer/spacers. Carefully remove the speaker jumper wire remnants from the two PCB holes and the speaker terminals. Set the speaker aside.
Orient the SP03, component side up, as shown.
Proper modification orientation for the SP03.
Use a sharp pointed X-acto style razor knife to cut and remove the PCB trace that connects the PL1 connector pin "No Connect" (between pin SCL and pin Gnd) to the chip resistor labeled "103". See "Cut 1" in the photo below.
Be careful not to allow the knife to slip and cut any other traces. Do not disturb the chip resistor "103". I suggest making two cuts about 1/32" (0.8mm) apart and then carefully removing the segment of copper trace between the two cuts. Use an ohmmeter between pin "No Connect" and the left side of the "l03" resistor to verify that you completely removed the trace.
Cut 1 isolates the "No Connect" pin from pin 1 (MCLR/Vpp) of the onboard PIC 16F872. Pin 1 is pulled to +5v thru the "103" chip resistor. By making Cut 1 as shown, the pullup function is left intact while freeing the "No Connect" pin for use as the audio output to the external speaker.
Next, we need to isolate the SP03's LM-386 power supply input pin so that we can later connect it to +12 vdc. This will require two trace cuts, Cut 2 and Cut 3. Locate Cut 2 in the above photograph. Using the techniques described in Step 4, remove a section of the indicated PCB trace. Do not disturb the thru-hole connection just to the left of Cut 2.
Once you have completed Cut 2, use an ohmmeter to verify that pin 3 of the LM-386 is no longer connected to the thru-hole just to the left of Cut 2.
Orient the SP03, solder side up, as shown.
Repeat the trace cutting procedures on Cuts 3 and 4. Upon completion of Cut 3, an ohmmeter measurement between the thru-holes at each end of the trace will show approximately 175k ohms.
Verify that you have completely opened Cut 4 by using an ohmmeter; measuring between the thru-holes at each end of the trace.
We're now ready to use the isolated "No Connect" and "Spare" pins. Strip one end of Jumper 1A so that approximately 1 inch (25mm) of uninsulated wire is exposed. Insert this longer uninsulated end through the uppermost thru-hole of Jumper 1A. You will use this longer end to complete Jumper 1 on the component side of the PCB. Solder Jumper 1A to both its thru-holes. DO NOT cut off the 1-inch (25mm) uninsulated end that is sticking through to the component side.
This step is necessary ONLY if you plan to use an external speaker.
Install Jumper 2. Simply tack the upper end of Jumper 2 to the "No Connect" pin's solder pad. Solder the lower end into the cleaned out pancake speaker thru-hole as shown.
Orient the SP03, component side up. Using the 1-inch (25mm) length of Jumper 1A that you stuck through the upper thru-hole in Step 8 (it is now projecting from the thru- hole to the upper left of the chip resistor labeled "100"), put a piece of insulating sleeve on the projecting wire and then carefully solder the remaining uninsulated end to pin 6 of the LM-386.
In this photograph, the LM-386 is inverted. Therefore, pin 6 is the second pin from the top on the left side of the IC package. This is a delicate soldering operation and requires finesse. Once you have completed Jumper 1B, use a magnifying glass to ensure you have a good connection and that you have not created any solder bridge shorts to adjacent pins.
If you are retaining the original pancake speaker (I urge you to experience the dramatic quality improvement of a real speaker), it's time to reinstall it. Use the bolts/nuts/washers/spacers removed earlier to remount the pancake. Solder in new jumper wires between the PCB and the pancake speaker terminals.
If you are using an external speaker, connect it per the following pictorial schematic. Connect the 12vdc supply. Interface the SP03 using your preferred method (RS232, I2C, etc), and you're ready to enjoy the increased audio output level that this hack provides.
Wringing It Out
As promised earlier, if you simply must wring the last dB out of this modification, you can drive the LM-386 a little harder by increasing the level of the signal being fed to it.
The easiest way to do this is to parallel a low wattage resistor across the chip resistor labeled "472" (4700 ohms) as shown in the photograph. Using values much less than 1000 ohms showed increased distortion on the oscilloscope. I settled on 1000 ohms for my application.
Be very careful when soldering the parallel resistor in place. You don't want to displace the chip capacitor on the upper end or either of the "472" chip resistors on the lower end.
I hope you enjoy the increased audio output that results from this modification. Let me know how it works for you. Feel free to contact me at firstname.lastname@example.org if you have any questions or need clarification of any of the steps.
Thanks to the kind folks at Acroname for providing a forum for the exchange of information like this.
Regards, John McDaniel
| voice: 720-564-0373, email: email@example.com, address: 4822 Sterling Dr., Boulder CO, 80301-2350, privacy |
© Copyright 1994-2012 Acroname, Inc., Boulder, Colorado. All rights reserved.