I've always wanted a working version of HAL 9000 (but without the murderous intent). When Amazon Alexa came out, I got one immediately. Within the first day I asked it to, "open the pod bay doors" and it promptly replied, "I'm sorry Dave. I can't do that. I'm not HAL and we're not in space". At that moment I was determined to find a way to make a HAL-like digital assistant.
Alexa is only available in a female voice and she specifically states that she is not HAL. This made me think of the not-so-great sequel to 2001, "2010 the year we make contact". It depicts the kinder, friendlier, SAL 9000. She is used to determine why HAL went haywire. I felt this persona fit better with Alexa.
This instructable combines the Alexa voice service running on a Raspberry Pi 3, a model of the SAL 9000 faceplate and a simple enclosure for the whole thing.
Some basic model making skills with help with the faceplate. This will require careful masking and spray painting. I'm still tweaking the paint job on mine.
It would help to familiarize yourself with setting up a raspberry pi. The NOOBS version will give you a desktop experience that is somewhat similar to Windows or Mac. You will have to learn a bit of command line. Many setup tutorials walk you through a "headless" version (logging into the pi remotely). There are lots of tutorials on how to move between folders, copy/paste and edit files. I had almost no experience in command line before this. I felt this gave me a lot of experience in that area.
This will require some light electronics work. If you don't know how to solder, the simple connections in this project should be great practice.
Finally, the case I have produced requires some woodworking. I made the whole thing with a hand drill, circular saw, band saw, miter box and hand saw. This is where you could really get creative. Someone else could make a totally different case shape. You just need enough space for the face plate, Pi and speakers. I would also recommend that there is sufficient air flow throughout in case the pi or the speakers heat up.
HAL/SAL 9000 model kit
I got mine from Golden Armor. I think the kit was really well done and their customer service was great.
- A Raspberry Pi 3
- A MicroUSB power cable
- A MicroSD card
- A USB Microphone
- This is the only mic I could get to work with my pi. If there are others, please leave notes in the comments. I'm eager to improve this.
- Speakers (Use a USB powered speaker with a phone jack)
- Note: this and the face plate dimensions may be the limiting factors in your case. You will need to figure out how the speakers will fit in, on, or around your case.
- A blue LED
- A push button
- Jumper wires
- ⅛” plywood sheets
- 1/2” square pine rods
- Wood screws of varying lengths
- Wood glue
- Black spray paint
I hacked the case together from things I had in my shop so I don't have quantities to share here.
Step 1: Assemble the Alexa Pi
Safety note: be careful around hot soldering irons and electronics which are powered on. Whenever testing or assembling your finished project, unplug the power before making an adjustment.
Amazon developers have published the code and instructions to build your own Alexa Pi. This should be your main reference. They do make updates from time to time so trust their documentation over anything here. There are tons of forum topics and youtube videos with step by step instructions.
Once you have Alexa running on a Raspberry Pi, you should be able to change the wake word. Here are some instructions.
I'm not sure if I did something to my own setting or if this is common but I was getting terrible audio quality from the phone jack for some time. Finally I found that you can set audio to exclusively play from one output.
I believe this is the correct command:
sudo amixer cset numid=3 1
Finally, make sure you assemble all of the electronics and get them working before you move onto the case and faceplate. Understanding how it's all put together will inform how you will layout your case.
The alexa pi instructions call for 2 LEDs. If you only hook up one LED to GPIO 24, the blue light will only come on when SAL is talking or when data is being transmitted.
Step 2: Building the Case
Safety note: use safety equipment, like eye protection and gloves, whenever using power tools. Also follow all instructions from paints, sealers and varnishes. Make sure you are in a properly vented area when painting.
I decided to go for a boxy (desktop PC) sort of look. My speakers were already housed in one large rectangle. They looked really distracting next to the faceplate so I decided to put them out of sight. I made plenty of space for them in the back. This also allowed me to control the volume.
For servicing, I made sure I could pull most of it apart and put it back together again. The faceplate is bolted on from the bottom. The one broadside panel comes off completely to allow for servicing. It all feels like a min PC tower!
The USB port was challenging. I made sure the opening was a bit of a tight fit and hot glued the cable from inside. I accomplished this with several small drill holes and lots of patient filing. I have some super small files for jewelry making that helped with the finishing details.
I finally painted the whole thing in several passes of flat black. I really recommend patience between coats. Also don't forget a final clear coat for protection.
Step 3: Make the Faceplate
My model came with instructions and recommendations for painting and assembly. If you are purchasing from Golden Armor you should only need flat black and silver spray paint and some glue. It's always good to add a clear coat on top of your paint for durability. I'm not the best painter in the world and I still have some mistakes I need to cleanup. I built the faceplate way before I made the case. I ended up scratching the finish a few times. You might want to save the final painting until the end.
Step 4: Assembly
During assembly, I placed the speakers, button, USB port and faceplate loosely in place. I then turned it on and tested all the features. When I was satisfied everything was ok, I turned it off and unplugged it
I then glued the button and USB port in place. I tightened down the faceplate. I used some duct tape to secure the LED inside the faceplate. I will hot glue that later when I feel better about the faceplate paint job.
I used an extension cord as the main power cord. The speakers and the raspberry pi have their own wall warts inside. The raspberry pi starts up whenever you plug in the cable so the whole thing can be turned off by unplugging the main cord. I might install an on/off switch in the extension cord later.
One thing to note: the speakers sit fairly loosely in the back on purpose. I found clamping them down to any degree made the box reverberate and distorted the audio. Also, leaving the back open offers some airflow. I may add a little foam padding to secure the speakers better.
That's it! You should have a working SAL 9000. I hope other people experiment with other cases and configurations. Please leave any comments or tips!