Opentrons: Debug and Admin: Reset Robot (API)

Created on 17 Jul 2018  路  9Comments  路  Source: Opentrons/opentrons

As a robot user, I would like to be able to restore my robot to factory settings, so that I can erase any bad configuration data without needing wifi or hands-on support.

Acceptance Criteria

  • User able to reset any of the following data/configs to factory settings:
    -- Deck calibration
    -- Tip probe (length of tip only)
    -- User labware calibration
    -- Custom boot scripts
  • User able to reset one or many of the above at the same time (note: Run App UI will allow user to select multiple)

Background

  • This is a request from the support team (and customers); there are currently quite a few ways to end up with bad (e.g.) deck calibration data, and clearing it can be quite hard if customer is not on wifi.
  • Note there is some risk in clearing mount-offset, since user cannot generally recreate it themselves
api feature large

Most helpful comment

Request/response proposal as requested. No strong opinions on actual endpoint path, just picked something for the purposes of writing this comment. Feel free to use a different path.

// GET /settings/reset/options
// 200 OK
[
  {
    id: 'deckCalibration',
    title: 'Deck Calibration',
    description: 'Reset calibration of pipette to deck'
  },
  {
    id: 'tipProbe',
    title: 'Tip Length',
    description: 'Erase tip probe data'
  },
  {
    id: 'labwareCalibration',
    title: 'Labware Calibration',
    description: 'Erase custom labware calibration'
  },
  {
    id: 'bootScripts',
    title: 'Boot Scripts',
    description: 'Erase custom boot scripts'
  }
]

// 500 ISE - Generic 500 handler is fine

// POST /settings/reset
// Request
{
  deckCalibration: true,
  tipProbe: false,
  labwareCalibration: false,
  bootScripts: true
}

// 200 OK
{}

// 400 Bad Request (For example)
{
  "message": "topProbe is not a valid reset option"
}

// 500 ISE - Generic 500 handler is fine

All 9 comments

@andySigler @btmorr

I've gotten a few requests for a 'reset' feature from the support team, particularly to clear out bad deck calibration or mount offset data.

Could use your help thinking through what specific configs we'd want to reset (or restore to defaults), what 'reset' or 'restore' would mean for each, and any risks (e.g. not being able to tip probe after erasing a mount offset).

@umbhau does this require restart?

@btmorr @Laura-Danielle to discuss reset specifics (what data to delete). include support.

@pantslakz this will require a restart

Request/response proposal as requested. No strong opinions on actual endpoint path, just picked something for the purposes of writing this comment. Feel free to use a different path.

// GET /settings/reset/options
// 200 OK
[
  {
    id: 'deckCalibration',
    title: 'Deck Calibration',
    description: 'Reset calibration of pipette to deck'
  },
  {
    id: 'tipProbe',
    title: 'Tip Length',
    description: 'Erase tip probe data'
  },
  {
    id: 'labwareCalibration',
    title: 'Labware Calibration',
    description: 'Erase custom labware calibration'
  },
  {
    id: 'bootScripts',
    title: 'Boot Scripts',
    description: 'Erase custom boot scripts'
  }
]

// 500 ISE - Generic 500 handler is fine

// POST /settings/reset
// Request
{
  deckCalibration: true,
  tipProbe: false,
  labwareCalibration: false,
  bootScripts: true
}

// 200 OK
{}

// 400 Bad Request (For example)
{
  "message": "topProbe is not a valid reset option"
}

// 500 ISE - Generic 500 handler is fine

Further clarification - if an option is not included I'll assume false. Let me know if you want another behavior.

@btmorr @pantslakz @sfoster1 @Kadee80

Proposal from @Laura-Danielle to add an option to delete the database (/data/user_storage/opentrons_data/opentrons.db).

Thumbs up from me -- any objections?

@umbhau Do you have suggested wording for the description fields in GET /settings/reset/options?

@sfoster1 Heres what I have in the UI currently. Keep in mind it will possibly change next week once Pantea's had eyes on this.

Reset calibration of pipette to deck
Erase custom labware calibration
Erase tip probe data
Erase custom boot scripts

@sfoster1 @btmorr (or whoever picks up this ticket)
I amended @mcous comment above to reflect a data structure closer to what we have for GET /settings
Also added in more relevant description text

// GET /settings/reset/options
// 200 OK
[
 {
    id: 'deckCalibration',
    title: 'Deck Calibration',
    description: 'Reset calibration of pipette to deck'
  },
  {
    id: 'tipProbe',
    title: 'Tip Length',
    description: 'Erase tip probe data'
  },
  {
    id: 'labwareCalibration',
    title: 'Labware Calibration',
    description: 'Erase custom labware calibration'
  },
  {
    id: 'bootScripts',
    title: 'Boot Scripts',
    description: 'Erase custom boot scripts'
  }
]
Was this page helpful?
0 / 5 - 0 ratings