A late night watching youtube videos with Duncan and Jolon at Knockwood resulted in a silly plan for the talkback system for their new studio. That is how the engineer (Jolon) at the desk can speak to the artists in the booth, only whjen he wants to be heard.
The Plan
To join his mums old rotary phone to a Big Mouth Billy Bass - an ornamental fish which sings when you press the button. The idea is that the fish is incognito until the phone is lifted off the hook - thats when the fish wakes up. When he talks, the nmouth moves in line with his words, and when hes silent, so is billy. simple as that!
Hardware
- Brain
- The brains of the operation is an arduino knock off - the NodeMCU v3, a microcontroller i am familiar with.
- Muscles
- Some probing the fish with my power supply showed it has 2 motors, one for the head/tail and another for the mouth. reverse polarity, drive in the other diection. theres no latch, the motor coupler slips when the fish is at a limit - so its just constant power to hold a position.
- Skeleton
- All the electronics mounted on a custom PCB (thanks for the help with this craigsy). With the boys face and knockwood logo - just incase this is the only surviving evidence of human civilisation after an apocolyptic event.
- Voice Box
- A small speaker with integrated amp to act as the PA so people can hear Jolon - in case you’d forgotten the main function of the device :)
- Brainstem
- The phone is on the studio desk, and the fish is in another room with the artists. I decided to power everything from the fish end, and run an ethernet cable through to the studio. as all the components in the phone are passive (lifted switch, and mic) the ethernet is just acting as a way to run 4 long loops to the other room and back.



Software
The soul of the little guy is in this script. More or less:
- Phone pickup (phoneUp pin) is the master gate - everything only activates when the handset is lifted
- Voice detection reads an analog mic (A0) to check for levels above background noise, smooths it over a 5-sample rolling average, and holds voiceHigh = true while hearing sound, and for 200ms after sound drops
- Mouth motor pulses on/off every 100ms (talkingPulse) to flap the gums — but only moves forward to moving the jaw motor when both the pulse is high and voice is detected, simulating lip-sync
- Head awakens and light turns on while phone is up; everything to 0 when phone is down
Testing & Building
Lots, and lots, and lots of trial and error and debugging, to figure out how the fish worked, and how i could make the arduino speak its language. The first working test was pretty exciting.





The Results
This fucking thing. The whacky cherry on top of the cozy and unique soul of Knockwood that Duncan and Jolon have worked so hard on.
