Arduino Piggyback Synthesizer Manual

The Arduino should at least support 5V PWM and have 3 timers

Verified Arduino models which are compatible:
Arduino Uno rev3
Duemilanove

Verified Arduino IDE versions:
1.0.1
1.0.5

Hooking up the hardware

The first step is to connect the piggy PCB to the Arduino.
On the side of the two potentiometers there are two pins that are left over (stick out).
On this side there there is a big gap between the headers.


On the side of the trimpot (the blue thingy) there are no pins left over, but on the right side are are two pins not present.
On this side there there is a small gap between the headers.


View from the side of the midi ports:


Now hook up audio (mini jack marked "X1"). The mini jack is a line-out, NOT a headphone connector.


..and connect MIDI in (middle connector marked "X2"):


Hook up USB to the arduino.
A fully hooked up piggy+arduino (even including 9V external power supply) look like this:


Installing the firmware


MIDI in

Now you should be able to send midi notes and pitch bend to control your piggy. ADSR and modulation are supported by the hardware and firmware and can be controlled by MIDI control change packets.

Piggy commandMIDI control number (hex)Value information
ADSR attack time0x0490=0.0s .. 127=4.0s
ADSR release time0x0480=0.0s .. 127=4.0s
Relative modulation frequency0x0C127 = 0.99 * note pitch, 64 = 0.5*note pitch, 0 = off

Use the modulation wheel or stick to control modulation depth.
FM is a pretty brutal affair and adds a lot of depth to the sound, and can also be used to make oldschool telephone like sounds, and go a bit off-key, if you are into that sort of thing.

MIDI thru

The Piggy's MIDI thru (the DIN-5 port most to the side marked "X3") may be used to daisy chain multiple Piggies toghether or attach other equipment, like (recommended) a drum machine. By default, the Piggy responds to MIDI channel 1, but this can be easily be modified by changing a single constant midi_chan in the piggy_midv source code.

Troubleshooting

Arduino models

Arduino models which seem to have problems:
Leonardo (no MIDI, but seems fine otherwise)

VCO tuning

If you should think your piggy sings out of tune you can adjust the blue trimpot with a small screwdriver. By default it should not be the case. It's factory calibrated to have MIDI note 36 (C2) at 65.41 Hz and the right components were selected to get the VCO as temperature stable as possible. But perhaps in very cold environments (near freezing) it could be very slightly out of tune. In this case you could adjust the trimpot slightly to the left (anti-clockwise).



Recording and noise reduction

Piggy is an analogue synth.. and all analogue devices have an intrinsic and characteristic noise. But typically, no digital noise (transmitted from the arduino or from other digital devices in the direct vicinity) should be heard. Nor should any 50 or 60 Hz mains hum should be heard. Digital noise can be avoided in two ways:
If everything worked out only very slight white noise should be heard. This is a result from the current running through resistors (so-called thermal noise)... and of course the resonance resulting from the filter ;)




Good luck and happy freaking!