TinyEye
A tiny AI "eye" on a Seeed XIAO ESP32-S3 Sense. Press the button to take a photo and have the assistant describe what it sees — and bridge everything over your own MQTT broker. Meet จ่อย / Joy, the assistant behind the lens.
What it does
TinyEye is a headless, thumb-sized AI vision device. There's no screen and no speaker — just a camera, a microphone, and one button. Click it and TinyEye snaps a photo, sends it to an AI assistant, and gets back a spoken/text description of what's in front of it. It's designed to plug straight into your own automations over MQTT.
Button controls
- Single-click — take a photo and ask the assistant to describe it
- Double-click — enter voice-chat mode
- Long-press — toggle the microphone mute
The onboard LED shows status; the single BOOT button does everything via multi-tap.
MQTT bridge
Everything is wired to your MQTT broker so TinyEye is easy to script, log or chain into other devices. Each unit uses topics under its own device id:
tinyeye/<device-id>/ask— in: request a photo + descriptiontinyeye/<device-id>/vision— out: the assistant's description of the scenetinyeye/<device-id>/mic— control the microphone
Works with the public broker.emqx.io broker out of the box, or point it at your own.
Hardware
- Board: Seeed Studio XIAO ESP32-S3 Sense
- Camera: built-in OV2640
- Audio: PDM microphone (no speaker — headless)
- Input: single BOOT button (multi-tap) · Output: status LED
- No display / no speaker — a deliberately minimal, pocketable build
Software
Built on ESP-IDF 5.4+, TinyEye is a fork of the open-source XiaoZhi ESP32 firmware (MIT). It speaks both WebSocket and MQTT+UDP, streams audio with the Opus codec, and supports device-side MCP for hardware control, plus multi-language operation (Chinese, English, Japanese). Prebuilt firmware is available in the repo's Releases, and it integrates with the xiaozhi.me cloud platform.
Source: github.com/raspberrypi66/TinyEye · based on 78/xiaozhi-esp32 (MIT).