Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(hardware): add progress output to subsystem firmware update process #12059

Merged
merged 11 commits into from
Feb 9, 2023

Conversation

pmoegenburg
Copy link
Member

@pmoegenburg pmoegenburg commented Jan 25, 2023

Overview

Add progress reporting to robot microcontroller/subsystem firmware update process. Reporting takes the form (nodeid: (macro_status, micro_status)) for each nodeid being updated, where macro_status is one of (queued, updating, done) and micro_status is a float from 0 to 1 during the updating macro_status.

Test Plan

  • Ensure json dictionary passed into update_fws.py script populates update_details dictionary
  • Ensure passing in a json dictionary for all nodeids to update_fws.py script logs progress reports for all nodeids from queued to updating to done macro phases and from 0 to 1 micro_status during updating macro phase

Changelog

  • Added progress reporting to robot subsystem firmware update process

Review requests

Risk assessment

Low. This builds off of the existing and proven updating process with proven software components.

We're going to track update progress and creating this class facilitates this.
@pmoegenburg pmoegenburg requested a review from a team as a code owner January 25, 2023 20:24
@pmoegenburg pmoegenburg self-assigned this Jan 25, 2023
@pmoegenburg pmoegenburg changed the title Rcore 473 add progress output to multiple updates feat(hardware): add progress output to node firmware update process Jan 25, 2023
@codecov
Copy link

codecov bot commented Jan 25, 2023

Codecov Report

Merging #12059 (4de20d8) into edge (7000f23) will increase coverage by 0.57%.
The diff coverage is 78.08%.

Impacted file tree graph

@@            Coverage Diff             @@
##             edge   #12059      +/-   ##
==========================================
+ Coverage   74.19%   74.76%   +0.57%     
==========================================
  Files        2223     2176      -47     
  Lines       60956    59765    -1191     
  Branches     6514     6342     -172     
==========================================
- Hits        45225    44684     -541     
+ Misses      14201    13571     -630     
+ Partials     1530     1510      -20     
Flag Coverage Δ
hardware 57.41% <78.08%> (+0.12%) ⬆️
notify-server 89.13% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
...entrons/hardware_control/backends/ot3controller.py 64.63% <ø> (ø)
hardware/opentrons_hardware/scripts/update_fw.py 0.00% <0.00%> (ø)
hardware/opentrons_hardware/scripts/update_fws.py 0.00% <0.00%> (ø)
hardware/opentrons_hardware/firmware_update/run.py 94.33% <93.33%> (-5.67%) ⬇️
...are/opentrons_hardware/firmware_update/__init__.py 100.00% <100.00%> (ø)
...e/opentrons_hardware/firmware_update/downloader.py 100.00% <100.00%> (ø)
...rdware/opentrons_hardware/firmware_update/types.py 100.00% <100.00%> (ø)
...e/hardware_control/motion_planning/move_manager.py 89.36% <0.00%> (-4.26%) ⬇️
...are/hardware_control/motion_planning/move_utils.py 91.54% <0.00%> (-1.50%) ⬇️
... and 48 more

@pmoegenburg pmoegenburg changed the title feat(hardware): add progress output to node firmware update process feat(hardware): add progress output to subsystem firmware update process Jan 25, 2023
Copy link
Member

@sfoster1 sfoster1 left a comment

Choose a reason for hiding this comment

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

This is looking really solid to me at this point. @vegano1 how does this mesh with #12059 ?

hardware/opentrons_hardware/scripts/update_fws.py Outdated Show resolved Hide resolved
@vegano1
Copy link
Contributor

vegano1 commented Feb 8, 2023

This is looking really good, will need to adjust a bit to merge in with my work but not too bad.
Once the merge conflict is fixed, this should be good to go.

@pmoegenburg pmoegenburg added feature Ticket is a feature request / PR introduces a feature refactor hardware labels Feb 8, 2023
Copy link
Member

@sfoster1 sfoster1 left a comment

Choose a reason for hiding this comment

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

Looks good, tested on machine!

@sfoster1 sfoster1 merged commit 0d2b0ad into edge Feb 9, 2023
@sfoster1 sfoster1 deleted the RCORE-473_add_progress_output_to_multiple_updates branch February 9, 2023 15:37
y3rsh added a commit that referenced this pull request Feb 13, 2023
* origin/edge: (31 commits)
  refactor(hardware): Update appropriate revision (#12130)
  fix(api): Fix accidental error on any PAPIv2.14 protocol (#12141)
  refactor(api): Allow homing after drop tip in engine core (#12124)
  fix(shared-data): remove newLocation and strategy from schemav6 (#12133)
  refactor(api): load pipette with useVirtualPipettes config option (#12117)
  chore(api): further speed up ot3controller tests and add profiling (#12132)
  docs(api): Settle in to leave Labware.default_magdeck_engage_height alone, for now (#12122)
  refactor(api): Improve error messages for JSONv6 and PAPIv2.14 protocols (#12131)
  refactor(robot-server): Note mistaken type in migration (#12126)
  chore(hardware): Remove docstring content checks (#12128)
  feat(hardware_control): Added firmware update mechanism for submodules (#12076)
  feat(app): remove feature flag for calibration dashboard and wizard updates (#12125)
  feat(app):  Calibration dashboard wizard data invalidation (#12097)
  feat(hardware): support new revision values (#12111)
  feat(app): add Chip component (#12090)
  docs(api): Officially remove the `height` parameter of `MagneticModuleContext.engage()` (#12114)
  feat(system-server): add persistent UUID generation (#12123)
  feat(odd): add manual connection for a hidden network (#12033)
  feat(hardware): add progress output to subsystem firmware update process (#12059)
  refactor(api): Improve OT3 instrument calibration process (#11807)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Ticket is a feature request / PR introduces a feature hardware refactor
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants