Plasma table Jackpot with some 2209 and some external drivers

If anyone is on the Facebook group they may have seen my build so far. It’s a 4x8’ plasma table I had everything working but then decided to change my z axis drivers to dm542 external drivers to make running the proma thc sd much easier. The problem. I’m running into a wall trying to figure out how to change the config to make use of the external stepper drivers Any help would be greatly appreciated

3 Likes

1 Like

Well, that looks like a fun project.

I’ve seen a couple threads on here where others were looking to use external drivers with a Jackpot. I’m not sure that I’ve seen any get it working yet, but it sounds like it should be possible.

I’m assuming you need to change the TMC2209 config to use a “standard stepper”. I see you have some type of adapter board. Any detail on what you are using there and how they are wired?

Axes - Standard Stepper | Wiki.js

It’s the mks cd board that runs the step dir enable and ground pins out

I’m guessing the change is to just take whatever is in the existing tmc2209 section for each Z motor such as:

      tmc_2209:
        uart_num: 1
        addr: 2
        cs_pin: NO_PIN
        r_sense_ohms: 0.110
        run_amps: 0.800
        homing_amps: 0.800
        hold_amps: 0.700
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        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

Replace “tmc_2209” with “standard_stepper” and delete everything but step_pin, direction_pin, and disable_pin:

      standard_stepper:
        step_pin: I2SO.10
        direction_pin: I2SO.9
        disable_pin: I2SO.8

I’m not sure if you’ll need to invert any of those pins. Looking at some sample config files using external drivers, I don’t think so.
bdring/fluidnc-config-files at e8277f1056065059c0a525ff02e95382656b27cd

So that is basically what I did. But this is my first time using fluid nc so I’m not sure if I’m modifying the config correctly. I download the config open in notepad make changes save it. Upload firmware type in config name and reset firmware… I’m setting indent errors for everything

Ah, ok. Yaml files are extremely sensitive to spacing, even outside of FluidNC. If anything is slightly off, it will yell at you. The indent errors should point you at where it needs to be fixed.
Everything needs to be indented properly with 2 spaces per level. Don’t use tabs. If you upload your config.yaml file, I can take a look.

This is truncated but you can see the levels:

Thanks for that photo that’s very helpful! How do I get into the config file where it looks like that? I’m used to working with klipper on 3d printers but adjusting everything thru notepad has been a thorn in my side

It’s just that instead of Notepad to edit the file on my computer, I’m using Visual Studio Code. I highly recommend it.

Awesome I’ll download it and try it out. If I get time before bed I’ll run out and change my config will let you know for sure. If it doesn’t work I’ll upload my yaml. Thank you for your time

1 Like

i cant figure out how to send my file to you it says wrong type when i try to attach

board: Jackpot TMC2209
name: LowRider
meta: 10-31-2024 RyanZ

planner_blocks: 32

stepping:
  engine: I2S_STATIC
  idle_ms: 255
  pulse_us: 2
  dir_delay_us: 1
  disable_delay_us: 0

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

axes:
  shared_stepper_disable_pin: NO_PIN

  x:
    steps_per_mm: 50.000
    max_rate_mm_per_min: 9000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 1220
    soft_limits: true
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 3
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1500.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100
    #X
    motor0:
      limit_neg_pin: gpio.25:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 0
        cs_pin: NO_PIN
        r_sense_ohms: 0.110
        run_amps: 0.900
        homing_amps: 0.800
        hold_amps: 0.700
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        direction_pin: I2SO.1
        step_pin: I2SO.2
        disable_pin: I2SO.0

  y:
    steps_per_mm: 50.000
    max_rate_mm_per_min: 9000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 2438
    soft_limits: true
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 3
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1500.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100
    #Y
    motor0:
      limit_neg_pin: gpio.33:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 1
        cs_pin: NO_PIN
        r_sense_ohms: 0.110
        run_amps: 0.900
        homing_amps: 0.800
        hold_amps: 0.700
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        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

    #A
    motor1:
      limit_neg_pin: gpio.35:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 3
        cs_pin: i2so.14
        r_sense_ohms: 0.110
        run_amps: 0.900
        homing_amps: 0.800
        hold_amps: 0.700
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        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

  z:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 1800.000
    acceleration_mm_per_sec2: 80.000
    max_travel_mm: 300.000
    soft_limits: true
    homing:
      cycle: 1
      positive_direction: true
      mpos_mm: 3
      feed_mm_per_min: 200.000
      seek_mm_per_min: 800.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.32:high
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000
      standard_stepper:
        step_pin: I2SO.10
        direction_pin: I2SO.9
        disable_pin: I2SO.8

     #B
    motor1:
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.34:high
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000
      standard_stepper:
        step_pin: I2SO.18
        direction_pin: I2SO.17
        disable_pin: I2SO.16

