Welcome to Our Community

Some features disabled for guests. Register Today.

Smoothie-Run Automated Liquid Handler: No Movment from Motors?

Discussion in 'Other Builds' started by MSWiseman, Jul 15, 2021.

  1. MSWiseman

    MSWiseman New
    Builder

    Joined:
    Jun 20, 2021
    Messages:
    6
    Likes Received:
    1
    Hi all,

    I'm building an automated liquid handler based off the design of Opentrons and Openliquid handler. I changed up some things to add more power (vs Opentrons) but simplify wiring (vs. Openliquidhandler).

    I've tried running the smoothie board in b oth common anode and common cathode; initially, common cathode worked like a charm, but then I tided up the wiring and the motors stopped running. I checked and rechecked all connections to continuity and they were all fine; however, the stepper drivers were only getting ~2.8v and it seems they need 5v (it's a wonder 3.3v worked okay). My guess was that perhaps by extending the wires I was losing critical voltage to run the drivers?

    Here's the common cathode configuration (yes, this is my figure and these are the components I've used):

    [​IMG]




    ----------
    So, I then tried an open drain common anode config to get more voltage running through the stepper drivers. Same result. No movement. No humming. The motors and stepper drivers work just fine (I wired them up on an arduino separately).

    Here's my last config (for open drain common anode):
    Code:
    acceleration                                 2000.0            # XY axis acceleration in mm/sec²
    z_acceleration                               2000.0            # Z axis acceleration in mm/sec²
    delta_acceleration                           2000.0             # A axis acceleration in mm/sec²
    
    # Cartesian axis speed limits
    x_axis_max_speed                             30000.0            # mm/min
    y_axis_max_speed                             30000.0            # mm/min
    z_axis_max_speed                             30000.0             # mm/min
    a_axis_max_speed                             1000.0             # mm/min
    
    # X axis
    alpha_step_pin                               2.0              # Pin for alpha stepper step signal
    alpha_dir_pin                                0.5!             # Pin for alpha stepper direction
    alpha_en_pin                                 0.4              # Pin for alpha enable pin
    alpha_current                                0.25              # X stepper motor current
    alpha_max_rate                               30000.0          # mm/min
    alpha_steps_per_mm                           80               # Steps per mm for alpha stepper
    endstop.minx.enable                          true             # enable an endstop
    endstop.minx.limit_enable                    true             # set to true to enable the limit on this endstop
    endstop.minx.pin                             1.24!^           # pin
    endstop.minx.homing_direction                home_to_min      # direction it moves to the endstop
    endstop.minx.homing_position                 0                # the cartesian coordinate this is set to when it homes
    endstop.minx.axis                            X                # the axis designator
    endstop.minx.max_travel                      500              # the maximum travel in mm before it times out
    endstop.minx.fast_rate                       35              # fast homing rate in mm/sec
    endstop.minx.slow_rate                       20              # slow homing rate in mm/sec
    endstop.minx.retract                         3                # bounce off endstop in mm
    
    # Y axis
    beta_step_pin                                2.1o              # Pin for beta stepper step signal
    beta_dir_pin                                 0.11o!            # Pin for beta stepper direction
    beta_en_pin                                  0.10o             # Pin for beta enable
    beta_current                                 2.0              # Y stepper motor current, but there are 2x 1.2A motors :(
    beta_max_rate                                30000.0          # mm/min
    beta_steps_per_mm                            400               # Steps per mm for beta stepper
    endstop.miny.enable                          true             # enable an endstop
    endstop.miny.limit_enable                    true             # set to true to enable the limit on this endstop
    endstop.miny.pin                             1.26!^           # pin
    endstop.miny.homing_direction                home_to_min      # direction it moves to the endstop
    endstop.miny.homing_position                 0                # the cartesian coordinate this is set to when it homes
    endstop.miny.axis                            Y                # the axis designator
    endstop.miny.max_travel                      500              # the maximum travel in mm before it times out
    endstop.miny.fast_rate                       35              # fast homing rate in mm/sec
    endstop.miny.slow_rate                       20              # slow homing rate in mm/sec
    endstop.miny.retract                         3                # bounce off endstop in mm
    
    # Z axis
    gamma_step_pin                               2.2o              # Pin for gamma stepper step signal
    gamma_dir_pin                                0.20o!             # Pin for gamma stepper direction
    gamma_en_pin                                 0.19o             # Pin for gamma enable
    gamma_current                                2.0              # Z stepper motor current
    gamma_max_rate                               30000.0          # mm/min
    gamma_steps_per_mm                           400.0              # Steps per mm for gamma stepper
    endstop.minz.enable                          true             # enable an endstop
    endstop.minz.limit_enable                    true             # set to true to enable the limit on this endstop
    endstop.minz.pin                             1.28!^           # pin
    endstop.minz.homing_direction                home_to_min      # direction it moves to the endstop
    endstop.minz.homing_position                 0                # the cartesian coordinate this is set to when it homes
    endstop.minz.axis                            Z                # the axis designator
    endstop.minz.max_travel                      200              # the maximum travel in mm before it times out
    endstop.minz.fast_rate                       20              # fast homing rate in mm/sec
    endstop.minz.slow_rate                       12              # slow homing rate in mm/sec
    endstop.minz.retract                         3                # bounce off endstop in mm
    
    # A axis
    delta_step_pin                               2.3              # Pin for delta stepper step signal
    delta_dir_pin                                0.22             # Pin for delta stepper direction
    delta_en_pin                                 0.21             # Pin for delta enable
    delta_current                                0.4              # A stepper motor current
    delta_max_rate                               1000.0          # mm/min
    delta_steps_per_mm                           157.5           # may be steps per degree for example
    endstop.mina.enable                          true             # enable an endstop
    endstop.mina.limit_enable                    true             # set to true to enable the limit on this # endstop
    endstop.mina.pin                             1.25!^           # we're using the x-max as pipette min.
    endstop.mina.homing_direction                home_to_min      # direction it moves to the endstop
    endstop.mina.homing_position                 0                # the cartesian coordinate this is set to # when it mes
    endstop.mina.axis                            A                # the axis designator
    endstop.mina.max_travel                      100              # the maximum travel in mm before it times out
    endstop.mina.fast_rate                       7              # fast homing rate in mm/sec
    endstop.mina.slow_rate                       4              # slow homing rate in mm/sec
    endstop.mina.retract                         3                # bounce off endstop in mm
    The dip switches for my DM542s are set to: 1-5 off, 6 on, 7 off, 8 on (2.1A, 32 microstep). I didn't set X and A to open since they're using the on board stepper drivers (though I did try that too, and nothing happened). Most of the components are from OpenBuilds (motors, wiring, limit switches, hardware, etc.).

    I've been troubleshooting for 2 days and I have a conference to present at soon, so any help would be greatly appreciated. Thank you thank you thank you!!!

    P.S. Already read through this thread and tried the modified open config that
    Ernst-Jan Lusink posted - super helpful but didn't quite work for me.
     
  2. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,038
    Likes Received:
    4,122
    Is your drivers compatible with 3.3v signalling. Most of that format of drivers need 5v signals.
     
  3. MSWiseman

    MSWiseman New
    Builder

    Joined:
    Jun 20, 2021
    Messages:
    6
    Likes Received:
    1
    From what I read they could do 3.3v, but even when I have them hooked up to a 5v on the smoothie they're not working.

    Maybe I'll try hooking them up to external 12v.
     
  4. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,038
    Likes Received:
    4,122
    Disconnect your Enable wire - drivers are enabled by default, but maybe gets "disabled" by incorrect inversion on enable signal - disconnecting the wiring is a quick test. With ENABLE disconnected, motor wired to driver and power applied to driver, the motor should "LOCK" up. Step signal after that should move it
    If thats the case, you know the Enable config / pin invert is incorrect

    The Smoothie chip is 3.3v - don't try to sink 12v without level shifting! You'll fry the Smoothie
     
  5. MSWiseman

    MSWiseman New
    Builder

    Joined:
    Jun 20, 2021
    Messages:
    6
    Likes Received:
    1
    Sorry, I should've specified I'd use a level shifter (a lesson I learned two arduino boards ago). Smoothie boards are much pricier, hah, so trying to be very careful.

    Thanks for the catch though... I'm a biologist by training... I just started learning this stuff in March, so I'm pretty green. I came across a few suggestions to try to change the micropulse rate, so I'm going to try that next before ordering a level shifter.

    Any other ideas are welcome. I feel like I've really jumped through the hoops on this one.
     
  6. MSWiseman

    MSWiseman New
    Builder

    Joined:
    Jun 20, 2021
    Messages:
    6
    Likes Received:
    1
    An update: with the open drain configuration, Pull +/Dir+/En+ are all getting 4.9v - should be plenty. However, Dir- is also getting 4.5v. This is a little surprising to me. Is smoothie sending 4.5v? Or is this an indication of bad wiring/configuration/etc.?

    Thanks!
     
  7. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,038
    Likes Received:
    4,122
    It derives the 5v off the USB, and after the schottkey diode its dropped to around 4.8v average - dropping to 4.5 after wiring is about right.

    Did you try without the Enable yet, before the other things. Lots of folks running with the 5v / open drain

    (; if you need a more plug and play solution: See https://docs.openbuilds.com/blackbox (;
     
  8. MSWiseman

    MSWiseman New
    Builder

    Joined:
    Jun 20, 2021
    Messages:
    6
    Likes Received:
    1
    I would totally do the black box if it supported 5 axes... trust me, I really wish it did (or maybe it had to do with Nema 23 support? I can't remember why it wouldn't work for my application).

    I'll give it try.
     
    Peter Van Der Walt likes this.
  9. MSWiseman

    MSWiseman New
    Builder

    Joined:
    Jun 20, 2021
    Messages:
    6
    Likes Received:
    1
    Well, I'm annoyed to report that it was actually the stepper drivers. I thought I'd tested them again, but after wiring and rewiring everything for the 10th time, I took them out, hooked up a switch, and directly connected them to a stepper motor. No movement.

    Perhaps when I rewired it I did something to fry them? Not sure how that'd be possible, but seems to be the case.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice