Step 11: Controller software - install

The setup is ready to test! The software you use to control it is a little application written in Processing. You can run this from the source code, but it's probably easier to use one of the pre-compiled binaries that I've made. The most recent code bundle has the latest versions for Mac, Windows or linux. Download the file called Polargraph.*.zip (rather than the "source code" files).

(That bundle also includes all the source for the controller, and the firmware, and all the Processing and Arduino libraries you need to run from source.)

Download it, unzip it, and run the executable in the controller folder. It'll open up very small, but maximise the window to see more. It will automatically create a default configuration file in the same folder as it runs in, and you should then click "save properties" in the top-left corner to save the new window size as the default.

Compile from source

If you're curious about Processing, you're right to be: It's ace. There are useful tutorials on processing.org, and of course here on Instructables too. It's basically java, but optimised to run little stand alone programs with graphics. If you're interested in keeping on the leading edge of the controller development, you might like to check out the code directly from the repository and compile it yourself. Another reason: The precompiled binaries that I distribute are a little idiosyncratic, and sometimes refuse to work on some people's machines. If you compile from source, then it'll work at least.

Couple of notes - The controller is getting a bit long-in-the-tooth now, and I haven't updated it to use Processing 3 yet. So in the meantime, it will only compile in Processing 2.x. Additionally, the libraries have also since moved on since it was written, and it'll only work with the versions in the zip file (referred to above). I'm working on an update, but it's not ready yet.

  1. Install Processing 2.2.1 (From https://processing.org/download/?processing)
  2. Run Processing, find where your sketchbook folder is: (File->Preferences, sketchbook location).
  3. Install libaries: Unzip the code bundle, and copy the contents of the processing-source/Processing libraries into sketchbook/libraries.
  4. Install project: In the code bundle, copy the whole processing-source/polargraphcontroller folder into .
  5. Restart Processing, and open the controller with File->Sketchbook->polargraphcontroller.
  6. Run: When some files have opened up and you can see some code, hit the play button in the toolbar (or use Ctrl-R) and you should see the controller spring into live.

It'll only be a small window, so go ahead and maximise it, or stretch it so you can see everything. If it worked, then well done. NEXT!

<p>In advance thank you very much for your great work ...</p><div><p>I do not know much about programming, but why Processing v.3 gives many errors when running the driver source ?</p></div>
There's lots of changes in Processing 3, so there's lots of work to adapt the code. I haven't done the work.
<p>I'm trying to verify polargraph_server_a1 to push it to my Arduino UNO, but I keep getting this error: polargraph_server_a1:157: error: 'multiplier' was not declared in this scope</p><p>The multiplier function is clearly defined in util.ino, but polargraph_server_a1.ino can't seem to see it. Am I making a basic mistake here?</p>
Nope not a mistake here, but there was a change brought in in the Arduino IDE v1.6.6 and later that broke some things, and this is one of them. There is a fix for it in the main repository (https://github.com/euphy/polargraph_server_a1), but it's not been bundled up for a official release yet. There's no reason not to use it though, if you can get it downloaded.<br><br>Workaround is just to use ARduino v1.6.5 for a bit longer.<br><br>sn
Can I use a Arduino uni R3?
<p>The Polargraph firmware works on an Arduino UNO.</p>
Can you send a circuit diagram of the polargraph
<p>Please don't spam the comments section. I would recommend you start with a more simple project to introduce you to Arduino, I can't help you with such basic questions.</p><p><a href="http://www.instructables.com/id/Arduino-Beginner-and-Basic-Electronics-Kit-Primer/," rel="nofollow">http://www.instructables.com/id/Arduino-Beginner-a...</a> or </p><p><a href="https://learn.adafruit.com/adafruit-motor-shield" rel="nofollow">https://learn.adafruit.com/adafruit-motor-shield</a></p>
Can you send a circuit diagram of the polargraph
How do you convert 220v(power socket) into 12v
How much should the voltage be
How much should the voltage be
Thank you for the answer.How can I connect everything to the power supply. Is the micro controller wireless?
Does the Arduino uno need to be connected to the computer at one end and the motor driver at the other end? Can I use a 9v battery to power everything or can I use my computer
Arduino needs a power supply. It can usually use USB power, but the pen lift servo sometimes causes it to reset.<br><br>The motor shield itself needs a power supply to drive the motors. It needs a proper mains power supply. A battery will not do. <br><br>This instructable contains links to Adafruit's descriptions about the motorshield https://learn.adafruit.com/adafruit-motor-shield/use-it.<br><br>sn
How should I connect the power source to the polargraph
<p>Hi, I am not sure how to upload the files into the arduino. I keep getting multiple errors every time I try to verify the code. I opened the files from the source code and opened them separately into one sketch. How could I fix this?</p>
http://www.instructables.com/id/Polargraph-Drawing-Machine/step8/Electronics-Arduino/ is the step that discusses this part.
awesome project
<p>Hello.</p><p>The motors are rotating in the directions they're supposed to. But, they won't stop rotating. What's the problem?</p>
Did you do a &quot;upload machine spec&quot;, and remember to do a &quot;set home&quot; each time the machine is restarted?<br><br>sn
<p>It started drawing instead of rotating endlessly. But it won't draw the picture. Instead it's only drawing those lines, as you can see in the attached image.</p>
<p>Hi.</p><p>The sequence of work is all right according to your instructions. But we still get empty waves. We tried different grid sizes and only one of them worked, it actually drew something, only the drawing was kind of compressed. It never drew again however.</p>
<p>II have the same problem. did you figure out a solution that you can share? thx</p>
<p>Hi, </p><p>I noticed that you used four wire stepper motors.</p><p>Would it work if i used 5 wire stepper motors? Is there somewhere to set that in the software? (I would be using my own chip to control the stepper motors instead of the motor driver boards)</p>
<p>Nope a 5 wire motor works exactly as a four wire one, you just don't connect the centre tap wire.</p>
<p>Great!</p><p>Also, when I try to run the controller software on my 64 bit machine running windows 10 the default.properties file is created but nothing is displayed. I've played with the compatibility settings, but still nothing :(</p><p>What OS do you run it on?</p><p>Could I run the Linux version on a raspberry pi? </p>
<p>Try the 64 bit, and the 32 bit version on windows. If neither work, you'll need to run it from source, using Processing. Luckily, I have just written up a page about how to do this :)</p><p><a href="https://github.com/euphy/polargraph/wiki/Running-the-controller-from-source-code" rel="nofollow">https://github.com/euphy/polargraph/wiki/Running-t...</a></p><p>Don't try to run on a pi.</p>
<p>Compiling from the source files worked :)</p>
<p>That's great news - good luck for the rest of the build :)</p>
<p>Your stepper motors are 400 steps per revolution (0.9 degree per step). My stepper motors are 48 steps per revolution (7.5 degree per step). I will probably use about a 1 inch diameter pulley. Do you think it will be accurate enough to be able to draw details with a 0.5 mm pen?</p>
<p>Define &quot;accurate enough&quot; and &quot;details&quot;. I say that like it'll make a difference, either way they answer is &quot;try it and see&quot;!</p><p>Are your motors really 48 steps per rev? Aren't they geared?</p>
<p>When i say &quot;accurate enough&quot; with a 0.5 mm pen, I mean that if i divided the drawing surface into 0.5mm spaces. Would the motors be able to move the pen to each 0.5mm space? </p><p>Yes, my motors are 48 steps per revolution (360 / 7.5) and if you turn the motor by hand i count only 13 steps per revolution. I'm 100% sure my motors are not geared.</p>
<p>You can probably figure this out easily enough yourself:</p><p>sprocket diameter is 25.4mm, therefore circumference is 25.4*3.141=79.8mm</p><p>So one step will pull in 79.8mm / 48. So about 1.6mm per step.</p><p>That's a pretty coarse resolution, yes, and no you couldn't achieve a solid inked area with a 0.5mm tipped pen. A sharpie might do it.</p><p>I would actually be pretty surprised if you found your 48 step motors could generate enough torque to actually turn reliably under load. Because each step is bigger, you'd usually need plenty of current to pull the motor to the next step. With a 200 or 400 step motor the distance between steps is much smaller so it can use a correspondingly smaller current - there's just less work to do.</p><p>That's why I asked if your motors were geared - the ones I've seen with a low steps-per-revolution have been geared because it's hard to drive motors with such big steps, unless your load is low.</p><p>sn</p>
<p>Now that i think about it Great Idea! because i'm using meccano i can easily gear the motors! The only problem with that is that it will make it noisier :( </p><p>How long does it take to draw an image? (Obviously it depends) On average for a &quot;normal&quot; piece of paper</p>
<p>Can I use a 12 v, 14 amp power supply? pls answer</p>
14 amp is a massive power supply, but it should work - it will power almost any stepper motor and driver you'd like to have. Depending on your motors and drivers, you might find that 12v runs the motors a bit &quot;hot&quot;.
<p>Thanks for reply. Also, my stpper motors become jerky after a while. Not sure why. Below is a video showing jerky movement. Like, at first the motor will spin with fluid motion, but after a while they get jerky</p>
<p>You'll need to be a bit more diagnosis on your steppers. One thing could be overheating of the driver. Remember the Adafruit motorshield is only comfortable drawing 1200mA, so if your motors draw more than that (600mA per motor) you might be cooking your drivers. Are they hot?</p><p>When I have had witnessed the behaviour you describe, it's been from overpowered drivers, or overheating motors.</p>
<p>The motors I have are two Nema 17 with 1.8 degree steps and are rated at 1.3 amps. </p>
<p>You can't control what a motor draws using the Adafruit motor shields. Each motor should draw no more than 600mA.</p>
<p>Yes, the motor shield ICs get warm to the touch. I am just going to forget about my diy PSU and buy a off-the shelf power supply. Do you have any recommendations?</p><p>Thanks in advance.</p>
<p>Please, can you have a look at how other people use this comments section and try to use it the same way? It isn't built to be used as an instant messenger. You've spammed a lot of comments here, and it makes it very hard to read and follow.</p><p>So you know how the motor shield is capable of driving 1200mA, you are trying to drive 2600mA with your two motors. This isn't going to work. You power supply should supply at least 1.2A, and your motors should draw no more than 1.2A.</p>
<p>HOw do I make it so that my stepper motors do not draw more than 1.2A? Srry for spamm did not mean it that way</p>
<p>NOt sure what is wrong with my setup, but when I am trying to move pen to point, my stpper motors start off rotating perfectly fine, however, it is non stop rotation. The rotation then starts becoming very jerky. Do you have any clues as to what this could be?</p>
<p>When I try to run the polargraphcontroller on Processing 2.2.1 I get a message saying &quot;Cannot find a class or type named &quot;PreviewVector&quot;. I can't find this file anywhere on the libraries. </p>
PreviewVector is a class in the misc.pde file. There should be 19 files open as tabs in Processing, and that's one of them.
<p>&quot;powering down&quot;, </p><p>as disable this ??</p>

About This Instructable


883 favorites


Bio: Like everyone, I like making things. I'm currently a computer programmer by trade, which I adore, but I like building physical things when I ... More »
More by Euphy: Polargraph Drawing Machine Linear Clock Mechanical expanding cardboard lamp - This way up!
Add instructable to: