Wiki Search Terms
G2/G3
Controller Board
I’m using a Jackpot2 CNC Controller
https://docs.v1e.com/electronics/jackpot2/
Machine Description
Gantry router with dual Y motors, cartesian setup, mechanical endstops.
Input Circuits
Configuration file
board: Jackpot V2 TMC2226
name: HoldMaker
meta: 07-10-2025 RyanZ
planner_blocks: 32
stepping:
engine: I2S_STATIC
idle_ms: 255
pulse_us: 2
dirdelayus: 1
disabledelayus: 0
uart1:
txd_pin: gpio.16
rxd_pin: gpio.4
rtspin: NOPIN
baud: 115200
mode: 8N1
axes:
sharedstepperdisablepin: NOPIN
x:
stepspermm: 200
maxratemmpermin: 9000
accelerationmmper_sec2: 200
maxtravelmm: 300
soft_limits: true
homing:
cycle: 2
positive_direction: false
mpos_mm: 0
feedmmper_min: 300
seekmmper_min: 1500
settle_ms: 500
seek_scaler: 1.1
feed_scaler: 1.1
motor0:
limitnegpin: gpio.25:low
limitpospin: NO_PIN
limitallpin: NO_PIN
hard_limits: false
pulloff_mm: 4
tmc_2209:
uart_num: 1
addr: 0
cspin: NOPIN
rsenseohms: 0.11
run_amps: 0.8
homing_amps: 0.8
hold_amps: 0.7
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:
stepspermm: 200
maxratemmpermin: 9000
accelerationmmper_sec2: 200
maxtravelmm: 300
soft_limits: true
homing:
cycle: 2
positive_direction: false
mpos_mm: 0
feedmmper_min: 300
seekmmper_min: 1500
settle_ms: 500
seek_scaler: 1.1
feed_scaler: 1.1
motor0:
limitnegpin: gpio.33:low
limitpospin: NO_PIN
limitallpin: NO_PIN
hard_limits: false
pulloff_mm: 4
tmc_2209:
uart_num: 1
addr: 1
cspin: NOPIN
rsenseohms: 0.11
run_amps: 0.8
homing_amps: 0.8
hold_amps: 0.7
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
motor1:
limitnegpin: gpio.35:low
limitpospin: NO_PIN
limitallpin: NO_PIN
hard_limits: false
pulloff_mm: 4
tmc_2209:
uart_num: 1
addr: 3
cs_pin: i2so.14
rsenseohms: 0.11
run_amps: 0.8
homing_amps: 0.8
hold_amps: 0.7
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:
stepspermm: 200
maxratemmpermin: 1200
accelerationmmper_sec2: 80
maxtravelmm: 147
soft_limits: true
homing:
cycle: 1
positive_direction: true
mpos_mm: 147
feedmmper_min: 300
seekmmper_min: 800
settle_ms: 500
seek_scaler: 1.1
feed_scaler: 1.1
motor0:
limitnegpin: NO_PIN
limitpospin: gpio.32:low
limitallpin: NO_PIN
hard_limits: false
pulloff_mm: 4
tmc_2209:
uart_num: 1
addr: 2
cspin: NOPIN
rsenseohms: 0.11
run_amps: 0.8
homing_amps: 0.8
hold_amps: 0.7
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
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
carddetectpin: NO_PIN
frequency_hz: 20000000
probe:
pin: gpio.36:low
toolsetterpin: NOPIN
checkmodestart: true
start:
must_home: false
coolant:
floodpin: NOPIN
mistpin: NOPIN
delay_ms: 0
control:
safetydoorpin: NO_PIN
resetpin: NOPIN
feedholdpin: NO_PIN
cyclestartpin: NO_PIN
macro0pin: NOPIN
macro1pin: NOPIN
macro2pin: NOPIN
macro3pin: NOPIN
faultpin: NOPIN
estoppin: NOPIN
macros: {}
user_outputs:
analog0pin: NOPIN
analog1pin: NOPIN
analog2pin: NOPIN
analog3pin: NOPIN
analog0_hz: 5000
analog1_hz: 5000
analog2_hz: 5000
analog3_hz: 5000
digital0_pin: gpio.26
digital1_pin: gpio.27
digital2_pin: gpio.2
digital3pin: NOPIN
uart2:
txd_pin: gpio.15
rxd_pin: gpio.12
rtspin: NOPIN
ctspin: NOPIN
baud: 1000000
mode: 8N1
uart_channel2:
reportintervalms: 75
uart_num: 2
Startup Messages
$ss
[MSG:INFO: FluidNC v3.9.5 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 HoldMaker]
[MSG:INFO: Board Jackpot V2 TMC2226]
[MSG:INFO: UART1 Tx:gpio.16 Rx:gpio.4 RTS:NO_PIN Baud:115200]
[MSG:INFO: UART2 Tx:gpio.15 Rx:gpio.12 RTS:NO_PIN Baud:1000000]
[MSG:INFO: uart_channel2 created at report interval: 75]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21Min Pulse:2us]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cspin:gpio.5 detect:NOPIN freq:20000000]
[MSG:INFO: Stepping:I2S_STATIC Pulse:2us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
[MSG:INFO: User Digital Output: 0 on Pin:gpio.26]
[MSG:INFO: User Digital Output: 1 on Pin:gpio.27]
[MSG:INFO: User Digital Output: 2 on Pin:gpio.2]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (0.000,300.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc2209 UART1 Addr:0 CS:NOPIN Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0 R:0.110]
[MSG:INFO: X Neg Limit gpio.25:low]
[MSG:INFO: Axis Y (0.000,300.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc2209 UART1 Addr:1 CS:NOPIN Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7 R:0.110]
[MSG:INFO: Y Neg Limit gpio.33:low]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.14 Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15 R:0.110]
[MSG:INFO: Y2 Neg Limit gpio.35:low]
[MSG:INFO: Axis Z (0.000,147.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc2209 UART1 Addr:2 CS:NOPIN Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8 R:0.110]
[MSG:INFO: Z Pos Limit gpio.32:low]
[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: Connecting to STA SSID:Fibertel WiFi340 2.4GHz]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connecting...]
[MSG:INFO: Connected - IP is 192.168.1.118]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
[MSG:INFO: Probe gpio.36:low]
ok
User Interface Software
WebUI
What happened?
Home axis
G1 X10 F1000
G3 X0 Y10 I-10 P2 F500
I’d expect (since this is an arc with a full rotation before arriving at the destination) for the controller to either reject the command as invalid or to trigger the soft limits when moving. Hard limits disabled on purpose to exhibit the behavior.
Instead the axes crash against the endstops losing steps and then stopping after the command is supposedly complete
GCode File
Other Information
YouTube short of the sequence described above.
I came across this issue when I was investigating the viability of adding G10 L2 R- support. The trickiest bit seemed to be validating helical moves generated by G2/3 to fit in the rotated rectangle. That’s when I saw that invalidarc does not take into account the pwordrotations, so I think it may be calculating the extremes of the arc as if less than a full rotation was always happening. As the limitschecked flag in pldata is set to true in the invalidarc routine, it does not trigger a validity check for each of the arc’s segments during the successive calls to mclinear.
评论 (4)
#2 – MitchBradley 于 2025-09-23
Please PR a fix if you have one.
#3 – MitchBradley 于 2025-09-30
If you have a fix, please submit a PR so we can get it in the next release.
#4 – Popeyef5 于 2025-10-01
Yes, I got busy with work but the fix is ready. I just need to test it in my machine before submitting the PR. I think I can get it done tonight.
#1 – Popeyef5 于 2025-09-23
happy to create a PR if it helps btw