Marsette Vona: Boogie Bass Hack

Full Details of the hack are now available, including schematics and sourcecode.

Susanna Shaw sends pics of her completed fish!

     During the summer of 1999 I was living in Hanover, New Hampshire, with my friends Ben Guaraldi and Lauryn Zipse. One quiet sunny morning I woke up late and walked into the living room to find Ben dozing on the couch. At the sound of my entrance, he opened one eye and we looked at each other for a moment, each still experiencing post-sleep stupor. In an uncommon epiphany, it was suddenly clear to me that I could communicate to Ben the entire contents of my just-barely-awake mind with one single word:

Pork!

Yes, indeed, the other white meat. Try it. Even if you don't dig on swine.

Pork!
pork
pork?
pork
pork.
pooooork.

Clearly, a whole world of human experience can be expressed with this one simple word. Even if you don't agree, Ben did. So, on that quiet sunny morning in Hanover, we had a whole conversation using only the word pork.

     As time passed we became ever more impressed with the dynamic range of the p-word. And we began to get creative about how we communicated it. For example, Ben recently sent me a package of Pork Shake-N-Bake (unwrapped, with the address label and postage stuck directly to the back).

Then, while shopping at the local CVS, I stumbled upon the Boogie Bass.

     For those of you who are new to all this, Boogie Bass is one of several "talking fish" toys that have cropped up over the last few months. It looks like a life-size stuffed fish, complete with wall-hanging plaque. On the front is a small black button, which when pushed causes the fish to "come to life" and to talk to you. I am serious.

     As you can see from the description of talking fish on HowStuffWorks.com, the Boogie Bass is nothing short of a little animatronic wonder. Now who's put two and two together? Pork. Bass. Talking Bass. Christmas was fast approaching, and I as yet did not have a gift for Ben.

How To Make A Talking Fish Say What You Want

     In case you haven't gotten it yet, these two ingredients should complete the picture:
  1. The ISD 1420P solid-state "chipcorder" voice record/playback chip. Stores 20 seconds of telephone-quality voice. Nonvolatile, in-system-recordable. 28 pin DIP. Available from JDR Microdevices for about $9. Particularly well-suited for storing "special" messages inside talking Bass.
  2. The ATMEL AT89S8252 microcontroller. 8051 core. 8kB of serial-downloadable flash program storage. 2kB of data storage EEPROM. 40 pin DIP. Available from JDR for abut $7. Particularly well suited for storing "special" head/tail/mouth movements inside talking Bass.

     After removing the six screws that hold the back of the Bass' "plaque" (each cleverly hidden beneath a rubber mounting foot), I discovered that the inside of the plaque is mostly air. Plenty of room for adding some "special" circuitry. Clearly we would not want to destroy the existing circuit. We can hijack its power drivers for the motors. And besides, the messages it comes with are pretty hilarious. Especially after you have heard them over 100 times.

     A little investigation with an oscilloscope revealed that the control of the Bass' head/tail/mouth is extremely simple: energize the corresponding motor, and the head turns out, the tail extends, or the mouth opens. De-energize the motor, and the corresponding body part returns (by a spring) to its "rest" state. We've got binary actuators here folks. And it was clear that we could tie in to the gate inputs of the motor drivers with some simple diode-or circuitry.

     Here are some photos of the innards of the Bass, after the addition of "special" mode:

There are three circuit boards involved. The one in the upper left (the green one) is the original board. The little one just below it holds some switches and things that make up a control panel for the "special" mode. The big one on the right holds the ISD1420, the AT89S8252, and an audio amplifier.

     Controls have been added to the rear of the modified Bass to facilitate switching between "normal" and "special" modes:

There is a toggle switch for changing modes, along with a trimpot for adjusting the volume in special mode, an LED for feedback (very useful during software development), and four DIP switches for setting the "special" sub-mode. There are currently five such sub-modes:
Record
This is the mode for recording a new message, up to 20 seconds long. Only one "special" message is supported at a time. When the button on the front is pushed and held in, any sound will be recorded until the button is let out (or 20 seconds is reached, whichever happens first). New "special" messages can be re-recorded as often as you like, and doing so will erase the existing "special" message (and reset all head/tail/mouth movements).
Record Mouth
In this mode the movement of the mouth can be recorded. Press and release the button on the front to start playback of the "special" message, along with any existing recorded tail and head movements. While the message is playing, press and hold the button to open the mouth. Release to close it. The mouth movements recorded here will be played back subsequently whenever the message is played in Play, Record Head, or Record Tail modes. It can be difficult to get the timing right, so it helps to have a digital stopwatch on hand. And you can of course re-record the movements as many times as you like (re-recording the movement does not erase the current audio or movements of the other body parts).
Record Head
This mode allows you to program the movement of the head (either flat against the plaque or turned to face you). Operation is similar to Record Mouth mode.
Record Tail
This mode is for recording tail movements. Operation is similar to Record Mouth mode.
Play
When the button is pushed and released in this mode the currently stored message is played back, along with any recorded head/tail/mouth movements.

     The front of the fish is unchanged, except for the addition of a small hole for the microphone:

Pork!

     After I got the circuits built and debugged it only took a few minutes to record my message: Five seconds of silence, during which the tail flops around a bit; the head moves out and pauses for half a second; the Bass says "Pork!"; the head moves back in and then five more seconds of silence with tail flopping.

     I wrapped the fish in its original packaging, with the mode switch left at "special" and with the batteries inserted. Ben's reaction when he pressed that button was as priceless as you can imagine. Which is quite priceless if you know Ben.

Related Links

Bass Hack in the News

     Please feel free to email me if you are interested in the Bass. I regret that I may not be able to reply personally to all email received.

     This page has had over 100,000 hits since it was created.

     I, Marsette Vona, have no relation to the manufacturer of the Boogie Bass, the Billy Bass, or to any other company mentioned on this page. Modifying your Bass as described on this page will likely void any warranty that it may come with.

     THIS INFORMATION AND/OR SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS INFORMATION AND/OR SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 

vona@mit.edu © 2008 Marsette Vona Tue Jan 22 14:42:52 EST 2008