Skip to main content

Voice-Controlled Warehouse Management on Edge Hardware: Build, Deploy, and Measured Results

Usage notice

This is an operator aid, not a certified inventory ledger. The REST API has no offline queue: requests sent during a network or service outage fail and are not replayed after recovery.

What this solution does​

An operator at the receiving dock says "stock in 10 boxes of apples". The SenseCAP Watcher on the rack hears it, and a stock-in record is written to the warehouse database on a reComputer gateway in the same building. Ask "how many apples are left" and the answer is spoken back. No typing, no menus, hands stay on the goods.

Built for sites where transactions happen far from a keyboard: receiving docks, rack aisles, forklift cabs, and small warehouses that never adopted a WMS because training cost more than it saved.

Speech and the database are connected through MCP (Model Context Protocol). The warehouse system publishes each inventory operation as an MCP tool, and the voice agent on the Watcher connects to that endpoint as an MCP client. Adding a voice action means adding a tool, with no speech-model retraining; integrating an existing ERP/WMS means mapping its data interface onto the same set of tools.

An operator books a warehouse transaction by speaking to a SenseCAP Watcher mounted at the rack
  • Watcher works once mounted

    The SenseCAP Watcher carries the voice agent and face recognition firmware. Flash it, mount it at the station, and operators can book stock by voice with their identity checked.

  • Data stays on site

    The warehouse database runs on a reComputer gateway on site. Tier 3 also keeps recognition, the LLM and synthesis on the premises and calls no external service after deployment.

  • Open source, connects to your ERP/WMS

    The warehouse system is open source. Connecting an existing system means mapping its data interface onto the same MCP tools, on the order of a few dozen lines of mapping code.

  • New commands without retraining

    Adding a voice action means registering one MCP tool. The Watcher firmware stays unchanged.

What the dashboard shows​

After an utterance, the result appears on the gateway dashboard. The inventory page lists the current quantity and latest movement for each item:

Warehouse dashboard: current stock per item, last movement and status

The transaction page lists each stock-in and stock-out with batch number, operator and source (voice or REST):

Transaction history: batch number, quantity, operator and source per record

The operator roster is maintained on the users page, and face verification checks against it:

Users page: the operator roster and permissions that face verification checks against

What hardware you need​

Three device roles. Which ones you buy depends on where the data and the voice AI are allowed to run.

① Voice terminal: SenseCAP Watcher. Required in every tier, one per work station. It has two processors: the ESP32 runs the Xiaozhi voice agent (wake word, recording, streaming, MCP client), and the Himax WE2 runs face recognition firmware for operator verification.

② Edge gateway. Runs the warehouse system, and in self-hosted tiers also the MCP endpoint. It determines whether face recognition can move to the gateway and how many stations one host can serve.

③ On-premise AI host. Needed only when recognition, the LLM and synthesis must all stay on the premises.

ModelRole in this designWhen to pick it
SenseCAP WatcherSenseCAP WatcherVoice terminal, MCP client, on-device face recognitionAlways, one per station
reComputer R1125-10reComputer R1125-10Edge gateway running the warehouse systemInventory data stays on site, up to 20 operators, face recognition on the Watcher
reComputer Industrial R2135-12reComputer Industrial R2135-12Edge gateway with a Hailo-8 acceleratorMore than 20 operators, or liveness detection is required
reComputer J4012reComputer J4012One box running the warehouse system, face recognition and a self-hosted speech service2–3 stations share one host
reComputer Robotics J5011reComputer Robotics J5011On-premise LLM and speech, no external service callsThe facility must stay offline

The Watcher stores at most 20 face templates on the device. Beyond 20 operators, recognition has to move to the gateway: up to 20, pick the R1125; above 20, pick the R2135 with Hailo-8.

Other prerequisites: the Watcher connects to 2.4 GHz Wi-Fi only (a 5 GHz-only SSID does not appear in the provisioning scan), and the gateway must be on the same LAN. Tier 3 deployment pre-checks the NVIDIA container runtime and about 10 GB of free disk (speech models plus LLM engine files).

Negative Selection Boundaries​

  • Fully Offline LLM Needs: If operating in a classified or air-gapped warehouse requiring offline LLM interaction, avoid cloud-dependent tiers; select Tier 3 with reComputer J4012 (Orin NX 16GB).
  • Network Outage Queue: The warehouse REST API currently lacks a server-side offline queue; clients must buffer transactions locally if operating over intermittent wireless.

How to deploy on site​

Three steps: mount and flash the Watcher, start the containers on the gateway, connect the voice path.

Step 1: mount the Watcher​

Mount it at the work station

Mount the Watcher at the receiving dock, rack aisle or forklift cab, where operators actually book stock in and out. Mounted in the office, it forces operators to remember quantities and walk over to enter them.

Flashing goes over USB-C; the device enumerates as a WCH USB-UART bridge (0x1a86:0x55d2). Two firmware images, one per processor: the Xiaozhi voice agent goes on the ESP32, the face recognition firmware on the Himax WE2.

Step 2: bring up the gateway​

The warehouse system is one Docker service. Deployment steps differ by tier; pick a configuration on the reference design page and download the matching application package.


Deployment can run over SSH to the gateway or directly on the gateway. Existing inventory can be imported at first start with the supplied Excel template.

After deployment the dashboard is at http://GATEWAY_IP:2125, and the container health check is GET /health on the same port.

Step 3: connect the voice path​

