This repository powers David, a conversational robot assistant running on an M5StickC.
David is a tiny voice-first robot companion:
- Runs directly on an M5StickC with an expressive face UI
- Uses a Cloudflare Worker as a secure cloud gateway
- Combines local interactivity with cloud AI for conversation
- Push-to-talk conversation (STT -> LLM -> TTS)
- Answers spoken questions naturally
- Speaks responses and shows glance-friendly visual overlays
- Can fetch and display pictures on-screen when asked (for example "show me a cat")
- Supports tamagotchi-style interactions like feeding and patting
- Can draw simple shapes/icons on screen when asked
- Reports internal device status (for example battery, time/date, and sensor context)
- Uses device context (time, battery, sensors) in replies
- Protects requests with signed auth, replay protection, and rate limits
David runs with:
- Firmware on M5StickC (
src/) - Cloudflare Worker backend (
cloudflare-worker/)
- Quick Setup
- Architecture
- Configuration Reference
- Firmware Development
- Worker Setup & Deployment
- Troubleshooting
src/: M5StickC firmware (PlatformIO / Arduino)cloudflare-worker/: API gateway worker (TypeScript / Wrangler)docs/: project documentation
- Quick Setup
- Configuration Reference
- Worker Setup & Deployment
- Firmware Development
- Architecture
- Troubleshooting
- Secrets/config are local-only and gitignored (
src/secrets.h,cloudflare-worker/.env,cloudflare-worker/wrangler.toml) - Worker enforces signed auth, replay protection, and rate limits