fix(jog): stop disabling firmware endstops; warn that limits aren't enforced (#2579)

Manual jog could drive an axis past its travel limit into a collision.
Instrumenting the exact G-code to an H2D showed Bambuddy sending a clean
move at the limit (G91 / G1 Z-1.00 F600 / G90, no M211) that the printer
ran straight past, while its own touchscreen refuses the identical move.
This is a Bambu firmware bug: soft endstops are not enforced on G-code
received over MQTT, and no axis position is reported, so the move cannot
be clamped firmware- or client-side from position.

Two changes: (1) jogs no longer wrap moves in M211 S0/S1 — that disabled
the firmware's soft endstops globally, breaking even the touchscreen's
limits until a power cycle; a bare move keeps the touchscreen protected.
(2) The jog panel shows a prominent warning that travel limits are not
enforced during manual moves due to the firmware bug. Client-side
dead-reckoning enforcement is tracked separately.
This commit is contained in:
maziggy
2026-07-16 15:21:47 +02:00
parent e336eb53e7
commit a6e7d671f2
21 changed files with 186 additions and 206 deletions
+2 -2
View File
@@ -3859,9 +3859,9 @@ export const api = {
}),
// Bed (Z-axis) jog
bedJog: (printerId: number, distance: number, force: boolean = false) =>
bedJog: (printerId: number, distance: number) =>
request<{ success: boolean; message: string }>(
`/printers/${printerId}/bed-jog?distance=${distance}&force=${force}`,
`/printers/${printerId}/bed-jog?distance=${distance}`,
{ method: 'POST' }
),
xyJog: (printerId: number, x: number, y: number) =>