I’m replacing the CNC Shield that was running my K40 laser with a Jackpot controller purchased (some time ago) from the V1 shop, ordered with the MPCNC configuration.
Installation has gone smoothly, once I realized the microstepping was different, now I’ve got everything moving the right direction and distance, homing properly, and even have the relay for the air assist working on the mist coolant output. I’m only using 3 drivers (X, Y, and an add-on motorized Z stage), so no auto-squaring is needed. I’ve simply commented out the lines in the config.yaml file for the A, B, and C axes.
What I don’t have is the laser firing. The Test and Enable buttons on the analog control panel are working the same way they did before, and test firing the laser works. But the jackpot won’t seem to fire the laser. This was working fine under the CNC shield with grbl in laser mode ($32=1).
What I’ve done:
- Connected the laser trigger wire to GPIO:27 (to avoid a blip on startup)
- Added a laser section to config.yaml (shown below) as suggested in the DOCS
- (I’m eventually going to be using Lightburn to run this, so I’ve got the speed map set for 0-1000 to align with Lightburn’s preference.)
- Swapped the trigger and gnd wires in case I had them reversed.
Basic questions:
The web interface still shows spindle control. Does that indicate I’ve got a typo in the yaml file?
Is there an LED that’s supposed to come on when gpio27 is active? It hasn’t lit up.
Here’s my config.yaml
board: Jackpot TMC2209
name: K40Upgrade
meta: 04-27-2026 TomT
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: 80.000
max_rate_mm_per_min: 20000.000
acceleration_mm_per_sec2: 3000.000
max_travel_mm: 310.000
soft_limits: true
homing:
cycle: 2
positive_direction: false
mpos_mm: 2.0
feed_mm_per_min: 200.000
seek_mm_per_min: 2000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
#X
motor0:
limit_neg_pin: gpio.25:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 2.0
tmc_2209:
uart_num: 1
addr: 0
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
direction_pin: I2SO.1
step_pin: I2SO.2
disable_pin: I2SO.0
# #A
# motor1:
# limit_neg_pin: gpio.35:high
# limit_pos_pin: NO_PIN
# limit_all_pin: NO_PIN
# hard_limits: false
# pulloff_mm: 4.000
# tmc_2209:
# uart_num: 1
# addr: 3
# cs_pin: i2so.14
# 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.13
# direction_pin: I2SO.12
# disable_pin: I2SO.15
y:
steps_per_mm: 80.000
max_rate_mm_per_min: 20000.000
acceleration_mm_per_sec2: 3000.000
max_travel_mm: 215
soft_limits: true
homing:
cycle: 2
positive_direction: true
mpos_mm: 212.000
feed_mm_per_min: 200.000
seek_mm_per_min: 2000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
#Y
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: gpio.33:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 3.000
tmc_2209:
uart_num: 1
addr: 1
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.5
direction_pin: I2SO.4
disable_pin: I2SO.7
# #B
# motor1:
# limit_neg_pin: gpio.34:high
# limit_pos_pin: NO_PIN
# limit_all_pin: NO_PIN
# hard_limits: false
# pulloff_mm: 4.000
# tmc_2209:
# uart_num: 1
# addr: 3
# cs_pin: i2so.19
# 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.18
# direction_pin: I2SO.17
# disable_pin: I2SO.16
z:
steps_per_mm: 1259.842
max_rate_mm_per_min: 800.000
acceleration_mm_per_sec2: 1800.000
max_travel_mm: 10.500
soft_limits: true
homing:
cycle: 1
positive_direction: true
mpos_mm: 8.000
feed_mm_per_min: 200.000
seek_mm_per_min: 400.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: gpio.32:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 2.000
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
# 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: 1
# 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: 0.800
# homing_amps: 0.800
# hold_amps: 0.500
# 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
# toolsetter_pin: NO_PIN
# check_mode_start: true
start:
must_home: true
coolant:
flood_pin: gpio.13:low
mist_pin: gpio.14:low
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: NO_PIN
digital2_pin: NO_PIN
digital3_pin: NO_PIN
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% 1000=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
# In's left to right gpoi.25/33/32/35/34/39/36

