• Dan
    August 13, 2017 at 15:38 #13771

    As part of building the spidercam/skycam system I started by doing a 4-motor zarplotter on a table. Once that’s working I’ll expand into the 3rd dimension. Fewer new things each version means less that can go wrong.

    Makelangelo-firmware and Makelangelo-software dev versions now support zarplotter.

    I feel there is something wrong in my math because the machine makes test moves and does not return to the home position when it is done. The Makelangelo 5 works flawlessly, but the Zarplotter is mad. Fairly certain it’s a configuration mistake. My table is 60.8×60.2cm, my motor mounts are 4.5cm on each side, and my plotter is 6cm on each side. it should be machine width = (60.8-15) and machine height = (60.2-15), then treat the plotter as a point. As the machine drives around I can hear it skipping and see the belt going slack when it should never happen. What am I missing right in front of my face?

    August 13, 2017 at 20:24 #13775

    Your doing a great job buddy,

    May i ask, Why are you using belts and not spools like the original zarplotter? would be easier and less messy i should think. and no slipping of the belt.

    just a thought
    Good luck
    Following closely

    August 16, 2017 at 01:42 #13786

    Hello Dan, Did you consider the position of the belts in each corner of the pen holder (6×6)? Angles could be slightly different if you consider the coordinates of each corner of the pen holder and meassure the lenght of each belt as the difference between the corner where it is attached and the motor position. I send you a picture by mail, I’m not able to send it from here..

    August 17, 2017 at 07:04 #13794

    I worked on a large-format vertical 4-motor machine, similar to Jurg Lehni’s Otto, and we had the same issues. Despite seeming like a simple trigonometric problem, we weren’t able to find an IK solution that maintained tension in all of the lines. We were also losing steps and weren’t really able to pinpoint where exactly that was happening (was it a bad stepper driver, bad IK code causing rounding errors, tension force overcoming the holding torque and skipping, etc.) to be able to diagnose and solve.

    Our end solution was to jog the machine to several pre-measured, marked coordinate points (we strung a regular grid of strings across the canvas), extract the stepper motor absolute step positions, and run a regression to on the step position vs. canvas coordinates to produce a best fit formula for IK. Even then, we still had to rely quite a bit on springs at the attachment points to deal with tension loss/gain and would need to re-home and re-tension the lines after an hour or two of use. It was not a pretty or particularly satisfying solution, but it got the bot functional enough to have running at an event.

    I’d love to see what changes you made to get the most recent improved results, if only to know where we were making the mistakes.

    August 17, 2017 at 09:36 #13797

    So… I know the motors are 45mm wide (from corner of table to point between idlers). I know the plotter is 60×60. I thought I could treat the pen holder as a point by saying machine width -= 15 and machine height -=15, then doing all my belt calculations from there.

    @kukomiguel made the post above suggesting maybe I’d optimized wrong. Fair point! So I removed the optimizations. Suddenly everything was looking good. What?! Well, who cares, it goes now.

    @jstoddart as for running 1h+, I haven’t yet. the beyonce drawing was ~20 minutes. I need a longer picture to see how it performs. Can I see a pic or vid of your machine? It sounds a lot like the one at the Interval of the Long Now (https://theinterval.org/)

    August 17, 2017 at 09:40 #13799

    @fishingincairns spools were used on the original makelangelo and they suck. the diameter of the spool is constantly changing as it winds up, and it’s worse when the string loops over itself in unpredictable ways. Then there’s the question of which string to use? I have belts on hand and I know them well. When you have a hammer, everything looks like a nail.

    August 17, 2017 at 09:42 #13800

    Do any of you have a 3d printer? I’d like to see some ideas for an automatic pen changer that the zarplotter could use. Something like maybe https://www.youtube.com/watch?v=JuZ5lk2J5p4

    August 17, 2017 at 10:24 #13801

    @Zarplotter is on our forums. Hello! FYI we won’t be selling this machine – instead I might sell the plans and let people figure the rest out themselves. I already plan to give full attribution for the idea to you and a link to your square page (for buying a zarplotter ready-made).

    August 17, 2017 at 12:19 #13808

    I feel good enough about the test drawings that I’ve now released the plans and the 3D printed files.

    ROBO-0048 Zarplotter table top drawing robot

    August 17, 2017 at 12:29 #13811

    I strongly recommend you use an electric drill to slowly drive in the M3x35 screws or your arm is going to be tiiiiiiiired…. so tired.

    August 18, 2017 at 10:33 #13818

    I was emailed two questions:

    Which motor goes to which RUMBA driver?

    NW: X
    NE: Y
    SW: Z
    SE: E0

    What gcode command moves the plotter?

    G0 is a rapid linear move
    G1 is a slow linear move

    G0 Xnnn Ynnn Znnn Fnnn

    Not all of the XYZF have to be used, but at least one must appear on the line.

    X – the amount of east-west movement in mm. X+ is right.
    Y – the amount of north-south movement in mm. Y+ is north.
    Z – the amount of up/down movement in degrees. 90 is pen fully down. Typically we find 120 is more than enough to lift the pen.
    F – the feed rate or speed of movement, in steps per minute. We have been running at a 12500 for XY and 600 for Z.

    You can find more about gcode here: http://reprap.org/wiki/G-code

    August 18, 2017 at 10:35 #13820

    Quality of drawing is notably affected by belt tension. The better they are tensioned, the better it draws. if even one belt loses tension… well, don’t do that.

    August 18, 2017 at 10:55 #13821

    Hello Dan, thank you very much for your answers.

    Can you share also the commands to move each of the steppers individually? It could be useful to add tensión to the belts.


    August 18, 2017 at 21:05 #13825

    Dan — here’s an image from our last deployment.

    <p style=” color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;”>A post shared by Jim Stoddart (@jimstoddart) on <time style=” font-family:Arial,sans-serif; font-size:14px; line-height:17px;” datetime=”2016-09-28T00:14:29+00:00″>Sep 27, 2016 at 5:14pm PDT</time></p></div>


    This one had a 2m x 2m drawing area, and we also did an earlier version on a canvas twice as wide:

    <p style=” color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;”>A post shared by Jim Stoddart (@jimstoddart) on <time style=” font-family:Arial,sans-serif; font-size:14px; line-height:17px;” datetime=”2016-05-04T12:03:41+00:00″>May 4, 2016 at 5:03am PDT</time></p></div>


    Not quite the precise Swiss construction of a Lehni (he also made the bot at The Interval), but it worked well (enough) for the limited budget.

    August 18, 2017 at 21:10 #13826

    Apparently, I can’t manage the Instagram embeds.
    V2 (image)
    V1 (time-lapse video)

    August 21, 2017 at 09:21 #13839


    D0 Rnnn Lnnn Unnn Vnnn

    you must have at least one of each LRUV. the nnn is a positive or negative whole number for number of steps. on a 1/16 microstepping motor that’s normally 400 steps it will take 6400 steps to move one full rotation, or 160 steps per mm.

    August 21, 2017 at 10:02 #13841

    I have a challenge for those of you following along with the zarplotter.

    The RUMBA board has room for two extra stepper motors. Can you design an add-on system that would let the system swap pens on its own?

    September 1, 2017 at 03:47 #13947

    Hello Dan,

    I have an issue with the movements using a RAMPS.

    When I send the command “G0 X20 Y00 F100” NW an SW motors should release cable and NE and SE motors should pull cable. What I see is that Motor NW doesn’t move.

    When I send G0 X00 Y20 F100 instead I see SE motor not moving. This is really strange.

    I tested also individual movements with the following commands with strange results:
    D0 L100 NE motor moves ok
    D0 R100 NW motor moves ok
    D0 U100 SW and D0 U-100 motor moves ok (but doesnt recognize the direction of the steps. It’s moving always in the same direction)
    D0 V100 SE motor moves ok

    Did you find the issue? I saw you sent a new version of the code, but not sure it fixed the issue.

    Why did it work for you with RUMBA and not in RAMPS?


    September 1, 2017 at 08:48 #13950

    The only thing that changes between RAMPS and RUMBA are the pin assignments. If your RAMPS isn’t working right, I’d try changing the driver first, then treat the RAMPS board itself as very suspicious.

    September 1, 2017 at 09:49 #13951

    I have acquired a RAMPs board and I’ve installed it. testing to begin shortly.

    September 1, 2017 at 10:25 #13952


    D1 L1.27323954

    if the pulley diameter is set to zero, the inverse kinematics fail in interesting ways. I’ve seen on the zarplotter that (from home position) X+anything does nothing, and Y+anything moves only a few of the motors, as you described.

    So… probably something with failing to initialize the pulley diameter. I’m strongly in favor of ripping out this pulley diameter changing code, since I only use one size of pulley ANYWAYS.

    September 1, 2017 at 10:27 #13953

    FYI, 1.27323954 is (20 teeth * 2mm per tooth) / pi = circumference of pulley.

    September 2, 2017 at 02:21 #13954

    Hello Dan, I tried applying D1 L1.27323954 command first but the system is behaving the same way.

    See the output:
    adjustPulleyDiameter dia=1.27

    When Sending several times:
    G0 X0
    G0 X1
    G0 X0
    G0 X1

    V stepper releases always the cable and L Stepper doesn’t move. Let’s wait for Rumba board to arrive to see if it works on RUMBA.

    Could the problem be because I’m not using the servo and somehow the code is misusing the steppers?

    Can you share your configure and the firmware config to check all your parameters like board size, plotter size, etc..? I’m not sure how to define the limits (if we need to use negative values for the bottom and left,etc..)


    September 2, 2017 at 13:15 #13957

    it sounds like your motors are inverted. What does “M102” say? It should reply

    I1 J-1 U1 V-1

    and if it doesn’t, try

    M101 I1 J-1 U1 V-1

    This is a way to reverse the direction of motors in software. Another method is to physically flip the wire where the motor attaches to the controller, which should only be done with power disconnected.

Viewing 25 posts - 1 through 25 (of 115 total)

You must be logged in to reply to this topic.

Save & Share Cart
Your Shopping Cart will be saved and you'll be given a link. You, or anyone with the link, can use it to retrieve your Cart at any time.
Back Save & Share Cart
Your Shopping Cart will be saved with Product pictures and information, and Cart Totals. Then send it to yourself, or a friend, with a link to retrieve it at any time.
Your cart email sent successfully :)