About a month ago, an artist named Brian Kane published a viral video showing a Big Mouth Billy Bass novelty singing fish, seemingly voiced by Amazon’s Alexa virtual assistant. The internet went nuts for it, and so did I -- but mostly I just wanted to know how it worked so that I could make my own.
After seeing a number of Raspberry Pi projects that made use of Alexa, I initially assumed that Brian had created an Alexa-powered Pi project that doubled as a means to animate the existing Billy Bass hardware -- and that may be the case. I even posed this idea on my weekly YouTube show, Maker Update.
But after giving it some more thought, I figured the easiest hack would be a way to simply use the audio from a $49 Amazon Echo, and process it through an Arduino to drive existing motors.
I already had an Arduino and a motor shield handy (though this was my first time using the shield).
Next, I ordered the Billy Bass used on Amazon for around $15. I’m sure you can pick up a used one at a yard sale or Thrift store for less money, but I wanted one quickly. I also ordered the Echo Dot new.
With those ordered, I moved on to research. Two Instructables provided me with hope: this 2012 guide from sfool on using an Arduino to make a servo move to sound and this 2013 guide from Dotten on understanding the animatronics of a Billy Bass toy.
Understanding that the Billy Bass (much like a Furby) is essentially driven by two cheap 5v DC toy motors -- the problem then becomes simply how to make these motors twitch in response to sound. With a little trial and error, I found a workable solution. The code is far from perfect and there are a lot of other features I want to build in, but I wanted to get this up so that everyone can help make this better.
For better or worse, by used fish was dead on arrival. At least I had no hesitation about opening it up and hacking it. For my hack, simply undo the screws on the back, open it up, and apply gentle pressure to unseat the cable harnesses so that the back can be removed completely.
To create more room for the electronics we’ll be adding, unscrew and remove the Billy Bass circuit board and piezo buzzer.
What you have left is one 4-wire harness sticking up from the fish. This includes two wires that animate the mouth (you can see them trail into the fish) and two wires that raise either the head or the tail depending which way direction you run the motor.
The last step in preparing the fish is to cut four equal lengths of different colored wire, expose and tin the tips, and insert the ends into each of the four sockets in the wire harness. In the next step, we’ll connect these to the Arduino motor shield.