Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fix(Comm): improve usb EStop#102

Merged
AndyEveritt merged 7 commits into
devfrom
90/Blocking-gcodes-prevent-EStop-in-USB-mode
Apr 29, 2026
Merged

fix(Comm): improve usb EStop#102
AndyEveritt merged 7 commits into
devfrom
90/Blocking-gcodes-prevent-EStop-in-USB-mode

Conversation

@AndyEveritt

Copy link
Copy Markdown
Collaborator

closes #90

USB estop during blocking gcode commands requires RRF 3.6.3 or later

@AndyEveritt AndyEveritt marked this pull request as ready for review April 29, 2026 09:01
Copilot AI review requested due to automatic review settings April 29, 2026 09:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves Emergency Stop behavior when connected over USB (especially during blocking G-code) by introducing a dedicated E-stop path and optional use of the Duet’s second USB channel, plus related UI/settings and i18n updates.

Changes:

  • Add Comm::Duet::Estop() and route the sidebar E-stop action through it.
  • Add a developer setting + persisted storage key to enable/initialize the second USB channel and route specific commands to channel 1.
  • Update USB connection parameters/logging and add i18n strings for E-stop reset messaging.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/UI/Widgets/SideBar/EStopPresenter.cpp Uses Comm::DUET.Estop() and adjusts the posted response type.
src/UI/Screens/Settings/SettingsView.h Adds a toggle widget for enabling the second USB channel.
src/UI/Screens/Settings/SettingsView.cpp Wires the new toggle to storage and sends M575 when enabling while connected via USB.
src/Storage.h Declares a new persisted key for the second USB channel setting.
src/Storage.cpp Defines the new persisted key (developer:enable_second_usb_channel).
src/ObjectModel/PrinterStatus.cpp Sends M999 on halted and posts a new translated “reset” info message.
src/Hardware/Duet.h Declares Duet::Estop().
src/Hardware/Duet.cpp Implements Estop(), updates USB send behavior/channel routing, and initializes USB port(s) with M575.
src/Comm/Usb.cpp Improves libusb open error logging and adjusts pluralization in channel logging.
assets/i18n/pt-PT.json Adds estop.reset_message.
assets/i18n/nl-NL.json Adds estop.reset_message.
assets/i18n/it-IT.json Adds estop.reset_message.
assets/i18n/fr-FR.json Adds estop.reset_message.
assets/i18n/es-ES.json Adds estop.reset_message.
assets/i18n/en-GB.json Adds estop.reset_message and the new settings label key.
assets/i18n/de-DE.json Adds estop.reset_message.
CMakeLists.txt Removes the build-time option for second USB channel support (now runtime-controlled).

Comment thread src/Hardware/Duet.cpp
Comment thread src/UI/Widgets/SideBar/EStopPresenter.cpp
Comment thread assets/i18n/en-GB.json
@github-actions

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Health
src 38% 27%
src.Comm 33% 17%
src.Hardware 26% 10%
src.ObjectModel 49% 24%
src.Subscribers 57% 17%
src.UI.Components.AppDrawer 84% 45%
src.UI.Components.AxisControl 57% 29%
src.UI.Components.Bar 98% 60%
src.UI.Components.Button 74% 44%
src.UI.Components.Canvas 68% 38%
src.UI.Components.Containers 66% 44%
src.UI.Components.Graph 67% 36%
src.UI.Components.Heatmap 58% 33%
src.UI.Components.Icon 82% 45%
src.UI.Components.Input 52% 34%
src.UI.Components.LVGL 57% 41%
src.UI.Components.LVGL.generated 70% 35%
src.UI.Components.List 94% 58%
src.UI.Components.MessageBox 82% 44%
src.UI.Components.Modal 90% 42%
src.UI.Components.Screen 100% 50%
src.UI.Components.Theme 97% 52%
src.UI.Core 71% 43%
src.UI.Screens.Console 86% 47%
src.UI.Screens.Control 86% 50%
src.UI.Screens.Fan 85% 48%
src.UI.Screens.File 57% 31%
src.UI.Screens.Heightmap 36% 24%
src.UI.Screens.Home 71% 46%
src.UI.Screens.Move 54% 35%
src.UI.Screens.ObjectCancel 77% 46%
src.UI.Screens.Settings 78% 46%
src.UI.Screens.Status 49% 32%
src.UI.Screens.Temperature 95% 48%
src.UI.Styles 70% 40%
src.UI.Styles.Themes 99% 61%
src.UI.Widgets.BabyStep 78% 51%
src.UI.Widgets.Control.ExtrusionFactor 67% 35%
src.UI.Widgets.Control.SpeedFactor 70% 42%
src.UI.Widgets.Dashboard 87% 50%
src.UI.Widgets.ExtruderControl 66% 42%
src.UI.Widgets.Filament.Dropdown 54% 34%
src.UI.Widgets.Filament.MultiTool 0% 0%
src.UI.Widgets.HardwareTest 21% 16%
src.UI.Widgets.Network 62% 35%
src.UI.Widgets.SideBar 62% 49%
src.UI.Widgets.Status.PrintInfo 94% 49%
src.UI.Widgets.StatusBar 88% 45%
src.UI.Widgets.Temperature 69% 42%
src.UI.Widgets.ToolList 81% 43%
src.i18n 72% 43%
src.image 0% 0%
src.utils 17% 9%
Summary 57% (11093 / 19622) 33% (8900 / 27229)

@AndyEveritt AndyEveritt merged commit 92490f6 into dev Apr 29, 2026
7 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 29, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Blocking gcodes prevent EStop in USB mode

2 participants