Trial, Tier 1 and Tier 2A use a SenseCraft-issued MCP endpoint URL. Tiers 2B and 3 self-host the MCP endpoint on port 18004 and the speech server on 18000 (admin console on 18003). Tier 3 adds EdgeLLM on 8000 and OpenVoiceStream on 8621, and calls no external service after deployment.

Available interfaces​

Two integration surfaces:

MCP endpoint (port 18004): for the voice side. Everything the agent can do is a tool on this endpoint. Extending the command set means registering another tool; the Watcher firmware stays unchanged. Integrating an existing ERP/WMS means implementing your system's data interface against the same tools, on the order of a few dozen lines of mapping code. Variations in phrasing are fuzzy-matched to the closest registered command instead of being rejected.

REST API (port 2125): for other systems. Inventory list, transaction history and agent status are available over HTTP.

InterfaceEndpoint / portPayload
Dashboard + REST APIhttp://GATEWAY_IP:2125Inventory list, transaction history, agent connection status
Health checkhttp://GATEWAY_IP:2125/health200 once the warehouse service is ready
MCP endpoint18004Inventory operations published as MCP tools
Inventory databaseSQLite at /data/warehouse.db in the warehouse_data volumeMount or dump for an external BI/ERP job
Speech serverWebSocket 18000, admin console 18003Watcher audio stream (Tiers 2B and 3)
On-premise AI8000 EdgeLLM (OpenAI-compatible), 8621 OpenVoiceStreamChat completions; recognition, synthesis and voiceprint (Tier 3)

Access is scoped by API key role and by tenant. A VIEW key on a write endpoint returns 403; cross-tenant reads and writes both return 403. Both were measured; see "Performance and measured data".

Performance and measured data​


Runtimes and key parameters​

DeploymentLLMTTS / ASRNetwork
SenseCraft cloudHosted by SeeedHosted by SeeedInternet required
Your own APIAny OpenAI-compatible endpoint (e.g. DeepSeek)OpenAI · Azure Speech · Volcano Engine · Alibaba Cloud · Edge TTSInternet required
Local JetsonEdgeLLM: Qwen3.5-4B, profile qwen35-4b-gdn-mtp, 8k engineOpenVoiceStream (recognition + synthesis + voiceprint)LAN only

The local images are built for JetPack 6.2 / TensorRT 10.3.

  • BUSINESS_RATE_LIMIT: rate limit for stock-out and other business endpoints, default 600 requests/minute, counted per authenticated identity (API key / session) and per source IP only when no identity is available. The anti-enumeration limits on registration, password recovery and device verification count by IP.
  • Batch number batch_no: format YYYYMMDD-NNN, allocated atomically, so concurrent stock-in writes are serialized.

Warehouse REST API measurements​

Device: reComputer R2000 series (arm64) running the warehouse container. Conditions: 60 s per level, 1 warehouse, 50 seeded materials, SQLite backend; requests travel over a Tailscale WAN link.

OperationLevelResult
GET /api/materials/listconcurrency 10p95 404 ms, p99 2.7 s, 0% errors
GET /api/materials/listconcurrency 20p95 824 ms, p99 5.3 s, 0% errors
GET /api/materials/listconcurrency 50p95 5.5 s, p99 8.7 s, 0% errors
POST /api/materials/stock-inconcurrency 5 / 10 / 200% errors at all three levels; 1481 batches created, 0 duplicate batch numbers; p95 634 ms – 4.96 s
POST /api/materials/stock-outconcurrency 10 / 20 / 50, two API keys sharing one egress IP0 HTTP 429 within the default 600 requests/minute; about 5–6 requests/s per identity
Service outageabout 10 req/s query traffic, 34 s outage from a container restart100% of requests fail during the outage, with no queueing or replay; full recovery within about 1 s, no backlog, no dirty data
Role and tenant isolation4 single-shot probes4/4 as expected: VIEW key write 403, read 200; cross-tenant write 403, read 403

Reproduce: runs/2026-09-05-load/, evaluation/runs/2026-09-06-a2-retest/results.md

Local LLM throughput​

DeviceModelThroughputConditions
reComputer Robotics J5011EdgeLLM Qwen3.5-4Babout 16 tokens/sUpstream figure, no run log attached

Known degradation​

  • Inventory query latency degrades from concurrency 20. p95 rises from 404 ms at concurrency 10 to 824 ms at 20 and 5.5 s at 50, which is too slow for interactive use.
  • The REST API has no offline queue. Requests sent during a network or service outage fail and are not replayed; reconnect and backoff cover only the MCP voice WebSocket channel. Mitigations: keep the gateway network available (wired first, UPS power, service and clients on the same LAN) so the unavailable window shrinks to device restart time; or add a client-side write queue that replays in order after reconnecting and deduplicates by batch number (the client-side queue is not implemented).

Next steps​

  • Run the warehouse REST load tests on the reComputer R1125-10 gateway.

Data and asset sources​

  • Load-test figures, test conditions and known limits: upstream sensecraft-solutions@smart_warehouse description.md, "Measured Boundaries" and "Known Limitations".
  • Local LLM throughput (about 16 tokens/s, reComputer Robotics J5011): the "Preset: Tier 3 · Premium" section of upstream guide.md.
  • Device roles, tier composition and accelerator requirements: intro.device_catalog and intro.presets in upstream solution.yaml.
  • Warehouse system source: github.com/suharvest/warehouse_system.
  • Product images: Seeed Studio product catalog (media-cdn.seeedstudio.com).
  • Scene images: Seeed Studio solution assets (files.seeedstudio.com).
Loading Comments...