Any Spongebob Squarepants fan will remember the magic conch shell. For me, the magic conch shell is one of the greatest parts of the Spongebob universe. So I thought I’d go ahead and make my own— using a Raspberry Pi Zero, Pimoroni Speaker pHAT, Google Cloud Platformm, and Google AIY Voice Kit! If you’re looking to find out how I did it, or make one yourself, you’ve come to the right place.


Magic Conch Shell 2.0 has all the same functionality of a regular conch shell, but has all the power of Google Assistant. Ask magic conch shell about the weather, sports scores, to controll your smart home, or almost anything else you would ask your Assistant enabled smartphone or Google Home to do.

And, just like the Conch shell from Spongebob Squarepants, this conch responds to all the questions asked of it in the episode Club Spongebob. The steps below will get you going with conch shell just like mine.

Getting Started

These instructions will get you a copy of the project up and running on your local machine, as well as get the required hardware swt up to support the project.


The hardware for this project is pretty simple, you'll just need the parts below:

  • Raspberry Pi Zero W
  • Pimorini Speaker pHat - This is the compact speaker we'll use to let the shell speak
  • USB microphone - This is a microphone. We need a very tiny one so it fits in a Conch shell. I used this
  • LiPo Battery - This will power the Pi in the shell, you'll want something with a small physical size, but at least 700mAh capacity. Adafruit has a great selection!
  • Adafruit PowerBoost 500 Charger - This board allows us to power the board and charge the battery at the same time.
  • A Conch Shell - There's a bunch of options for a Conch shell. You can 3D print one, buy one online, or if you're lucky enough to live near a beach, you might be able to find your own! If you find your own, NEVER collect a shell with a living organism in it! Queen Conch are susceptible to over-fishing, habitat degrdation, and deserve happy long lives. Check with your local laws before taking a shell from the beach.

Rasperry Pi Image, Wi-Fi, & SSH Setup

To start, you'll want to download the latest AIY image for your Pi from here. You're looking for a .img.xz file. Then you'll want to flash the image to the microSD card for the Pi-- I like using the free application BalenaEtcher for this.

If you know how to get your Raspberry Pi is connected to Wi-Fi with SSH enabled, you can skip the rest of this step.

Otherwise, your next step is to get your Raspberry Pi set up on wifi with SSH enabled.

Mount your microSD card, and in a Terminal, navigate to the directory. Most likely, you can just type

$ cd /Volumes/boot

create the file wpa_supplicant.conf (this will replace the RPi wifi config on boot)

$ nano wpa_supplicant.conf

past the following into the file

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev


but adjust "US" to your country code, and the psk, ssid, and key_mgmt variables to match your network. For a network without a password use this set up:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev


save this file, close it, and then enable ssh with the following command

$ touch ssh

Now, on boot, your Pi will connect to the specified netwwork with SSH enabled!

Hardware Setup

With the power off (unplugged) we'll want to first connect the components in the following way:


Note that you can leave the Conch Shell on and plugged in, or unplugged for a short duration and running on battery power.

Software Setup

We'll be using Google AIY, Snowboy, Cloud Text-to-Speech API, and a couple Python libraries to make this regular conch shell into magic! AIY will allow the conch to respond to general inquiries with Google Assistant, Cloud Text-to-Speech API will let us generate the audio the shell will speak for specific responses to questions like "what do we need to do to get out of the Kelp Forest?" and Snowboy will let us use "Magic Conch Shell" instead of "Okay Google" as the hotword.

From now on, all steps assume you are SSH into your Pi.

Google Cloud SDK Installation (Optional)

This step is very very optional— I've already included the synthesized audio files from Cloud Text-To-Speech API, so you only need to do this step if you want to play around with TTS API yourself, or if you want to experiment with other GCP tools.

To use Text-to-Speech API, we'll need to install Google Cloud SDK. Google has a reallyy straightforward quickstart guide you can follow here. You just need to do from the start of "Before you begin" to the end of "Initialize the SDK."

Note that when you're directed to run gcloud init you'll actually want to run gcloud init --console-only

When you're promted to Pick cloud project to use: you'll most likely want to select the option to create a new project- name this project whatever you want, I named mine magic-conch-shell

Once that's all set up, we're ready to move on

Speaker pHAT Configuration

Pimorini has a simple one-line installer for the speaker pHAT! Just enter:

curl -sS | bash

And you're ready to bump some audio.

Snowboy Set Up

Finally we'll get Snowboy up and running. Snowboy is an awesome tool for adding custom hotword detection. In our case, we want to replace "Okay Google..." and "Hey Google..." with "Magic Conch Shell..."

This is pretty straight forward....

Starting the Conch Shell.

Finally, we're ready to speak to the magic conch. Download the contents of this repo to you home directory:

``` cd /home/pi git clone

Then make executable:

cd magic-conch-shell sudo chmod +x

At this point, we can test it out! Just enter ```./``` to run the script.

### Test out some commands 
Try saying these out loud:

**"Magic Conch Shell, what's the weather like in Los Angeles?"**
The expected outuput should be a description of the weather in LA.

**"Magic Conch Shell, will we ever get out of this kelp forest?"**
The expected outuput should be "maybe someday."

Assuming these both work, we know Assistant SDK and Snowboy are both working!

Now let's shut down the system and get all the hardware in it's final assembly.
``` sudo shutdown now

Putting it in the shell...

So now that it's all together, we've got to get it in the conch shell. The easiest way i've found is with double sided tape (I like 3M™ VHB™) and tweezers.

Once it's in, you're good to go! Your very own Magic Conch Shell.

Powering On

To get everyhing going...

  1. Plug in power (the Pi may already be on if the battery is charged).
  2. SSH into your Pi. If you've lost track of the IP address, you can use a tool like (LanScan)[LanScan] to find the Pi on your network.
  3. Activate the virtual environment source env/bin/activate
  4. Navigate to the correct directory: cd /home/pi/magic-conch-shell
  5. Start ./

At this point, try asking you Magic Conch Shell a question! If all seems good, you can close your SSH session. Your Magic Conch is ready to use :)



This project is licensed under the CMU License - see the file for details


  • Shout out to OP, AH, EKH, and MR.
  • Inspiration
  • etc