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
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?
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
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.
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.