Jackpot and Tmc2226 drivers

Was trying to get my LR3 build moving this weekend, and found the LDO steppers I’m using (42STH48-2804AC) are considerably more thirsty than the ones that come in the kit. It wouldn’t even home at the drive current in the stock LR3 config. Found I need about 1.5A drive and 1A hold for everything but the y access, which took a bit more…I ended up at 2.4A to get them to not skip steps during a cut.

In the process I also found that the jackpot will drive BTT TMC2226 steppers with no problem at 2.4A for at least a 2 hr cut. Only change needed was to update the sense resistor value in the config (0.15 for the 2226s).

Also, lesson learned: hot rod 3d printer steppers do not necessarily male good cnc router steppers.

Debating on doing more research and trying different steppers, or go the boring route and get a set from the v1e store :wink:

2 Likes

Figured I should add a pic…

Cut on the left is where I tuned in the y stepper current to get it to stop skipping steps.

1 Like

This points to something bigger wrong. You should not have to drive a stepper at nearly full current, especially ones that are ultra-high torque…and on the Y axis where there are two motors. We run at about very low current on less powerful steppers.

These are the same specs as a 2209, they just have a few degrees better in thermals. And they cost more. When the price drops it would be nice to switch to these just for the better efficiency.

They are rated at 2A RMS, I think you have a setting wrong somewhere, they should get real toasty at 2.4A

It is not clear to me what the issue is but something is wrong. What cutting and rapid speeds did you use

It seemed really high to me too, but couldn’t find anything else wrong. I was figuring they used a larger sized motor coil wire to accommodate the currebt, so it had fewer turns and required higher current to run. I’m running the default speed for travel and I ended up cutting at 25mm/s @3mm depth with an 1/8 single flute into low density fiber board. I had reduced the speed all the way down to about 10mm/s at one point, but that seemed to make it worse.

I think I’m going to try to swap in the skr board I have this weekend and see if I have the same torque issues with that. That should narrow it down to the board and settings vs the mechanical bits and wiring.

Well we have been poking around into the TMC stuff in FLuidNC and you are using non-defined drivers. That could be it. Hard to say.

For the stepper current, the two easy checks are driver temp and stepper temp. If you ran the drivers at 2.4A they should have been extremely hot, if they were not, you were not actually at 2.4A. at 60% rated current and up your steppers should start to warm up as well. Pretty sure the issue is there.

Haven’t had much time to mess with it so far this weekend. I’m only running the TMC2226s on the Y axis, and that was only after I had problems with the 2209s and wanted to try more current. They definitely got hot, but they’re rated to 125C, the cover was off, they were spares I had lying around from a previous upgrade on a printer, and if they failed before the protection circuit kicked in I wasn’t too worried.

After reading the other thread about coolstep and digging through the stepper .cpp files I figured I’d give that a shot last night (since the coolstep mode on 2209s only means putting them in spreadcycle mode) and that seemed to make the problem even worse. I also tried cranking the stepping/pulse_us value up because that’s what the FluidNC FAQ says to do for skipped steps, with no effect.

If I get a chance tonight I’m going to ohm out the stepper wiring with the motors attached to make sure everything is good through the harness and coils and then swap over to the SKR board to see if it makes a difference. Hoping that it’s just one bad crimp on every motor or something else dumb so I can keep using the jackpot. I really don’t want to go back to Marlin and having to recompile every time I want to change something.

Have you also upped the holding current as well? Make them the same as your running current for now(0.5 is not going to be enough). I can’t imagine 2.4A not getting hotter and also not holding. Can you share your yaml for that driver?

I am going to order a set of these to see what sort of temp difference there is on my end. Kinda sounds like a good choice if the price is similar enough.

So…I think I have this figured out. I swapped in the SKR board with no change. However, when I ohmed out the steppers with the harness, they were all 0.8 ohm. Seemed a bit low so I checked the “stock” steppers on my MPCNC, 3.3ohm. Went back and checked the data sheet on the big steppers: 0.7ohm, so they’re reading correctly (harness and meter leads are probably making up the extra 0.1ohm). Looks like my original theory of them using big coil wire with fewer turns is probably correct.

So, if I calculate out power, the stock steppers at 1A would be about 3.3W (P=I^2R). The big ones at 2A are about 3.2W. Now it makes a lot more sense why I need to pump a lot more current into these to get the same performance.

Fix: Don’t buy hotrod 3D printer steppers that are meant for high speed, low torque in a hot environment for a low speed, high torque, room temp application.

Will eventually buy new steppers. In the meantime, I’m going to add active cooling to the board enclosure. I’m thinking of adding a T to the vacuum hose with a 1/2" ish hose hooked to the Jackpot enclosure.

This might be a bit of a mess with how much editing I’ve done tonight. Again, only the Y steppers have TMC2226 drivers. It won’t let me attach a .yaml file, so here it is:

board: Jackpot TMC2209
name: LowRider
meta: 09-10-2023 RyanZ
stepping: 
  engine: I2S_static
  idle_ms: 255
  pulse_us: 4
  dir_delay_us: 1
  disable_delay_us: 0
  segments: 12

uart1: 
  txd_pin: gpio.0
  rxd_pin: gpio.4
  rts_pin: NO_PIN
  cts_pin: NO_PIN
  baud: 115200
  mode: 8N1

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: 
  cs_pin: gpio.5
  card_detect_pin: NO_PIN
  frequency_hz: 20000000

kinematics: 
  Cartesian: 

