CoreXY CNC Plotter

60,025

500

71

55+ years in electronics, computers, and teaching ... now retired.

Intro: CoreXY CNC Plotter

This instructable describes an A2 plotter made from low cost aluminium extrusion, a piece of particle board, two NEMA17 stepper motors, and a few belts and pulleys.

The plotter is:

    • high resolution (80 steps/mm),
    • fast,
    • low-cost,
    • and scaleable

    The plotter has an on-board interpreter that recognizes the g-code output from "Inkscape" .

    Metal work is simple ... all you need is a hacksaw, three drills, a rat-tail file, and a screwdriver.

    12 October 2017:

    An improved pen-lift is described in instructable https://www.instructables.com/id/CNC-Pen-Lift/

    16 November 2017:

    Bluetooth is added in instructable https://www.instructables.com/id/Add-Bluetooth-to-...

    Z-axis control is added in instuctable https://www.instructables.com/id/CNC-Pen-and-Wash-...

    17 March 2018:

    GRBL (optional) installed in instructable https://www.instructables.com/id/How-to-Control-a-...

    Step 1: Circuit

    The wiring diagram for this plotter is shown in photo 1.

    The EasyDriver module expects the wires from each motor coil to be adjacent. Check that the motor wires don't alternate ... if so swap the two center wires.

    Adjusting the motor current(s):

    Set your CPS-3205 power supply to 12 volts.

    Attach a 12 volt 30 ohm NEMA17 stepping motor to a Big EasyDriver module and apply power to the motor assemby.

    Now adjust the small potentiometer on the Big EasyDriver module for a current reading of 0.4 amps (400mA) on the CPS-3205 power supply.

    Repeat this process for the remaining motor and Big EasyDriver module.

    Disconnect the power.

    Substitute motors:

    The plotter also works with 6 volt 8 ohm stepping motors in which case the CPS-3205 power supply should be set to 6 volts and the motor currents set to 0.6 amps (600mA).

    Step 2: Software

    The source code for this plotter is attached.

    Software installation:

    • copy the contents of coreXY_plotter.ino into an arduino sketch.
    • save the file as "coreXY_plotter" (without the quotes).
    • compile and upload the sketch to your arduino

    Step 3: Parts List

    The parts list for either an A4 or A2 coreXY plotter is attached ...

    Wood saws are not required if you ask your timber merchant to cut the particle board and and pine supports to length.

    Step 4: Theory

    The timing belts are arranged in a "coreXY" configuration.

    An excellent explanation of the "coreXY" principle may be found at http://corexy.com/theory.html

    The pen moves:

    • horizontally when the motors rotate in the same direction.
    • vertically when the motors rotate in opposite directions.
    • diagonally if only one motor rotates.

    Step 5: The Mathematics

    This step derives the pen motion equations and may be ignored ...

    If we rotate motor A counter-clockwise by an amount ∆A then the pen carriage will move horizontally to the right by an amount ∆X and vertically upwards by an amount ∆Y. The equation for this is:

    ∆A = ∆X + ∆Y ...................................................... (1)

    If we rotate motor B counter-clockwise by an amount ∆B then the pen carriage will move horizontally to the right by an amount ∆X and vertically down by an amount ∆Y. The equation for this is:

    ∆B = ∆X - ∆Y ....................................................... (2)

    The reason for the ∆Y sign/direction change is that the two timing-belts are moving in opposite directions... the timing-belt for motor A is being fed towards the pen which lets the pen to move upwards, whereas the timing-belt for motor B drags the pen downwards.

    Horizontal motion:

    Rearranging equations (1) and (2) we get:

    ∆Y = ∆A - ∆X ....................................................... (3)

    ∆Y = -∆B + ∆X ..................................................... (4)

    Equating equations (3) and (4) we get:

    ∆A - ∆X = -∆B + ∆X ............................................. (5)

    From which:

    ∆X = (∆A + ∆B)/2 ................................................. (6)

    Translating: the pen moves horizontally when both motors rotate in the same direction

    Vertical motion:

    Rearranging equations (1) and (2) we get:

    ∆X = ∆A + ∆Y ....................................................... (7)

    ∆X = ∆B - ∆Y ...................................................... (8)

    Equating equations (7) and (8) we get:

    ∆A + ∆Y = ∆B - ∆Y .............................................. (9)

    From which:

    ∆Y = (∆A - ∆B)/2 ..................................................(10)

    Translating: the pen moves vertically when the motors to rotate in opposite directions.

    Collectively equations (6) and (10) infer diagonal movement if only one motor rotates.

    Step 6: Evolution ... a Story of Trial and Error

    H-Bot design:

    My first build comprised a single timing belt arranged in the shape of a letter 'H', or "H-Bot" configuration, as shown in photo1.

    I quickly abandoned this design for three reasons:

    • If both motors rotate in the same direction the tension at opposite ends of the gantry caused unacceptable "wracking" [1].
    • pen wobble was excessive
    • the timing-belt tension spring was not a good idea ... the belt tension needs to be firm.

    CoreXY design:

    A few modfications eliminated all of the above problems.

    • The timing belt was cut in half and arranged in a "coreXY" configuration [2]. This arrangement has the advantage that all unbalanced timing-belt tension is in the direction of pen movement as shown by the arrows in photo 2 and photo 3.
    • Pen wobble was eliminated by using an extra guide rail for the pen assembly.
    • Variations in belt tension were eliminated by replacing the spring with cable-ties.

    The design is scalable:

    Photo 4 compares the original A4 plotter with the base of a larger A2 plotter described in step 7.

    The gantry and pen carriage dimensions are common to all plotters. The only additional parts required for the larger plotter shown in photo 5 are:

      • a larger base board.
      • longer side rails.
      • longer timing belts

      [1]

      An H-Bot timing belt pulls the gantry ends in opposite directions whenever the pen moves horizontally (see arrow directions in photo 1). This causes a twisting motion known as "wracking".

      [2]

      CoreXY requires two full-length timing-belts. Halving the original H-bot timing belt allowed the coreXY concept to be tested before longer timing belts were ordered. It also accounts for the reduced plot area shown in photo 2.

      Step 7: Construction ... the Base

      Decide on your plot area:

      • An A4 plotter requires a 6mm x 600mm x 400mm piece of particle board.
      • An A3 plotter requires a 6mm x 800mm x 600mm piece of particle board.
      • or larger ... the design is scalable

      Bolt a length of 1.5mm x 20mm x 20mm aluminium "Tee Section" extrusion along opposite sides of the base. Ensure that both rails are parallel.

      The extrusions should be flush with the long edges of the base and positioned under the base such that the edges just protrude (see photo). These extrusions act as railway lines for the overhead gantry.

      Screw 65mm x 18mm timber end supports to the base. The timber supports will need a rebate for the aluminium extrusions ... make a shallow cut then knock a sliver of timber out using a chisel positioned against the end grain.

      Step 8: Adding the Fixed Pulleys and Motors

      The two timing-belts are stacked vertically above each other.

      This is achieved as follows:

      • One motor pulley is inverted as shown in photos 1, 2, & 3.
      • The toothed idler pulleys are stacked in sets of two as shown in photos 4 & 5.

      Mounting the motors:

      Drill four x 3mm mounting holes, and one spindle clearance hole, for each NEMA17 stepping motor as shown in photos 2 & 3.

      The outside 3mm holes are 25mm from each edge of the base [1]. This distance ensures the the motors avoid the wooden support and the aluminium side rails.

      Mounting the fixed pulleys:

      Drill two 4mm holes for the fixed pulleys.

      These holes are located 25mm from the opposite end to the motors and 40.5mm from the side rails. This distance ensures that the pulleys avoid the wooden support. It also ensures that the timing-belts are parallel with the side rails.

      Key points:

      • Timing belts stretched between each motor and the associated fixed pulleys MUST be parallel to the side rails.
      • Separate the pulleys with a 4mm washer. The washer prevents the pulley edges from rubbing.

      [1]

      The 3mm motor mounting holes are spaced 31mm apart. This means that each spindle is 40.5mm from the nearest siderail.

      Step 9: The Gantry

      Vertical (Y-axis) motion is provided by a movable gantry that runs along the fixed side-rails attached to the base.

      Horizontal (X-axis) motion is obtained by running a pen carriage-assembly across two rails attached to the gantry end brackets.

      The gantry wheels are fashioned from VZ624ZZ V-groove sewing machine pulleys (photo 3). The V-groove prevents the gantry moving sideways.

      End brackets:

      Cut two 60mm x 130mm brackets from a sheet of 18 gauge aluminium using the method described in instructable https://www.instructables.com/id/How-to-Cut-Fold-S...

      Drill two 3mm holes and four 4mm holes at the locations shown in photo 1.

      Fold a 50mm top for each bracket.

      Mounting the wheels:

      Sandwich four "V-groove" pulleys between a 4mm nut and bolt. The nut prevents the sides of the pulleys touching the aluminium.

      Now bolt these wheels through the 4mm diameter holes as shown in photo 2.

      Attaching the end brackets to the base

      Attach a gantry end plate to each side of the plotter.

      To do this:

      • the grooved wheels must straddle the side-rails.
      • elongate the bottom holes as required to eliminate any vertical play in the gantry.

      When correctly adjusted the gantry end-brackets should roll freely when the base is tilted slightly.

      Top rails:

      The over-head gantry rails are attached when we attach the pen carriage-assembly ...

      Step 10: The Gantry Pulley Brackets

      The gantry pulley brackets:

      The gantry pulley brackets are cut from 18 gauge aluminium sheet. An approximate [1] drilling template is shown in photo 1.

      Photo 2 shows the pulleys attached to the motor 1 (left-hand) bracket.

      Photo 3 shows the pulleys attached to the motor 2 (right-hand) bracket.

      Key points:

      • The smooth side of the timing belts always sees a smooth pulley.
      • The ribbed side of the timing belts always sees a toothed pulley.
      • One of the double pulleys on each bracket is NOT used ... it simply acts as a spacer.

      Attaching the pulley brackets to the gantry:

      Press each pulley bracket against the inside of the gantry bracket such that the bracket is centered and the heads of the pulley bolts are clear of the base.

      Mark these positions by means of a pencil through the two existing holes in each of the gantry brackets.

      Now drill 3mm mounting holes and bolt the bracket pairs together.

      [1]

      The 4mm hole positions for the idler wheels depend on the sharpness of the upturned folds.

      Fold each pulley bracket then custom position the holes such that:

      • both timing-belts over-lap when viewed from above.
      • the idler wheels used as spacers don't touch any belts.

      Step 11: Pen Support

      The pen support is made from 18 gauge aluminium sheet. The dimensions are shown in photo 1

      Custom size the large holes such that your pen slides freely but without any sideways wobble.

      Attach a pen-lift collar to your pen. Mine was made from the brass fitting found inside a radio knob and a circular piece of plastic but anything will do ... so long as the position can be adjusted.

      Step 12: Pen Carriage Assembly

      The pen carriage is made from 18 gauge aluminium sheet. A drilling template (not to scale) is shown in photo 1.

      Assemble as follows:

      • drill and fold the metal
      • attach 8 x v-groove pulleys as shown in photo 2. Elongate the lower holes such that there is no vertical play when the aluminium "tee section" rails are fitted.
      • use a cable-tie to attach the SG90 servo as shown in photo 2. Drill the cable-tie holes to suit.
      • use the 3mm holes in the pen-support as a drilling template when attaching the pen.

      Fitting the top gantry rails:

      Attaching the rails:

      • Pass two 600mm lengths of aluminium "tee section" between the "V-groove" pulleys as shown in photo 2.
      • Attach each gantry bracket to one of the rails by means of two 3mm nuts and bolts.
      • Position the second rail such that the pen carriage-assembly moves freely. Now drill and bolt the rail to the gantry brackets.

      Step 13: Attaching the Timing Belts

      Key points:

      • the plotter has TWO timing belts.
      • each timing belt forms a continuous loop (see photo 2)
      • the timing belts are mounted at different heights ... the pulleys share a common shaft.
      • the timing belts are tensioned using cable-ties.
      • both timing belts are attached to a common 3mm bolt (see photo 3)

      Method:

      • push the pen carriage-assembly to one side.
      • tape both gantry ends to prevent movement (photo 1).
      • thread the bottom timing belts and fix the ends (photo 2).
      • thread the top timing belt and fix the ends (photo 3).
      • the timing belts should look like this (photo 4)
      • remove the tape.
      • tension the belts such that the carriage-rails are the parallel to the base end.

      Step 14: Attaching the Pen Carriage Assembly

      Two 25mm long threaded spacers are joined together (by means of a 3mm head-less bolt) to form a solid rod.

      The belts are attached to this rod as shown in photo 1.

      Attach the top of the rod to the center of the pen carriage-assembly using a 3mm bolt.

      Testing:

      The pen should:

      • move to the left when BOTH motors are turned clock-wise.
      • move to the right when BOTH motors are turned counter-clockwise.
      • move diagonally if only one motor is rotated.

      Step 15: The Menu

      Upload coreXY_plotter.ino to your arduino if you haven't already done so. Instructions for this are given in step 2.

      Connect a USB cable to your arduino and left-click "Tools|Serial Monitor" ... a menu similar to photo 1 should appear.

      Apply 12 volts power to your motors and your plotter is ready to use.

      The menu is not case sensitive. Typing:

      • MENU brings up the menu
      • G00 allows you to send the pen to a specific XY co-ordinate with the pen raised.
      • G01 allows you to send the pen to a specific XY co-ordinate with the pen lowered.
      • T1 allows you to position your pen over your 0,0 co-ordinate. Type 'E' to exit.
      • T2 allows you to scale your drawiing. For example "T2 S2.5" will scale your drawing 250%. The default scale is 100%.All pen moves use the drawing scale last set using this menu option
      • T3 and T4 allow you to raise or lower the pen.
      • T5 draws an "ABC" test pattern.
      • T6 draws a "target".
      • T7 draws a set of radial lines

      The internal wiring of some motor brands are reversed. If your motor directions are reversed then use the alternate code in the step_motors() function.

      Step 16: Creating and Sending Gcode Files to Your Plotter

      This plotter assumes that co-ordinate (0,0) is at the lower-left corner of your paper. As such it is 100% Inkscape compatible.

      Instructions for creating gcode files are given in the following instructables:

      Instructions for sending your gcode file to this plotter are given in instructable:

        Click here   to view my other instructables.

      Share

        Recommendations

        • Plastics Contest

          Plastics Contest
        • Halloween Contest 2018

          Halloween Contest 2018
        • Optics Contest

          Optics Contest

        71 Discussions

        0
        None
        YehyaV

        7 months ago

        Amazing project, very nice and clean.

        I have one simple question, in the draw_line() function, is the plane divided into octants or quadrants.

        Many thanks for the project.

        1 reply
        0
        None
        lingibYehyaV

        Reply 6 months ago

        My draw_line() function is a variation of Bresenham's Line Drawing Algorithm and uses "octants" as defined in the attached diagram.

        Bresenham's algorithm is only valid for "octant 0" which means that you have to convert each XY coordinate to "octant 0" for processing, then convert the results back to the original octant.

        There are also numerous software solutions, one of which is derived in my instructable https://www.instructables.com/id/CNC-Drum-Plotter/ (Step 5)

        In that instructable I used switch() functions, each with eight conditions, to encode and decode each of the eight octants. This works but is relatively slow as each plot requires up to twenty-four comparisons (eight for encoding; eight for decoding the X axis; and eight for decoding the Y axis).

        The algorithm that I have developed for this plotter recognizes that a circle not only contains eight "octants" but also has four "quadrants":

        - quadrant 0 contains octants 0,1

        - quadrant 1 contains octants 2,3

        - quadrant 2 contains octants 4,5

        - quadrant 3 contains octants 6,7

        If you study the attached diagram you will note that dX is always positive in "quadrants" 0,3 and that dY is always positive in "quadrants" 0,1. Now add a "swap" flag and the number of comparisons needed to plot each point in the draw_line() function reduces to eight which is significantly faster.

        Hopefully this clarifies the following comment which appears in my draw_line() function:

        "The algorithm automatically maps all "octants" to "octant 0" and automatically swaps the XY coordinates if dY is greater than dX. A swap flag determines which motor moves for any combination X,Y inputs. The swap algorithm is further optimised by realising that dY is always positive in "quadrants" 0,1 and that dX is always positive in "quadrants" 0,3."

        Bresenham I_O Mapping.jpg
        0
        None
        MohanK30

        8 months ago on Introduction

        Yes sir, I will purchase Big easy driver right now. Thank you

        0
        None
        MohanK30

        Question 8 months ago on Step 1

        Sir, My plotter is ready now. I have adjusted the timming belt so that it moves in x, y and diagonal. I tested with other sketch.

        now, I uploaded coreXY_plotter.ino and ran that. it looks something wrong in wiring to motor. because, both the motors turns only in one direction and vibrates for reverse direction.

        I purchased stepper motor from alliexpress nr. 17HS3430. the motor terminal has

        six pins 1 2 3 4 5 6

        data sheed says 1-A red , 2- no wure, 3-B blue, 4-C green, 5 - no wire, 6-D black

        I have connected

        1- A, red to 1 A of A4988,

        4-C,green to 1 B of A4988,

        3-B, blue to 2 A of A4988

        6-D, black to 2B of A4988

        also I have connected SLEEP & RESET pints on A4988 driver board.

        is this okey ? any correction needed in any of my work ?

        Pleasae reply.

        rgds/Mohan

        4 more answers
        0
        None
        lingibMohanK30

        Answer 8 months ago

        Something to check ...

        The diagram in the A4988 pdf shows 5 volts connected to the VDD pin ... presumably this is to power the onboard logic.

        The Big Easy Driver provides its own 5 volts.

        Just a thought :)

        0
        None
        lingibMohanK30

        Answer 8 months ago

        The winding resistance of 39 ohms indicates that you have the correct motors.

        On rereading your question the problem may well be your driver boards.

        Information about the Big Easy Driver may be found at http://www.schmalzhaus.com/BigEasyDriver/BigEasyD...

        Information about your A4988 driver may be found at http://www.communica.co.za/Content/Catalog/Docume...

        If you compare the two boards it would appear that your A4988 board is intended as a sub-module for another board.

        A significant difference is that your A4988 board has a VDD pin (voltage in) whereas the Big Easy Driver has a VCC pin (5V out). The documentation for the Big Easy Driver indicates that it has pull-up resistors on the Sleep and Reset lines which accounts for why I have left them disconnected. There may well be other differences.

        No doubt your A4988 board can be adapted but without having an A4988 board to test I am unable to provide further help.

        My plotter works with the parts listed in the instructable.

        0
        None
        lingibMohanK30

        Answer 8 months ago

        The gantry and pen carriage on my plotter move under their own weight when I remove the timing belts and tilt the plotter by around 20 degrees. So long as everything is free to move your construction sounds okay.

        When fitting the timing belts you don't need much tension ... just enough to stop them sagging.

        You appear to have deviated a little from my design. I think that you have three problems:

        (1)

        I have used low current motors (either 400mA or 600mA motors). Your motors appear to be 1.2A motors with a coil resistance of 1.9 ohms which means that there will be a 2.28 volt drop across the motors and 3.72 volts across the Big Easy Driver if you use a 6 volt supply and the current limit to 1.2A. The Big EasyDrivers are going to get rather hot as they will be dissipating 4.46 watts. They should be okay as they have thermal shutdown but may require some form of cooling (fan/heatsink)

        (2)

        More likely the strange behaviour is due to your motor wiring. Strange things happen if the coils leads get interchanged.

        According to http://www.makershop.co.nz/index.php?route=product... your motors should be connected as follows:

        Black A+ <-----+

        | Winding A

        Green A- <-----+

        Red B+ <-----+

        | Winding B

        Blue B- <-----+

        Use a continuity checker (ohmmeter) to confirm the colors for each motor winding ... the Big EasyDriver expects the wires from each coil to be side-by-side as ahown.

        (3)

        There is no need to connect anything to the sleep and reset pins ... the plotter works fine without them.

        0
        None
        MohanK30lingib

        Answer 8 months ago

        Sir, Thanks for your kind reply. sorry for asking you many times.

        I have found that I have not purchased Big Easy Driver. I purchased "Micro stepping Motor Driver A4988 with Heatsink". Is this a problem for me ? Shall I purchase Big Easy Driver from Alli express ?

        in my motor : 1. red and green have continuity say 39 ohms. 2. blue and black have continuity 39 ohms.

        I checked the current taken is .40 amps on both boards. no heating at all.


        Thank you,

        Mohan

        0
        None
        gnusmas_

        8 months ago

        Hi Lingib,

        Thank you very much for this instructable and all the support you've been giving to people since then. Not only is admirable to create amazing projects but also to be able to support them afterwards;

        Together with a friend we've been trying to build a scaled version of this project (to print around 70x100cm);

        As we are also trying to build on top of the software you've created for this project, we've been facing a problem that we couldn't solve so far. When we tell the pen to move to big coordinates ( X500 Y700 - 50cm,70cm -, for example) the pen inverts its own movement, going to -X500, -Y700 instead. We printed the values that we are sending to the motors and those values are correct (positive) but it seems that there is something that is telling the motors to go the opposite way. Did you implement any kind of flag to trigger this or do you know how to solve this issue?

        Thanks again for all the support!

        1 reply
        0
        None
        lingibgnusmas_

        Reply 8 months ago

        Thank you for your interest in my CoreXY plotter :)

        The fact that correct numbers are being sent to the motors indicates that your motor directions are reversed ... I have allowed for this in my code as some motors (depending on brand) have their internal wiring reversed.

        To reverse your motor directions go to the step_motor(){...} subroutine and change this code segment

        // ----- set motor directions

        //(DIRECTION1 == CW) ? SET(pattern, dir1) : CLR(pattern, dir1); //normal motor direction

        //(DIRECTION2 == CW) ? SET(pattern, dir2) : CLR(pattern, dir2); //normal motor direction

        (DIRECTION1 == CCW) ? SET(pattern, dir1) : CLR(pattern, dir1); //motor windings reversed

        (DIRECTION2 == CCW) ? SET(pattern, dir2) : CLR(pattern, dir2); //motor windings reversed

        to read

        // ----- set motor directions

        (DIRECTION1 == CW) ? SET(pattern, dir1) : CLR(pattern, dir1); //normal motor direction

        (DIRECTION2 == CW) ? SET(pattern, dir2) : CLR(pattern, dir2); //normal motor direction

        //(DIRECTION1 == CCW) ? SET(pattern, dir1) : CLR(pattern, dir1); //motor windings reversed

        //(DIRECTION2 == CCW) ? SET(pattern, dir2) : CLR(pattern, dir2); //motor windings reversed

        Hopefully this solves your problem.

        0
        None
        MohanK30

        Question 9 months ago on Step 16

        Sir,

        I have almost completing my CoreXY plotter. Now I have a few doubts in Software side.

        1. "coreXY_plotter.ino" : is this to be compiled and uploaded from Arduino ?
        here my motors are functioning perfectly. only, in Menu, I don't find any option to send G-Code to Arduino.

        2. "processing3_terminal.pde" : is this to send G-Code to CoreXY plotter ?
        here, compliling is giving some error ?

        Please help me.

        Thank you,
        Mohan Kumar

        2 more answers
        0
        None
        MohanK30MohanK30

        Answer 9 months ago

        Thank you very much sir. now I am clear and it is almost working. only I have to fix the idler pulleys and check. Thanks a lot for your precious time spent in this project and helping.

        0
        None
        lingibMohanK30

        Answer 9 months ago

        Hi Mohan ... if your " motors are functioning perfectly in Menu" then you have successfully compiled, and installed, the software. Well done :)

        Now that you have your plotter working, you need two further pieces of software:
        (1) a software package, such as "https://inkscape.org/en/", for generating your g-code and
        (2) a terminal program, such as "https://www.instructables.com/id/CNC-Gcode-Sender/" for sending the above g-code to your plotter.

        Install both of these programs on to your computer.

        For now let's concentrate on sending the pre-compiled test g-code "Letter_B.ngc" from step 3 of "https://www.instructables.com/id/CNC-Gcode-Sender/" to your plotter. You can experiment with Inkscape later.

        Steps:
        (1) Close your arduino IDE ... it is no longer required.
        (2) Plug your arduino into the USB port of your computer. For all intents and purposes your plotter is now a printer waiting for some g-code. This is why there is no menu option to send g-code to the arduino.
        (3) Launch your terminal program. All going well you should now see the SAME menu as you saw when using the arduino IDE. If not press the "reset" button on your arduino.
        (4) Follow the instructions in step 3 of "https://www.instructables.com/id/CNC-Gcode-Sender/". Ignore the reference to the "CNC Drum Plotter" ... this terminal program was written before the "CoreXY Plotter".

        Hopefully this answers your question. My other plotter articles at " https://www.instructables.com/member/lingib/instructables/" may contain helpful information ... for example "https://www.instructables.com/id/CNC-Robot-Plotter/" details how to generate g-code using "Inkscape".

        0
        None
        ondadiluce

        9 months ago

        Hi, I have a problem with the stepper motors, I got two 17hs3430 from AliExpress exactly as suggested, and two Big EasyDriver. When I try the program, the steppers seem to move randomly, especially when I try to move them using the G00 command they don't move correctly or at all. I'm not sure if the cause of this behavior is because the motors are broken or because or something else. They seem to have very little torque when they (almost randomly) move. The rest of the machine seems to be constructed correctly: if I move the motor manually the movement of the pen is correct, but the motors are so weak that they can't move the pen at all. Any suggestion is more then welcome.

        3 replies
        0
        None
        lingibondadiluce

        Reply 9 months ago

        Each motor has two windings. Identify the leads that are attached to each winding (use an ohmeter on resistance) and connect the two leads side-by-side as shown on the EasyDriver screen print..

        Swap the two center wires if the coil wires are not adjacent. Hopefully this will solve the problem.

        0
        None
        ondadilucelingib

        Reply 9 months ago

        That worked! My CNC Plotter works perfectly now, it's a really awesome project, thanks again!

        0
        None
        Henri.Lacoste

        9 months ago

        Hey lingib,
        Thanks so much for your instructable, I have found it very useful. Thought I would share with you how my attempt at building a remix of your design has gone. So far the results are pretty good, only stumbling block at the moment is circles. Any ideas here, I think it might be something to do with belt tension. The one major difference is that I haven't used your code but have instead used grbl, kudos to you though for writing your own code, that's incredible!

        Anyway, thanks again for your instructable!

        2 replies
        0
        None
        lingibHenri.Lacoste

        Reply 9 months ago

        Glad that you found my instructable useful. Thank you for sharing ... you've just made my day :)

        Fine on porting GRBL to this design.

        Can you be a bit more specific about the circles. Are they round, elliptical, or don't the ends meet? How do GRBL circles compare with the same circles using my code?

        The following quote from https://github.com/grbl/grbl/wiki may be a clue.

        "CoreXY Support: Grbl now supports CoreXY kinematics on an introductory-level. Most functions have been verified to work, but there may be bugs here or there. Please report any problems you find!"

        0
        None
        Henri.Lacostelingib

        Reply 9 months ago

        I'm pretty sure the problem was belt tension. I strengthened the X carriage by adding a bottom cross support which made it more difficult to attach all the belts, I think this was a catch 22 situation.

        I must admit I have now abandoned the CoreXY setup and gone with a more conventional setup where there is a motor mounted on the gantry to move the X carriage. I am now getting better results when drawing circles.

        I never actually got your code working on my setup, I have different drivers but as you have stated it should work with easydrivers. However I wasn't very persistent with my attempt.

        I am really glad to have been introduced to the CoreXY system though, it really is cool how you avoid mounting steppers on the gantry.