A while back we detailed how to make your own Amazon Echo device using a Raspberry Pi, but if anything went wrong with it, you’d have to manually reboot the whole thing. It was a pain in the butt. Now, there’s an easier way to make your own Echo.




What exactly is different about this version? First off, the end result is basically the same: you can activate your DIY Echo by saying the wake word “Alexa,” and the device works just like a real Echo.


The installation process here is different though. Instead of using Amazon’s official resources, we’ll use a GitHub project called Alexa Pi. This installs the exact same Alexa voice service that Amazon uses on the Echo onto your Raspberry Pi. With this version of the project, if something goes wrong, the Alexa service will start automatically when you restart your Raspberry Pi. This is much better than the previous project that requires you to restart the service manually by opening three different Terminal windows. Beyond that, this method also supports other development boards, like the Orange Pi and C.H.I.P.

Obviously this isn’t a cheaper system than something like the Echo Dot, but it is fully customizable and a great project if you already have the materials sitting around. With that, let’s get to it.


What You Need


As you’d expect, you’ll need a Raspberry Pi alongside a handful of parts:




Now that you have everything gathered up, connected, and plugged in, let’s build this sucker.

Step One: Register for a Free Amazon Developer Account


Before you do anything, you’ll need to register for a free Amazon Developer Account, then create a profile for your DIY Echo. If you’ve already done this because you made the previous version of the DIY Echo, note that sections 10-13 are slightly different, so you’ll want to change those details. Otherwise, this is pretty straightforward even though it takes a lot of clicks:



Log into your Amazon Developer Account Click on the Alexa Tab. Click Register a Product Type > Device. Name your device type and display name (I arbitrarily chose “Pi2” for both, though you can enter pretty much whatever you want here), then click Next. On the Security Profile screen, click “Create new profile.” Under the General tab, next to “Security Profile Name” name your profile. Do the same for the description. Click Next. Make a note of the Product ID, Client ID, and Client Secret that the site generates for you. Click the Web Settings tab, then click the Edit button next to the profile dropdown. Next to Allowed Origins, click, “Add Another” and type in: http://localhost:5050 . Click “Add Another,” then type in http://your.raspberrypi.ip.address:5050 but replace with your.raspberrypi.ip.address with your Raspberry Pi’s IP address. You can find your Pi’s IP address using the Pi Finder tool detailed here Next to Allowed Return URLs, click “Add Another” and type in: http://localhost:5050/code Click “Add Another” and add in http://your.raspberrypi.ip.address:5050/code once again replacing your.raspberrypi.ip.address with your own info. Click Next when you’re done.

The Device Details tab is next. It doesn’t matter much what you enter here. Pick a category, write a description, pick an expected timeline, and enter a 0 on the form next to how many devices you plan on using this on. Click Next. Finally, you can choose to add in Amazon Music here. This does not work on the Pi powered device, so leave it checked as “No.” Click Save.


Now you have an Amazon Developer Account and you’ve created a profile for your Pi-powered Echo. It’s time to head over to the Raspberry Pi and get Alexa working.

Step Two: Install Git and AlexaPi


Next up, you’ll need to fire up Terminal on your Raspberry Pi because we’re going to do the entirety of this project in the command line. Before you start the installation you need to update and install a couple things:



Type in sudo apt-get install update and press Enter to make sure your version of Raspbian is up to date. Let it do its thing here. Type in sudo apt-get install git and press Enter to install Git. Again, let it do its thing. Type in cd /opt and press Enter to change the directory. Finally, type in sudo git clone https://github.com/alexa-pi/AlexaPi.git and press Enter to clone the AlexaPi GitHub repository. Again, give it a second to download and do its thing.


That’s it for the downloading portion, onward to actually installing it.

Step Three: Run the AlexaPi Installation Script


Next, you’ll run an installation script. This automates the installation of everything else you need to get your Echo up and running.



Type in sudo ./AlexaPi/src/scripts/setup.sh and press Enter. You’ll be asked a series of questions. If you’re using the Raspberry Pi, just press Enter for both the operating system and device prompts. The last question asks if you want to add AirPlay support. If you have an iOS device, this makes it so you can easily stream music from your iPhone to your DIY Echo over Airplay. The script will then download a bunch of software for the next 5-10 minutes, so go ahead and relax for a bit. Eventually, you’ll be asked to enter in your Amazon developer information. Type in the Device Type ID and Security Profile Description you made way back in step one (we used AlexaPi). Next, you’ll need to enter in all those long, complicated numbers for your Profile ID, Client ID, Client Secret. Finally, the last thing you need to do is authorize your device. You only need to do this once. Head back to your main computer and open up a web browser. Than type in http://your.raspberrypi.ip.address:5050 replacing your.raspberryi.ip.address with your Raspberry Pi’s IP address from earlier. You’ll then need to log into your Amazon account. After that, you’ll see an authorization token.


That’s it, the Alexa voice service is now installed on your Raspberry Pi. You just need to start the service. You can either just reboot your device completely, or type in sudo systemctl start AlexaPi.service and press Enter to start it.

Go ahead and try it, say “Alexa” into the mic, and it should reply back with a “Yes?” If it’s not working, you can type in sudo systemctl status AlexaPi.service and press Enter to check the status. Alexa will start up automatically when you reboot your device or if the power goes out for some reason, so you shouldn’t ever have to think about it again.