FluidNC icon indicating copy to clipboard operation
FluidNC copied to clipboard

Problem: Stepper motors not moving

Open DarkSlaayer opened this issue 1 year ago • 43 comments

Wiki Search Terms

Motor, Axes, Motor issues, pretty much everything

Controller Board

6-pack Universal

Machine Description

Shapeoko 3XXL IMG_9752 IMG_9754

Input Circuits


BTT 5160T Pro stepper drivers/step stick?

IO module in spot one for Limit Switches they are working and reporting back fine with $limits and the calibration screen when connected via usb. The RS485 & relay module outputs arent currently connected to anything.

Configuration file

board: 6 Pack
name: 6 Pack TMC5160 XYZ
stepping:
  engine: I2S_STATIC
  idle_ms: 250
  pulse_us: 6
  dir_delay_us: 1
  disable_delay_us: 1
  segments: 6
axes:
  shared_stepper_disable_pin: NO_PIN
  homing_runs: 2
  x:
    steps_per_mm: 80
    max_rate_mm_per_min: 5000
    acceleration_mm_per_sec2: 100
    max_travel_mm: 300
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 150
      feed_mm_per_min: 100
      seek_mm_per_min: 200
      settle_ms: 500
      seek_scaler: 1.1
      feed_scaler: 1.1
    motor0:
      limit_neg_pin: gpio.33:pu
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1
      tmc_5160:
        cs_pin: i2so.3
        r_sense_ohms: 0.075
        run_amps: 2
        hold_amps: 0.5
        microsteps: 16
        stallguard: 0
        stallguard_debug: true
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: CoolStep
        homing_mode: CoolStep
        use_enable: false
        step_pin: i2so.2
        direction_pin: i2so.1
        disable_pin: I2SO.0
  y:
    steps_per_mm: 80
    max_rate_mm_per_min: 5000
    acceleration_mm_per_sec2: 100
    max_travel_mm: 300
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: true
      mpos_mm: 150
      feed_mm_per_min: 100
      seek_mm_per_min: 200
      settle_ms: 500
      seek_scaler: 1.1
      feed_scaler: 1.1
    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1
      tmc_5160:
        cs_pin: i2so.6
        r_sense_ohms: 0.075
        run_amps: 2
        hold_amps: 0.5
        microsteps: 16
        stallguard: 0
        stallguard_debug: true
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: i2so.5
        direction_pin: i2so.4
        disable_pin: I2SO.7
    motor1:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: gpio.35
      hard_limits: false
      pulloff_mm: 1
      tmc_5160:
        cs_pin: i2so.11
        r_sense_ohms: 0.075
        run_amps: 2
        hold_amps: 0.5
        microsteps: 16
        stallguard: 0
        stallguard_debug: true
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: i2so.10
        direction_pin: i2so.9
        disable_pin: I2SO.8
  z:
    steps_per_mm: 80
    max_rate_mm_per_min: 5000
    acceleration_mm_per_sec2: 100
    max_travel_mm: 300
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 150
      feed_mm_per_min: 100
      seek_mm_per_min: 200
      settle_ms: 500
      seek_scaler: 1.1
      feed_scaler: 1.1
    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: gpio.32
      hard_limits: false
      pulloff_mm: 1
      tmc_5160:
        cs_pin: i2so.14
        r_sense_ohms: 0.075
        run_amps: 2
        hold_amps: 0.5
        microsteps: 16
        stallguard: 0
        stallguard_debug: true
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: i2so.13
        direction_pin: i2so.12
        disable_pin: I2SO.15
i2so:
  bck_pin: gpio.22
  data_pin: gpio.21
  ws_pin: gpio.17
spi:
  miso_pin: gpio.19
  mosi_pin: gpio.23
  sck_pin: gpio.18
sdcard:
  card_detect_pin: NO_PIN
  cs_pin: gpio.5
control:
  safety_door_pin: NO_PIN
  reset_pin: NO_PIN
  feed_hold_pin: NO_PIN
  cycle_start_pin: NO_PIN
  macro0_pin: NO_PIN
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN
  fault_pin: NO_PIN
  estop_pin: NO_PIN
probe:
  pin: NO_PIN
  check_mode_start: true
  toolsetter_pin: NO_PIN
