TossTalk: Build an Inexpensive Tossable, Rollable Wireless Microphone

by MrMemory in Circuits > Audio

157 Views, 2 Favorites, 0 Comments

TossTalk: Build an Inexpensive Tossable, Rollable Wireless Microphone

DIY rollable, tossable Microphone (1080 x 900 px).png
Full volume (2).png
TossTalk DIY Throwable, Rollable Wireless Microphone

Have you ever been in a classroom, meeting, or workshop where a single microphone needs to get passed around? The usual approach is either an awkward hand-off chain, or someone walking the mic across the room. What if you could just throw it?

Commercial solutions to this problem exist. But a representative commercial system I found with the throwable soft mic, receiver, and wireless charger retails for around $1,500–$1,800 USD.

TossTalk requires around $35 in parts and it's completely open source. It's built around the M5StickC Plus2, a tiny ESP32-based development board that packs a microphone, IMU (accelerometer + gyroscope), display, and Bluetooth into something smaller than a pack of gum. The firmware uses the onboard IMU to detect when the device is mid-air and automatically mutes the microphone so you don't blast everyone's ears with tumbling noise. The moment it's caught, audio resumes.

The audio streams over Bluetooth Low Energy (BLE) to a web app running in Chrome or Edge on any laptop, which plays it through connected speakers. The whole system needs zero setup beyond powering on the device and clicking "Connect" in a browser. In fact, you can flash the software to your M5StickC directly from my web app, so there's nothing to install!

I originally explored using magnets to mount the M5StickC Plus2 inside a soft enclosure, but they weren't strong enough to survive a good throw. Velcro turned out to be the perfect solution. It holds firm during flight but lets you easily pop the electronics out for charging. For the throwable shell, I'm using a JW Pet Hol-ee Roller dog toy, which is a flexible rubber lattice ball that's soft enough to catch, durable enough to throw repeatedly, and has plenty of openings to let sound through to the microphone. You don't have to choose this one, and there are any toys out there that are soft and provide a place to stick the tiny microphone, but I think this one looks cool and is easy to find.

What it does:

  1. Streams audio wirelessly from the M5StickC Plus2 to a browser via BLE
  2. Detects throws using the onboard IMU and mutes the mic during flight
  3. Recovers automatically so the next speaker can talk immediately after catching it
  4. Shows battery level on the built-in display
  5. Supports browser-based firmware installation (no downloads required)

If you're ready to put one together, head on over to the Supplies section. If you're looking for more technical detail, this project uses the onboard 6-axis IMU to detect when the device is in freefall versus resting in someone's hand. The accelerometer magnitude is checked every loop iteration When it drops below 0.35g the mic is muted, and when an impact above 2.2g is detected (or the device settles near 1g) it unmutes automatically. This motion-gated audio pipeline means throw noise never reaches the speakers. It's a practical example of using motion sensing to solve a real user-experience problem.

Supplies

IMG_5377.JPG
IMG_5374.JPG

Electronics:

  1. M5StickC Plus2 (~$20). This is the brains of the operation. It includes an ESP32, microphone, IMU, display, battery, and BLE all in one tiny package. Available from the M5Stack store or various electronics retailers.

Enclosure:

  1. JW Pet Hol-ee Roller Dog Toy, Medium size (~$12). This flexible rubber lattice ball is the perfect tossable shell. The open lattice design lets sound reach the microphone while being soft enough to catch comfortably. Available at PetSmart, Chewy, Amazon, and other pet stores. Color varies, but any color works.

Note that there are many toys out there that you can fit the M5StickC in! I liked this one because it is cheap, soft, and easy to find. You can use any enclosure you wish.

Mounting:

  1. Adhesive-backed Velcro strips. A small piece is all you need. I used these 5/8" circles on the device and a matching piece inside the ball. Standard adhesive-backed Velcro from any hardware or craft store works great.

Tools/Software:

  1. A computer with Chrome or Edge (desktop) installed for the web app
  2. USB-C cable for initial firmware flashing (and charging)

Optional but recommended:

  1. Powered speakers connected to your laptop for amplification in larger rooms

Flash the Software

signal-2026-03-07-175837_002.jpeg
Flashing GIF (1).gif

