Home
Softono
Whisperer-on-Wirst

Whisperer-on-Wirst

Open source MIT C++
47
Stars
3
Forks
0
Issues
0
Watchers
5 months
Last Commit

About Whisperer-on-Wirst

Your private AI companion that lives on your wrist. Complete local AI assistant with emotional intelligence.

Platforms

Web Self-hosted

Languages

C++

Links

Whisperer on the Wrist ๐Ÿค–๐Ÿ’ฌ

Your private AI companion that lives on your wrist.
No cloud? No problem. A complete local AI assistant with emotional intelligence, now available for M5StickC Plus2 and M5 Core devices.

Demonstration

โœจ Why WoW?

  • ๐Ÿ”’ Truly Private โ€“ Your conversations never leave your devices.
  • ๐ŸŽญ Emotionally Aware โ€“ AI with feelings displayed through expressive animations.
  • โšก Instant Response โ€“ No latency, works without public AI services.
  • ๐Ÿ“ฑ Multi-Device Support โ€“ Compatible with M5StickC Plus2 and M5 Core.
  • ๐ŸŽฎ Hackable & Open โ€“ Fully open-source, customizable, and extensible.

๐Ÿงญ Our Development Journey

Finding the right foundation took exploration. We tested several pre-built OS/firmware options for the M5StickC (Bruce OS, M5Launcher, CatHack, NEMO, CircuitPython) but found their ecosystems restrictive for deep customization. Our breakthrough came with PlatformIO, which provided the perfect balance of powerful library management and low-level control needed to bring the "emotionally aware" vision to life.

Milestone Achieved: We now have stable, compiled firmware for both M5StickC Plus2 and M5 Core that displays dynamic, sensor-reactive eye animationsโ€”the core of our assistant's personality. The hardware foundation is ready.


๐Ÿš€ Current Phase & Quick Start

We are now building the AI Bridge. The goal is to connect the animated M5 device to a local LLM (via Ollama) over WiFi.

๐Ÿ“ฑ Supported Devices

  • M5StickC Plus2 โ€“ Compact, wearable form factor with built-in microphone
  • M5 Core โ€“ Larger display and more GPIO for expanded functionality

Prerequisites

  1. M5 Device (StickC Plus2 or Core) with the latest custom firmware.
  2. A computer on the same local WiFi network.
  3. Ollama installed and running on your computer with at least one model (e.g., llama3.2, mistral).

Setup

  1. Prepare Your M5 Device:

    • Set up PlatformIO in VSCode.
    • Clone this repository.
    • Select the appropriate environment in PlatformIO:
      • m5stickc-plus2 for M5StickC Plus2
      • m5stack-core for M5 Core
    • Connect your device and run pio run --target upload.
  2. Prepare Your AI Server:

    • Install Ollama on your computer.
    • Pull a model: ollama pull llama3.2
    • Ensure Ollama's API is running (default: http://IP:11434, configure with Environment="OLLAMA_HOST=0.0.0.0:11434").
  3. Configure the Connection:

    • In the project's src/secrets.h file (create from secrets.example.h), enter your WiFi SSID, password, and your computer's local IP address.
  4. Experience Local AI: The firmware now supports basic text interaction with your local LLM!


๐Ÿงฉ Project Architecture

[M5 Device] <--WiFi--> [Local Computer / Home Server]
       |                            |
(Display & Sensors)          (Ollama + LLM)
       |                            |
[Emotional UI]           [AI Processing & Response]
       |                            |
[Voice Input*] <-------> [Text/JSON API Communication]

**Voice input is currently in development for M5StickC Plus2.


๐Ÿ”ง For Developers

The project is structured for clarity and growth:

  • /firmware โ€“ PlatformIO project with separate environments for each device
  • /firmware/src โ€“ Shared core logic with device-specific adaptations
  • /docs โ€“ Setup guides, hardware references, and API documentation
  • /prototypes โ€“ Experimental code and previous iterations

Building for Different Devices

  1. Open the PlatformIO project in VSCode
  2. Select the target device from the environment selector:
    • m5stickc-plus2 โ€“ For M5StickC Plus2
    • m5stack-core โ€“ For M5 Core
  3. Build and upload as usual

Key Implementation Differences

  • M5StickC Plus2: Uses M5Unified library, smaller display (135x240), built-in microphone for future voice features
  • M5 Core: Uses M5Stack library, larger display (320x240), more GPIO pins for expansion

๐Ÿ“‹ Roadmap

  • โœ… Phase 1: Foundation โ€“ Stable development environment for M5StickC Plus2
  • โœ… Phase 2: Emotional Core โ€“ Animated personality display on both devices
  • โœ… Phase 3: Multi-Device Support โ€“ M5 Core compatibility added
  • โœ… Phase 4: AI Bridge โ€“ WiFi connectivity and text-based Ollama interface
  • ๐Ÿ”ต Phase 5: Voice Interface โ€“ Voice-to-text for M5StickC Plus2 (IN PROGRESS)
  • โšช Phase 6: Advanced Features โ€“ Sensor integration, expanded emotions, plugin system
  • โšช Phase 7: Polishing โ€“ Refined UI/UX, power optimization, documentation

๐Ÿ™ Acknowledgments

  • M5Stack for the versatile hardware ecosystem
  • The PlatformIO team for an indispensable development environment
  • The Ollama team for making local LLMs accessible
  • The open-source community whose libraries and guides made this project possible

Whisperer on the Wrist is an open-source passion project. It's a testament to the idea that private, personal, and expressive AI should be within everyone's reachโ€”whether on your wrist or on your desk.