Skip to content

Bongo-based human computer interface

Notifications You must be signed in to change notification settings

hannahilea/BongoBoard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo: drum and laptop on a black background, with a moving circle of emojis, the top half of which are 0 and 1 and the bottom half of which are musical notes.

BongoBoard

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!

Usage

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.

Morse code mode

TODO - implement!

Getting started

Hardware

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

Microcontroller (Adafruit Feather)

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.

  1. Connect the Feather to your computer via USB cable.

  2. 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

  3. 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,

    1. Downloaded the adafruit-nrfutil executable
    2. In terminal, ran ls /dev/cu.* in the terminal to find my Feather's device name (mine was /dev/cu.usbmodem1101)
    3. 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

  4. 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.

  5. 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!

Usage

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.

Additional notes for developers

  • 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".

Notes

About

Bongo-based human computer interface

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages