A USED GOOGLE SPEAKER BECOMES YOUR PRIVATE AI ASSISTANT WITH ONE SWAPPED BOARD
A replacement PCB turns a second-hand Google speaker into a hackable AI assistant that talks to your own server — with Home Assistant control built in.
by Justin Alvey
AIHome
- difficulty
- ●●●○○
- time
- a weekend
- license
- MIT
- repo
- repo DEPRECATED1,724 stars
●●●○○ · a weekend · MIT · 1,724 stars · repo DEPRECATED
WHAT YOU’LL NEED
Jump to section
COMPAREE VERDICT
This is for someone who wants to hack on a voice assistant rather than buy one. The PCB drops into a second-hand Nest Mini in place of Google's original board: you keep the shell and the speaker, and the new board brings its own ESP32-S3, microphones, LEDs and amplifier, streaming audio to a Python server on your network. That server transcribes locally with Whisper, then uses OpenAI for responses and function calls and ElevenLabs for the voice — so it is not cloud-free out of the box. The examples control lights through Home Assistant, read and reply to messages, and take notes. You can order the board fully assembled from PCBWay, then disassemble the Nest Mini and move the cables across. There is no step-by-step disassembly guide, so you will spend time figuring out where the clips are and which ribbon cable goes where. If you have never opened a Nest Mini before, budget an extra hour for the first one. The creator is upfront that this is a dev board with neat examples, not a finished replacement, and the repo is now deprecated in favour of onju-v2. For someone who builds their own hardware and is happy running a server, this is a clean way to reclaim a speaker. For everyone else, it is a weekend project that will test your troubleshooting skills before it works.
IN THE REPO
GOOD TO KNOW
- —PCB design files (Altium) and a schematic PDF are in the repo; there are no printable parts.
- —Firmware and server code are provided, but you supply your own OpenAI and ElevenLabs keys and run the Python server yourself — setup is not one-click.
- —No assembly guide beyond the README; you disassemble the Nest Mini, swap the board, reconnect the speaker and microphone cables, then flash firmware over USB-C.
- —The board can be ordered fully assembled from PCBWay (link in the README); you still disassemble the Nest Mini and swap the board yourself.
- —MIT licence permits commercial use.
- —The original Google board is discarded; this is not reversible without buying another used unit.
Parts to buy
5 itemsFrom our check of the build. Exact quantities and part numbers are in the creator’s BOM.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Videos
Turn Your Nest Mini into a Local Home Assistant Speaker!
A short community overview by Mark Watt Tech showing the Onju board inside a Nest Mini; there is no official step-by-step walkthrough from the creator.
More builds like this
All projectsGallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Read the README and preview the schematic and PCB (Altium files, viewable online) before ordering (If surface-mount soldering is new to you, practice on a cheap breakout board first—desoldering a misaligned ESP32 module inside a Nest Mini shell is miserable)
- 2.Order the PCB (link to PCBWay project is in the README) or send the Gerbers to your own fab(Minimum order is usually five boards; if you only want one, ask in the repo Discussions if anyone is running a group buy)
- 3.Source a used Google Nest Mini—eBay, Facebook Marketplace, or a thrift store; confirm it powers on before you take it apart(Only the Nest Mini (2nd gen, 2019) fits — the first-generation Google Home Mini will not take this board)
- 4.Flash the firmware via USB with the Arduino IDE, then disassemble the Nest Mini and move its cables and parts onto the new board(The repo has a disassembly photo but no step-by-step teardown guide — search for a 'Nest Mini teardown' video if you need to see where the clips are)
- 5.Install the Python server (Whisper, OpenAI key, ElevenLabs voice), add a Home Assistant long-lived token if you want light control, run it with the --ha flag, and test by asking it to switch a light(The function calling examples in the README assume you already have entities (lights, switches, sensors) configured in Home Assistant; if you do not, set those up first)
Resources
Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.
KNOWN ISSUES
- Ordering a bare PCB and parts when you have never hand-assembled a fine-pitch ESP32-S3 board — order the turnkey assembled board from PCBWay that the creator links instead, and keep your soldering iron for the cables.
- Ordering bare PCBs to save money — the creator recommends PCBWay's turnkey assembled boards; hand-placing the ESP32-S3 and fine-pitch parts yourself is where most first builds go wrong.
- Breaking the ribbon cable connectors when disassembling the Nest Mini—they are fragile, and if you pull too hard or do not flip the locking tab first, you will rip the cable or snap the plastic housing.
- Expecting a plug-and-play firmware image — you flash the Arduino sketch with your Wi-Fi credentials, then set up the Python server with Whisper, an OpenAI key, an ElevenLabs voice and (optionally) a Home Assistant token. Budget an evening for the server side alone.
- Not testing the speaker and microphone before you reassemble the shell—if a ribbon cable is not fully seated, the microphone will not pick up your voice or the speaker will sound distorted, and you will have to open it again.
- Underestimating the running cost — every voice query goes to the OpenAI API for the reply and to ElevenLabs for the voice, both billed per use, and the creator found that models weaker than GPT-4 do not follow the function-calling prompts reliably, so you may end up on the pricier model. The README gives no cost figure; set billing alerts on both accounts before you start testing.
Can I use this without Home Assistant?
Yes. Home Assistant is just one optional integration — the Python server also does note-taking and message replies via Maubot, and you switch each on with a command-line flag. The device itself runs Arduino firmware that streams audio to that server.
Does this work offline, or do I still need the cloud?
Partly. Transcription runs locally with Whisper on your server, but out of the box responses come from OpenAI and the voice from ElevenLabs, so you need internet. The creator notes you could swap in a local LLM if you have the hardware; a local text-to-speech replacement is left to you.
What is the audio quality like compared to the original Nest Mini?
The speaker is the original Nest Mini speaker, but the microphones, LEDs and amplifier (a MAX98357A) are new parts on the Onju board, so the sound is not guaranteed to match the original. The creator stresses it is not a 1:1 replacement and not intended as a music playback device. Fit new foam gaskets for the microphones and LEDs, as the README suggests, and test the speaker and microphones before you close the shell.
Can I add custom wake words?
There is no wake word — on purpose. You tap the device to start listening, and the server uses voice activity detection and timeouts to decide when you are done. Adding one would mean moving to Espressif's ESP-IDF audio SDKs, which the creator notes the Arduino build does not support.
How much does it cost to run after you build it?
The creator does not publish running costs. Every request uses the OpenAI API for the reply and ElevenLabs for the voice, both billed per use, so check their current pricing and set billing alerts. Home Assistant and the server software are free.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion3
FROM THE COMPAREE TEAM
The custom board drops into a Google Nest Mini (2nd gen) shell and talks to a server you run at home. What would you use yours for that a cloud assistant cannot do?
Lucas Daoud2mo ago
This looks amazing but the link to the pcbway project is saying 'Sorry, the project does not exist.' ?
CompareeTEAM2mo ago
Good spot — thanks for the heads up. That PCBWay link was pointing at a project that does not exist any more, so we have pulled it. The board files are all in the repo though: github.com/justLV/onju-voice — you can send those straight to any PCB house or export your own Gerbers from there. Sorry for the runaround, and let us know how it goes if you build one!
Justin Alvey
Justin Alvey designed Onju Voice as a hackable AI home assistant platform in the Google Nest Mini (2nd gen) form factor: a custom ESP32-S3 board that drops into the Nest Mini shell in place of Google's board, with its own microphones, LEDs and amplifier driving the original speaker, plus a server that handles transcription, responses and text-to-speech. He describes it as a dev board with neat examples rather than a finished replacement, and has since moved development to onju-v2.
DISCLAIMER
- Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
- Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
- Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.
CompareeTEAM2mo agoedited
Practical notes from our verification: the repository contains the firmware, the Python server and the hardware design files in Altium format (hardware/Onju-Home.PcbDoc and .SchDoc, plus a schematic PDF) — there are no KiCad files and no separate BOM file. The README links a PCBWay project page where you can order the board fully assembled, so you do not have to hand-solder the ESP32-S3 yourself. Two things to know before you start: this repo is marked deprecated, with development moved to onju-v2, and the author says it is not actively maintained. The README also notes that detailed replacement instructions for swapping the board into the Nest Mini were still to come, so the teardown is the part you figure out yourself. On the software side, transcription runs locally with Whisper, while responses and voice use OpenAI and ElevenLabs keys; Home Assistant light control is optional and is enabled with a server flag and a long-lived token. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.