---
pageType: source
id: source.tricorder
title: tricorder
sourceType: local-file
sourcePath: /home/topher/.openclaw/workspace-crash-bot/projects/tricorder.md
ingestedAt: 2026-05-02T21:20:55.785Z
updatedAt: 2026-05-02T21:20:55.785Z
status: active
growth: sprout
---

# tricorder

## Source
- Type: `local-file`
- Path: `/home/topher/.openclaw/workspace-crash-bot/projects/tricorder.md`
- Bytes: 7261
- Updated: 2026-05-02T21:20:55.785Z

## Content
````text
# Tricorder

**Status:** Design Phase
**Created:** 2026-03-06
**Updated:** 2026-04-15
**Tags:** `esp32-s3`, `m10`, `k10`, `unihiker`, `voice`, `pico-claw`, `sensors`, `flip-design`

## Summary

Star Trek tricorder-style **handheld AI assistant** — voice-first, sensor-packed, two-screen flip form factor. Pick it up, talk to it, get answers. Environmental scanner mode. Camera for visual recognition. This is the main AI companion device, separate from ComBadge which is wearable-focused.

**Goal:** Everything the ComBadge does + sensors + camera + bigger screen + more compute. The "real" tricorder.

---

## Hardware: DFRobot UNIHIKER M10 + K10 Bundle

### M10 (Brain / Bottom Module)

