Different currents with dual motor y-axis

  • Hi,

    I am experiencing problems with my workbee 1000mm CNC. It has two independant motors for the Y-axis.

    It all works, but it seems that one motor gets less current then the other. One motor stalls on fast moves. And after the idle timeout, i can rotate one motor by hand while the other is still strong. It seems to me that the second Y motor still has some lower current setting.
    If i reverse the cables on the board the other motor becomes weaker, so this eliminates motor, driver or wiring differences. I tried upgrading to 2.02 but no change.

    Some data: 24V, 2A current, Y connected to P1 and P4 (M584 X0 Y1:4 Z2).

    Any ideas?


  • @maukvdlaan said in Different currents with dual motor y-axis:


    post you config. also what does the M906 command give you?
    Also pay attention to the order of the M584 command.
    The M584 command must come before the M350 and M906 commands in your config,g file and also before all other commands that refer to any new axes you create e.g. M92, M201, M203, M208 and M566.

  • Check your M906

    M906 Y900:900 ; First and second Y stepper to 900mA.

  • @veti M906; Motor current (mA) - X:2000, Y:2000, Z:1400, E:800:800, idle factor 40%

  • M569 P0 S1                                  ; Drive 0 goes forwards (X)
    M569 P1 S0                                  ; Drive 1 goes forwards (Y-1)
    M569 P2 S0                                  ; Drive 2 goes forwards (Z)
    M569 P3 S1                                  ; Drive 3 goes forwards (E1)
    M569 P4 S0                                  ; Drive 4 goes forwards (Y-2)
    M584 X0 Y1:4 Z2                             ; map motor drivers to dual Y
    ; 16 steps w/interpolation
    ; 1 rot = 200 steps = 8mm = 25 steps/mm. 
    ; full-step resolution 0.04mm
    ; x16 = 400 steps/mm
    ; max speed 5rpm x 8mm = 40mm/s, 2400mm/min
    M350 X16 Y16 Z16 I1                         ; Configure microstepping
    M350 E16 I1                                 ; Configure microstepping with interpolation
    M92 X400.00 Y400.00 Z400.00 E420.00         ; Set steps per mm
    M566 X400.00 Y400.00 Z300.00 E120.00        ; Set maximum instantaneous speed changes (jerk) (mm/min)
    M203 X6000.00 Y6000.00 Z6000.00 E1200.00    ; Set maximum speeds (mm/min)
    M201 X200.00 Y200.00 Z150.00 E250.00        ; Set accelerations (mm/s^2)
    M906 X2000.00 Y2000.00 Z1400.00 E800.00 I40 ; Set motor currents (mA) and motor idle factor (40%)
    M84 S15                                     ; Set idle timeout (15S)

  • @maukvdlaan

    i am assuming you have connected the drive to E0 or E1.
    As you can see from the output it runs at 800ma.
    Revise your M584 and unassing that driver from the E input.
    E.g. M584 X0 Y1:4 Z2 E3

  • Actually, just change your M906 to:
    M906 X2000.00 Y2000.00:2000.00 Z1400.00 I40

    This is how to set the current to the second stepper.
    The steppers are already mapped at the point you set the current and you don't have an extruder as this is a CNC.

  • @typqxq

    i had a similar problem with my dual z.
    from his M906 output you can see that it has 2 Extruders assigned. One is his second Y axis.
    I had to explicitly assign the E to make this behaviour go away.

  • @veti Thanks, that helped. Now the machine moves reliably at 100mm/s.

  • @typqxq I also tried your solution and it works. I was wondering if i could get rid of that unused extruder output, so thanks.

  • @maukvdlaan Apparently you have a screw driven WorkBee. If so, 100mm/s is way too much for the trapezoidal screws, with the Delrin nuts going to fail pretty quickly! 2500mm/min, that is a little bit over 40mm/s, is a much safer value!

  • administrators

    RepRapFirmware doesn't recognise multiple motor current parameters in the M906 command for X, Y, Z or other axes. It's only for the E parameter that it recognises multiple values.

  • @dc42 So what caused the different currents? Is there some default mapping for drive 4? It worked after removing the E mapping.

  • administrators

    @maukvdlaan said in Different currents with dual motor y-axis:

    @dc42 So what caused the different currents? Is there some default mapping for drive 4? It worked after removing the E mapping.

    The answer is in the M584 documentation on the GCodes wiki page.

  • @catalin_ro I agree with the 40mm/s when milling, because of the forces involved. At that rate (5 rpm) the steppers still have a decent torque. But when not milling, rapid feeds of 100mm/s seem to work fine. But i will keep an eye on the wear of the delrin nuts of course!

    This is going to be fixed gantry machine, mounted vertically on a wall, with the Y-axis moving up and down. I choose the workbee design because it speads the load on the Y-axis between 2 motors and nuts.

  • @maukvdlaan Something doesn't sound right... you say "fixed gantry", while the WorkBee is a moving gantry design by all means!

    Anyway, with the Y axis moving up and down, you have a lot of pressure in the Y axis Delrin nuts. The original design has vertical load only on the Z axis screw, and the weight is something like 3-4kg. The gantry is anything but light (my WorkBee is 750mmx750mm), especially at 1000mm. All included, I estimate more than 20kg for the whole gantry and the Z axis, with most of the weight handled by only one of the nuts when the Z-axis is close to one of the gantry ends.

    While you think you have 4 Delrin nuts bearing the load, two on each side, only two of them are, the others normally handling the backlash problem.

    Also I would look for screw bending when the gantry is closer to the top. The 8mm screws are not that thick, with the core diameter closer to 6mm most probably.

    Again, from what I saw first hand, the wheels are decent when handling radial loads (like in the X and Y axis in horizontally positioned WorkBee) and not that good at handling axial loads (the Z axis ones are supporting some axial load and almost no radial one). Even in the original design, the X axis wheels handle a mix of radial and axial loads, with the axial load being smaller when the spindle is closer to the Z axis C-Beam.

    Your setup changes the X and Z axis wheels to axial only load, and quite a significant one, so I would be very careful with those if I were you.

  • @catalin_ro Thanks for your ideas! I plan to mount the gantry against the wall, so the whole Y-table moves free vertically. Same design, but totally different use.

    I do this because i want to have multiple spindles on the gantry as a kind of a cheap toolchanger, so it would become too heavy.

    But there are more advantages: it saves floor space, the chips simply fall down, there could be a second gantry, or even spindles that mill from the sides.

    As for the Y-nuts: i think that the forces involved in moving the table are comparable to moving the gantry, but the table has two motors and bigger nuts (more threads).

    You are right about the way the wheels are used, especially on the gantry. I have to change the gantry anyway to hold more spindles. I would like to rotate the gantry extrusion, maybe make it stronger with steel.

    I will have some fun with it, and post some videos when it works.

  • @maukvdlaan Hmmm... The Y axis will move the table, already heavier than the gantry, but also the material that needs to be machined! So things will be a lot worse actually!

    The nuts on the X and Y axis are as long as the nuts on the Z axis, just that they don't have the incorporated backlash compensation. And still you will actually use only two of them, one on each side, with the second one on each side having no load bearing role. And the relatively thin screws will not help either!

    If I were you I would completely reconsider the design, keeping the moving gantry idea, but having the table vertically, with the gantry also vertically orientated. That way, all wheels on X and Z axis would have almost only axial loads. And you could relatively cheaply replace the Y axis wheels with some Chinese SBR12 (easier) or HGR15 (better) linear rails.

Log in to reply