diff --git a/src/core/Application.cpp b/src/core/Application.cpp index 2b5b9fa..9712ccb 100644 --- a/src/core/Application.cpp +++ b/src/core/Application.cpp @@ -2200,6 +2200,10 @@ struct Application::Impl { std::string fw = sub; for (char& ch : fw) ch = static_cast(std::toupper((unsigned char)ch)); for (size_t i = 2; i < tok.size(); ++i) fw += " " + tok[i]; + // A bare `gimbal stop` means every axis. The firmware wants the axis + // named, and answered a bare STOP with "ERR missing argument" - so the + // one command that has to work, did nothing. + if (sub == "stop" && tok.size() == 2) fw = "STOP ALL"; motor->sendCommand(fw); } else { LOG_WARN << "unknown gimbal subcommand: " << sub; diff --git a/src/core/HelpText.cpp b/src/core/HelpText.cpp index ee0f8c0..b16f56f 100644 --- a/src/core/HelpText.cpp +++ b/src/core/HelpText.cpp @@ -95,8 +95,8 @@ const std::vector& helpCatalog() { "Run the endstop-finding home sequence (both axes, or one).", { "Example: gimbal home / gimbal home y"}}, {"gimbal stop [y|p|all]", - "Stop motion immediately.", { - "To cancel a running procedure use 'cancel' (or Esc, or x):", + "Stop motion immediately; bare, every axis. The axis holds where it stops.", { + "To cancel a running procedure use 'cancel' (or Esc, or m):", "the whole 'gimbal' family is ignored while one is in progress."}}, {"gimbal speed ", "Set the max slew speed (counts/s) for an axis.", {}},