Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Harvester Illustration Illustration by Seo Hye Lee

Harvester Photo

Harvester is a hand-held, portable live sampler that lets you make music with everyday sounds. With the instrument, you are able to capture sounds around you (your voice, another musical instrument, environmental noises etc.). The instrument provides an interface that lets you play back the sampled sound based around a musical, pentatonic scale. This allows for a wildly expressive sonic palette that can be used for musical performance and sound art installations.

Video of Harvester


A list of parts and costs can be found on this Google Sheet

Installation Instructions

Solder up Harvester hat

  • Instructions TBD, look at parts list

Install Raspian for Raspberry Pi

touch /Volumes/boot/ssh

  • Also, create a file called wpa_supplicant.conf in the boot directory

vim /Volumes/boot/wpa_supplicant.conf

  • And add the following lines, replacing MySSID and MyPassword with you WiFi's network name and password:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

  • Afterwards, plug your SD card into your RPI, power it on, and try to SSH into it:

ssh pi@raspberrypi.local

The password is raspberry

Then run the following command to set up your RPI to keep SSH on:

sudo raspi-config

Most importantly, go to Interfacing Options > SSH and enable SSH!

Select finish, then your RPi will reboot. Try connecting again and if everything is working, move on to the next section :D

Set up Harvester Hat Hardware

** Part 1 **

  • On your RPi, clone this repo

git clone

Change into the custom-voice-hat directory

cd harvester/software/custom-voice-hat/

At this point, it would probably be nice to install vim ;)

sudo apt-get install vim

Turn on i2s support in /boot/config.txt

sudo vim /boot/config.txt

Uncomment the following lines:





Also add the following new entry:


Override bcm2708.vc_i2c_override in cmdline.txt

sudo vim /boot/cmdline.txt

Add the following line at the end of the line:


Finally enabled i2c arm from raspi-config

Then reboot your RPi

** Part 2 **

Change directory into the eepromutils folder

cd ~/harvester/software/custom-voice-hat/eepromutils/

  • Make the EEPROM flasher executable and Flash the EEPROM with the eeprom file:

sudo chmod +x ./

sudo ./ -w -f=voicehat.eep -t=24c32

You should see "Writing..." If you do, good job! If not, repeat the steps in Part 1...

  • Update Raspberry Pi kernels and reboot again:

sudo apt-get update

sudo apt-get install raspberrypi-kernel

sudo reboot

** Part 3 **

Check if your HAT is recognized:

cd /proc/device-tree/

Start your Pi and move into the audio configuration scripts:

cd ~/harvester/software/custom-voice-hat/audio-config/scripts/

Make the scripts executable:

sudo chmod +x ./

sudo chmod +x ./

Run the Executable scripts:

sudo ./

sudo ./

Run the script again until you get .bak notification.

sudo ./


Test Audio and Microphone

Test your audio:

  • sudo aplay /usr/share/sounds/alsa/Front_Center.wav

Test your microphones:

  • sudo arecord test.wav

  • sudo aplay test.wav

Install Python OSC server

  • Install pyOSC

pip install pyosc

Install Pd

  • Install Pd

sudo apt-get install pd-comport

git clone git://

cd pd-iemnet


sudo make install

  • Install Pd libraries


tar -xzvf OSC-0.1.tar.gz

cd OSC-0.1/


sudo make install

Install Harvester Software

Harvester Pd Software

  • Install this repo

  • Test scripts manually

python harvester/software/raspberrypi/ &

pd -stderr -nogui -verbose -audiodev 4 harvester/software/raspberrypi/harvester.pd &

  • Celebrate!

Autostart software

Add the following lines to the bottom of /home/pi/.bashrc

vim /home/pi/.bashrc

if pgrep -x "python" > /dev/null
    echo "Python is already runnning"
    echo "Python is not running, attempting to run Python"
	python harvester/software/raspberrypi/ >/dev/null 2>&1 &

if pgrep -x "pd" > /dev/null
    echo "Pd is already running"
    echo "Pd is not running, attempting to run Pd"
	pd -stderr -nogui -verbose -audiodev 4 harvester/software/raspberrypi/harvester.pd >/dev/null 2>&1 &


Setting up Raspberry Pi



Voice sample: Miyu Hosoi

Circuit layout: Mark Kleeb

You can’t perform that action at this time.