Skip to main content
Deploy a retail kiosk for a demo store like The Brew Corner: shoppers ask about products and policies by text or voice; answers stream to the screen and play on the Arduino UNO Q speaker. Staff manage the catalog and prompts from an Admin screen; customers use a separate Customer screen (both in one web app for this demo).

Clone the repo

Overview and architecture: repo README. Full setup, configuration, and troubleshooting: QUICKSTART.md.

What you need

Hardware (mic, speaker, wiring): Retail Kiosk with Moorcheh (Figma)
Install and run Moorcheh Edge on the UNO Q first. See Arduino UNO Q for venv, Docker, and moorcheh-edge up.

Architecture

Quick start (summary)

1. Arduino UNO Q

Find the board IP in Arduino App LabSettingsNetwork Connections. Connect via SSH:
Install once (venv + CLI), then each session:
After the first successful up, run voice setup once. For the full kiosk experience (welcome + thinking audio), also run the kiosk audio cache commands. In a second terminal:

Kiosk audio cache

These commands are only for the retail kiosk demo - they pre-generate WAV files used when the Customer UI streams with speak: true. Run once per board after voice setup:
voice setup tries to create both files automatically; re-run the cache commands if a file is missing or you change voice assets. Disable at runtime with holding_enabled: false or thinking_enabled: false on POST /ask/stream, or set MOORCHEH_THINKING_SOUND=0 on the device.

2. Load demo catalog (before Customer)

Copy the demo catalog to the UNO Q and upload vectors to Moorcheh Edge:
On the UNO Q:
If embedding_model and dimension were null in moorcheh-edge status, they are set after this upload.

3. Display PC

Run the API and UI (set <UNO_Q_IP> from the board):
Second terminal:

Configuration

Catalog and sync

The UNO Q Moorcheh Edge store is the source of truth for vectors. The PC keeps a SQLite mirror for the Admin UI. After the initial demo upload (step 2), open AdminSync from UNO Q to populate the local catalog, or save documents from Admin (each save updates both edge and SQLite).

POST /admin/sync-from-edge

retail-kiosk-api on the PC (port 8765). No request body.
Requires MOORCHEH_EDGE_URL and MOORCHEH_VOICE_PROXY_URL on the PC API.

Next steps

Quick start

Install, configure, catalog upload, and troubleshooting

Overview

Architecture and Admin/Customer features

Arduino UNO Q

Board setup and Moorcheh Edge

Voice CLI

voice setup, voice serve, and related commands

Export store

GET /export — chunk text for catalog sync

Voice server API

HTTP endpoints on port 8766

Hardware wiring

Figma guide for mic and speaker