Drums have been used as a communication tool (distance/ceremony/etc) for eons. Why not use them to communicate with your own electronic devices?!
BongoBoard is the world's first second umpteenth bongo-based human computer interface! Much like a stenographer's chorded stenotype keyboard enables realtime transcription, this unchorded bongo board facilitates computer input at up to X BPM (bongos per minute)---not to mention its yell modifier!
Future input modes may include:
morse code
mode: drum your message madly!binary
mode: drum your bytes madly!git
mode: you drummed your changes, now drum your commit!mouse
mode: drum to control the mouse!
Once you've set up your controller, and connected to it over bluetooth, you can use it in the following modes. To switch modes, do TODO.
TODO - implement!
Starting with a DK Bongo controller (or other set of 6 button inputs + microphone), wire its buttons (plus an additional microphone) to an Adafruit nRF52840 Feather according to the following schematic:
TODO-schematic
Note: I ran these steps from a Mac running Sonoma 14.6.1; you may need to tweak things slightly for a different operating system.
-
Connect the Feather to your computer via USB cable.
-
Download
feather_nrf52840_express_bootloader-0.8.0_s140_6.1.1.zip
from https://github.com/adafruit/Adafruit_nRF52_Bootloader/releases/tag/0.8.0 -
Update the board's bootloader, so that we'll be able to run CircuitPython on it. Do this by following one of the paths in the Adafruit instructions; I did this via the CLI options route, namely,
- Downloaded the
adafruit-nrfutil
executable - In terminal, ran
ls /dev/cu.*
in the terminal to find my Feather's device name (mine was/dev/cu.usbmodem1101
) - In terminal, ran
./adafruit-nrfutil --verbose dfu serial --package ~/Downloads/feather_nrf52840_express_bootloader-0.8.0_s140_6.1.1.zip -p /dev/cu.usbmodem1101 -b 115200 --singlebank --touch 1200
The Feather will then be visible in Finder; mine showed up as
FTHR840BOOT
- Downloaded the
-
Install CircuitPython on the Feather. As of now, the software implementation is built with CircuitPython 8.2.7, which can be downloaded here (
adafruit-circuitpython-adafruit_feather_rp2040-en_US-8.2.7.uf2
). Copy the downloaded .uf2 file onto the Feather; the Feather will handle the rest of the setup, including renaming itself to CIRCUITPY and adding a few empty directories. -
Put the BongoBoard code on the Feather. In the terminal, cd to the Feather and then clone this repository onto it at the top level:
cd /Volumes/CIRCUITPY/ rm code.py git init git remote add origin https://github.com/hannahilea/BongoBoard.git git fetch --depth=1 git checkout -t origin/main
Note: we can't just do a typical git clone into this directory, because the directory is non-empty.
...and that's it!
If you've followed the above setup, when you power the Feather on, it will show up as an available Bluetooth keyboard peripheral, e.g. for your personal computer. Once you've paired with it, it is ready to be used in any of the available modes. See those modes for additional description.
- Using VSCode? The Serial Plotter is useful for e.g. understanding sensor input (in this case, from the mic).
- If your code needs add additional CircuitPython libraries, those can be found here. You'll need to use the bundle that matches the current CircuitPython version for this project, which (as time of writing) is "Bundle for Version 8.x".
- Logo created in p5.js; adapted from preexisting earth/moon/orbit sketch.
- Curious about what the DK Bongos look like inside? Here's a quick teardown someone else made: https://www.youtube.com/watch?v=NJOHrHGcB3g