Stepper fwd gave pipette retraction, and stepper rev gave pipette extension. The 4 output lines on the motor shield to the 4 input lines on the stepper, in order. In the below, I reduced delayLength to 50 to make it move reasonably fast. Forward motion: int delaylegnth = 500; void setup() { //establish motor direction toggle pins pinMode(12, OUTPUT); //CH A -- HIGH = forwards and LOW = backwards??? pinMode(13, OUTPUT); //CH B -- HIGH = forwards and LOW = backwards??? //establish motor brake pins pinMode(9, OUTPUT); //brake (disable) CH A pinMode(8, OUTPUT); //brake (disable) CH B } void loop(){ digitalWrite(9, LOW); //ENABLE CH A digitalWrite(8, HIGH); //DISABLE CH B digitalWrite(12, HIGH); //Sets direction of CH A analogWrite(3, 1023); //Moves CH A delay(delaylegnth); digitalWrite(9, HIGH); //DISABLE CH A digitalWrite(8, LOW); //ENABLE CH B digitalWrite(13, LOW); //Sets direction of CH B analogWrite(11, 1023); //Moves CH B delay(delaylegnth); digitalWrite(9, LOW); //ENABLE CH A digitalWrite(8, HIGH); //DISABLE CH B digitalWrite(12, LOW); //Sets direction of CH A analogWrite(3, 1023); //Moves CH A delay(delaylegnth); digitalWrite(9, HIGH); //DISABLE CH A digitalWrite(8, LOW); //ENABLE CH B digitalWrite(13, HIGH); //Sets direction of CH B analogWrite(11, 1023); //Moves CH B delay(delaylegnth); } Reverse motion: int delaylegnth = 500; void setup() { //establish motor direction toggle pins pinMode(12, OUTPUT); //CH A -- HIGH = forwards and LOW = backwards??? pinMode(13, OUTPUT); //CH B -- HIGH = forwards and LOW = backwards??? //establish motor brake pins pinMode(9, OUTPUT); //brake (disable) CH A pinMode(8, OUTPUT); //brake (disable) CH B } void loop(){ digitalWrite(9, LOW); //ENABLE CH A digitalWrite(8, HIGH); //DISABLE CH B digitalWrite(12, HIGH); //Sets direction of CH A analogWrite(3, 1023); //Moves CH A delay(delaylegnth); digitalWrite(9, HIGH); //DISABLE CH A digitalWrite(8, LOW); //ENABLE CH B digitalWrite(13, HIGH); //Sets direction of CH B analogWrite(11, 1023); //Moves CH B delay(delaylegnth); digitalWrite(9, LOW); //ENABLE CH A digitalWrite(8, HIGH); //DISABLE CH B digitalWrite(12, LOW); //Sets direction of CH A analogWrite(3, 1023); //Moves CH A delay(delaylegnth); digitalWrite(9, HIGH); //DISABLE CH A digitalWrite(8, LOW); //ENABLE CH B digitalWrite(13, LOW); //Sets direction of CH B analogWrite(11, 1023); //Moves CH B delay(delaylegnth); } -------------------------------- Number of steps from end to end: Motor getting hot with 1023 as the PWM value -- may need less. HSI stepper linear actuator? US patent 4, 841, 189 Setting this to delay length of 5 ms and to a PWM of 450 worked nicely. I think we need a hybrid of http://academy.cba.mit.edu/classes/output_devices/stepper/hello.stepper.bipolar.44.png and the bus node and http://academy.cba.mit.edu/classes/output_devices/servo/hello.servo.44.png and the serial bus node and the serial bus bridge board bus asynchronous RS-232, RS-422, RS-485 components video hello.bus.45.bridge.cad board traces interior hello.bus.45.node.cad board traces interior hello.bus.45.c makefile -------------------------------- Just combining the servo and stepper boards into one in kokopelli. Problem with the FTDI connector -- not rotating, displaying pads, wiring. Fixed with this substitution: #pad_header = cube(-.05,.05,-.025,.025,0,0) pad_header = rectangle(-0.05,0.05,-0.025,0.025) We'll use PB2 as Rx and PA5 as Tx or vice versa ----------------- 50 px per mm works well for Kokopelli png export ---------------- Replacing A4953 for now with ZXMHC3A01T8CT-ND mosfet h-bridge ---------------- Getting the device signature 0x000000 error despite much board re-soldering --------------- 5V regulator gives 5V from a 9V battery and 4.3V from the FTDI input --------------- note that the PA2 connection to the power line doesn't do anything -- and it's in Neil's bi-polar stepper board too removing that pin entirely does not fix the device signature error --------------- Noah made a variant board that removes the FDTI connections --------------- Changed avrisp2 programmer from Charles' to CBA's and then it worked! --------------- hello.servo see signals coming from servo line but not clear behavior of servo --------------- hello stepper output of H-bridge A4953 is V_source (unregulated, around 7 volts for a 9V battery) even though can see input PWM signals (5v) on oscilloscope at its input pins From datasheet: (although Neil doesn't have this -- he has a trace connecting to the ground directly from LSS) Sense Pin (LSS) In order to use PWM current control, a low-value resistor is placed between the LSS pin and ground for current sensing purposes. Another difference between my board and Neil's hello stepper is that some of my ground traces are thinner. Experimentally we do see LSS as grounded. THE NEXT STEP MAY BE TO JUST MAKE NEIL's BIPOLAR STEPPER BOARD AND SEE IF IT WORKS, AND IF SO, MAKE OUR SETUP EVEN MORE SIMILAR TO IT (TRACE WIDTH ETC.) -------- Correct configuration of h-bridge found in data-sheet we're not using the Rs resistor, and have different capacitor values, and there is no electrolytic capacitor ------- FRESH 9V BATTERY FIXED IT!!! ------ OK well actually the stepper gets very hot. But it requires 12V to drive it. Nadya sent a different board.