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): ---------- 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.
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.
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
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.
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!
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 (;
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.
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.