The TossTalk firmware runs on the M5StickC Plus2 and handles audio capture, IMU-based toss detection, BLE streaming, and battery monitoring. You don't need to install anything as the project includes a browser-based flashing tool.

  1. Open the TossTalk web app in Chrome or Edge on your desktop: https://kevinl95.github.io/TossTalk/
  2. Connect your M5StickC Plus2 to your computer with a USB-C cable.
  3. Power on the device by holding the side button for about several seconds until you see the screen light up.
  4. On the web page, scroll down to the "Update Firmware" section and click "Flash Firmware".
  5. Your browser will prompt you to select a serial port. Choose the one corresponding to your M5StickC Plus2. If you are unsure which is the device, unplug it and see how the lists changes and then plug it back in.
  6. The flashing process will begin automatically. Wait for it to complete.
  7. Once flashing is complete, the device will reboot.

Troubleshooting:

  1. If you're using a USB-C to USB-C cable and the device isn't recognized, try the power-on sequence: disconnect the device, power it off (long-press the power button until the green LED lights up), then reconnect the USB cable.
  2. Make sure you are using a data-capable USB cable, not one that is only meant for charging devices.
  3. Web Serial requires a Chromium-based browser (Chrome or Edge). Firefox and Safari are not supported.

For developers: If you want to build the firmware yourself, the source is available at https://github.com/kevinl95/TossTalk/ and uses PlatformIO.

Prepare the Hol-ee Roller Enclosure

IMG_5378.JPG
IMG_5394.JPG
IMG_5395.JPG

The JW Pet Hol-ee Roller is a flexible rubber lattice ball originally designed as a dog fetch toy. It turns out to be ideal for a tossable microphone enclosure for several reasons: it's soft and safe to catch, incredibly durable, lightweight, and the open lattice allows sound to easily reach the microphone.

  1. Identify the flat, filled-in hex on the bottom of the ball. This is where we will mount the M5StickC.
  2. Cut or peel off a piece of adhesive-backed Velcro. Peel the backing and press it firmly onto the inside of the ball at your chosen mounting location. Make sure it's well adhered to the rubber surface.
  3. Cut or peel off a matching piece of Velcro and attach it to the back of the M5StickC Plus2.
  4. The M5StickC will fit through the larger holes in the toy. Slip it through and press the velcro together to fix it into place.

Tip: Press the Velcro pieces firmly. You can consider gluing the pieces on for extra strength.

Connect and Test the Audio

Screenshot 2026-03-08 140653.png
ble.png

Now for the fun part: getting wireless audio working.

  1. Make sure your M5StickC Plus2 is powered on inside the Hol-ee Roller.
  2. On your laptop, open Chrome or Edge and navigate to: https://kevinl95.github.io/TossTalk/
  3. Click the "Connect Microphone" button. Your browser will show a Bluetooth pairing dialog. Select the TossTalk device.
  4. Once connected, the web app will show the connection status, a live volume meter, mic status, and battery percentage.
  5. Speak into the ball. You should see the volume meter respond in the web app and hear your voice through your computer's speakers (or connected external speakers).
  6. Now test the toss detection: toss the ball gently into the air and catch it. Watch the mic status indicator. It should show that the mic mutes during the toss and unmutes on catch. You should hear the audio cut out during the toss rather than hearing a burst of tumbling noise.

Tips for best audio quality:

  1. Connect external powered speakers to your laptop for larger rooms
  2. The BLE audio stream is optimized for voice intelligibility, not music fidelity
  3. Keep the laptop within reasonable BLE range (roughly 10-30 feet depending on environment)
  4. The web app works as a PWA, so you can install it for quick access

Use It in Practice

Toss (1).gif
Roll (1).gif

TossTalk really shines in interactive settings. Here are some scenarios where it works great:

Classroom Q&A: A teacher can toss or roll the mic to students who have questions. The throw detection means no jarring noise when it's in the air, and the student can start talking the moment they catch it.

Meetings and workshops: Instead of passing a mic hand-to-hand down a row, toss it directly to whoever needs to speak next. It's faster and more engaging.

Panel discussions and events: For informal events where audience participation matters, a tossable mic breaks the ice and keeps energy high.

Tips for a smooth experience:

  1. Demonstrate the toss to the group first so everyone knows it's safe and expected
  2. Underhand tosses work best — they're easier to catch and the arc gives the IMU a clean freefall signal
  3. The Hol-ee Roller is soft and lightweight, so even a fumbled catch won't hurt anyone or damage anything
  4. Keep the TossTalk web app open on the laptop connected to the room's speakers
  5. Charge the M5StickC Plus2 between sessions via USB-C. The 200mAh battery lasts for a reasonable session, but you'll want to top it off for all-day events