Character Desk Devices
Nobody wants an ESP32 — they might pay for a tiny character that remembers their name and talks back
← Cyborg wave hub · Shopping list · Principles · E‑paper path · M5 path
Status: product thesis + build notes — not a shipped character yet.
Source post: Piefena — ~$25 electronics → talking avocado that could sell for $99
What this path is
The same cheap AI I/O stack (board + mic + speaker + tiny screen), framed as a character people understand, gift, and put on a desk — not a maker kit.
- Device listens → sends audio/text to a cloud model → answers on speaker
- OLED (or similar) face switches between states: Listening / Thinking / Speaking / Idle
- Intelligence mostly off-device → product gets smarter when models improve, without new hardware
- Commercially: character + memory of name > “voice assistant BOM”
What this path is not
- Not “run a full LLM on the ESP32” (replies clarify: Wi‑Fi + API is the norm)
- Not the best first engineering spike if you only need silent dumps (use e‑paper console)
- Not anonymous “AI speaker” branding if you care about named agents
The commercial insight (steal this)
| Frame | What buyers hear |
|---|---|
| Maker frame | “ESP32, OLED, mic module, mini speaker, API key” |
| Product frame | “Desk avocado that knows my name and talks back” |
Rough math from the post: ~$25 electronics + 3D shell → sell ~$99 → 100 units ≈ $9,900 revenue (before CAC, returns, cloud cost — treat as order-of-magnitude motivation, not a business plan).
For this site: name the character after the agent —
arthur.agent desk buddy, Janice ops orb, Stage persona — not “ESP32 v1.”
Parts list (typical BOM class)
Full Cart B with search names: /cyborg-shopping#character. Thread consensus: 0.96" OLED + mic + ESP32 + mini speaker is enough for the demo class.
| Priority | Item | Search / class | ~Price |
|---|---|---|---|
| P0 | MCU | ESP32-S3 DevKit | ~$5–15 |
| P0 | Face | 0.96" OLED SSD1306 I2C | ~$3–8 |
| P0 | Mic | INMP441 I2S (or MAX9814) | ~$3–8 |
| P0 | Speaker | MAX98357A + mini 8Ω speaker | ~$3–10 |
| P1 | Wiring | Breadboard + Dupont jumpers | ~$5 |
| P1 | Shell | 3D print / enclosure (after loop works) | $0–20 |
M5 modular kits can shortcut wiring — see M5 path or Cart C.
Face state machine (minimum)
| State | Display | Audio |
|---|---|---|
| Idle | Simple face / agent name | Off |
| Listening | “Listening” / ear icon | Mic on |
| Thinking | Spinner / dots | Off (waiting on API) |
| Speaking | “Speaking” / mouth | TTS or short WAV |
| Error | X / retry | Optional chime |
Don’t overdraw the face. State clarity > cute animations that block the loop.
Architecture (same as hub, product emphasis)
- Wake / button → Listening
- Upload audio (or stream) to
/voice-in - Cloud model + your agent prompt (name memory, vault context)
- Return text → TTS → Speaking
- Log turn to HEOS so “remembers my name” is real, not session vapor
Cloud brain is a feature: when models improve, the avocado improves without a reship. Cost and latency stay product problems you design for (timeouts, offline apology line).
Tutorial ladder
- OLED hello + agent name string
- Button toggles Idle ↔ Listening text
- Mic sample → serial hex or file (prove capture)
- POST audio to a laptop stub; print transcript
- Stub returns fixed reply string → play via speaker (even a canned WAV)
- Wire real model + short system prompt (“you are arthur.agent…”)
- Persist name + last 3 turns server-side
- Only then: shell, eyes, personality lines, gift packaging story
Map to this site’s stack
| Character idea | Agent / product | Notes |
|---|---|---|
| Desk build buddy | arthur.agent | Code dumps, “run the loop” |
| Ops orb | janice.agent | What’s next, calendar tone |
| Event co-host object | Stage Agent / Lisa-class | Public presence, not personal wearable |
Identity stays on .agent names and HEOS roster — shell is marketing and affordance. See also CBS avatar research for event-facing embodiment.
Design rules
- Character first, BOM second in every description you write
- Memory is a product feature — store name + context in your backend
- Cloud OK — disclose Wi‑Fi + API needs; don’t fake “fully local” if it isn’t
- Blast radius — chatty desk toy must not auto-send email or spend money
- One personality per device — multi-agent chaos on one speaker is a v2 problem
First ship definition
Done when:
- Someone who isn’t you understands what it “is” in one sentence (character, not kit)
- Listen → reply works end-to-end with face states
- It says their name after a first setup turn (server memory)
Comments
Approved comments appear below. Log in once with GFAVIP — it applies across the whole site. GFAVIP login
View comments archive