axes: 
  shared_stepper_disable_pin: NO_PIN
  shared_stepper_reset_pin: NO_PIN
  x: 
    steps_per_mm: 50.000000
    max_rate_mm_per_min: 9000.000000
    acceleration_mm_per_sec2: 200.000000
    max_travel_mm: 616.000000
    soft_limits: false
    homing: 
      cycle: 3
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 0.000000
      feed_mm_per_min: 300.000000
      seek_mm_per_min: 1500.000000
      settle_ms: 500
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: gpio.25
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 0
        cs_pin: NO_PIN
        uart_num: 1
        step_pin: I2SO.2
        direction_pin: I2SO.1
        disable_pin: I2SO.0
        r_sense_ohms: 0.110000
        run_amps: 1.500000
        hold_amps: 1.000000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: CoolStep
        homing_mode: CoolStep
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

  y: 
    steps_per_mm: 50.000000
    max_rate_mm_per_min: 9000.000000
    acceleration_mm_per_sec2: 200.000000
    max_travel_mm: 2000.000000
    soft_limits: false
    homing: 
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 0.000000
      feed_mm_per_min: 300.000000
      seek_mm_per_min: 1500.000000
      settle_ms: 500
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: gpio.33
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 1
        cs_pin: NO_PIN
        uart_num: 1
        step_pin: I2SO.5
        direction_pin: I2SO.4
        disable_pin: I2SO.7
        r_sense_ohms: 0.150000
        run_amps: 2.200000
        hold_amps: 1.500000
        microsteps: 1
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

    motor1: 
      limit_neg_pin: gpio.35
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 6.000000
      tmc_2209: 
        addr: 3
        cs_pin: I2SO.14
        uart_num: 1
        step_pin: I2SO.13
        direction_pin: I2SO.12
        disable_pin: I2SO.15
        r_sense_ohms: 0.150000
        run_amps: 2.200000
        hold_amps: 1.500000
        microsteps: 1
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

  z: 
    steps_per_mm: 200.000000
    max_rate_mm_per_min: 1200.000000
    acceleration_mm_per_sec2: 80.000000
    max_travel_mm: 300.000000
    soft_limits: false
    homing: 
      cycle: 1
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 0.000000
      feed_mm_per_min: 300.000000
      seek_mm_per_min: 800.000000
      settle_ms: 500
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.32
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 2
        cs_pin: NO_PIN
        uart_num: 1
        step_pin: I2SO.10
        direction_pin: I2SO.9
        disable_pin: I2SO.8
        r_sense_ohms: 0.110000
        run_amps: 1.750000
        hold_amps: 1.500000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

    motor1: 
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.34
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 3
        cs_pin: I2SO.19
        uart_num: 1
        step_pin: I2SO.18
        direction_pin: I2SO.17
        disable_pin: I2SO.16
        r_sense_ohms: 0.110000
        run_amps: 1.750000
        hold_amps: 1.500000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

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

coolant: 
  flood_pin: gpio.2
  mist_pin: gpio.16
  delay_ms: 0

probe: 
  pin: gpio.36:low
  toolsetter_pin: NO_PIN
  check_mode_start: true

macros: 
  startup_line0: 
  startup_line1: 
  macro0: 
  macro1: 
  macro2: 
  macro3: 
  after_homing: 
  after_reset: 
  after_unlock: 

start: 
  must_home: false
  deactivate_parking: false
  check_limits: false

parking: 
  enable: false
  axis: Z
  target_mpos_mm: -5.000000
  rate_mm_per_min: 800.000000
  pullout_distance_mm: 5.000000
  pullout_rate_mm_per_min: 250.000000

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: gpio.26
  digital1_pin: gpio.27
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN
  digital4_pin: NO_PIN
  digital5_pin: NO_PIN
  digital6_pin: NO_PIN
  digital7_pin: NO_PIN

NoSpindle: 

arc_tolerance_mm: 0.002000
junction_deviation_mm: 0.010000
verbose_errors: false
report_inches: false
enable_parking_override_control: false
use_line_numbers: false
planner_blocks: 32

Also, I haven’t cut anything with that specific config yet. I just drove it around on the plywood on the floor and made rough comparisons as to how much force it took to stop each axis compared to the MPCNC.

Also also, the steppers themselves are about room temp; only the drivers are hot.

Note to self: this may be a good excuse to go buy that FLIR camera that plugs into the bottom of a cell phone :wink:

1 Like

I just took a look at the data sheets for the TMC’s that 150M Rsense is worse than the 110M for your use case. I have been learning a lot here.

So in your case setting it to 2.5V you get about 1.5A out. With the 2209 you would get ~1.8A Perfectly sized for our steppers, Nema 17 84OZ/in Steppers – V1 Engineering Inc, far too low for your steppers.

I think it is in your best interest to replace your steppers, and use 2209 drivers.

OR…if you can replace your resistors with 90-100M resistors.

I’m not sure why the BTT tmc2226s come with bigger sense resistors, unless it’s some kind of hack to make them otherwise compatible with 2209 profiles.

I think I am going to go with different steppers, but my harness has jst connectors on it so I might go with different ones to avoid re-wiring the whole thing.

No matching resistors would make them a 1 to 1 plug in swap. It was just a poor choice by Biqu. I have told them this, maybe they will revise them.

Swapped out the steppers the other day and can confirm that was the problem. I’m running them at 1 amp and they have significantly more torque than the LDO “super power” steppers did at 2 amps. The only reason I’m not running them at stock config current is that I needed to get a part knocked out before leaving for vacation and didn’t want to risk skipping steps mid-program.

I also noticed while I was still running the LDO steppers that the 2226s appear to be able to handle more current than the 2209s. I was running Y on 2226s at 2.2A and it would finish an entire program without issue. The X-axis (2209) was running at 2A and I had a few occurrences during longer programs where the X-axis would seem to overheat and shut down mid-travel and come down and start cutting about an inch short of where it should have.

That is a higher setting but less output current because of the sense resistor difference. A quick way to verify is to test the stepper temp after running.