TossTalk
TossTalk is a tossable wireless microphone built on the M5StickC Plus2.
Power it on, pair it, and pass it around whenever a group needs one shared mic.
Build guide: TossTalk on Instructables
What it does
- Detects when the device is in the air and mutes throw noise
- Recovers quickly so the next speaker can talk right after catching it
- Streams audio to a web app over BLE
- Plays audio through connected speakers
- Shows remaining battery on the device screen
- Supports browser-based firmware updates without the Arduino IDE
Quick start
- Power on TossTalk
- Open the TossTalk web page in Chrome or Edge (desktop) at kevinl95.github.io/TossTalk
- Connect the device
- Pass or toss the mic to whoever needs to speak
Normal reconnect and recovery are automatic.
Firmware updates (easy path)
The web app includes a Flash Firmware button that uses Web Serial in Chromium browsers.
By default, it flashes a prebuilt merged image hosted with the site:
This file is generated automatically by GitHub Actions during deployment.
Browser support
- Target: Desktop Chromium browsers (Chrome, Edge)
- Mobile browsers: not currently in scope
Project structure
- firmware: Device firmware (PlatformIO)
- web: Browser app (PWA + Web Bluetooth + Web Serial flashing)
- docs: Architecture, protocol, milestones, test notes
- .github/workflows: Build and deployment automation
For developers
Local firmware build
- Open firmware/platformio.ini
- Build/upload with PlatformIO
Local web testing
Serve web with any static server and open in desktop Chromium.
Deployment
Push to main to:
- deploy the web app to GitHub Pages
- build firmware
- publish updated merged firmware for browser flashing