You need an Arduino UNO board, I used a Seeeduino v2.21 here - it did the job very nicely back in the day, but a couple of new features have been added to the code and so it doesn't fit on anymore. Genuine UNOs have very slightly more space for programs.
Upload the source code to the arduino. Seriously. Actually do this. Nothing will work until you do this. Do it.
Look at this fine guide courtesy of Adafruit for help. Or anywhere on Instructables, or one of the hundreds of Arduino tutorials on the web.
Because it changes regularly, I have not attached a copy of the code itself to this step, but the very most recent version can be downloaded in a bundle from the polargraph code repository. Download the file called Polargraph.___.zip.
** The current version of the firmware works with Arduino v1.6.5 and below. NOT with v1.6.6 or above. **
Unzip the bundle. Inside it is a folder called arduino-source which contains (you guessed it), the source code for the arduino part of the project.
Inside arduino-source there is a folder called libraries. It contains the libraries you need (
It also contains a folder called polargraph_server_a1. This is the polargraph firmware source code.
Copy the contents of arduino-source/libraries into your Arduino/libraries/ folder.
Copy arduino-source/polargraph_server_a1 into your Arduino/ folder.
You should have created three new folders on your disk:
Start Arduino IDE v1.6.5.
Go to File->Sketchbook->polargraph_server_a1
Fourteen files will open up and be displayed as tabs in the IDE. This is the source code of the firmware.
Press the "verify" button in the toolbar to try and compile it.
If it compiles, press the "upload" button in the toolbar to upload it.
Of course the source code is also available in the code repository - https://github.com/euphy/polargraph_server_a1 - should you want the very most recent version, but you'll have to figure that one out yourself.
Once you do that, you should confirm that it is working properly - use the serial monitor on the board, set to 57600 baud to make sure that it is issuing "READY" every couple of seconds (see the last image).