| Spec | Detail |
|------|--------|
| **CPU** | Quad-core ARM Cortex-A35, up to 1.2GHz |
| **RAM** | 512MB |
| **Storage** | 16GB Flash |
| **OS** | Debian Linux (full Python support) |
| **Display** | 2.8" touchscreen (240×320) |
| **Wireless** | Wi-Fi 2.4GHz, Bluetooth 4.0 |
| **Ports** | USB-C, USB-A, Gravity 3pin/4pin, Edge connector |
| **Power** | 5V 2A via USB-C |
| **Auxiliary MCU** | GD32VF103 (RISC-V) |
| **Price** | ~$60 |
| **Product** | [dfrobot.com](https://www.dfrobot.com/product-2691.html) |

### K10 (Sensor / Voice Module — Top)

| Spec | Detail |
|------|--------|
| **SoC** | ESP32-S3 N16R8, dual-core 240MHz |
| **Memory** | 16MB Flash + 8MB PSRAM |
| **Display** | 2.8" touchscreen LCD (240×320, ILI9341) |
| **Camera** | 2MP (80° FOV, GC2145) |
| **Audio** | 2x MEMS microphones, 2W speaker |
| **Sensors** | AHT20 (temp/humidity), LTR303ALS (light), SC7A20H (accelerometer) |
| **Wireless** | Wi-Fi 2.4GHz, Bluetooth 5 + BLE |
| **AI (onboard)** | Face detection, pet recognition, QR scanning, motion sensing, offline speech recognition, TinyML |
| **Power** | 3-6V input (single LiPo) |
| **Price** | ~$29 |
| **Product** | [dfrobot.com](https://www.dfrobot.com/product-2904.html) |
| **Wiki** | [unihiker.com/wiki/K10](https://unihiker.com/wiki/K10) |

**Bundle:** ~$90 [dfrobot.com/product-2916.html](https://www.dfrobot.com/product-2916.html)

---

## Architecture

```
┌─────────────────────────────────────────────────┐
│  K10 (ESP32-S3)          M10 (Debian Linux)     │
│  ━━━━━━━━━━              ━━━━━━━━━━━━━━━━        │
│  Wake word (offline)     Whisper STT             │
│  Mic + Speaker           Ollama LLM              │
│  Camera                  Piper/Coqui TTS         │
│  Sensor hub              PicoClaw/OpenClaw       │
│  Display (status)        Display (main UI)      │
└─────────────────────────────────────────────────┘
         ↕ Wi-Fi or wired (TBD)
      Audio + commands
```

**Data Flow (Voice Mode):**
1. **Wake word** → K10 detects locally (instant, offline)
2. **User speaks** → K10 streams audio to M10 over Wi-Fi
3. **M10 processes** → Whisper STT → Ollama LLM → TTS
4. **Response** → M10 sends text/audio back to K10 → display + speaker

**Why this works:**
- Wake word is instant (no round-trip latency)
- Audio streaming over Wi-Fi is fast (both on same network)
- LLM latency (1-3s) is the bottleneck, not audio transport
- K10 handles real-time I/O; M10 handles heavy compute

---

## Voice Pipeline (shares with ComBadge)

| Component | Implementation | Notes |
|-----------|---------------|-------|
| **Wake Word** | K10 offline engine | Instant activation |
| **STT** | Whisper (on M10) | Local, no cloud |
| **LLM** | Ollama (on M10 or external) | Local preferred |
| **TTS** | Piper or Coqui (on M10) | Fast, offline |

---

## Interconnect Options (K10 ↔ M10)

| Method | Pros | Cons | Status |
|--------|------|------|--------|
| **Wi-Fi (TCP/MQTT)** | No wiring, flexible | Latency, both need Wi-Fi | ✅ Works |
| **GPIO/UART** | Low latency, direct | Need pinout verification | ❓ TBD |
| **I2C** | Simple wiring | Limited bandwidth for audio | ❓ TBD |

**Decision:** Start with Wi-Fi, investigate wired if latency is an issue.

---

## Power Design

- **Single LiPo battery** (3.7V) → K10 supports 3-6V input
- **M10 needs 5V USB-C** or regulated input
- **Power sharing** between modules needs custom design (boost converter?)

**Open:** [ ] Power distribution architecture between K10 and M10

---

## Expandable Sensors (via K10 I2C/GPIO)

| Sensor | Interface | Use Case |
|--------|-----------|----------|
| BME688 | I2C | Air quality (VOC, gas) |
| GPS module | UART | Location tracking |
| UV sensor | I2C | Sun exposure |
| Barometric pressure | I2C | Altitude/weather |
| CO2 sensor | I2C | Indoor air quality |
| External mic array | I2S | Better voice capture |
| LiDAR | UART | Distance measurement |

---

## Deployable Vision Module — Elecrow AI Camera
**Added:** 2026-04-16

**Candidate:** [Elecrow AI Camera (ESP32-S3 Vision)](https://www.elecrow.com/ai-camera-development-board-vision-sensor-board-powered-by-esp32.html)

**Why it fits as a deployable:**
- Self-contained acrylic shell (no exposed PCB)
- 56 × 45 × 18.6 mm, 32g — shallow/wide form factor (complementary to K10's narrow/deep)
- Same 2MP GC2145 camera as K10
- White fill light for dark environments
- UART (4-pin 2mm) → connects to M10, Arduino, Pi, LattePanda
- Pre-loaded face/image recognition algorithms
- ESP-IDF / Arduino / MicroPython support
- Acrylic shell means it can take bumps when mounted externally

**Size comparison:**
| Device | Dimensions | Screen |
|--------|-----------|--------|
| Elecrow AI Camera | 56 × 45 × 18.6 mm | 1.83" |
| K10 (sensor module) | 51.6 × 83 × 11 mm | 2.8" |

Elecrow is wider but shallower — mounts well on the Tricorder's back or side panel, camera facing outward.

**Interconnect:** UART (4-pin 2mm pitch — non-standard, may need adapter cable)

**Not suitable for:** ComBadge (too thick/wide), direct K10 replacement (thicker despite smaller screen)

**DEVICES.md ref:** `Elecrow AI Camera Development Board (ESP32-S3 Vision)`

---

## Open Questions

- [ ] Interconnect method finalized (Wi-Fi vs. wired)
- [ ] Power management (single battery + distribution)
- [ ] Enclosure design (flip style? side-by-side?)
- [ ] PicoClaw installation on M10
- [ ] K10 ↔ M10 communication protocol
- [ ] Wake word model selection and tuning
- [ ] Battery life under continuous use

---

## Progress

- [x] Hardware bundle selected (M10 + K10)
- [x] Voice pipeline architecture documented
- [x] Wake word approach (K10 offline engine)
- [x] Interconnect options listed (Wi-Fi → start)
- [ ] Order hardware
- [ ] Test K10 wake word + audio streaming
- [ ] Install PicoClaw on M10
- [ ] Define K10 ↔ M10 protocol
- [ ] Design power distribution
- [ ] Enclosure design

---

## Related Projects

- [[com-badge.md]] — shares voice pipeline, ESP32-S3 base
- [[ai-desktop-companion.md]] — StackChan shares ESP32-S3 vision/voice stack; Elecrow AI Camera candidate as Tricorder deployable sensor
- [[DEVICES.md]] — UNIHIKER M10 + K10 full specs, Elecrow AI Camera entry
- [[HARDWARE-WISHLIST.md]] — Tricorder section for future reference
````

## Notes
<!-- openclaw:human:start -->
<!-- openclaw:human:end -->

## Related
<!-- openclaw:wiki:related:start -->
### Referenced By

- [2026-04-18-project-system](sources/2026-04-18-project-system.md)
- [ai-desktop-companion](sources/ai-desktop-companion.md)
- [ai-rig-upgrade](sources/ai-rig-upgrade.md)
- [com-badge](sources/com-badge.md)
- [ComBadge-Project](sources/combadge-project.md)
- [README](sources/readme.md)
<!-- openclaw:wiki:related:end -->