macros: {}
user_outputs:
  analog0_pin: NO_PIN
  analog1_pin: NO_PIN
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  analog0_hz: 5000
  analog1_hz: 5000
  analog2_hz: 5000
  analog3_hz: 5000
  digital0_pin: NO_PIN
  digital1_pin: NO_PIN
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN
start:
  must_home: false
PWM:
  pwm_hz: 5000
  output_pin: gpio.26
  enable_pin: gpio.4
  direction_pin: NO_PIN
  disable_with_s0: false
  s0_with_disable: true
  spinup_ms: 1000
  spindown_ms: 1000
  tool_num: 0
  speed_map: 0=0.000% 1000=100.000%

Startup Messages

[MSG:INFO: FluidNC v3.8.0 https://github.com/bdring/FluidNC]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine 6 Pack TMC5160 XYZ]
[MSG:INFO: Board 6 Pack]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN freq:8000000]
[MSG:INFO: Stepping:I2S_static Pulse:6us Dsbl Delay:1us Dir Delay:1us Idle Delay:250ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (150.000,450.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_5160 Step:I2SO.2 Dir:I2SO.1 CS:I2SO.3 Disable:I2SO.0 Index:-1 R:0.075]
[MSG:INFO:  X Neg Limit gpio.33:pu]
[MSG:INFO: Axis Y (-150.000,150.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_5160 Step:I2SO.5 Dir:I2SO.4 CS:I2SO.6 Disable:I2SO.7 Index:-1 R:0.075]
[MSG:INFO:   Motor1]
[MSG:INFO:     tmc_5160 Step:I2SO.10 Dir:I2SO.9 CS:I2SO.11 Disable:I2SO.8 Index:-1 R:0.075]
[MSG:INFO:  Y2 All Limit gpio.35]
[MSG:INFO: Axis Z (150.000,450.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_5160 Step:I2SO.13 Dir:I2SO.12 CS:I2SO.14 Disable:I2SO.15 Index:-1 R:0.075]
[MSG:INFO:  Z All Limit gpio.32]
[MSG:INFO: X Axis driver test passed]
[MSG:INFO: Y Axis driver test passed]
[MSG:INFO: Y2 Axis driver test passed]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: PWM Spindle Ena:gpio.4 Out:gpio.26 Dir:NO_PIN Freq:5000Hz Period:8191]
[MSG:INFO: Using spindle PWM]
[MSG:INFO: Connecting to STA SSID:SlowWifi]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 192.168.50.145]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
[MSG:INFO: SSDP Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
ok
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100>

User Interface Software

WebUI

What happened?

I tried to jog motor doesnt move while the jog is running motor is locked up until the jog command is finished

GCode File

No response

Other Information

5160 Jumpers in place. SPI Jumpers x3 in place

I have ohm the motor wires and made sure they are paired to the same A and Bs.

If someone suggest a fix without buying new hardware and it works I’ll pay a $100 bounty. I have left town for work but will be back in about a week.

DarkSlaayer avatar Jul 19 '24 16:07 DarkSlaayer

$100 Bounty info at bottom of post.

DarkSlaayer avatar Jul 19 '24 19:07 DarkSlaayer

What are the power supply specs?

bdring avatar Jul 19 '24 19:07 bdring

Try with the other drivers, like the X and Y. Also try using FluidTerm to send a motion command like "G1 Z20 F400". If the motor is locked but not moving, that usually means that the driver is not getting STEP pulses or the STEP pulse rate is too fast. I don't think that "too fast" is the problem here, because the acceleration and rates are reasonable, but it is always a good idea to start with slow movements when testing.

MitchBradley avatar Jul 19 '24 19:07 MitchBradley

http://wiki.fluidnc.com/en/support/setup/testing-step-pins

MitchBradley avatar Jul 19 '24 21:07 MitchBradley

What are the power supply specs?

I’m using my bench power supply up to 30v 10amps.

i was possibly thinking maybe it didn’t like the variable power supply so took a 12v 50amp psu and hooked up a 24v buck booster that’s good for 6amps and nothing changed… I do have a 24v psu on the way though.

DarkSlaayer avatar Jul 20 '24 01:07 DarkSlaayer

Try with the other drivers, like the X and Y. Also try using FluidTerm to send a motion command like "G1 Z20 F400". If the motor is locked but not moving, that usually means that the driver is not getting STEP pulses or the STEP pulse rate is too fast. I don't think that "too fast" is the problem here, because the acceleration and rates are reasonable, but it is always a good idea to start with slow movements when testing.

I have tried every axis so far they all do the same thing. I’ll try the LED thing with the driver pins when I get back into town but I did try a smaller cheapo stepper motor and it worked fine…

DarkSlaayer avatar Jul 20 '24 01:07 DarkSlaayer

Do you mean a cheapo stepper motor or a cheapo motor driver like an A4988?

MitchBradley avatar Jul 20 '24 04:07 MitchBradley

That information (the fact that you tried different axes, and the fact that you got it to work under some circumstances) is very important. Had we know that earlier, that would have eliminated many different possibilities. Don't make us guess.

MitchBradley avatar Jul 20 '24 04:07 MitchBradley

Do you mean a cheapo stepper motor or a cheapo motor driver like an A4988?

Stepper motor

DarkSlaayer avatar Jul 20 '24 08:07 DarkSlaayer

That information (the fact that you tried different axes, and the fact that you got it to work under some circumstances) is very important. Had we know that earlier, that would have eliminated many different possibilities. Don't make us guess.

I apologize

DarkSlaayer avatar Jul 20 '24 08:07 DarkSlaayer

Would it been fine to set the board to SD and try to control the steppers without using spi? What would cause it to work with a nema 17 motor I believe and not a nema 23?

DarkSlaayer avatar Jul 20 '24 10:07 DarkSlaayer

I’m starting to think it’s my PSU my 24v one comes in today but I’ll be out of town still.. I was thinking maybe it’s fighting with the board in some way as I noticed even if I set it to 30v it would only go to 22ish volts.. I guess some bench PSU will only raise the voltage as the request for current increases.

DarkSlaayer avatar Jul 20 '24 12:07 DarkSlaayer

Try leaving all chips installed and disconnect all motors, but 1.

The 5160 is notorious for current spikes. I suggest at least 4 amps per motor regardless of current levels in the config file.

bdring avatar Jul 20 '24 15:07 bdring

Try leaving all chips installed and disconnect all motors, but 1.

The 5160 is notorious for current spikes. I suggest at least 4 amps per motor regardless of current levels in the config file.

I have tried one motor with all drives. With the config set to 2amp run will it still allow the spike or should I bump it.

DarkSlaayer avatar Jul 20 '24 15:07 DarkSlaayer

There is no way to predict the spike behavior - or whatever is causing the shutdown - without detailed knowledge of every aspect of the circuit. Everything from the power supply through the wiring through the controller through the connector pins through the stepstick and its MSOFET through the motor wiring and the motors could be implicated in the dynamic behavior. This is the sort of situation that, in a commercial setting, could require days or weeks in the lab with expensive equipment, trained engineers, and perhaps involvement with vendors. 5160s were intended for commercial use by companies that have the resources to tune the circuits and settings for specific product configurations. Putting them on stepsticks and throwing them out into the DIY world has caused no end of trouble. Many people have had problems that were unsolvable with the resources available. The stepstick format is particularly ill-suited for a driver with this voltage and current capability, even if you have it dialed down to a relatively low current. The resistance and inductance of on-board traces and dupont pins can result in not only surges but also voltage dips that can trigger protection circuits.

MitchBradley avatar Jul 20 '24 16:07 MitchBradley

There is no way to predict the spike behavior - or whatever is causing the shutdown - without detailed knowledge of every aspect of the circuit. Everything from the power supply through the wiring through the controller through the connector pins through the stepstick and its MSOFET through the motor wiring and the motors could be implicated in the dynamic behavior. This is the sort of situation that, in a commercial setting, could require days or weeks in the lab with expensive equipment, trained engineers, and perhaps involvement with vendors. 5160s were intended for commercial use by companies that have the resources to tune the circuits and settings for specific product configurations. Putting them on stepsticks and throwing them out into the DIY world has caused no end of trouble. Many people have had problems that were unsolvable with the resources available. The stepstick format is particularly ill-suited for a driver with this voltage and current capability, even if you have it dialed down to a relatively low current. The resistance and inductance of on-board traces and dupont pins can result in not only surges but also voltage dips that can trigger protection circuits.

Yes I understand and seen some comments about this specific step stick. I may just order the adapters to run external drivers and replace the step sticks with some drivers from steppers online

DarkSlaayer avatar Jul 20 '24 16:07 DarkSlaayer

The bottom line is that we probably can't give you a definitive "do this and it should work" answer. You might get lucky and try something that we or you think of, but don't expect anyone to just know. For myself, I have quit using 5160s. The 5160 setups I have tried are just too prone to shutting down in the middle of a job. As an experienced electrical engineer, I probably would have been able to solve the problems given enough time and motivation, but for my present use cases, the motivation to spend the time was not present, so I switched to less-troublesome drivers.

MitchBradley avatar Jul 20 '24 16:07 MitchBradley

Many people are very happy with DM5xx series of external drivers from reputable suppliers, but beware of cheap knock-offs.

MitchBradley avatar Jul 20 '24 16:07 MitchBradley

Hi, can I ask a picture of the TMC5160 jumpers? Can it be that you are in full SPI mode?

3404gerber avatar Jul 20 '24 19:07 3404gerber

If it were in full SPI mode, it would not work with NEMA 17 motors.

MitchBradley avatar Jul 20 '24 19:07 MitchBradley

You're right, i didn't see that information. Next guess, I found a couple of pictures showing that B1 and B2 were inverted on the new BTT 5160T V1.1. Did you try to invert the polarity of one of the coils?

3404gerber avatar Jul 20 '24 20:07 3404gerber

Inverting one coil polarity makes the motor move in the opposite direction. Inverting both has no effect - the first first inversion reverses the direction and the second reverses it back to normal.

MitchBradley avatar Jul 20 '24 20:07 MitchBradley

Ok, now it looks like I'm the one who need's help... But hey, quite new to stepper and still learning! ;)

Don't know how relevant this is, but your step per mm seems completely off: I'd go with 640, if all axes have a 5mm pitch screw, and 200 steps per revolution motor running at 16 microsteps. Can it be that you jog one millimeter and it's moving only 0 .125mm?

3404gerber avatar Jul 20 '24 20:07 3404gerber

Again, doesn't explain the difference in behavior between NEMA 17 and NEMA 23 motors, which generally have the same steps per revolution.

MitchBradley avatar Jul 20 '24 21:07 MitchBradley

Again, doesn't explain the difference in behavior between NEMA 17 and NEMA 23 motors, which generally have the same steps per revolution.

Well, what does? If I understand it right, the driver limits the current, no matter what motor is connected. For me, if it "works" with the NEMA 17, it should work with the NEMA 23.Maybe not good, but something should happen.

For the record, I just double checked: the X and Y axis have a belt with a pitch of 2mm and a 20 teeth pulley, so 80 steps per mm is correct...

3404gerber avatar Jul 20 '24 21:07 3404gerber

I once had a problem with motors from different manufacturers where the four cables had the same colors as the two motors, but the coils were connected differently. So unplug the plug from the board and measure it.

BlueOrangeLive avatar Jul 21 '24 08:07 BlueOrangeLive

I think it may be a board issue.. I had some a4988 step sticks laying around and they do the same thing..

DarkSlaayer avatar Jul 26 '24 02:07 DarkSlaayer

A4988 step sticks require different jumper settings than TMC5160s. If "the same thing" means that NEMA17 works but NEMA23 does not, I suspect that you have the NEMA23s wired wrong. Did you check the coils as BlueOrangeLive suggested?

MitchBradley avatar Jul 26 '24 18:07 MitchBradley

A4988 step sticks require different jumper settings than TMC5160s. If "the same thing" means that NEMA17 works but NEMA23 does not, I suspect that you have the NEMA23s wired wrong. Did you check the coils as BlueOrangeLive suggested?

I did not check them on the nema 17s but yes I did change the jumpers and configuration.

Yes coils have been verified both via ohm meter and jumping the wires and pushing the gantry and checking for resistance.

I’m really stumped I’m not new to this kind of stuff and I was hoping it was some kind of configuration issue.

I even said hell with it and switched pairs around etc and nothing new.

The steppers are free moving but if I jog them they lock up until the jog command is over and they go back to be free moving manually by hand

I ordered some external drivers. I wired up the OEM board back up for the time being.

DarkSlaayer avatar Jul 26 '24 20:07 DarkSlaayer

I did a quick test where I swapped motor wires so coil 1 was connected to driver A- B- and coil 2 to driver A+ B+. The motor locked, but when I tried a move, it just shook and did not turn. This is as I expected. It is a 6-pack universal board with A4988 step sticks driving a short-length NEMA23 motor with no load. It spun as expected with the coils connected correctly.

MitchBradley avatar Jul 26 '24 20:07 MitchBradley