multiple DRI0035 on the same arduino

Hi,

I am working on a project that I need to control simultaneously two stepper motors. I have tried to use two DRI0035 TMC 280 stepper motors driver shield by DFRIBOT. I have stacked the two modules on the top of arduino UNO and I have used the following program.

#include <SPI.h>
#include <TMC26XStepper.h>

// Define stepper motors with 200 steps per rotation, CS pin 6 or 7, dir pin 4, step pin 5 and a current of 1000mA
TMC26XStepper Stepper1 = TMC26XStepper(200,6,4,5,1000);
TMC26XStepper Stepper2 = TMC26XStepper(200,7,4,5,1000);

void setup() {
Serial.begin(9600);
Serial.println("==============================");
Serial.println("TMC26X Stepper Driver Demo App");
Serial.println("==============================");
//set this according to you stepper
Serial.println("Configuring stepper driver");

// Initialize stepper motor 1 - char constant_off_time, char blank_time, char hysteresis_start, char hysteresis_end, char hysteresis_decrement
Stepper1.setSpreadCycleChopper(2,24,8,6,0);
Stepper1.setRandomOffTime(0);
Stepper1.SPI_setCoilCurrent(100);
Stepper1.setMicrosteps(128);
Stepper1.setStallGuardThreshold(4,0);

// Initialize stepper motor 1 - char constant_off_time, char blank_time, char hysteresis_start, char hysteresis_end, char hysteresis_decrement
Stepper2.setSpreadCycleChopper(2,24,8,6,0);
Stepper2.setRandomOffTime(0);
Stepper2.SPI_setCoilCurrent(100);
Stepper2.setMicrosteps(128);
Stepper2.setStallGuardThreshold(4,0);

Serial.println("config finished, starting");
Serial.println("started");

}
void loop() {

Stepper1.SPI_setSpeed(10); //Set speed at 80 RPM
Stepper1.SPI_step(-600); //set step at -200 steps, that is to say stepper will turn a circle reverse
Stepper1.spi_start(); //start stepper

Stepper2.SPI_setSpeed(100); //Set speed at 80 RPM
Stepper2.SPI_step(-900); //set step at -200 steps, that is to say stepper will turn a circle reverse
Stepper2.spi_start(); //start stepper

delay(2000); //delay 2s

Stepper1.SPI_step(200); // set step at 200 steps, stepper will turn a circle forward
Stepper1.spi_start();
delay(2000);

Stepper1.SPI_setSpeed(100); // Set speed at 100 RPM
Stepper1.SPI_step(-400); // stepper will turn 1.5 circles reverse
Stepper1.spi_start();
delay(2000);

Stepper1.SPI_setSpeed(200); // Set speed at 120 RPM
Stepper1.SPI_step(800); // stepper will turn 2 circles forward
Stepper1.spi_start();
delay(1000);

}

On the second module I moved the CS jumper to D7.

The motors do not behave as expected. They just make some buzzing moise.

I am wondering if I can actually use two DRI0035 modules.

Any ideas are welcome.

Thanking you in advance

It sounds like a hardware problem, I can see from your schematic it will not work. Paralleling your motors causes problems. Consider a schematic not a frizzy thing showing all the interconnections, power, ground etc as you have it wired.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.