Build a walkie-talkie with a Raspberry Pi
Nate Drake tickles your nostalgia bone with Daniel Choate’s awesome TalkiePi project to create retro-style Wi-Fi walkie-talkies.
Those who have been following the TV series Stranger Things may have felt a twinge of nostalgia at the retro walkietalkies used by the children. New Zealander Daniel Chote decided to take his own homage to the ‘80s one step further. The TalkiePi turns your Pi into a simple push button walkietalkie, which works over Wi-Fi.
Chote designed the project with his kids in mind. Once the software is installed, it will automatically connect to his own server using the Mumble protocol allowing users to chat right away. The software on his GitHub page is combined with detailed instructions of components and even a casing design that can be manufactured with a 3D printer to provide a nostalgic experience that will tug at the heartstrings of the average 30something and upwards.
The interface of the TalkiePi couldn’t be more simple. When the button is depressed, it lights up and you can talk. When depressed, the channel is clear. There are two other status LEDs which indicate your connection to the wireless network and if others have joined your particular channel.
This project isn’t only useful for children. Many gamers make use of the Mumble protocol to talk while playing. Two TalkiePis can also be used as a handy intercom for your front door.
GETTING STARTED
To begin, you will need a Raspberry Pi with Raspbian installed on the SD card for each TalkiePi you want to build. The Raspberry Pi 3 is perfect for this project as it has integrated Wi-Fi. The microphone originally used in the projects is US Robotics USB Speakerphone (USR9610), removed from its casing and connected to the Pi. This can be hard to obtain outside the US, so either search eBay for the same model or find a substitute. Be careful to choose one which works over a USB cable and not Bluetooth.
To power the Pi, you’ll need a short 90-degree USB cable. If you’re planning on printing the TalkiePi casing, you’ll also need five M3 nylon screws and one M3x20 nylon standoff. You can buy a pack of ten screws and standoffs (plus bonus nuts) from littlebirdelectronics. com.au for just $2.93, so grab two. The case will also require two M3 15mm and two M3 25mm bolts. Packs of 25 can be purchased from www. altronics.com.au for $4.50 and $7.70, respectively, plus the speaker requires two M3 10mm bolts, which can be picked up for $4.10 for a pack of 25. The speaker itself requires two M3 10mm bolts and nuts. To connect your wiring and LEDs to the Pi, you’ll need a GPIO Header connector. Pretty much any header will do. Both the ‘status’ LEDs should be 5mm, each with its own holder. A five-pack of Adafruit LED holders goes for just $9.09 at coreelectronics.com.au. It also sells pushbutton LEDs, one of which will be necessary for the ‘talk’ button. There are some basic light-up plastic buttons available, with more sophisticated metal and waterproof options as well.
The original TalkiePi project was built with a plastic pushbutton but feel free to change this if you feel confident. The TalkiePi also needs three 330-Ohm resistors. These should be readily available at your local
electronics supplies stores, but the reliable Jaycar ( www.jaycar.com.au) sells a pack of eight for just $0.55.
If you plan to use the TalkiePi as a home intercom, you should connect it to mains power, but if you want a truly portable transmitter, consider investing in a battery pack like the PiBorg (discussed more over the page).
If you’re serious about assembling this project, you’ll also need wire and access to a soldering iron. The Pi Hut sells a handy Breadboarding Wire Bundle of 75 flexible stranded cord wires for just about $5. For the same amount, you can also invest in a half-size breadboard to experiment with. Bear in mind that, if you want to communicate with other people, you will need to double up on the parts you need. However, most of the components come as parts of packs, so you should be able to create as many TalkiePis as you’re likely to need.
BUTTONS AND PINS
The basic setup for the GPIO pins is easy to understand. There’s an LED built into the pushbutton on the front of the TalkiePI itself which lights up when you’re transmitting. There are also two separate ‘online’ and ‘participant’ status LEDs.
If this is your first project, it’s best to work through the steps on the website on your breadboard before you solder anything, also pay close attention to the GPIO diagram on the website before you start. For full assembly instructions, visit the main project page at bit.ly/ Wi-FiWalkieTalkie.
If you decide to mimic the TalkiePi project, you don’t necessarily have to use a 3D-printed case, but it’s certainly much handier to have trailing wires boxed up. The actual 3D designs for the casing, as well as the speaker cover are based on a retro walkie talkie and have been uploaded by Daniel Choates to his GitHub page available at github.com/ dchote/talkiepi/tree/master/stl. The STL (StereoLithography) file format is compatible with most 3D printers.
The TalkiePi project was done on a Monoprice Select Mini 3D printer using PLA plastic with 100% infill. PLA has the advantage of giving off a pleasant sugary smell when printing, as well as being quite sturdy.
If you already have a 3D printer, you will most likely be comfortable enough from previous projects to simply manufacture the parts yourself. If you don’t have a 3D printer, then you can ask a third-party company to build the top and bottom casing, as well as the speaker cover for you. (Alternatively, find a friend who will loan you theirs.)
In regards to the Mumble server, they are highly customisable and it’s possible to create select groups or channels for everyone with whom you wish to talk. For instance, you may prefer that your friends playing World of Warcraft can’t hear everyone who buzzes your front door intercom. If you do set up your Mumble Server (see box, left) make sure to group conversations together. You may need to use the go run command each time you switch channels.
SAFETY IN MUMBLES
To prevent your conversations being monitored, you should also consider
generating an SSL certificate for your Mumble client. (See Certified Mumbler box, back over the page.) If you choose to install the standard Mumble client, it comes with its own certificate but you can choose to generate another in your own name by running the certificate wizard. See www.mumble. com/support/mumble-creating-acertificate.php for more information. The steps will allow you to generate a ‘self-signed’ certificate which is ideal for a small group of people. If you plan to open your Mumble server to the public, you may wish to obtain a trusted certificate from a bona fide Certificate Authority.
CROSS TALK
By default, the TalkiePi software connects to Chote’s own Mumble server and generates a username for you automatically. This keeps things simple, but besides not being very fair on Chote’s bandwidth, it isn’t the most secure setup. (Again, see Managing Mumble to configure TalkiePi with your own Mumble server.)
Technically, you could run the Mumble server software on the same Pi on which you’re talking but this can cause network errors, so it’s best to have a separate device. If you only plan to use the Pi within the same building, consider having a machine connected to your network dedicated to running Mumble’s server software, Murmur.
By default, the Pi may not use the USB speakerphone you’ve attached as the sound device. If you can connect your Pi to an HDMI monitor, this is fairly easy to fix by right-clicking on the volume button and adjusting your sound preferences. If you have no monitor or the Pi has already been placed in its casing, connect via SSH and run the command sudo -i , then aplay -l to list all sound devices. Make a note of the card number of the USB device (most likely it’ll be ‘card 1’). Next run nano /usr/share/ alsa/alsa.conf . Scroll down and change defaults.ctl.card 0 to the corresponding number of your speakerphone. Do the same for defaults.pcm.card 0 . If you choose to use a 3D printer to create the casing for the TalkiePI, bear in mind that it was designed specifically for the US Robotics speakerphone listed on the website, so other speakers may not fit in as snugly. Pay careful attention to the size of your components to avoid wasting precious material.
The default setup for the TalkiePi is that the button is used to ‘push to talk’. Mumble doesn’t have to run this way but it is keeping with old style walkietalkies. If you want to use Mumble in a different way, such as with a keyboard shortcut or with a headset when you raise your voice, the easiest way is to run the graphical audio wizard with the official Mumble client. Connect your Pi to a monitor, open the Terminal and run sudo apt-get install mumble . Next, run Mumble and you will automatically be asked to configure your microphone and sound preferences. If you’ve set up your own Mumble server, you can also use the handy menus to input the details here.
If nostalgia gets the better of you and you decide you prefer an authentic looking walkie-talkie, bear in mind that it will only be effective while connected to the same wireless network on which the Pi was set up. This can be an issue if you need to move the Pi elsewhere, as it’s not possible to connect the HDMI cable while it’s inside the TalkiePi casing. Instead, connect via SSH and run the command sudo nano /etc/wpa_ supplicant/ wpa_ supplicant.conf to edit your network settings. At the very bottom of the file, paste the details of the new wireless network as follows: network={ ssid=”yourwifinetworkname” psk=”yourwifipassword” } Press ‘Ctrl-X’, then ‘Y’, then return to save and exit. The TalkiePi is only as good as the battery pack powering it. You can either use a USB battery pack as outlined on the TalkiePi website or, if you prefer a neater solution, you may want to consider using a PiBorg ( thepihut.com/products/battborg? variant=1103793752). This is a custom power converter for the Pi, which works with most batteries and even comes with an eight-battery AA pack. The Pi Hut website recommends using rechargeable batteries.
The TalkiePi project is a work in progress. Currently, Chote is working on running it on a Pi Zero which would be much smaller and less power hungry. For the latest updates see github.com/dchote/talkiepi.