Intro: 1986 Google Pi Intercom
This is a 1986 intercom that I've converted into a wall-mounted Google voice assistant, using a Raspberry PI 3 and the Google AIY (Artificial Intelligence Yourself) kit that came free with issue 57 of the MagPi magazine. It's a Google Home style device with a retro feel!
In case you can't see the embedded video link it's at: https://youtu.be/lNpuERqvEfM
Step 1: Where Did You Get That HAT?
The Pi's Google AIY HAT (Hardware Attached on Top) is at the core of this project, and it's awesome that it came free with the MagPi magazine. I'd never heard of it until I read the announcement on Twitter the day the magazine came out, prompting an excited lunchtime dash to "Big Sainsburys" to get one before they sold out. There were still three on the shelf and I half-wish I'd bought them all, but it feels better to know that more Pi fans are having the same fun with it as me!
In a nutshell the Raspberry Pi foundation teamed up with Google to develop a user-friendly HAT to bring the power of Google Natural Language Interaction to the Raspberry Pi - the magazine kit included the HAT and everything you need (except a Pi) to build this yourself. The instructions were clear and well written, kudos also to the kit designers, all the components were really good quality and could be assembled without soldering.
In its basic form the kit uses the Google Assistant to respond to your spoken questions, it "listens" after a single press of the button and then somehow figures out when you're done speaking - it worked straightaway and made a really good first impression, perfect for building with kids or as a first toe-dip into the vast ocean of Pi possibilities. The AIY kit was designed to be built into its own cardboard housing (a bit like Google's Cardboard VR viewer), but after assembling and testing it I couldn't wait to build this powerful engine into a case more fitting with my usual retro conversions.
Step 2: Vintage Comms
I picked up this boxed set of three mid-1980s FM intercoms at a sale recently for £4 - I couldn't resist their vintage feel and the box art with the "executive" pen (with integral LCD clock!) and leather-bound volumes. They then sat around in the workshop for a while as testing them showed they sadly weren't designed for the high-interference homes of today.
I was interested to know when these were originally sold (although the digital-clock pen on the box gave a strong clue) so dug through the online archive of Radio Shack (remember Tandy in the UK?) catalogues. I guessed 1985 and was just a year out, it's so satisfying that someone has kept a record of these!
The moment I scooped the Google AIY kit I knew that one of these old units would be a perfect match for it - after all both were essentially based on a button, microphone and loudspeaker, just with different technology in between. Pretty soon I had the screwdrivers out and, disregarding the warning on the case as usual, started to dismantle one of the units. Cracking the case open is always one of my favourite parts of a restoration or conversion project, you just never know what you'll find inside. The main circuit board was pretty bulky (and 240v, which seems really odd nowadays) but once it was removed literally all that was left was the case, button and speaker. With everything stripped out it looked like there was plenty of space for the Pi and other components - but looks can be deceiving...
Step 3: Making It Fit
Faced with the empty case the first job was to decide where the Pi would go, with its shiny Google HAT firmly fixed on top. This was much tighter than I expected, lots of orientations just wouldn't work because of the bulk of the speaker and the space needed for the large hinged intercom button, and those that didn't block the Pi's ports frustratingly interfered with something else.
The speaker from the AIY kit was never going to fit, it was just way too big for the case, so I needed to find an alternative. The original intercom speaker wasn't up to the job unfortunately, but after lots of hunting around online I found the ideal upgrade, it was the same diameter as the original but much more sturdy, thankfully sounding as good as the one in the kit.
I had assumed the kit would include a single, cheap microphone that would fit nicely behind the original grille, but instead it was a fancy stereo affair, on its own circuit board with the mics curiously similarly spaced to those on the Google Home product itself. Not putting the mic behind the grille meant I could put the Pi down that end, though it was a really tight fit and meant I couldn't expose the HDMI port - a fair compromise though.
Next I ground away some of the posts, lumps and bumps from the inside of the case with a rotary tool so that the Pi would sit flat, then I moved on to explore how the new components could somehow work in harmony with the vintage case and controls.
Step 4: Kit Hacks
First stop component-wise was that lovely microphone board - this was a natural fit for the top of the case, so I (several times) measured the distance between the mics and drilled some countersunk holes for them - so far so good! It would be lightly hot-glued in place when it came to assembly.
In the kit the switch, button and LED all fitted together but I needed to separate these functions. My instinct was to use alternative components, but then I took it as a bit of a personal challenge to use only the bits that came with the kit!
The original intercom "talk" button had quite a bit of travel, pivoting on a bar with a lovely retro feel that I wanted to retain, so I looked for ways to mount the kit's switch in line with it. My motto for the last few Pi projects has been "keep it simple, make it fun" so I looked to the original fittings for options. Amazingly I was able to use an existing screw-hole to hold the switch in place, just replacing the original screw with a longer one to accommodate the body of the unit.
The LED came next - the original intercom did have an LED indicator but time has moved on since the days of dim "Red or Green" LEDs and I thought having a bright white LED poking out of the case would be a bit much! Aside from illuminating half the kitchen at night it felt a bit too "in your face" for this project. I decided instead to mount the kit LED behind what was the microphone grille, so it would offer subtle illumination and feedback without being too intrusive. I snipped the LED cable and soldered a 2-hole component connector in place of the kit's spade connectors, then fixed this between the USB ports on the Pi board so that it would stay put and shine through the microphone grille.
Knowing everything would now fit it was time to move on to the cosmetics!
Step 5: Touching Up
I personally love the style of these old intercoms and their tactile buttons, but my vision was to mount it inconspicuously on the wall between the kitchen and family room (a very high-traffic area!) so it definitely needed a bit of a face-lift.
At this point all of the surplus plastic-grinding was done and I knew exactly how and where the parts would fit in the case, so first I gave all of the paint-requiring parts a good scrub in the sink to remove three decades of grime & grease.
Next came a couple of coats of primer to make sure the final coat would apply properly - I've been fooled by "direct to plastic" paint before, so I always take the extra time to prime the surface now. I have a real love-hate relationship with spray painting, it's always towards the end of a project so I'm keen to get it done, but at the same time I know it just takes one over-zealous spray to ruin the finish! My trusty old condiment turntable came in very handy for rotating the parts while spraying as there's not much elbow-room in the shed!
I used a craft paint with a nice matt finish, not one I've used before, and the many thin layers went on pretty nicely - despite a summer storm meaning I got soaked every time I nipped out to apply another coat.
Another thing I've learned from bitter experience is to let the paint properly harden before assembling the project! A few days later it was time for the fun part, putting it all together (and secretly praying it would fit).
Step 6: Assembly
It was great to have all the parts laid out like a kit for assembly - there wasn't all that much to do, but things had to go together in a specific order so as not to get in each others way.
First I bolted the Pi itself into the case - it's only held in by a single bolt but it has literally no room to rattle around! Next came the LED, which was fixed between the USB ports of the Pi so that it would sit directly below the original microphone grille. Next the HAT was gently added on top and the LED/Switch cable firmly connected.
The microphone board, speaker and (unused) volume dial were lightly hot-glued in place and connected to the HAT, then the hinged button was assembled and fixed in place with its retaining screw, which also held the switch from the kit in just the right position behind it.
Lastly the two halves of the case were screwed together (always the dodgiest part) and the unused selector switch was clipped in.
The Intercom Pi needed to be subtle and understated but I wanted to add a bit of colour, so I lifted the colours from the Google logo and printed them on a small sliver of paper, where originally you would have written in the name of the room or person.
Step 7: Making It Smart
I love the potential of voice control, my first project was the Google Voice Search-O-Matic back in June 2014! More recently I've used the Amazon Alexa voice service in the AlexaPhone and Rabbit Pi, so I was interested to see how Google Assistant and the HAT compared, though obviously it's less mature as a platform, especially in the maker arena. Having in the past spent hours getting Alexa and a Pi to play nicely with USB soundcards, portable speakers and microphones it was a real pleasure to use the Voice HAT for this build, it took a lot of frustration and Googling (oddly) out of the equation.
The AIY kit comes with several options for integration with projects, you can replace the Google Assistant service with Cloud Speech for more text-to-speech options or even use an Androidthings build. The HAT hardware is similarly flexible and has many connections to link in servos or GPIO (General Purpose In Out) components, all of which can be voice-activated.
It's still pretty early days for home-made Google Home devices and the HAT's python software isn't 100% on a level with "proper" Google Home yet, for example it doesn't appear as a linked device in the Google Home app and there's no Chromecast integration yet, but there seems to be an active developer / hacking community and many of the outstanding features are already on the development roadmap.
Since I built the intercom the AIY Projects code has been significantly updated, and it's now straightforward to choose between pressing a button, clapping your hands or just saying "OK Google" to get your device to listen up - with the voice activation it's much easier to play trivia at breakfast time now!
If you're still running the original code it's well worth updating. I followed Eric Duncan's step-by-step guide and it worked first time - it's also an idea to keep tabs on the latest version of the code on the github page as further developments can't be far away.
For this project I wanted to integrate the intercom with other things as simply as possible, so I linked Google Assistant to my existing IFTTT (If This Then That) account. If you've not used IFTTT before it's a fantastic hub for linking online services together, pairing together triggers and actions from different services.
IFTTT lets you control smart sockets, adjust a thermostat, send a notification email and many other things depending on which services you have activated. Google Assistant seems more flexible than Alexa for this, as you can configure multiple "trigger" phrases (without having to actually say the word "trigger" before saying them) and customise the response that the assistant will read out when they are processed. For example I used it to turn on the doll's house lights in the video with the phrase "Doll's House On", prompting the response "Wakey wakey tiny people" and activating a WeMo smart socket.
Step 8: Google at Home
This was a great project, lots of fun and it was a real challenge to make everything fit - if the case had been even 5mm smaller in any direction it just wouldn't have worked, so I had a lot of luck into the bargain.
After taking some cardboard-themed pics I wall-mounted the intercom, using tiny conduit to tidy up the single cable to the power supply. The Voice HAT really made this project much easier, I know you can use Google Voice on a Pi without it, but it was great not to have to mess about with battery powered speakers, usb microphones or a separate power supply as I've done with previous voice projects.
I'm super-pleased with the way it turned out and we use it all the time, my only regret is not exploiting more of the Voice HAT's hardware options, there's so much potential there for GPIO and motor control! Hopefully the HAT will be released for sale at some point, I'd love to get hold of another one (without paying a fortune on ebay) - a vintage robot to bring me the remote control on command would be top of the list!
If you like this project and want to see more you can check out my website for in-progress project updates at bit.ly/OldTechNewSpec, join in on Twitter @OldTechNewSpec or subscribe to the growing YouTube channel at bit.ly/oldtechtube - give some of your Old Tech a New Spec!