#  c:
#    steps_per_mm: 80.000
#    max_rate_mm_per_min: 5000.000
#    acceleration_mm_per_sec2: 100.000
#    max_travel_mm: 300.000
#    soft_limits: false
#    homing:
#      cycle: 0
#      positive_direction: true
#      mpos_mm: 150.000
#      feed_mm_per_min: 100.000
#      seek_mm_per_min: 800.000
#      settle_ms: 500
#      seek_scaler: 1.100
#      feed_scaler: 1.100
#
#    motor0:
#      limit_neg_pin: gpio.39:low
#      limit_pos_pin: NO_PIN
#      limit_all_pin: NO_PIN
#      hard_limits: false
#      pulloff_mm: 3.000
#      tmc_2209:
#        uart_num: 1
#        addr: 3
#        cs_pin: i2so.22
#        r_sense_ohms: 0.110
#        run_amps: .8
#        homing_amps: 0.800
#        hold_amps: 0.050
#        microsteps: 16
#        stallguard: 0
#        stallguard_debug: false
#        toff_disable: 0
#        toff_stealthchop: 5
#        toff_coolstep: 3
#        run_mode: StealthChop
#        homing_mode: StealthChop
#        use_enable: false
#        step_pin: I2SO.21
#        direction_pin: I2SO.20
#        disable_pin: I2SO.23

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

probe:
  pin: gpio.36:low
  check_mode_start: true
  
 relay:
  output_pin: gpio.27
  enable_pin: NO_PIN
  direction_pin: NO_PIN
  disable_with_s0: false
  s0_with_disable: true
  spinup_ms: 0
  spindown_ms: 0
  tool_num: 100
  speed_map: 0=0.000% 0=100.000% 1=100%
  
 start:
  must_home: false

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

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

macros:
  startup_line0:
  startup_line1:
  macro0:
  macro1:
  macro2:
  macro3:

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
  
  PlasmaSpindle:
  enable_pin: gpio.27            #output_pin
  arc_ok_pin: gpio.39:low        #input_pin
  arc_wait_ms: 1200
  tool_num: 0
  off_on_alarm: true
  atc:
  m6_macro:

#Laser:
#  pwm_hz: 5000
#  output_pin: gpio.27
#  enable_pin: NO_PIN
#  disable_with_s0: false
#  s0_with_disable: true
#  tool_num: 0
#  speed_map: 0=0.000% 255=100.000%
#  off_on_alarm: true

# pwm:
#  pwm_hz: 5000
#  direction_pin: gpio.26
#  output_pin: gpio.27
#  enable_pin: NO_PIN
#  disable_with_s0: false
#  s0_with_disable: true
#  spinup_ms: 0
#  spindown_ms: 0
#  tool_num: 0
#  speed_map: 0=0.000% 1000=100.000%
#  off_on_alarm: false

# 5V out gpio.26/27
# VMot out gpoi.2/16
# Inputs gpoi.25/33/32/35/34/39/36

Everything is working except the z axis

You can either put it in a zip file or change the extension to .gcode or .nc to upload. I can take a look tomorrow.

Thanks for your time

I think you need to add :low to the end of each disable_pin. The config has a disable pin but the driver has an enable pin so that would invert it. For example:

disable_pin: I2SO.8:low

http://wiki.fluidnc.com/en/hardware/official/6_Pack_External#example-config-file

I don’t have the enable pins wired but I will try

I have a plasma cutter and thought I wonder could I put it on my LR4 so checked out the price of the proma. Oof!

Not saying you should give up - this is great and I’d love to see some of your projects. But you know there are other fluidNC boards that work with external stepper drivers right out of the gate. Save the jackpot and use if for IDK, a laser or something. :grin:

You’re running the proma controller on the lr4? Did you just run both z motors on one driver. They are only 4 axis boards

This is true but it’s interesting that in this case external drivers are only needed for the Z axis.

This is the 6 axis external stepper board that comes to mind.

I’d still pursue the Jackpot approach for now. We haven’t run out of ideas.

Speaking of ideas… is your DM542 configured for 5v or 24v logic? I believe 24v is the default but the Jackpot is using 5v logic.

Note: I have a decent understanding of the software and configuration side of FluidNC. Hardware is not my strength. I have no idea how to hook up a THC. So, my advice is at your own risk.