No continous jogging via keyboard when soft limits active - 1.4.10

Hi there,

I’m using a carbide3D shapeoko 3 XXL and want to go away from their proprietary software. During setup of gSender 1.4.10 (which I think is exactly the piece of software I want) I noticed what seems to be a bug:
Without soft limits, everything works as intended.
As soon as I activate soft limits, the “continuous jogging” via keyboard results in only one “step” of movement.

Expected:
I press and hold down the key that is set in “shortcuts” → the respective axis moves until it hits the wall, an endstop, or I lift the key.
What happens (with $20 activated):
I press and hold down the key → the respective axis moves the amount of one step, then stops. I can hold down the key for as long as I want, but nothing happens. When I lift the key, only console is updated (“client \x85”).

This occures independently of the axis (X,Y,Z) or type of movement speed (precise, normal, rapid).

I found many “similar” issues and understood that the continuous jogging functionality does not seem to be insanely easy to implement.
But I really like the way gsender is built and would like to use it. Not being able to jog “as intended” with soft limits on is of course no dealbreaker, but I’d much prefer it.

I also tried gSender edge (1.5.0-Edge-1-Windows-64Bit.exe), but keyboard shortcuts dont seem to be implemented now - so no way to check if there’s something different.

An help is much appreciated - please let me know if/how I can help solving this issue.
Thanks!


A bit more context, with X axis as example:

  • $130=830.000 (X-axis maximum travel, mm)
  • absolute X-position of router: ~-400mm (= center, nowhere near boundary)
  • Step size for XY movement = 9 mm

$20=0 (Soft limits enable, boolean)

Pressing + Holding the GUI-button to move -X via mouse, lifting after a few seconds:

feeder $J=G21G91 X-10000 F9000
ok
client \x85

→ moves as intended

Pressing + Holding the keyboard shortcut for X- (shift + left), lifting after a few seconds:

feeder $J=G21G91 X-90000 F9000
ok
client \x85

→ moves as intended


$20=1 (Soft limits enable, boolean)

Pressing + Holding the GUI-button to move -X via mouse, lifting after a few seconds:

feeder $J=G21G91 X-426.07 F9000
ok
client \x85

→ moves as intended

Pressing + Holding the keyboard shortcut for X- (shift + left), lifting after a few seconds:

feeder $J=G21G91 X-9 F9000
ok
client \x85

→ moves 1 step, then stops.


And for good measure - the full firmware from the console with soft limits active:

feeder $$
$0=10 (Step pulse time, ÎŒs)
$1=255 (Step idle delay, ms)
$2=0 (Step pulse invert, mask)
$3=6 (Step direction invert, mask)
$4=0 (Invert step enable pin, boolean)
$5=0 (Invert limit pins, boolean)
$6=0 (Invert probe pin, boolean)
$10=3 (Status report options, mask)
$11=0.020 (Junction deviation, mm)
$12=0.010 (Arc tolerance, mm)
$13=0 (Report in inches, boolean)
$20=1 (Soft limits enable, boolean)
$21=0 (Hard limits enable, boolean)
$22=1 (Homing cycle enable, boolean)
$23=0 (Homing direction invert, mask)
$24=100.000 (Homing locate feed rate, mm/min)
$25=2000.000 (Homing search seek rate, mm/min)
$26=25 (Homing switch debounce delay, ms)
$27=3.000 (Homing switch pull-off distance, mm)
$30=24000 (Maximum spindle speed, rpm)
$31=0 (Minimum spindle speed, rpm)
$32=0 (Laser-mode enabled as spindle, boolean)
$100=40.000 (X-axis travel resolution, step/mm)
$101=40.000 (Y-axis travel resolution, step/mm)
$102=40.000 (Z-axis travel resolution, step/mm)
$110=10000.000 (X-axis maximum rate, mm/min)
$111=10000.000 (Y-axis maximum rate, mm/min)
$112=5000.000 (Z-axis maximum rate, mm/min)
$120=500.000 (X-axis acceleration, mm/sec^2)
$121=500.000 (Y-axis acceleration, mm/sec^2)
$122=400.000 (Z-axis acceleration, mm/sec^2)
$130=830.000 (X-axis maximum travel, mm)
$131=850.000 (Y-axis maximum travel, mm)
$132=80.000 (Z-axis maximum travel, mm)
ok