author
3Instructables643,586Views334CommentsEdinburgh, UK
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 can. I like pottery and lino cutting and photography, and I love the seaside, and the smell of hot solder. I have a few years of formal design training and design a small range of 3D printed jewellery, and a couple of other products I'm behind.

Achievements

100+ Comments Earned a bronze medal
10K+ Views Earned a bronze medal
Epilog Challenge
Contest Winner First Prize in the Epilog Challenge
Epilog Challenge
Contest Winner First Prize in the Epilog Challenge
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Very welcome - hope you got your machine scribbling nicely!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Nope, the reason for the dots and the lines is that each line is one "pixel", and once it's finished drawing it's pixel, it pauses to waits for the next command to be sent. That causes the ink to bleed out slightly.There's nothing that can be done about that, as long as you're running a machine over USB. Microstepping only really makes much difference for detailed vector drawings - and they tend to be slow too!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    That kind of scaling issue is usually where you've got a mismatch between the machine size as specified in the controller, and the size in the machine OR the actual physical spec of course! What might be interesting to see is a screenshot of your "setup" tab or a copy of your default.properties.txt file. And also a copy-paste of the text that comes up when you restart the arduino. So in processing, when you restart, there's a load of text that the machine puts into the serial port, you should be able to see it scroll past in the console, or use the serial monitor in the Arduino IDE to grab it. It starts with "POLARGRAPH ON!" and quickly states the current machine spec.My guess, from looking at your machine is mmPerRev = 30mm (ish)stepsPerRev = 200stepMultiplier = 8I al…

    see more »

    That kind of scaling issue is usually where you've got a mismatch between the machine size as specified in the controller, and the size in the machine OR the actual physical spec of course! What might be interesting to see is a screenshot of your "setup" tab or a copy of your default.properties.txt file. And also a copy-paste of the text that comes up when you restart the arduino. So in processing, when you restart, there's a load of text that the machine puts into the serial port, you should be able to see it scroll past in the console, or use the serial monitor in the Arduino IDE to grab it. It starts with "POLARGRAPH ON!" and quickly states the current machine spec.My guess, from looking at your machine is mmPerRev = 30mm (ish)stepsPerRev = 200stepMultiplier = 8I always set my machines to use 8x microstepping. That's usually done with a jumper setting on the board - yours might be different but that's worth double-checking.There isn't a right or wrong, they physical setting just needs to match whatever you've set the stepMultiplier to. Higher rate of microstepping makes things move more slowly (for the same given speed. Lower rates of microstepping start to lead to some jerky movement.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Hi Leon, how fast the machine can draw depends on a few things1) Motor max speed2) Acceleration speed and3) Line lengthLong lines allow the pen to accelerate up to it's maximum speed. Increasing the acceleration speed does the same thing!Very short lines are also slow though, because there's usually a very large number of them, and the communications protocol is very slow. It ends up spending more time sending commands to the machine than it does actually moving! There is no harm in setting the speed and acceleration very high (5000+). You will end up with skipping pen tips and jerky movement, but you might not mind that.Regards param1-6: When the polargraph machine receives a command like the one shown in your eg C01, 2342, 11294, END, the parts of it get split up by commas, and put into…

    see more »

    Hi Leon, how fast the machine can draw depends on a few things1) Motor max speed2) Acceleration speed and3) Line lengthLong lines allow the pen to accelerate up to it's maximum speed. Increasing the acceleration speed does the same thing!Very short lines are also slow though, because there's usually a very large number of them, and the communications protocol is very slow. It ends up spending more time sending commands to the machine than it does actually moving! There is no harm in setting the speed and acceleration very high (5000+). You will end up with skipping pen tips and jerky movement, but you might not mind that.Regards param1-6: When the polargraph machine receives a command like the one shown in your eg C01, 2342, 11294, END, the parts of it get split up by commas, and put into those param variables. So C01, 2342, 11294, END becomesinParam1="2342"inParam2="11294"There's a branching part of the code in https://github.com/euphy/polargraph_server_a1/blo... that looks at the whole command and decides what to do based on it. It sees that the command here starts with C01, and knows to call exec_changeLength() which in turn knows to find the two parameters in inParam1 and inParam2. It also knows that they are integers, so can convert them from the char array.Last question: This is hard to diagnose without more information. So I'll suggest a test.1. "upload machine spec"2. Physically move the pen to the home position.3. "set home"4. "move pen to point" - click just below your home point - a centimetre or two. - does the pen move there?5. "move direct" - click a bit lower down again - another centimetre or two - does the pen move there?6. "move pen to point" - click just to the left of the current point - does the pen move there?sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Brilliant! So glad to hear that!

    +1 thank you for the confirmation :)

    You've got an interesting viewpoint and describe a surprisingly rare use-case. Most IDEs exist in order to build an executable, which then runs outside of the IDE in a separate runtime environment.So Processing is a little different in that the IDE is designed to be used as the main interface to code sketches - it's conceived of as a notepad for sketches (hence programs are called sketches in Processing), so in fact, exporting the application and running it on its own is the unusual use-case! For one reason or another, it turns out that the runtime of an exported app is _not_ the same as the runtime of an app run from source, in the IDE. I don't know why, but this version of Processing is also many years old so I'm not surprised and I don't suppose it will ever get fixed. I've found worki…

    see more »

    You've got an interesting viewpoint and describe a surprisingly rare use-case. Most IDEs exist in order to build an executable, which then runs outside of the IDE in a separate runtime environment.So Processing is a little different in that the IDE is designed to be used as the main interface to code sketches - it's conceived of as a notepad for sketches (hence programs are called sketches in Processing), so in fact, exporting the application and running it on its own is the unusual use-case! For one reason or another, it turns out that the runtime of an exported app is _not_ the same as the runtime of an app run from source, in the IDE. I don't know why, but this version of Processing is also many years old so I'm not surprised and I don't suppose it will ever get fixed. I've found working with multiple JREs and processing in Windows to be very hit-and-miss, so in keeping with Processing normal practice, I usually recommend running the app through the IDE. It seems to encapsulate the java runtime in a fairly foolproof way that has allowed this app to continue to be useful despite no significant code change for five years.We probably aren't going to see eye to eye on this one since we clearly have quite radically different opinions of what "working software" means. Perhaps you have not retired as much as you think! Try harder. The great news is that as long as lots of people are still getting value and pleasure from polargraph (working well enough on a modern OS even after all these years), it genuinely doesn't matter what our fictional bosses would say about us.Good luck!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Hello! Yes, you're absolutely correct, the C25, PGXXABCD,END command isn't necessary. It's actually a command that used to be used to name the machine, but now it doesn't work anymore. You can ignore that error message.The spec that's in the machine must match the spec that's in the controller software. You can achieve that with "upload machine spec". This needs to be done once.The home point must be set. You can achieve that with "set home". This needs to be done every time the machine is reset, before you can move the pen.If they aren't done, then when you do the vector art, or a "move direct", the machine thinks that either the target point OR the start point is off the machine.So that's it - upload machine spec (once), set home (every time).

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    AroAro it's a shame you didn't manage to get this working, but for other readers I can re-state that this controller software requires Processing 2.2.1 (as clearly stated in the instructable) which still runs as fine as it every did, on modern PCs (Windows 10).Processing, and java things in has never been super-slick in Windows! But it still definitely works.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Hi there, I don't see anything in the pictures that describes what's actually happening - it all looks normal to me, the settings look right. There is a small margin applied to the drawing machine, points must be within 20 steps of the edges of the machine. Because your paper goes right to the edge, perhaps it's in that gap? 20 steps is awful tiny though.Can you "move direct" closer in the center of the machine? When you "set home" and then "move direct" only a few mm below the home point, what happens?I'm assuming that "move to point" works ok. That command does less checking of boundaries.sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Enable, step and direction pin numbers need to be set in configuration.ino (https://github.com/euphy/polargraph_server_a1/blob... and you also need to change polargraph_server_a1.ino to set to use SERIAL_STEPPER_DRIVERS (https://github.com/euphy/polargraph_server_a1/blob...That's all.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Yes, A4988 is fine. Have a look at what is written here for an explanation of how to configure Polargraph to use serial stepper drivers (like the A4988).https://github.com/euphy/polargraph_server_a1/blob/master/polargraph_server_a1.ino#L24

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Loading SVGs is a bit of a "black box" since it uses a separate library that I didn't write. The most practical suggestion I have is to try and save your SVG in another application. Sometimes it doesn't like SVGs created in Illustrator, but it is fine with the same artwork saved in Inkscape.Are there any error messages in the console when it fails?

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    The pen drop command is C13,END and pen lift is C14,END. You can create these commands and cause them to be put into the command queue with the "pen lift" and "pen drop" buttons, or with the hash key (#) and the apostrophe key (').You can also try typing those commands into the Arduino IDE serial monitor to eliminate the controller from your investigation.If you look at the console while you send the command you'll be able to tell if the command was received successfully or not - and you can then decide if it's a physical connection issue, or a software issue.sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Aha, the mac build of the controller caused some alerts so I removed it. I don't distribute a build of the mac version, you will need to compile it from source code - https://github.com/euphy/polargraph/wiki/Running-the-controller-from-source-code shows how.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    That error message means that the line OR the current position of the pen is outside the boundaries of the machine. This is usually because you haven't done a "set home" yet, so the pen itself if not yet recognised as being on the machine. But it may be that you have never successfully uploaded the machine spec - so the machine doesn't know how big it is. You do "upload machine spec" to do that.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    That error message means that the line OR the current position of the pen is outside the boundaries of the machine. This is usually because you haven't done a "set home" yet, so the pen itself if not yet recognised as being on the machine, but it may be that you have never successfully uploaded the machine spec - so the machine doesn't know how big it is.

    That's a good start, well done!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    That's ok, it's an old command that doesn't do anything anyway! The C29 is the most important one.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    It looks like you have connected - you are getting messages from the Arduino. However, it also looks like you have never managed to upload the machine spec, so the important settings of the arduino firmware haven't been initialised (see mmPerRev:nan).If the polargraphcontroller is only sending one command, you could try entering the commands manually using the serial monitor on the Arduino IDE. So you'd type C32,1242.0,END, and the other commands that get loaded into the command queue when you do "upload machine spec".

    A combination of pen tip size and grid size are what controls the squiggle, make sure you have a small pen tip size set (on the setup page) if you expect to have small pixels. Some extra explanation here https://github.com/euphy/polargraph/wiki/Empty-pixels.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Either 1) always make your machine taller than it is wide or 2) add the counterweights to a block-and-tackle (a pulley) and hang it on a loop of cord rather than on the end of the cord. You can see something like this here: http://www.polargraph.co.uk/2014/10/huge-portland-design-week-project/ and it's quite a common mod particularly for wall-sized machines where you can't just go taller.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Looks like your machine doesn't know what your pen tip size is (see the message on the right saying "max density for pen size: NaN", that is an indication).Upload your machine spec again until the pen size is received. Sometimes that doesn't work for some reason.The other issue is that your pixel size is very small, so it's possible that it won't be rendered anyway! But the pen size problem is the main one there.

    Polargraphcontroller is for Processing 2.2.1, it won't work in Processing 3.x.You could have a read through https://github.com/euphy/polargraph/wiki/Running-... for a little more of a guide on compiling the controller. You may be able to run the pre-compiled versions of it (bundled in the zip you'll find at https://github.com/euphy/polargraph/wiki/Running-... and save yourself the trouble of setting up Processing.Good luck,sn

    Good work - and good luck with your calibration :)

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    You need to specify the pen size. For this size of pixel size the pen should be very narrow. You could read https://github.com/euphy/polargraph/wiki/Empty-pixels to have a bit more explanation about it.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Depends on which motors you'd like to run, and the current is more important than voltage. You don't need continuously adjustable voltage though, selectable is fine.Look at something like https://www.amazon.com/dp/B07HG6WMB3/ref=cm_sw_em_r_mt_dp_U_xKSZCbMFNXH54 - 30 Watts is good and will be able to supply 2.5A, which is more than the motorshield will ever draw.The problem with these older motorshields is that you can't adjust current to the motors independently, it can only be done by increasing the voltage, and that's why it's nice to have an adjustable supply. If you know exactly what your motors are, and what torque you need, then you can spec the exact right power supply (voltage and current) for it. I could never work that out!

    Hello! That motorshield will work fine. Adafruit made the original one, but there are lots of clones out there now, they're all the same.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hi, thank you :)Your steppers are a bit overpowered for that shield, the L293D is usually rated to drive 600mA continously so piggy-backed still only gets you to 1.2A. Your chips may overheat - but that probably isn't what's causing the issue and I'd wait to see if it really happens.I am going to guess that the problem is that the motors are drawing literally all the current that's available, and so there's not actually enough to power the arduino any more. Additionally, you might be overcooking the voltage regulators on the arduino itself, but I think that would cause a different kind of failure (smoke!).You're correct that the usual approach is to power the shield separately, and that's what I show in this instructable. This separates the logic power supply (which powers the arduino and…

    see more »

    Hi, thank you :)Your steppers are a bit overpowered for that shield, the L293D is usually rated to drive 600mA continously so piggy-backed still only gets you to 1.2A. Your chips may overheat - but that probably isn't what's causing the issue and I'd wait to see if it really happens.I am going to guess that the problem is that the motors are drawing literally all the current that's available, and so there's not actually enough to power the arduino any more. Additionally, you might be overcooking the voltage regulators on the arduino itself, but I think that would cause a different kind of failure (smoke!).You're correct that the usual approach is to power the shield separately, and that's what I show in this instructable. This separates the logic power supply (which powers the arduino and the L293Ds) from the high-voltage motor power supply (which is controlled _by_ the L293Ds to drive the stepper motors). There's a note about this here: https://learn.adafruit.com/adafruit-motor-shield/p...2x motors @ 1.7A each means that you're asking your power supply to bring 3.2A. Your 12v 3A supply will _probably_ be OK to be your high voltage motor power supply since I think the L293Ds will overheat before the power supply does. So you'd wire that into the PWR_EXT block on the motorshield and remove the motorshield power jumper. You can power the arduino (logic) by USB.Good luck!sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    It will work ok with a completely vertical surface, but you'll need to be a bit more careful about your pen, the balance and weighting of the gondola, and the speed of movement. Personally, I always prefer to use a slightly inclined surface. It puts a bit more weight behind the pen tip, and so movements can be a bit quicker and more sure.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    The motor you're using won't make a difference, this is entirely a setup issue. You need to "upload machine spec" once.Then you need to "set home" each time you reset.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    mm per rev = you could easily measure this yourself, or work it out from the information you have: teeth x pitch = 20 x 2 = 40 mm per rev.step per rev = your motors have it written on them: 1.8 degree per step = 360/1.8 = 200step multiplier = 1 because the ULN2003 does not do microsteppingengine max speed, motor acceleration = who knows? Test it and see when it starts dropping steps. You won't damage anything.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hello Erwin! The mm per rev needs to be the same as the circumference of your pulley wheels.steps/rev for that motor is (I believe!) 4096 (because it's a 48 step motor with a 64:1 gearbox on it)motor max speed and acceleration ... I have no idea. I see reports of these motors turning at 25rpm, which is 25*4096=102400! I know an arduino won't step that fast. The steps are so small with this motor that I doubt you will ever be in danger of stepping too fast. Start with 5000!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    This looks great! I really want to build one like that!

    If the port seems busy, then you may already have something else connected to it - like the Arduino serial monitor perhaps?

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hi the instructable has all the pictures and instruction that you need.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Sorry I don't think I can make sense of the question without seeing the actual source image. What is the difference between the white output and the black output? What did you do differently?

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Choose "select area" to select the area that you want to draw, then "set frame to area". The frame is a cropping area, shown with the red marks at the corner.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    You're very welcome! Glad you got it built, and thank you for your enthusiasm and patience :) I think you probably have a knack for it.You'll kick yourself though - solid square wave is exactly that - Solid, there's no variation. It's meant to be like that. Step 22 says "This shades every pixel at maximum density, no variation." and it's used in blocky, multi-layer drawings like the penguin logo in that step.When looking at the preview, notice that the pixel style is chosen AFTER doing the preview, so how the preview looks is not at all related to how it will draw. It's intended as an illustration of the density range that MAY be expressed, rather than what it actually generated. When you "draw pixels" and pause the queue, you'll see another set of preview lines and do…

    see more »

    You're very welcome! Glad you got it built, and thank you for your enthusiasm and patience :) I think you probably have a knack for it.You'll kick yourself though - solid square wave is exactly that - Solid, there's no variation. It's meant to be like that. Step 22 says "This shades every pixel at maximum density, no variation." and it's used in blocky, multi-layer drawings like the penguin logo in that step.When looking at the preview, notice that the pixel style is chosen AFTER doing the preview, so how the preview looks is not at all related to how it will draw. It's intended as an illustration of the density range that MAY be expressed, rather than what it actually generated. When you "draw pixels" and pause the queue, you'll see another set of preview lines and dots in red, and the colour of the dots represents the real density of the draw pixels. You'll find they're all the same with "shade solid".It's not very intuitive, I'm sorry!Use the "variable" pixel styles to render different densities.Thanks again, happy scribbling :)

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    You need to find out which pairs of wires are connected to the two coils in the motor. You can use an ohmmeter to do that - if there is a complete circuit between two of the wires, then it means they are connected and are the equivalent of the red and blue pair, or the yellow and white pair.The other two wires from your motor will form the other coil.

    Did you read the instructable? Step 10 describes how to figure this out.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Thank you, glad you're enjoying it and got it working!There isn't a "simple" way to just put direct coordinates into the controller. You can easily build commands to do straight-line moves and create a list of those commands and then import that list into the controller ... you use C17 commands:C17,1000,2000,END which would draw a straight line from wherever the pen currently is to a point which is 1000 motor steps from the left motor, and 2000 motor steps from the right motor.So you see why that's not very helpful or easy to use - it uses the native coordinates system of the machine, rather than a cartesian x/y system, so you would have to do some conversion.However, you can load SVG files into the controller ("load vector"), and that's what I suggest. Use your curren…

    see more »

    Thank you, glad you're enjoying it and got it working!There isn't a "simple" way to just put direct coordinates into the controller. You can easily build commands to do straight-line moves and create a list of those commands and then import that list into the controller ... you use C17 commands:C17,1000,2000,END which would draw a straight line from wherever the pen currently is to a point which is 1000 motor steps from the left motor, and 2000 motor steps from the right motor.So you see why that's not very helpful or easy to use - it uses the native coordinates system of the machine, rather than a cartesian x/y system, so you would have to do some conversion.However, you can load SVG files into the controller ("load vector"), and that's what I suggest. Use your current pattern generator to output the pattern as an SVG file (or a PDF and then use something like inkscape to convert it to SVG). Then load that SVG into the Polargraph Controller.If the exact size of the drawn shape is important, that's more difficult, I can't remember how the vector scaling works - whether 100% means it's millimetre accurate, or if there's an arbitrary scaling factor.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Do you mean the white wire with the power jack socket on it? It's the wire for the power supply.It's fastened into the EXT_PWR (external DC power input) screw terminal. It's simply an inline power socket jack (something like this: https://www.rapidonline.com/truconnect-std-2-1mm-dc-power-line-socket-20-1066).Unless you use that power input terminal, the motors will run off the same power source as the arduino and the logic on the driver board, which means it might reset itself when there is high current draw. (see https://learn.adafruit.com/adafruit-motor-shield/power-requirements for an explanation.)

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Adam, thanks for your comment - I'll see what I can do but that's a serious piece of work and pretty unlikely.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Thank you! What a nice message, so great to get feedback and I love that you found the instructable useful :)Happy scribbling!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hi Jake, what does your pen width test look like? I assume you've already done this since you've tried everything :)Have a read through https://github.com/euphy/polargraph/wiki/Empty-pixels and see if that sheds any light on the subject. Roughly speaking, make the grid very large, and see if it makes any difference.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    I'm sticking to my first guess: Power supply issues! It might just be a faulty Arduino, it might be a less capable USB power connection. Really difficult to say. Is your pen lift servo motor wired up in both cases (the working case, and the non-working case)?Does the pen lift work?

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Good to hear :)

    Ok. The error that describes the exact thing you're getting stuck with - you really should have led with this."You probably won't get any detail in this"(Literally a description of what the problem was - no detail in the pixel.)"Max density for pen size 1.0 row size 14 is 1"(With a pen size of 1mm, and a grid size of 14, the max density range you can express is 1. There is only room to express one level of darkness in the pixel.)Simply put, the pen is too large. The grid is too small.https://github.com/euphy/polargraph/wiki/Empty-pixels

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    If there's no difference between the computers (they have the exact same default.properties.txt), and you're making the exact same moves, then I can't imagine why something could be different. Is there any chance the machine (the arduino) is resetting? The pen drops and lifts automatically when the machine resets ... and it would explain the whizzing. Keep an eye on the console while it does it, also the LEDs flash when the machine resets... Any chance?

    View Instructable »
  • Euphy made the instructable Polargraph Drawing Machine
    Polargraph Drawing Machine

    Hi, so if I set up my controller like yours, and I choose "solid square wave", then I get the exact same issue. Each of the commands are of the form C05,xxx,xxx,10,0,END. That means a pixel 10 steps square, with a brightness of 0 (ie full black).Can you show my a portion of your command queue?If I choose "variable frequency square wave" I get a preview that shows variable pixels:I'm not saying I don't believe you've tried it ... but give it another shot please.Select area, Render pixels, Variable frequency square wave, Generate commands, take a screenshot, including a segment that shows the "render pixels" window, and a portion of the command queue please.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Does this problem occur with all pixel styles? Remember one of the pixel styles is "shade solid" which does not do any variation in the shading.Does it occur if you quadruple the grid size and set the pen size to be very small?

    That problem of whizzing off the top of the machine can be caused more than one way:1. Uploaded machine spec isn't correct. The machine has the wrong idea about the size and shape of the surface, so "set home" indicates the wrong location.2. Not doing set home.You can test the setup easily by selecting a wide area and doing a "draw outline".

    Interesting. If "draw outline" isn't working, it should be giving you and error instead - might be visible in the console in the Processing IDE if you use that, or it will show up at the far right, in the error log (like the error shown in your picture has). I'd expect it to say something like "line not on page, skipping it" or some such.Straight line functions like "draw outline" or "move pen direct" check to see if the pen is on the page before moving, and will block the move if the start OR end of the line isn't on the addressable surface of the machine.Commands like "move pen", "set home" and most of the pixel styles do not do this check, so they can be used to send commands that don't make sense, and the machine will still t…

    see more »

    Interesting. If "draw outline" isn't working, it should be giving you and error instead - might be visible in the console in the Processing IDE if you use that, or it will show up at the far right, in the error log (like the error shown in your picture has). I'd expect it to say something like "line not on page, skipping it" or some such.Straight line functions like "draw outline" or "move pen direct" check to see if the pen is on the page before moving, and will block the move if the start OR end of the line isn't on the addressable surface of the machine.Commands like "move pen", "set home" and most of the pixel styles do not do this check, so they can be used to send commands that don't make sense, and the machine will still try to execute them.The C25 error is annoying, but harmless, it doesn't prevent anything else from working, so I'm assuming the machine spec is successfully uploaded. If you pop up the console with ctrl+c, then reset the arduino with the reset button, what does it say when it boots up? It'll normally list it's size and specification. Make sure that's the same as what you've got in your machine spec.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hi I'm not sure I understand your question. It looks like you've done a "render pixels". The red lines who a preview of the commands that are in the command queue. What's the problem? What are you expecting, what actually happens?

    Sometimes this can be a power supply problem, where motors draw so much power that they cause the arduino to reset. But this is usually if you're trying to power the motors from the USB power.With an Adafruit motor shield, the servo motor (the pen lift) runs off USB power, regardless of whether you are using an external PSU or not. So sometimes a malfunctioning servo can cause a reset like this - or the servo plugged in the wrong way around!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Drawing looks great though! Is the little dot at the end of each line just a pen bounce?So this is a puzzle. It's true that it's possible to burn out a motor driver - though it's hard to do. It's possible that you can have a bad Arduino, (or more likely - a bad USB cable). I know that sounds pretty unlikely, and you'd think it will either just work or not work, but I've seen a new USB cable fix weird problems before.In the software, there is nothing that can really "be broken". It is possible in principle for the firmware to get corrupted somehow, but it'd be fixed by re-uploading the firmware. You probably already have tried that, if not, try it.However! You aren't alone: There is a problem that's been reported a few times - https://github.com/euphy/polargraph_server_polarshiel…

    see more »

    Drawing looks great though! Is the little dot at the end of each line just a pen bounce?So this is a puzzle. It's true that it's possible to burn out a motor driver - though it's hard to do. It's possible that you can have a bad Arduino, (or more likely - a bad USB cable). I know that sounds pretty unlikely, and you'd think it will either just work or not work, but I've seen a new USB cable fix weird problems before.In the software, there is nothing that can really "be broken". It is possible in principle for the firmware to get corrupted somehow, but it'd be fixed by re-uploading the firmware. You probably already have tried that, if not, try it.However! You aren't alone: There is a problem that's been reported a few times - https://github.com/euphy/polargraph_server_polarshield/issues/9#issuecomment-288594697 now this person is using the Polarshield variant of the codebase, but it's quite similar and both versions are probably susceptible to whatever's going on.There's a thread here http://www.polargraph.co.uk/forum/polargraphs-group2/troubleshooting-forum5/busy-message-after-initiating-controller-thread476/ that might be relevant too.The bad news is that in this person's case, and in the other case that he mentions on the forum, "it fixed itself". The creator of the github issue noted that his mmPerRev had been loaded incorrectly (it was nan), and so other calculations based on that number didn't work. It'll be worth checking yours too.So, lots of words, no real help. Some things to try:1. What happens when you turn the machine on, and connect to it using the Arduino serial monitor? 57600 baud. You can post the output of the arduino here.2. Disconnect the motorshield completely to take it out of the equation.3. Re-upload the same firmware as you did before.4. Re-upload the machine spec that you did before.good luck!sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    You can modify the position and size of the page on the SETUP tab.You can modify the home point position on the SETUP tab too.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hi I'm not sure I understand your first question.2. There is a physical limit to how fast motors can accelerate and move. 1200 should be very possible though - the arduino can step that fast.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    In a well-tuned, quite vertical machine, the gondola design you show (designed and built by expert drawbot operator Kongorilla) is just perfect. It is a more balanced and elegant design than the standard Polargraph gondola.The standard Polargraph gondola is heavier and has the stabiliser that prevents it from twisting too much. This makes it more tolerant of angled surfaces, faster speeds, basically you can be sloppier with it, and it'll still run fine. That is my opinion - Kongorilla may disagree though - after all he has experience of both, whereas I've only really used my own design. Send him a note on flickr!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    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 "move" commands. The coordinates system uses motor steps as it's unit of measurement.Here's a link to the code that does it:https://github.com/euphy/polargraphcontroller/blob/master/Machine.pde#L314-L329Reference for the commands: https://github.com/euphy/polargraph/wiki/Polargraph-machine-commands-and-responsesSmoothness 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.If you mean smoothness to refer to the pauses betw…

    see more »

    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 "move" commands. The coordinates system uses motor steps as it's unit of measurement.Here's a link to the code that does it:https://github.com/euphy/polargraphcontroller/blob/master/Machine.pde#L314-L329Reference for the commands: https://github.com/euphy/polargraph/wiki/Polargraph-machine-commands-and-responsesSmoothness 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.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.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.

    I'm not sure I understand what you mean by the beginning of the line coincides with the home point.You can do this easily, just "set home", the "pen down", and then "move pen" to wherever you want it. Arrange your artwork so it is over the home point. If that's what you mean!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.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Flat out :) http://polargraph.bigcartel.com/product/polargraph-sd-assembled-tested has the most advanced PolargraphSD product listed!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    I'm not positive that I understand your message, but I'll do my best :)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.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.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 "crazy settings"), does it get to almost the right size?

    It's a little old, but it all looks fine to me.I just want to check - you are doing an "upload machine spec" aren't you?Code looks ok, and settings look ok too.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    I'm asking you which firmware you used, so I can help diagnose the problem.

    Can you tell me which firmware you used (where did you download it from), and what modifications you made to it?Great looking machine btw!sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    These look correct for a machine using:- Motorshield v1- 200 steps per revolution motors (because the machine uses an interleaved step style that doubles the number of addressable steps)- 20mm diameter sprocketsYou've got to describe a little more about * what you did, * what you expected, * what actually happened.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    mmPerRev = 37.68stepsPerRevolution = 400stepMultiplier = 1Microstepping is possible with that board, but you'll need to know how to change the code. It doesn't work very well either!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hello,mmPerRev=37.68The rest depends on which motor shield you're using.Microstep is possible, but depends on the motor driver.sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Have just added a couple of pages on the wiki about these underdeveloped and confusing features!https://github.com/euphy/polargraph/wiki/Masking-pixelshttps://github.com/euphy/polargraph/wiki/Bright-pixel-and-Dark-pixelI'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.sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Render pixel and render vector are entirely different and separate.To render pixel, you load a bitmap image, and select an area of it.To render a vector, you select an area you want to draw in, and "set frame to area". Then "load vector" and choose your SVG. Then "move vector" and "resize vector" to place your vector artwork.Only the area inside the frame (red crop marks at the corners) will be drawn, or be visible in the preview.Click "Draw vectors" to build the commands to draw the vector.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hi sorry, I've never used this motor and driver myself.First step: Make sure the steppers, and the stepper drivers work outside of Polargraph.

    You'll just have to try it and see!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    The controller software can load SVGs and then sends movement commands to the device one by one.The communication protocol is a bit like g-code, but it isn't the same.There isn't a way to send raw SVG.A motor control board with two L293Ds is a good one to use. If it isn't like this one (http://playground.arduino.cc/Main/AdafruitMotorShield), then you will have to define the control pins and do the motor setup in the firmware yourself.Good luck!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Nope, Polargraph doesn't read g-code sorry.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Great looking set up Mauro, and nice curved lines at least :)Have a look at: https://github.com/euphy/polargraph/wiki/Empty-pix... and see if anything there helps. Good luck!

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hi exactly yes, spiral pixel only works on a MEGA-based Polargraph machine, not an UNO-based one unfortunately. There's not enough memory on the UNO for the curve routines!The machine tells the controller what kind of machine it is when it connects, and the controller will only show the features that it knows that machine can actually execute.sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Hurray!

    You need to upload machine spec, and then "set home".

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Ok looks completely different to me - I'm not sure what you're expecting to see?The preview shows the density of each "pixel" as a circle shaded from deep red (high density) to white (low density). The ones that are over the black areas are red, ie high density. The ones over the white areas are white, ie low density (or empty).They are very small, so it's quite difficult to see, I'm not sure why that is, or what controls the size of those indicators.What I believe you'll find though, is that your machine is unlikely to be able to render those pixels very well. For such small pixels, you really need a very narrow pen too. If the machine can't fit much shading into a pixel, it tends to either render everything as blank, or everything as solid (there's a bit of a guide to this her…

    see more »

    Ok looks completely different to me - I'm not sure what you're expecting to see?The preview shows the density of each "pixel" as a circle shaded from deep red (high density) to white (low density). The ones that are over the black areas are red, ie high density. The ones over the white areas are white, ie low density (or empty).They are very small, so it's quite difficult to see, I'm not sure why that is, or what controls the size of those indicators.What I believe you'll find though, is that your machine is unlikely to be able to render those pixels very well. For such small pixels, you really need a very narrow pen too. If the machine can't fit much shading into a pixel, it tends to either render everything as blank, or everything as solid (there's a bit of a guide to this here: https://github.com/euphy/polargraph/wiki/Empty-pix... )Do you get any error messages in the error log (to the right-hand side of the command queue) when you press "generate commands"? If you don't, then you might be ok!sn

    Hi Dominik! I scratched my head at this one, but I spotted the problem:"Solid square wave" is exactly that, it's solid and there's no shading. It's always at maximum black. All of the others do shading! Marilyn is done with variable frequency square wave.sn

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    The error is nothing to worry about - just an old command that doesn't do anything any more.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Well, like every arduino program, it runs setup() (https://github.com/euphy/polargraph_server_a1/blob... as soon as it boots.You could put your pre-set list of commands at the end of that procedure.Remember though that you need to calibrate the initial start position of the gondola before any movement will work though.This is usually done using the exec_setPosition() procedure (https://github.com/euphy/polargraph_server_a1/blob... but there's no reason why you can't just copy those commands into setup().Remember the coordinates system that the machine uses internally is distance from points A and B (left-hand spool and right-hand spool), and the units are motor steps.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    You'd need some way of building the set of instructions that would form the text (set of coordinates to move to, lift pen up, put pen down etc), and once you have those it'd be quite easy to sequence them.A series of changeLength(...) commands.

    View Instructable »
  • Euphy commented on Euphy's instructable Polargraph Drawing Machine

    Ok, "this point falls outside the machine" and "line not on the page skipping it".These both mean either:Machine is not set up (do this with "upload machine spec")orHome point is not set (do this with "set home")or both.Every time you change the machine size, or motor settings you must "upload machine spec".Every time you turn the machine on, you must "set home".When you say you "almost made all the adjustments", which ones did you _not_ make?Someone else's configuration file would have their machine size and their motor settings in - how would it be useful to you?

    View Instructable »