Zarplotter 4-motor drawing machine

Shop Forum Everything Else Zarplotter 4-motor drawing machine


Viewing 25 posts - 51 through 75 (of 115 total)
  • Author
  • #15550

    can I make Zarplotter 2000 mm by 2000 mm ?


    The software allows it. The hardware should be able to handle it. Try and report your results. We are here to help 🙂


    I added to the file zarplotter.h
    #define HAS_SD // comment this out if there is no SD card
    #define HAS_LCD // comment this out if there is no SMART LCD controller
    and i see in monitor arduino
    17 Change to black
    Click to continue

    if click i see

    The path of the gondola on the display in Makelangelo-7.15.3-with-dependencies.jar and the path drawn – do not match, you can not see where the gondola is at the moment. Judging by the display, it spins around the home position.

    In all versions, after pressing the “pause” button, the servo lifts the pencil, after “unpause” the machine continues to work from the stopped place, but the pencil remains raised.


    Firmware v8
    == ==
    M100 – display this message
    M101 [Tx.xx] [Bx.xx] [Rx.xx] [Lx.xx]
    – display/update board dimensions.
    As well as the following G-codes (

    Firmware v8
    == ==
    M100 – display this message
    M101 [Tx.xx] [Bx.xx] [Rx.xx] [Lx.xx]
    – display/update board dimensions.
    As well as the following G-codes (

    > D10 V6
    M101 A0 T1000 B-1000
    M101 A1 T1000 B-1000
    M101 A2 T170 B10
    G92 X0.0 Y0.0
    D6 X0 Y0
    G0 F6500 A7000

    > (-1000.00,0.00,10.00) – (1000.00,1000.00,0.00)

    > Saving dimensions.
    (-1000.00,-1000.00,10.00) – (1000.00,1000.00,0.00)

    > Saving dimensions.
    (-1000.00,-1000.00,10.00) – (1000.00,1000.00,170.00)

    N8 M117*44
    N9 G00 X110.526 Y-289.474*57
    BADLINENUM 0 // ?? marked in red

    N0 G90*16
    BADLINENUM 0 // ?? marked in red

    N0 G90*16
    N1 G00 F500 Z45*48
    BADLINENUM 1 // ?? marked in red

    N1 G00 F500 Z45*48
    N2 G00 F6500*126
    BADLINENUM 2 // ?? marked in red

    N2 G00 F6500*126
    N3 M06 T0*82
    BADLINENUM 3 // ?? marked in red

    N3 M06 T0*82
    N4 G00 F5500 A7000*29
    BADLINENUM 4 // ?? marked in red

    N4 G00 F5500 A7000*29
    N5 M117 Change to black Click to continue*47
    BADLINENUM 5 // ?? marked in red

    N5 M117 Change to black Click to continue*47
    N6 M300 S60 P250*20
    BADLINENUM 6 // ?? marked in red

    N6 M300 S60 P250*20
    N7 M226*34
    BADLINENUM 7 // ?? marked in red

    N7 M226*34
    generate art “Fibonacci”
    G00 F500 Z45
    G00 F6500
    Generator=Dragon Fractal
    4104 line segments. 4382.417cm Estimated draw time: 13m6s .
    Generator=Fibonacci Spiral Fractal
    184 line segments. 961.2917cm Estimated draw time: 1m4s .
    M110 N0
    N0 G90*16
    BADLINENUM 8 // ?? marked in red

    N8 M117*44
    BADLINENUM 1 // ?? marked in red

    N1 G00 F500 Z45*48
    N2 G00 F6500*126
    N3 M06 T0*82
    N4 G00 F5500 A7000*29
    N5 M117 Change to black Click to continue*47 // ??
    N6 M300 S60 P250*20
    N7 M226*34
    N8 M117*44
    N9 G00 X-309.524 Y500*46
    N10 G01 F500 Z100*49
    N11 G01 F5500*78
    N12 G01 X309.524 Y500*56
    N13 G01 X309.524 Y-119.048*10
    N14 G01 X-309.524 Y-119.048*32
    N15 G01 X-309.524 Y500*18
    N16 G01 X-309.524 Y500*17
    N17 G01 X-276.987 Y499.144*2
    N18 G01 X-241.161 Y496.214*0
    N19 G01 X-201.942 Y490.58*48
    N20 G01 X-159.383 Y481.517*13
    N21 G01 X-113.764 Y468.233*9
    N22 G01 X-65.669 Y449.947*61
    N23 G01 X-16.033 Y426.006*52
    N24 G01 X33.862 Y396.031*29
    N25 G01 X82.481 Y360.069*19
    N26 G01 X128.209 Y318.685*44
    N27 G01 X169.593 Y272.957*33
    N28 G01 X205.555 Y224.338*45
    N29 G01 X235.53 Y174.443*17
    N30 G01 X259.471 Y124.807*46
    N31 G01 X277.756 Y76.712*24
    N32 G01 X291.041 Y31.093*31
    N33 G01 X300.104 Y-11.466*54
    N34 G01 X305.738 Y-50.685*55
    N35 G01 X308.668 Y-86.511*58
    N36 G01 X309.524 Y-119.048*13
    N37 G01 X309.524 Y-500*18
    N38 G01 X-71.429 Y-500*0
    N39 G01 X-71.429 Y-119.048*31
    N40 G01 X309.524 Y-119.048*12
    N41 G01 X309.524 Y-119.048*13
    N42 G01 X308.997 Y-139.07*50
    N43 G01 X307.194 Y-161.117*10
    N44 G01 X303.727 Y-185.252*15
    N45 G01 X298.15 Y-211.442*50
    N46 G01 X289.975 Y-239.515*7
    N47 G01 X278.722 Y-269.112*2
    N48 G01 X263.989 Y-299.657*1
    N49 G01 X245.543 Y-330.362*15
    N50 G01 X223.412 Y-360.281*11
    N51 G01 X197.945 Y-388.422*0
    N52 G01 X169.805 Y-413.888*14
    N53 G01 X139.886 Y-436.019*6
    N54 G01 X109.181 Y-454.465*7
    N55 G01 X78.636 Y-469.198*51
    N56 G01 X49.039 Y-480.451*60
    N57 G01 X20.966 Y-488.626*59
    N58 G01 X-5.225 Y-494.203*44
    N59 G01 X-29.359 Y-497.67*42
    N60 G01 X-51.406 Y-499.473*29
    N61 G01 X-71.429 Y-500*12
    N62 G01 X-309.524 Y-500*63
    N63 G01 X-309.524 Y-261.905*44
    N64 G01 X-71.429 Y-261.905*27
    N65 G01 X-71.429 Y-500*8
    N66 G01 X-71.429 Y-500*11
    N67 G01 X-83.943 Y-499.671*25
    N68 G01 X-97.722 Y-498.544*30
    N69 G01 X-112.806 Y-496.377*34
    N70 G01 X-129.175 Y-492.891*40
    N71 G01 X-146.721 Y-487.782*46
    N72 G01 X-165.219 Y-480.749*34
    N73 G01 X-184.31 Y-471.541*16
    N74 G01 X-203.5 Y-460.012*47
    N75 G01 X-222.199 Y-446.18*23
    N76 G01 X-239.787 Y-430.264*47
    N77 G01 X-255.704 Y-412.676*40
    N78 G01 X-269.536 Y-393.976*42
    N79 G01 X-281.065 Y-374.786*38
    N80 G01 X-290.273 Y-355.695*37
    N81 G01 X-297.306 Y-337.197*33
    N82 G01 X-302.415 Y-319.651*43
    N83 G01 X-305.901 Y-303.282*36
    N84 G01 X-308.068 Y-288.198*34
    N85 G01 X-309.195 Y-274.419*46
    N86 G01 X-309.524 Y-261.905*39
    N87 G01 X-309.524 Y-119.048*42
    N88 G01 X-166.667 Y-119.048*42
    N89 G01 X-166.667 Y-261.905*39
    N90 G01 X-309.524 Y-261.905*32
    N91 G01 X-309.524 Y-261.905*33
    N92 G01 X-309.326 Y-254.396*32
    N93 G01 X-308.65 Y-246.129*17
    N94 G01 X-307.35 Y-237.078*31
    N95 G01 X-305.258 Y-227.257*43
    N96 G01 X-302.193 Y-216.729*37
    N97 G01 X-297.973 Y-205.631*37
    N98 G01 X-292.448 Y-194.176*37
    N99 G01 X-285.531 Y-182.662*40
    N100 G01 X-277.232 Y-171.442*28
    N101 G01 X-267.682 Y-160.889*24
    N102 G01 X-257.129 Y-151.339*28
    N103 G01 X-245.91 Y-143.04*18
    N104 G01 X-234.395 Y-136.123*18
    N105 G01 X-222.941 Y-130.598*21
    N106 G01 X-211.842 Y-126.379*26
    N107 G01 X-201.315 Y-123.313*26
    N108 G01 X-191.493 Y-121.221*20
    N109 G01 X-182.443 Y-119.921*26
    N110 G01 X-174.175 Y-119.245*18
    N111 G01 X-166.667 Y-119.048*27
    N112 G01 X-71.429 Y-119.048*39
    N113 G01 X-71.429 Y-214.286*40
    N114 G01 X-166.667 Y-214.286*16
    N115 G01 X-166.667 Y-119.048*31
    N116 G01 X-166.667 Y-119.048*28
    N117 G01 X-161.661 Y-119.179*31
    N118 G01 X-156.149 Y-119.63*35
    N119 G01 X-150.116 Y-120.497*27
    N120 G01 X-143.568 Y-121.891*21
    N121 G01 X-136.55 Y-123.935*32
    N122 G01 X-129.151 Y-126.748*25
    N123 G01 X-121.514 Y-130.431*31
    N124 G01 X-113.838 Y-135.043*30
    N125 G01 X-106.358 Y-140.575*20
    N126 G01 X-99.323 Y-146.942*34
    N127 G01 X-92.956 Y-153.977*34
    N128 G01 X-87.424 Y-161.457*47
    N129 G01 X-82.812 Y-169.133*45
    N130 G01 X-79.129 Y-176.77*31
    N131 G01 X-76.316 Y-184.169*44
    N132 G01 X-74.272 Y-191.187*42
    N133 G01 X-72.878 Y-197.735*36
    N134 G01 X-72.011 Y-203.768*34
    N135 G01 X-71.56 Y-209.28*42
    N136 G01 X-71.429 Y-214.286*47
    N137 G01 X-71.429 Y-261.905*44
    N138 G01 X-119.048 Y-261.905*31
    N139 G01 X-119.048 Y-214.286*28
    N140 G01 X-71.429 Y-214.286*46
    N141 G01 X-71.429 Y-214.286*47
    N142 G01 X-71.494 Y-216.789*34
    N143 G01 X-71.72 Y-219.544*19
    N144 G01 X-72.153 Y-222.561*42
    N145 G01 X-72.85 Y-225.835*26
    N146 G01 X-73.872 Y-229.344*41
    N147 G01 X-75.279 Y-233.044*39
    N148 G01 X-77.12 Y-236.862*28
    N149 G01 X-79.426 Y-240.7*42
    N150 G01 X-82.193 Y-244.44*30
    N151 G01 X-85.376 Y-247.957*41
    N152 G01 X-88.893 Y-251.141*47
    N153 G01 X-92.633 Y-253.907*41
    N154 G01 X-96.471 Y-256.213*37
    N155 G01 X-100.29 Y-258.055*45
    N156 G01 X-103.989 Y-259.461*28
    N157 G01 X-107.498 Y-260.483*18
    N158 G01 X-110.772 Y-261.18*43
    N159 G01 X-113.789 Y-261.613*16
    N160 G01 X-116.545 Y-261.839*27
    N161 G01 X-119.048 Y-261.905*19
    N162 G01 X-166.667 Y-261.905*19
    N163 G01 X-166.667 Y-214.286*16
    N164 G01 X-119.048 Y-214.286*20
    N165 G01 X-119.048 Y-261.905*23
    N166 G01 X-119.048 Y-261.905*20
    N167 G01 X-121.55 Y-261.839*44
    N168 G01 X-124.306 Y-261.613*21
    N169 G01 X-127.323 Y-261.18*45
    N170 G01 X-130.597 Y-260.483*29
    N171 G01 X-134.106 Y-259.461*18
    N172 G01 X-137.806 Y-258.055*25
    N173 G01 X-141.624 Y-256.213*25
    N174 G01 X-145.462 Y-253.907*17
    N175 G01 X-149.202 Y-251.141*20
    N176 G01 X-152.719 Y-247.957*26
    N177 G01 X-155.903 Y-244.44*33
    N178 G01 X-158.669 Y-240.7*19
    N179 G01 X-160.975 Y-236.862*17
    N180 G01 X-162.816 Y-233.044*24
    N181 G01 X-164.223 Y-229.344*27
    N182 G01 X-165.245 Y-225.835*24
    N183 G01 X-165.942 Y-222.561*30
    N184 G01 X-166.375 Y-219.544*27
    N185 G01 X-166.601 Y-216.789*16
    N186 G01 X-166.667 Y-214.286*27
    N187 G00 F500 Z45*63
    N188 G00 F6500*125
    N189 G00 X0 Y0*24
    G00 F500 Z45
    G00 F6500

    mashine 2000 mm X 2000 mm
    paper 700 mm X 1000 mm
    what am I doing wrong?


    Well… I know about the “17 Please change” and I just pushed a fix for that (should remove the 17).

    I’m not sure why the zarplotter simulation is 1/10th the size it should be, yet. I will be looking at it this weekend. I think it’s a mistake in Makelangelo-software but ONLY in the zarplotter display.


    I can not adjust the correct motor motion (1) (Y) top right. the engine always rotates in one direction.
    If I change the wires, the motor rotates in the other direction, but always in the same direction.
    I changed the motors in places, swapped the wires and drivers …
    Nothing helped.
    Arduino ATmega 2560 + Ramps 1.4 + Nema 17


    I am about to leave on an 8 day vacation and I doubt I’ll get to look into this until my return. I have scheduled it for the day after I get back so that I don’t forget to investigate. I apologize for the delay.


    I replaced the pins from motor 1 to motor 4 and it all worked!
    There may be a problem in ramps or an arduino board …
    But it will not hurt to check!)))
    Thank you.
    Have a nice rest!))


    Little sorry that failed to fix the problem with the display of the gondola path in the software, but you must rest !!! We will very much wait for you from vacation!)))


    Hi folks, here’s another guy just getting ready to try out the Zarplotter. Dan, hope you had a nice vacation.

    First question: In configure.h, I see the list of supported boards, but what I have is unfortunately not listed; the “CNC v3 shield” for Arduino Uno (4 motor outputs).

    On Aliexpress:

    Where/how can I add this shield in the code? Is it only a matter of changing pin numbers or will this be a major operation? If so, I guess it’s just easiest to just buy a Arduino Mega + RAMPS shield – if RAMPS is now confirmed to fully work.



    I’ve never played with this shield.

    IN THEORY I would make a new file boardName.h, probably a copy of some other board.h, then change the values inside to match the new board.

    HOWEVER UNO is not supported in the current firmware because it doesn’t have enough internal clocks to do all the work. It could do a really half-assed job of starting and stopping between commands, but your drawings would look bad, take much longer, and generally be more disappointing, for a lot of code maintenance headache. Bad return on investment.

    Having said that, it’s only because I’m one guy. If you want to maintain support for the board, please be my guest. Send me a pull request any time.


    I read you loud and clear – ordering Arduino Mega + RAMPS right away. 😉

    Is RAMPS fully supported now btw, I read above that there has been some issues?


    Migration on the Uno does not make sense, it’s cheaper to buy Arduino Mega + RAMPS.
    Time = money
    Will be faster and cheaper.


    @vladimir My 40th birthday is coming up. For me time > money.


    How to connect a stepper motor instead of a servomotor?
    I want to make a gondola with a pencil lift, it’s uncomfortable to push off the paper – you can smear the drawing …
    Stepper motor from dvd would be more convenient to use.
    Is there a simple solution or is it too difficult?

    The system with levers is complex and weak, many details, loss of frictional force …


    Having some issues with my Zarplotter.

    Using a MKS Gen-L with A4988 drivers. This is one of those all-in one RAMPS clones with replaceable drivers.

    I am having the same issue as Miguel earlier where X and Y are inverted. Switched motor wires around but it didn’t seem to fix the issues. Switching E0 and X makes things move in the expected direction but I assume that would introduce other issues. Not too worried about the inverted directions right now as my larger issue is that it seems to lose tension \ skip steps quickly.

    I have successfully used the same board and drivers in Polargraph configuration so I believe them to be working.

    Am I correct in assuming that due to the design of the motor mounts, I can put the size of the physicsal board (610mm x 610mm) into the Makelangelo software and that will be correct for machine size? Looks like the M101 then sets things correctly as +-305…

    I have access to an MKS Base 1.4 RAMPS type board with integrated drivers that I may swap out to see if it works. This should rule out any board\driver issues with the Gen-L.

    What are people using for acceleration and drawing speeds for the Zarplotter?




    Switched to the MKS Base 1.4 board. Problems persisted. Realized I didn’t have a true inversion but two motors were spinning the wrong way and fighting things. Switched directions on two motors and there was some improvement. Still losing tension with a machine size of my board of 610 x 610.

    Switched back to the MKS Gen-L board. Switching boards made me realize I needed to juice up the VREF on two driver boards. Some improvement.

    Played around with machine size as that is all there was left really. Changed to 800. Much worse. Changed to 500. Almost perfect! Draws very well. Don’t know why, but maybe that is just my sleep addled brain from two sick kids, one who is also teething. Need to play around with that number. And connect the servo.

    Anywho, I think I am missing the core concept of how the machine width works.


    Are you adjusting the width in the firmware each time you change the physical size of the machine? The machine has to be told how big it is for the math to work correctly.


    Where does one adjust the width in the firmware? I think this is my problem, as I have never adjusted it – I can’t seem to find it, I would assume configure.h, but I don’t see it.


    I think you have to do this with GCODE. The term to use is:

    M101 A0 Tnnnn B-nnnn – where n is Top and Bottom values of X axis
    M101 A1 Tnnnn B-nnnn – same for Y axis

    See this pic:


    the size of the machine is set in the software, in the settings panel.


    Help! i finally got my zarplotter calibrated and it’s printing nice borders. BUT everytime I give it art, it just dies, sits there, doesn’t move!! I tried art from a pic and also render art, nothing. PLEASE help

    It will spit this out and not move:

    2044 line segments. 1674.4379cm Estimated draw time: 6m38s .
    M110 N0
    N0 G90*16
    N1 M06 T0*80
    N2 G00 F6500 A1000*30
    N3 M117 Change to black Click to continue*41
    N4 M300 S60 P250*22
    N5 M226*32


    M300 is beep command.
    M226 is wait for user input. It’s expecting you to press a button on the LCD panel normally attached to the RUMBA board. This is so that the robot starts only when you confirm the pen is ready.

    You could edit the gcode to remove M226. A longer way would be to tweak makelangelo software with a “I do not have an LCD screen” option.


    D’oh!!! thank you for the quick response! Now, i’m excited again!! i have a LCD screen – I’ll just plug it in 🙂 Awesome! Thanks again.


    I’ve embarked on making a 4-motor machine on a larger scale – say 5m x 5m. At first I discounted makelangelo because I thought it only did 2 motors but came back to it after I found it does 4. In the mean time I had started on the math and got a bit overwhelmed with the pathing. I suspect I made the problem more complicated than it needed to be, but I wanted to handle acceleration and deceleration of the stepper motors within their limits while maintaining accuracy and as close to constant speed of the drawing mechanism as possible. From the comments in this thread it appears that there may have been issues like that at first with the zarplotter. Can anyone comment on this issue or point me to the code that does the conversion from cartesian coordinates to motor steps? How is acceleration and deceleration handled?

Viewing 25 posts - 51 through 75 (of 115 total)
  • You must be logged in to reply to this topic.