loading

Step 5: The Drawing Surface

Find a big board or something to use as your surface.  Your board should be at least 150mm bigger on each side than the largest sheet of paper you want to draw on.

You can use a wall if you have some motor mounting brackets, but I was always terrified about it going wrong and scrawling marker pen over my wall.  My landlady would be unimpressed, I feel.

Using a board means you can tilt it slightly too just by leaning it against the wall, and that's a good thing because the weight of the gondola presses the pen to the page.  When the surface is perfectly vertical, it's hard to get any pressure against the page - the lines tend to come out a pretty woolly.

I went down the local DIY shed and scavenged in the offcuts bin for the biggest bit of chipboard I could fit in my little car, but I've also had good success with building a machine based on the biggest IKEA Ribba picture frame.  This has the added feature that you can use it as a picture frame afterwards, amazingly.  A whiteboard is a good alternative too, because you can test quickly, but any kind of flat surface will do.  My first one was only big enough for A3, and worked fine, so don't feel it has to be massive.  
<p>with the starting point of everything is clear! thank you! question about command -and where the calculation is performed in truglow coordinate system? in the Arduino sketch, or in the software? (all this applies to vector drawing).want to try to write a simple sketch executing commands on a stirred by coordinates x y (or r1 and r2) and raise/lower the pen. feather want to do it on a servo actuator and electric magnet. that is two teams . all parametry will be fixed and prescribed in the sketch. (for specific device). app (convector) on the translation from SVG in Executive command,you'll write to me separately. connection via Bluetooth . Tell me what to do to the smoothness and speed? can the terms of the triangle coordinate system to do in software, not in the sketch? or exercise accumulation of teams (already converted) in Arduino? I am very interested in this project, could you leave a personal email (if possible) for advice on my project...</p>
The bad news is that the coordinates translation happens in the controller app, not in the arduino, so you _do_ need to convert from cartesian to the native coordinates system before constructing the &quot;move&quot; commands. The coordinates system uses motor steps as it's unit of measurement.<br><br>Here's a link to the code that does it:<br>https://github.com/euphy/polargraphcontroller/blob/master/Machine.pde#L314-L329<br><br>Reference for the commands: https://github.com/euphy/polargraph/wiki/Polargraph-machine-commands-and-responses<br><br>Smoothness is hard to control with the motorshield because there's no way to adjust the motor power. The only thing you can really do is change the voltage of the power supply, or the motors. Slowing the speed down might help.<br><br>If you mean smoothness to refer to the pauses between commands, then I can't help with that. I'd be interested in seeing a buffered technique to manage the command protocol if you can build one.<br><br>Other 3D printer and drawbot firmware _do_ buffer their commands, so it's not impossible. They have smaller, more simple commands that are easier to buffer.
<p>Yes, my crazy setup in about a 2 or 2.5 larger than the original! I will try again - 400 steps per revolution and a circumference of 37 mm (the actual parameters). later, I will unsubscribe ... it would be cool if the beginning of the line coincides with the home point, it is possible in the firmware to prescribe? or difficult? another question-why otsutstvet smooth movement ? it is noticeable that between executions of the commands (draw straight) there is a micro pause micro... is associated with time of transmission from the PC to Arduino? I transfer via Bluetooth organized!</p>
I'm not sure I understand what you mean by the beginning of the line coincides with the home point.<br><br>You can do this easily, just &quot;set home&quot;, the &quot;pen down&quot;, and then &quot;move pen&quot; to wherever you want it. Arrange your artwork so it is over the home point. If that's what you mean!<br><br>The pause in between each move is exactly as you guessed - it's the time it takes to transmit the next command from the PC to the Arduino.<br><br>
How much to flat out buy one from you
Flat out :) http://polargraph.bigcartel.com/product/polargraph-sd-assembled-tested has the most advanced PolargraphSD product listed!
Update I found out how to, I am a photographer and I think this would be a cool thing to print photos on
<p>Yes, my crazy setup in about a 2 or 2.5 larger than the original! I will try again - 400 steps per revolution and a circumference of 37 mm (the actual parameters). later, I will unsubscribe ... it would be cool if the beginning of the line coincides with the home point, it is possible in the firmware to prescribe? or difficult? another question-why otsutstvet smooth movement ? it is noticeable that between executions of the commands (draw straight) there is a micro pause micro... is associated with time of transmission from the PC to Arduino? I transfer via Bluetooth organized!</p>
<p>Yes! &quot;upload machine spec&quot;.but now I saw. that was not grooved 120 to 130 mm it can give such error? another question - when you include &quot;controller&quot; origin starts with x=0, y=0, you can configure the &quot;home point&quot; . the initial path with x=0, y=0 to the &quot;home point&quot; is incorrect (it is impossible to put the pen to x=0 y=0!). feather in hand at the &quot;home point&quot;?</p>
<p>I'm not positive that I understand your message, but I'll do my best :)</p><p>The home point is never 0,0, because as you correctly say it's impossible to move there! Your home point is 205mm from the left-hand edge of the machine, and 130mm down from the top edge of the machine.</p><p>The home point has to be correct, or you'll have distortions - but unless it's _extremely_ inaccurate, you won't experience very large size distortions like you have reported - so just a 10mm error _won't_ cause your problem.</p><p>I have no insight into whether your drawings are bigger than you expect or smaller than you expect, and what degree. Your current settings (with the &quot;crazy settings&quot;), does it get to almost the right size?</p>
<p>hi</p>
It's a little old, but it all looks fine to me.<br><br>I just want to check - you are doing an &quot;upload machine spec&quot; aren't you?<br><br>Code looks ok, and settings look ok too.<br>
<p>a link to a working firmware</p>
I'm asking you which firmware you used, so I can help diagnose the problem.
<p>crazy settings, but they turned out a little bit. managed to draw a dragon but it is much more mirrored (this is engine -I know how to fix) but the scale do not. he attached a photo of the original dragon and what happened. the A4 sheets.</p><p># *** Polargraph properties file *** </p><p>#Thu Mar 16 21:36:13 MSK 2017</p><p>controller.pixel.samplearea=10</p><p>controller.pictureframe.position.y=15</p><p>controller.pictureframe.position.x=15</p><p>controller.testPenWidth.startSize=0.5</p><p>controller.machine.colour=969696</p><p>machine.motors.mmPerRev=90</p><p>controller.vector.filename=E\:\\Arduino\\\u0431\u0430\u0431\u0430.svg</p><p>controller.window.width=1366</p><p>controller.frame.colour=C80000</p><p>controller.image.position.y=357</p><p>controller.image.position.x=357</p><p>machine.motors.accel=1000</p><p>controller.image.height=237</p><p>controller.machine.serialport=6</p><p>controller.window.height=706</p><p>controller.maxSegmentLength=2</p><p>controller.geomerative.polygonizerLength=1</p><p>machine.penlift.up=180</p><p>machine.penlift.down=90</p><p>controller.page.position.y=130</p><p>controller.vector.scaling=100</p><p>controller.page.position.x=55</p><p>controller.pictureframe.width=380</p><p>machine.step.multiplier=1</p><p>controller.grid.size=75.0</p><p>controller.testPenWidth.endSize=2</p><p>controller.pictureframe.height=555</p><p>controller.page.colour=DCDCDC</p><p>controller.testPenWidth.incrementSize=0.5</p><p>controller.image.width=237</p><p>machine.motors.stepsPerRev=1700</p><p>machine.pen.size=0.8</p><p>controller.page.width=300</p><p>controller.pixel.mask.color=00FF00</p><p>controller.machine.baudrate=9600</p><p>controller.vector.minLineLength=2</p><p>machine.width=410</p><p>controller.geomerative.polygonizer=1</p><p>controller.page.height=400</p><p>controller.vector.position.y=141.1</p><p>controller.background.colour=646464</p><p>controller.image.filename=</p><p>controller.vector.position.x=99.41</p><p>controller.homepoint.y=130</p><p>controller.guide.colour=FFFFFF</p><p>machine.motors.maxSpeed=1100</p><p>controller.homepoint.x=205</p><p>controller.density.preview.style=5</p><p>controller.pixel.scaling=1</p><p>controller.densitypreview.colour=000000</p><p>machine.height=585</p>
<p>source A4.</p>
Can you tell me which firmware you used (where did you download it from), and what modifications you made to it?<br><br>Great looking machine btw!<br><br><br>sn<br>
<p>how to upload settings to the controller figured out! the problem is the disparity between millimeters and distance, and a pen. here are my settings, what's the problem? # *** Polargraph properties file ***</p><p>#Thu Mar 16 20:24:11 MSK 2017</p><p>controller.pixel.samplearea=10</p><p>controller.pictureframe.position.y=15</p><p>controller.pictureframe.position.x=15</p><p>controller.testPenWidth.startSize=0.5</p><p>controller.machine.colour=969696</p><p>machine.motors.mmPerRev=37.68</p><p>controller.window.width=1366</p><p>controller.frame.colour=C80000</p><p>controller.image.position.y=357</p><p>controller.image.position.x=357</p><p>machine.motors.accel=400</p><p>controller.image.height=237</p><p>controller.machine.serialport=6</p><p>controller.window.height=706</p><p>controller.maxSegmentLength=2</p><p>controller.geomerative.polygonizerLength=1</p><p>machine.penlift.up=180</p><p>machine.penlift.down=90</p><p>controller.page.position.y=130</p><p>controller.vector.scaling=100</p><p>controller.page.position.x=55</p><p>controller.pictureframe.width=380</p><p>machine.step.multiplier=1</p><p>controller.grid.size=75.0</p><p>controller.testPenWidth.endSize=2</p><p>controller.pictureframe.height=555</p><p>controller.page.colour=DCDCDC</p><p>controller.testPenWidth.incrementSize=0.5</p><p>controller.image.width=237</p><p>machine.motors.stepsPerRev=400.0</p><p>machine.pen.size=0.8</p><p>controller.page.width=300</p><p>controller.pixel.mask.color=00FF00</p><p>controller.machine.baudrate=9600</p><p>controller.vector.minLineLength=2</p><p>machine.width=410</p><p>controller.geomerative.polygonizer=0</p><p>controller.page.height=400</p><p>controller.vector.position.y=330</p><p>controller.background.colour=646464</p><p>controller.image.filename=</p><p>controller.vector.position.x=205</p><p>controller.homepoint.y=530</p><p>controller.guide.colour=FFFFFF</p><p>machine.motors.maxSpeed=600</p><p>controller.homepoint.x=205</p><p>controller.density.preview.style=4</p><p>controller.pixel.scaling=1</p><p>controller.densitypreview.colour=000000</p><p>machine.height=585</p>
These look correct for a machine using:<br><br>- Motorshield v1<br>- 200 steps per revolution motors (because the machine uses an interleaved step style that doubles the number of addressable steps)<br>- 20mm diameter sprockets<br><br>You've got to describe a little more about <br>* what you did, <br>* what you expected, <br>* what actually happened.<br><br>
<p>hi. have a problem, I have not saved the last loaded configuration in the controller. connect. team engines perform. when checking port monitor is loaded parametry the same. how to load new settings into the controller?</p>
<p>Hi! I have Arduino UNO R3. Motor shield motor control. </p><p>The engine is 1.8 degrees (200 steps per revolution).<br>Gear diameter 12 mm Length of circumference of 37.68 mm<br><br>What settings should I put?<br>mm/Rev = ?<br>- steps/revolution = ?<br>- step Mulitplier = ?</p><p>Another question: On Arduino UNO, a possible micro-step?</p><p>Motor shield, control Board motors [L293D]</p><p>FL39ST 1.8&deg;, NEMA 16 (39 мм)</p><p>6 contacts , but I use 4 pins</p><p><a href="https://cdn.instructables.com/FBP/SQGH/IZ6CNAS4/FBPSQGHIZ6CNAS4.LARGE.jpg" rel="nofollow"></a></p>
<p>mmPerRev = 37.68</p><p>stepsPerRevolution = 400</p><p>stepMultiplier = 1</p><p>Microstepping is possible with that board, but you'll need to know how to change the code. It doesn't work very well either!</p>
<p>Motor shield, control Board motors [L293D]</p><p>FL39ST 1.8&deg;, NEMA 16 (39 мм)</p><p>6 contacts , but I use 4 pins</p>
<p>Hi! I have Arduino UNO R3. Motor shield motor control. <br>The engine is 1.8 degrees (200 steps per revolution).<br>Gear diameter 12 mm Length of circumference of 37.68 mm<br><br>What settings should I put?<br>mm/Rev = ?<br>- steps/revolution = ?<br>- step Mulitplier = ?</p><p>Another question: On Arduino UNO, a possible micro-step?</p>
Hello,<br><br>mmPerRev=37.68<br><br>The rest depends on which motor shield you're using.<br><br>Microstep is possible, but depends on the motor driver.<br><br>sn
Hi! Thanks for a great tutorial! My polargraph works very well. So I decided to install servo for better drawings. I think that the servo will raise the pen up when there is a white place in picture, so instead of simple lines there would be blank space. But it lift the gondola only at start and then at the end of drawing. So is there any trick to do this with simple (not SVG) image?
<p>I find that when I change the number for &quot;bright pixel&quot; then in some bright places my servo lift the gondola as I want. But with this change of bright pixel comes issue that my picture is more dark (you can see the change betwen left and right drawing). I just want same colours on drawings but with blank space instead of straight lines.<br> In Polargraph software there is button named &quot;Choose mask colour&quot; and I think it might be the right button for my problem but I don't get how it works. By clicking on my &quot;mask colour&quot; at image there isn't any feedback. I think it might work that I choose &quot;mask colour&quot; and any brighter colour then my &quot;mask colour&quot; is drawed as blank? Or just the one mask colour that I choose is drawn as blank? Or can I choose a multiple times and all that colours will be saved as mask colour? In that case there would have to be button named &quot;delete mask colour&quot;. <br>I'm confused :D</p>
Have just added a couple of pages on the wiki about these underdeveloped and confusing features!<br><br>https://github.com/euphy/polargraph/wiki/Masking-pixels<br>https://github.com/euphy/polargraph/wiki/Bright-pixel-and-Dark-pixel<br><br>I'm a bit stumped about the compression of the darkness. I can't think where it would occur in the code. Having a different pen width thickness would do it, remember that pen width thickness isn't saved between resets - you've always got to do it manually.<br><br>sn
Thanks for great explanation! I understand these functions now :). <br>Maybe I forgot to set the pen thickness during testing bright pixel function.
<p>Now I think is working, but my stepper motors are making strange noise (squeak and like boiling noise) and got hot very quick. Anyone can help? :) </p>
<p>What's more I've just noticed is that when I want my gondola to move right it is going down, and when I want it to go left it moves up :(</p>
<p>Did you get you problem solved?</p>
<p>switch motor cables. left &lt;&gt; right </p><p>OR(!)</p><p>change wire-couples -&gt; if red+blue is on the top connectors and black+green is on the bottom connectors, switch both pairs. Put red+blue down and black+green up.</p>
<p>Use only steppers with lower amp rating. Like 0.4A which is common with 30mm steppers. 1.3A motors can fry the L293D. 2.0A motors will fry it.</p>
I didn't find the RENDER VECTOR command <br>I foud RENDER PIXELS, is it the same ?! And it dosen't function <br>
<p>ok I asume that there is somthing I missed .. </p><p>Reder pixels after I select the area around the vector dosen't function propably </p>
Render pixel and render vector are entirely different and separate.<br><br>To render pixel, you load a bitmap image, and select an area of it.<br><br>To render a vector, you select an area you want to draw in, and &quot;set frame to area&quot;. <br>Then &quot;load vector&quot; and choose your SVG. <br>Then &quot;move vector&quot; and &quot;resize vector&quot; to place your vector artwork.<br>Only the area inside the frame (red crop marks at the corners) will be drawn, or be visible in the preview.<br>Click &quot;Draw vectors&quot; to build the commands to draw the vector.
<p>thanks I followed your instrctions .. </p><p>There is small problem I faced </p><p>The path is not good </p>
<p>hi there !!</p><p>Sorry for distarbance .. but I've no more time to submet my tech.project , and you helped me so mutch &quot;THANK YOU BRO&quot; .. I've just the path of the vectoŕ and how to compelement it or make it the same ?! </p>
<p>Stepper motors keep vibrating, they don't move when I set points. I think I'm doing wrong connections. Can you please tell me how to connect the stepper motors to the motor driver.</p>
<p>If you use adafruit shield you must connect the tearms of each coil within same side example:</p><p>1st chick the motor end tearms by ohm-meter to find where is the ends and the centertaps of the same coil.</p><p>M1 has two input junctions you must put the ends of the same coil in this two junctions</p>
<p>I tried all the permutations to connect the 4 wires coming out of Nema 17 to the motor driver.(24 permutations) No luck till now. For each combination, the stepper motor just vibrates. I have no idea what's wrong. What should I do?</p>
<p>OK!! </p><p>What about : STP-59D3012 /22545 (stepper motor) </p><p>Driver : adfruit shield </p><p>I think it's 12V motor with 6 pins </p><p>Can It be matched to gather?! </p><p>What about the programme ?! </p><p>If you help me I would be great happy with that .. because it's my final project to be graduated .</p><p>Thank you again ?</p>
<p>I think I found my misstake .. also thank you for your help </p><p>Some other quastions : </p><p># how to chose the location of the motor (R, L) m12 , m34 adafruit shield posision.</p><p>#how clearfy the imag and how to use SVG for that </p>
<p>For example, the figure in the file will be able to draw? Roughly A3 size. How long without losing quality.</p>
You'll just have to try it and see!
<p>hi there !!</p><p>The program ( arduino source ) perfictly downloaded ... but my steppers didn't work </p><p>I use 28BYJ-48 with ULN2003 </p><p>The servo perfectly works ..</p><p>I followed all the instructions that I found for definning the pins in configuration part </p><p>What did I miss and how to fix it ?!! </p><p>Thank you !! </p>
Hi sorry, I've never used this motor and driver myself.<br><br>First step: Make sure the steppers, and the stepper drivers work outside of Polargraph.
<p>Hi! There is an idea to upgrade your project. To communicate with the Arduino controller, via USB. I want to consult with you about the SVG format commands, which are transmitted to the line in port of the Arduino controller.</p><p>Question:</p><p>Commands from the SVG file in this format is passed to the controller? (example)</p><p>&lt;path d=&quot;M117.136 51.4184c0.245,0.035 0.4897,0.035 0.7349,0.1225&quot;/&gt;</p><p>&lt;path d=&quot;M117.871 51.5409c0.455,0.5424 0.5777,1.2773 0.4197,1.96&quot;/&gt;</p><p>&lt;path d=&quot;M118.29 53.5009 c-0.5774,2.345 -1.6098,4.6197 -3.1496,6.4923&quot;/&gt;</p><p>Understands the format controller?</p><p>Or they are transmitted in a different format?</p>
<p>Well! I understand that the SVG file can understand your device's firmware. To accomplish this you only need your controller software? Perhaps using another terminal application to transfer a SVG file?</p><p>Thank you!</p>

About This Instructable

406,181views

1,058favorites

License:

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: