Commit graph

33 commits

Author SHA1 Message Date
justLV
18e9f9d541
add link to battery base for m5 echo 2026-04-13 10:01:03 -07:00
justLV
55a4019a8a
add link to battery base for m5 echo
Updated M5 Echo support description with battery base link.
2026-04-13 10:00:33 -07:00
justLV
126ed40a20
add order link 2026-04-13 00:13:16 -07:00
justLV
a2106d032b
title 2026-04-12 19:29:50 -07:00
justLV
0bc3ae209f Pre-publish fixes: local TTS key, multicast crash guard, doc drift
- Rename TTS backend "qwen3" -> "local" across tts.py and README; the
  code is a generic /v1/audio/speech client, not qwen-specific, and
  config.yaml.example already used the local: key.
- Guard multicast_listener against non-UTF8 and empty packets so a
  single bad announcement packet can't cancel the pipeline via gather.
- Fix credentials.h.template comments to reference flash.sh (not the
  old flash_firmware.sh name).
- Drop stray test.wav arg from serial_monitor.py usage example in
  README; the script takes an optional serial port, not an audio file.
2026-04-12 19:09:58 -07:00
justLV
9ae918009b Move Streaming and stalls section below OpenClaw setup 2026-04-12 15:01:23 -07:00
justLV
f0f6e38e7c Move test scripts into tests/ and add stall/stream benchmarks
- git mv test_client, test_mic, test_speaker into tests/
- Add tests/test_stall.py (benchmarks the Gemini stall classifier against
  conversational/fetch/capture/act/follow-up queries)
- Add tests/test_stream.py (raw SSE chunk inspection against the agentic
  gateway)
- Update config path resolution in the new tests to climb one level
- Update README Testing section with new tests/ paths
2026-04-12 14:22:52 -07:00
justLV
dccb6ced15 Stream agentic LLM responses, add contextual stall classifier, rename backends
- SSE sentence-level streaming: consume agent deltas, split on sentence
  boundaries (handles no-space chunk joins), synthesize+send each sentence
  as it forms; intermediate sends keep mic_timeout=0
- Gemini-backed stall classifier for agentic mode only: narrow to
  retrieval-only, pass prev user/assistant for context awareness, avoid
  action promises the stall can't honor, sub-second latency via
  reasoning_effort=none
- Rename backends: local -> conversational, managed -> agentic
  (files, classes, config keys)
- PTT interrupt fix: set device.interrupted when button-press frames
  arrive mid-response and keep buffering so the next utterance captures
  cleanly instead of being dropped
- Startup summary log showing ASR, LLM, STALL, and TTS config at a glance
- run.sh launcher with Homebrew libopus path for macOS
- voice_prompt config for per-turn agentic reminders; inline continuity
  note injection so the agent knows what the stall just said aloud
- README section on streaming, stalls, and the first-turn OpenClaw caveat
2026-04-12 13:55:59 -07:00
justLV
2943b07596 minor 2026-04-08 13:47:53 -07:00
justLV
742d31bcd7 readme 2026-04-08 13:45:01 -07:00
justLV
09f218b80d Add OpenClaw setup script and documentation
Script enables gateway chat completions endpoint, appends voice mode
prompt to AGENTS.md (idempotent), and restarts the gateway.
2026-04-08 13:22:09 -07:00
justLV
36f4988867 readme 2026-04-08 13:08:12 -07:00
justLV
188aeae1c6 Remove voice agent section from README, fix diagram arrows 2026-04-08 13:06:54 -07:00
justLV
398f89dca7 Prepare repo for v2 release: rewrite README, clean up dev scripts, embed ASR server
- Rewrite README with v2 features (OpenClaw, M5 Echo, Opus, pluggable backends),
  fold ARCHITECTURE.md and PIPELINE.md content inline
- Remove dev-only test scripts (streaming TTS, UDP recv, qwen3 bench, etc.)
- Remove redundant m5_echo/flash.sh and terminal.py (root scripts handle both)
- Consolidate credentials to .template naming, remove .example
- Embed parakeet-mlx ASR server as optional dependency (pipeline/services/asr_server.py)
- Default LLM to Claude Haiku 4.5 via OpenRouter, local example uses Gemma 4 E4B
- Update pyproject.toml with metadata, bump to 2.0.0
- Clean up .gitignore
2026-04-08 13:00:15 -07:00
justLV
781945fa56 Unify flash scripts, auto-install Arduino libs, fix SSID number selection
Combine flash_firmware.sh and m5_echo/flash.sh into a single flash.sh
that takes a target arg (onjuino default, m5_echo). Auto-installs
required Arduino libraries (Adafruit NeoPixel, esp32_opus). Typing a
number at the WiFi SSID prompt now selects the corresponding network.
2026-04-07 19:28:57 -07:00
justLV
aedea0d568 Document flash_firmware.sh compile-only usage in README
Added section explaining how to use flash_firmware.sh for:
- Compile-only mode (no ESP32 needed)
- Auto-detect and flash
- Flash to specific port

Emphasized using compile-only mode to verify code before committing.

🤖 Generated with Claude Code (https://claude.com/claude-code)
2026-02-02 11:33:02 -08:00
justLV
ef4f4a1a86 Update README.md 2023-10-09 19:47:08 -07:00
justLV
fd9e4d4341 Update README.md 2023-10-09 19:46:35 -07:00
justLV
8737480697 Updated PCBWay & design file details 2023-10-03 12:32:51 -07:00
justLV
d33b584316 Updated readme with downloadable Altium files & PCBWay link 2023-10-03 12:16:22 -07:00
justLV
7c2482aca5 Update README.md 2023-08-09 18:33:46 -07:00
justLV
5041ca6ae3 Update README.md 2023-08-09 14:10:09 -07:00
justLV
4ed7a41b2a Update README.md 2023-08-09 12:49:28 -07:00
justLV
ff9986a5cd Update README.md 2023-08-09 11:30:27 -07:00
justLV
b49a715707 Update README.md 2023-08-09 00:10:26 -07:00
justLV
90c2ea8025 Update README.md 2023-08-09 00:09:55 -07:00
justLV
5511a43f05 Update README.md 2023-08-09 00:05:23 -07:00
justLV
4243a4913d Update README.md 2023-08-08 23:56:28 -07:00
justLV
81eb364d8c Update README.md 2023-08-08 20:42:05 -07:00
justLV
ab2c7c8f0a Update README.md 2023-08-08 20:38:12 -07:00
justLV
c62df66223 Update README.md 2023-08-08 20:34:58 -07:00
justLV
1a7fae3d4d Update README.md 2023-08-08 20:16:12 -07:00
Justin Alvey
ff2a1c8402 init readme 2023-08-08 19:22:27 -07:00