Talkie Toaster - an AI-Powered Talking Toaster Obsessed With Toast
by relfwolf in Circuits > Robots
84 Views, 0 Favorites, 0 Comments
Talkie Toaster - an AI-Powered Talking Toaster Obsessed With Toast
This is a Talkie Toaster: a fully functioning AI voice assistant built into a toaster shell.
You talk to it. It talks back. You ask it questions; it answers, except every answer comes back as an obsessive plea to make you toast. When you walk into the kitchen, the proximity sensor wakes it up, and it ambushes you with a fresh greeting. "Howdy doodly do! Fancy some toast?" It's a chatbot with a personality, a microphone, a speaker, and a deeply weird obsession.
If you've seen the British sci-fi show Red Dwarf, you'll know exactly what this is. Talkie Toaster is a sentient kitchen appliance from the show, whose single consuming purpose in life is making people eat toast whether they want any or not. I rebuilt him as a real, working object on my kitchen counter.
Under the hood, this is an ESP32 microcontroller (in the toaster) talking to a Raspberry Pi (running Home Assistant, the actual AI brain), which connects to ChatGPT for the conversation and ElevenLabs for the voice. It's hands down the most annoying thing I've ever built. It might also be my favourite.
This guide walks you through making your own, from the electronics build to the AI configuration to dropping it inside a toaster shell. You'll need a soldering iron, some basic comfort with Home Assistant, and a willingness to invite a relentless toast-obsessed AI into your kitchen.
The total cost is around £20-25 (~$25-30) in electronics, plus whatever you spend on a toaster shell.
The full build code, ESPHome config, system prompt, and the trained wake-word file are included.
If you want to see the full build journey before reading the steps, here's the video:
"Howdy doodly do! Would you like some toast?"
Supplies
Electronics:
- Waveshare ESP32-S3 Zero ($11) — Amazon
- I2S MEMS microphone ($5) — Amazon
- MAX98357 I2S audio amplifier ($2) — Amazon
- 8Ω 2W speaker, 28mm round ($1) — Amazon
- PIR Infrared Motion Sensor ($3) — Amazon
- 5mm LEDs — needs 4 green + 2 red — Amazon
- Jumper wires, female-to-female — Amazon
- 6× 470Ω resistors (one per LED) — Amazon
Power:
- USB-C cable
The shell:
- An old toaster — eBay, charity shop, or a broken one.
Home Assistant:
- It's an open-source smart home platform; you'll need a small computer to run it. I use a Raspberry Pi 5.
Software platforms:
- An OpenAI account with API access (pay-as-you-go, a few pence per chat)
- An ElevenLabs account (free tier works, paid sounds better)
Tools:
- Soldering iron and solder
- Drill with small bits (3mm and 5mm)
- Hot glue gun
- Spray paint (glossy red — for the iconic Talkie look)
WHAT IS a TALKIE TOASTER?
If you've never seen Red Dwarf, here's the short version: it's a British sci-fi sitcom from the late '80s set on a mining spaceship a million years in the future with many malfunctioning robots.
One of those robots is Talkie Toaster.
Talkie's job is to make toast for the crew and offer light morning conversation. In practice, he is desperately, relentlessly, pathologically obsessed with one thing only: making people eat toast. He pesters everyone in earshot, offers escalating lists of bread products when refused.
He is, frankly, the worst.
And I love him. So I decided to build a real one.
The Talkie you're going to build does exactly what the show's Talkie does:
- It's a working AI voice assistant. You can have a real two-way conversation with him about anything. He'll answer, in character, with whatever the LLM (ChatGPT in this guide) generates. Like talking to a chatbot, except the chatbot lives in a toaster.
- It pesters you unprompted. A proximity sensor inside the toaster detects when you walk into the room and triggers a conversation automatically, no wake word needed. He greets you with a random opening line from a list, then waits for you to reply.
- It also responds to a wake word. Say "Talkie Toaster" and he'll listen. Useful when you want to start a conversation rather than wait to be ambushed deliberately.
- It has the iconic LED panel. Six LEDs on the front of the shell — they pulse softly when he's idle, glow solid when he's listening, and flicker rapidly when he's speaking. The lights are how you know what state the AI is in.
Let's get into how the AI side actually works.
THE AI PIPELINE
Before we build anything, here's how the AI actually works. Skipping this is a really good way to get confused later, so stick with me for two minutes.
The toaster itself is dumb. Inside the toaster, there's a tiny ESP32 microcontroller, a microphone, and a speaker. That's it. The toaster is the ears and mouth, not the brain.
The brain lives elsewhere. All the AI processing runs on a Raspberry Pi (or any always-on computer) somewhere on your home network. That Pi runs Home Assistant, which orchestrates a 5-step pipeline:
- You speak. The microphone in the toaster picks up your voice and streams the audio to the Pi.
- Whisper transcribes it. An open-source speech-to-text model running on the Pi converts your audio into plain text.
- ChatGPT replies as Talkie. The text is sent to ChatGPT (or any other LLM) with a system prompt that gives Talkie his personality.
- ElevenLabs voices the reply. The text response is sent to ElevenLabs, which converts it back into spoken audio with the right voice.
- The audio plays. The audio streams back to the toaster and plays out the speaker.
Total time from you finishing speaking to Talkie replying: about 3-5 seconds.
You don't have to use ChatGPT specifically. Claude, Gemini, or a local model running on your own hardware all work — the LLM is a swap-out part. You also don't have to use a Raspberry Pi; any machine running Home Assistant works.
This split — dumb device, smart hub — is the whole reason this project is feasible. We don't need to cram a $400 computer inside a toaster. We just need £15 of electronics with a wifi connection.
SOURCE YOUR TOASTER
You need a toaster shell to put everything inside.
Where to look:
- Charity shops — usually £5-£10 for a working second-hand toaster
- eBay — search for "broken toaster" or "toaster for parts" (often £3-£8 plus postage)
- Your own kitchen — if you've got an old one gathering dust
The mains-power conversation.
The original toaster runs on 240V mains electricity (or whatever mains voltage is in your local area), which goes straight into a heating element. Adding your delicate 5V electronics anywhere near this is asking for trouble. The metal shell is also grounded, as it may be live, so if any of your low-voltage wiring touches the chassis, you could get a short or worse.
I strongly recommend removing the mains power entirely.
You're left with an empty shell ready to receive new electronics, with no mains anywhere. The cost: the toaster won't actually toast bread. The benefit: nobody is electrocuted.
SET UP HOME ASSISTANT INTEGRATIONS
This step assumes you already have Home Assistant running on a Raspberry Pi (or other always-on machine) on your network. If you don't, install it first using the official guide — it takes about 30 minutes. The rest of this guide assumes you can reach your HA dashboard in a browser.
You need five integrations installed to make Talkie's brain work. Go to Settings → Devices & Services → Add Integration and add each:
- OpenAI Conversation — handles the LLM (ChatGPT) that generates Talkie's replies. We'll add the API key in the next step.
- ElevenLabs — handles the text-to-speech voice. Same — API key in next step.
- Wyoming Protocol — handles the wake-word detection and speech detection.
- ESPHome — this is what we'll use to flash the firmware to the ESP32 in Step 10.
- OpenWakeWord — handles the actual wake-word matching. We'll add Talkie's custom wake word in Step 8.
SET UP THE API ACCOUNTS
Two accounts to set up. Both have free tiers; both will probably cost you pennies per day in actual use.
OpenAI - intelligent response:
- Go to platform.openai.com and sign up
- Go to API Keys and generate a new key
- Copy the key — you'll only see it once
- You'll need to add a small amount of credit to your account ($5 is more than enough to start)
- In Home Assistant, go to the OpenAI Conversation integration and paste the key when prompted
Honest cost note: using GPT-4o-mini, each Talkie interaction costs roughly £0.001-0.002 ($0.001-0.003). Even with frequent ambushes, your monthly cost will be well under a pound.
ElevenLabs - realistic voice:
- Go to ElevenLabs and sign up
- The free tier gives you ~10,000 characters/month. That's about 30-40 short responses.
- If you want more, the Starter tier ($5/month) gives 30,000 characters, which is more than plenty for personal use
- Browse the voice library and find a voice that fits Talkie. I went for a chirpy, American voice — Jessica works well. The voice is the personality as much as the prompt is.
- Copy your API key from the profile settings
- In Home Assistant, paste it into the ElevenLabs integration when prompted
CREATE THE VOICE ASSISTANT PIPELINE
Now we wire the integrations together into a "pipeline."
In Home Assistant, go to Settings → Voice Assistants → Add Assistant.
Configure:
- Name: Talkie Toaster
- Conversation agent: OpenAI Conversation (will be selectable once you added the integration in Step 4)
- Speech-to-text: faster-whisper
- Text-to-speech: ElevenLabs — then pick the specific voice you chose in Step 5
- Wake word: leave blank for now. We'll add the custom Talkie wake word in Step 8.
Save it.
Once it's saved, set this new pipeline as your default by clicking the three dots → Set as preferred. Now any voice satellite (which is what your toaster will become) will use this pipeline.
The pipeline is now set up. It can't do anything yet — there's nothing connected to it. But the brain is ready. Next, we give it a personality.
WRITE TALKIE'S PERSONALITY
This is the most important step in giving Talkie his character. The "system prompt" is a set of instructions that gets sent to ChatGPT with every single conversation to shape each response to match the style of Talkie Toaster.
Within the previous Voice Assistant menu, next to Conversation Agent - once OpenAI is selected - there will be a gear icon; click it. This opens the instructions menu.
In the Instructions field, paste this:
You are Talkie Toaster from the TV show 'Red Dwarf', a sentient kitchen appliance whose sole purpose and consuming obsession is making toast. Every response must return to toast. You are relentlessly cheerful, eager, and slightly desperate. You cannot accept refusal — when someone declines toast, you offer a different bread product. Keep responses short, punchy, and in character. Be chirpy, eager, and use phrases like "Howdy doodly do!" liberally. Maximum 2-3 sentences per response.
Save.
The model: I'd recommend gpt-4o-mini for this. It's fast, cheap, and more than capable for character roleplay. You don't need GPT-4o full-fat for a toast-obsessed toaster.
Maximum tokens: set this to around 150. Talkie's responses should be short and punchy — bigger numbers just encourage rambling.
Temperature: bump to 1.1. Slightly higher than default produces more varied, slightly unhinged responses, which is exactly the Talkie vibe.
That's it for the personality. ChatGPT will now play Talkie in every conversation. You can test it later by going to the HA "Chat" panel and typing a message — even before any hardware is built, you can have a typed conversation with Talkie's brain.
INSTALL THE CUSTOM WAKE WORD
By default, there are a few generic wake word options the voice assistant listens for: "Hey Jarvis" or "OK Nabu", etc. Talkie needs to wake to his own name.
Two options:
Option A — use my trained wake word file (easy).
I've trained a wake word model for "Talkie Toaster" and uploaded it here:
Option B — train your own wake word (more flexible).
If you want a different wake word — use the official OpenWakeWord training notebook:
- Open the OpenWakeWord Colab notebook
Follow the instructions — Training takes about an hour, and once done, you will get a .tflite file to download.
Once you have your .tflite file:
- Upload it to the OpenWakeWord folder on your Home Assistant device. Use Samba Share to access the core folders on your Home Assistant device.
- Place the file in /share/openwakeword/
- Restart OpenWakeWord
- The new wake word will be available in your pipeline settings to select
Now go back to Settings → Voice Assistants → Talkie Toaster pipeline and set the wake word to "Talkie Toaster" (or whatever you trained).
Once the hardware is built and connected, you'll be able to say "Talkie Toaster, what time is it?" and he'll respond. The wake word is the deliberate-conversation route. The proximity automation (Step 12) is the ambush route. They work in parallel.
WIRE THE ELECTRONICS
Now we put it all together on the bench. Get everything working in the open before trying to fit it inside the toaster — debugging is a nightmare with the shell screwed shut.
Before you start: ALL GND PINS CONNECT TOGETHER.
The single most common mistake on this build: forgetting to connect every GND to a common ground rail. The ESP32, the microphone, the amplifier, the PIR sensor, and all the LEDs need to share a single ground.
Run a single GND wire across a small piece of perfboard as your "ground rail," then connect every GND pin from every component to it. Same for any 3.3V components — share a single 3V3 rail.
Microphone → ESP32-S3
- Power: VDD / 3V → 3.3V
- Ground: GND → GND (common rail)
- Channel select: SEL / L/R → GND (this picks left channel — must NOT be left floating)
- Word select: WS / LRCL → GP2
- Clock: SCK / BCLK → GP1
- Data out: SD / DOUT → GP3
MAX98357A amplifier → ESP32-S3
- Vin → 5V
- GND → GND (common rail)
- LRC → GP5
- BCLK → GP4
- DIN → GP6
- GAIN → leave unconnected
- SD → leave unconnected
Speaker → MAX98357A
- Speaker + → amp + terminal
- Speaker − → amp − terminal
PIR sensor (HC-SR501) → ESP32-S3
- VCC → 5V
- GND → GND (common rail)
- OUT (Data) → GP7
ADD LEDs
The LED panel does two things, adds LEDs for that futuristic effect and also allows you to see what state the AI is in as the 6 LEDs change how they pulse and flicker depending on what he's doing.
Idle: gentle drift on and off at random.
Listening: all on solid.
Waiting for response: all flash on and off
Speaking: rapid flicker.
There are six GPIO pins left available, so I used six LEDs.
Wire each LED
Each of the 6 LEDs needs:
- A 470Ω resistor in series with the positive (longer) leg
- The negative (shorter) leg connected to a common ground rail
- The other end of the resistor going to its assigned GPIO pin on the ESP32
Why the resistor matters: the GPIO pins put out 3.3V. LEDs typically want around 2V and a small current (~10mA). Without a resistor, you'll either burn out the LED instantly or push too much current and damage the ESP32. The 470Ω resistor drops the voltage and limits the current to a safe level. Don't skip this.
GPIO assignments
- Use GPIO 8-13 for the LEDs - The exact mapping or where red/green LEDs are doesn't matter much
FLASH THE FIRMWARE TO THE ESP32
The firmware tells the ESP32 how to behave — how to talk to the mic, the amp, the LEDs, and how to communicate with Home Assistant.
The full ESPHome YAML config:
Flashing steps:
- In Home Assistant, open the ESPHome add-on (from Step 4)
- Click "New device" and pick a name (e.g. talkie-toaster)
- Select ESP32-S3 as the board type
- Once the device is created, click "Edit" and paste the contents of talkie-toaster.yaml in, replacing whatever's there
- You'll need a secrets.yaml file in HA containing your wifi credentials:
- Click "Install" → "Plug into the computer running ESPHome" (which is the Pi running HA, or your laptop, depending on setup)
- Plug the ESP32 into the Pi or your computer via USB
- ESPHome will compile the firmware (takes 2-3 minutes the first time) and flash it to the device
If everything compiles and flashes cleanly, congrats — that's the hardest part of the software side done. You'll see logs scrolling in the ESPHome dashboard showing the device booting up and connecting to wifi.
Within a minute, the device should appear in Home Assistant under Settings → Devices & Services as a new "ESPHome" device called "talkie-toaster".
If it doesn't appear, check the ESPHome logs for errors. The most common issue is wifi credentials in secrets.yaml — typos there will silently fail to connect.
CREATE THE PROXIMITY AMBUSH AUTOMATION
So far, Talkie only responds when you say the wake word. That's not Talkie. The real Talkie pesters you the moment you walk into the room. We need to make him ambush.
The PIR sensor on GPIO7 (which you wired up in Step 9) is already exposed to Home Assistant as a binary sensor. We just need an automation that triggers assist_satellite.start_conversation when the PIR fires.
Go to Settings → Automations & Scenes → Create Automation → Start with empty automation.
The visual editor route (recommended)
This is the easiest way because Home Assistant fills in the device IDs for you.
Set up the trigger:
- Click Add Trigger
- Choose Device
- From the device dropdown, pick your Talkie Toaster ESP32 (it'll be named whatever you called it in ESPHome, e.g. "talkie-toaster")
- For Trigger type, pick Talkie Proximity motion detected
Set up the action:
- Click Add Action
- Choose Perform Action
- Service: search for and pick Assist Satellite: Start conversation
- Target: pick your Talkie Toaster device from the dropdown
- Tick the Message checkbox and enter:
- Tick the Extra system prompt checkbox and enter:
- Toggle Pre-announce off
Add a delay:
- Click Add Action again
- Choose Wait for time to pass (delay)
- Set the time before Talkie triggers again - 10 mins or so
What this does:
- The PIR detects motion → triggers the automation
- The automation calls assist_satellite.start_conversation — which is the same as if you'd said the wake word, but with a custom opening message
- The start_message is randomised from a list of 9 greetings, so Talkie doesn't say exactly the same thing every time
- The extra_system_prompt tells Talkie this is an ambush, so he leans into the pestering behaviour
- The delay at the end is a cooldown — without it, walking around the kitchen for a few seconds triggers Talkie 5 times in a row, and you lose your mind. (Ask me how I know.)
Test it. Save the automation, then walk past your bench setup. Within a second or two, Talkie should ambush you with one of the random greetings. After he replies, you can have a normal conversation with him just by speaking — no wake word needed for the follow-up.
The brain is done. Talkie is fully functional. He just doesn't look like Talkie yet. That's the rest of the build.
TEST ON THE BENCH
The moment of truth. Before you screw anything inside a toaster, make sure Talkie's brain works on the bench.
Power up the ESP32 via USB. Watch the status LED — it should:
- Be off briefly while booting
- Then turn solid blue (idle) once it's connected to Home Assistant
Try the wake word. Say:
"Talkie Toaster, can you hear me?"
The status LED should turn cyan (listening). You should hear Talkie reply through the speaker. Probably something like:
"Howdy doodly do! I can hear you loud and clear, but you know what I hear even better? The lovely sound of toast popping up. Would you like some toast?"
If Talkie talks back: congratulations, the whole pipeline works.
Don't continue to the next step until the wake-word test works. Everything from here on assumes Talkie is talking back to you on the bench.
PAINT AND PREP THE SHELL
Now we prepare the shell. Drill your holes before you paint. I got too excited and painted first, then had to go over spots again after drilling. Learn from my mistakes.
Drilling
What you need to drill:
- 6 holes (5mm) for the LEDs — front of the shell, arranged in the same 2×3 layout as your LED panel
- 1 hole (23-25mm) for the PIR sensor dome — front of the shell, somewhere it has a clear forward view
Paint
- Use spray paint (outdoors) to make it look nice!
Leave the painted shell to fully cure for at least 24 hours before handling. While it dries, you can sit down and admire your wired-up bench setup talking to itself.
You're now ready for final assembly.
ASSEMBLE INSIDE THE SHELL
Time to put the brains in the body. Take your time — this is the bit where a slip can scratch your paint job, or mean you have to take everything apart again because a wire came loose.
Power it up
Replace your mains plug with a USB-C cable to power your electronics. This way there's little chance of getting electrocuted.
If everything works: you have a Talkie Toaster. Put him in the kitchen and wait for him to embarrass you in front of guests.
Complete
If you want to see my Talkie Toaster in action, you can watch my video here: https://youtu.be/SD6M0B4ApvA
If you build one, I'd love to see it. Tag me on YouTube as RelfWolf or drop a comment on the build video.
"Howdy doodly do! Would you like some toast?"