Vibe CADing with Alexa

Alexa++ gives Ada a voice. Ada is a desktop app for designing circuit boards. You describe the board you want, and Ada produces a real KiCad project with a schematic, a placed and routed board, and a design review. For this hackathon, Ada learned to take that request by voice through Alexa+, and it remembers how you like your boards between conversations.

The interesting part is how an agent designs hardware without lying to you.

Why hardware breaks agents

Software agents work because code fails fast. A wrong line fails a test in seconds and the agent tries again. A wrong board fails three weeks later on your bench, after you paid for it, and nothing in the file tells you why. A language model is also confident about the exact things it gets wrong. It will connect a pin that does not exist and describe the result as finished.

So Ada never lets the model have the last word. The model proposes. Deterministic code checks. Only checked work reaches the board.

How Ada designs a board

  1. The model writes a circuit, not a file. It proposes a JSON netlist with every part, pin and connection. A validator checks the whole proposal and returns every problem in one batch, so one repair round can fix them all. Connections are pin to pin, so "this leg of this capacitor goes to that pin" can be said and checked.
  2. A solver places the parts. Placement is a constraint problem, so OR-Tools CP-SAT solves it. It minimises wire length and board area over integer nanometres. There are no floats anywhere in the pipeline, because a millimetre read as a mil destroys a board silently.
  3. A router lays the copper. An A* maze router works on a 0.25 mm grid with 45 degree corners, routes differential pairs as coupled traces, and pours ground on both layers. When it cannot finish a net, it names that net and leaves it unrouted. A router that reports 100% over a missing connection is worse than no router.
  4. KiCad judges the result. Ada runs KiCad's own electrical rules check, design rules check and schematic to board parity on the files it wrote. A separate checker confirms every power pin is wired or deliberately open. SPICE simulation answers whether the circuit actually does what you asked, with a pass or fail and a signed margin for each requirement.
  5. A critic reads the datasheets. The review cites the datasheet page behind each finding, and any finding that names a part the board does not contain is thrown out.

One bug taught us the rule behind all of this. A regulator with its ground pin connected to nothing passed KiCad's electrical check with zero violations. Our schematic writer had marked every unwired pin as intentionally unconnected, so KiCad never complained. Now the model has to declare each open pin by name, and an undeclared one fails the check. Most hardware agent bugs look like this. Nothing crashes. Every check passes. The board is still wrong.

What voice changed

A voice conversation cannot wait two minutes for a board. So we rebuilt Ada's agent interface for speech.

Ada now exposes six tools over the Model Context Protocol (spec 2025-11-25): start, answer, continue, status, explain and recall. Each one answers in milliseconds with a single sentence the engine wrote, while the design keeps running in the background. Ada asks at most one question per turn, and every question has a default, so "you choose" always works. Blockers come back one at a time in plain speech.

The model's job got smaller on purpose. Amazon Nova 2 Lite on Amazon Bedrock hears what you said and picks the tool and its arguments. The tool supplies the spoken sentence. Every fact Ada says about your board comes from the engine and never from the model.

Built for Build, Ship, Shape

  • Alexa+ voice tools. Ada's MCP server moved to spec 2025-11-25 over Streamable HTTP and was verified against two versions of the official python-sdk as independent clients. The Alexa+ add-on tools are closed to entrants, so the Alexa+ side runs as a simulated Alexa+ experience and says so on screen.
  • A Strands agent on Amazon Bedrock. One Strands agent per conversation runs on Nova 2 Lite with Strands' MCP client. A hook ends each turn on Ada's own sentence, so a whole design conversation costs one model call per spoken turn.
  • Amazon Polly as Ada's voice. Polly speaks only sentences Ada already said, as plain text so a model can never inject markup. Each clip is cached and every session has a hard call cap.
  • Amazon Bedrock AgentCore Memory. Ada remembers your preferences, like USB-C power or 3.3 volt logic. Next time it asks "Same again?" instead of assuming. It stores only your words, keyed by a hash of your account and never your name.

Numbers from the live run

Nova chose the right tool with the right arguments on all seven tool turns, at 0.5 to 1.2 seconds per call. A full design conversation took 8 Bedrock calls and 10 Polly calls. AgentCore Memory wrote each turn in under 350 ms and returned both preferences about two minutes later. That delay is why preferences come back in the next conversation and not the current one.

What we learned

  • Voice needs its own tools. They have to answer fast, ask one question per turn and keep state you can come back to.
  • The smaller the model's job, the more you can trust what it says.
  • Test against the live service early. AgentCore phrased the two preferences in two different grammatical forms, and only the live run showed that Ada's spoken offer had become ungrammatical.

Try it

Everything runs on your machine with no AWS account and no key:

git clone https://github.com/machmoon/ada-hardware && cd ada-hardware
python3.11 -m venv .venv && ./.venv/bin/pip install -e ".[alexa]"
./.venv/bin/python -m alexabot.sim --scripted
# open http://127.0.0.1:8790 in Chrome and press "Start talking to Ada"

With AWS credentials for us-east-1, --agent bedrock --workers scripted uses Nova and Polly. AgentCore Memory setup is in docs/alexa.md.

What's next

Next we connect Ada to Alexa+ itself once the add-on tools open, so you can ask for a board from the kitchen. After that you will be able to book a design review by voice, so a person checks what the verifiers cannot.

Built With

  • amazon-bedrock
  • amazon-bedrock-agentcore
  • amazon-nova
  • amazon-polly
  • boto3
  • kicad
  • mcp
  • or-tools
  • python
  • sqlite
  • strands-agents
Share this project:

Updates

Submission history