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

fix(everything): replace Greek 'μ' with micro 'µ' #17331

Merged
merged 5 commits into from
Jan 23, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 53 additions & 53 deletions api/docs/v1/pipettes.rst
Original file line number Diff line number Diff line change
@@ -55,12 +55,12 @@ same behavior as before.
The P20 Single GEN2 is back-compatible with the P10 Single in this regard. If your protocol
specifies an ``instruments.P10_Single`` and your robot has an ``instruments.P20_Single_GEN2``
attached, you can run your protocol, and the robot will act as if the maximum volume of the P20
Single GEN2 is 10 μl.
Single GEN2 is 10 µl.

If you have a P50 Single specified in your protocol, there is no automatic backwards compatibility.
If you want to use a Gen2 Pipette, you must change your protocol to load either a P300 Single GEN2
(if you are using volumes between 20 and 50 μl) or a P20 Single GEN2 (if you are using volumes
below 20 μl).
(if you are using volumes between 20 and 50 µl) or a P20 Single GEN2 (if you are using volumes
below 20 µl).


Plunger Flow Rates
@@ -99,92 +99,92 @@ The given defaults for every pipette model is the following:
P10_Single
----------

- Aspirate Default: 5 μl/s
- Dispense Default: 10 μl/s
- Blow Out Default: 1000 μl/s
- Minimum Volume: 1 μl
- Maximum Volume: 10 μl
- Aspirate Default: 5 µl/s
- Dispense Default: 10 µl/s
- Blow Out Default: 1000 µl/s
- Minimum Volume: 1 µl
- Maximum Volume: 10 µl

P10_Multi
---------

- Aspirate Default: 5 μl/s
- Dispense Default: 10 μl/s
- Blow Out Default: 1000 μl/s
- Minimum Volume: 1 μl
- Maximum Volume: 10 μl
- Aspirate Default: 5 µl/s
- Dispense Default: 10 µl/s
- Blow Out Default: 1000 µl/s
- Minimum Volume: 1 µl
- Maximum Volume: 10 µl

P50_Single
----------

- Aspirate Default: 25 μl/s
- Dispense Default: 50 μl/s
- Blow Out Default: 1000 μl/s
- Minimum Volume: 5 μl
- Maximum Volume: 50 μl
- Aspirate Default: 25 µl/s
- Dispense Default: 50 µl/s
- Blow Out Default: 1000 µl/s
- Minimum Volume: 5 µl
- Maximum Volume: 50 µl

P50_Multi
---------

- Aspirate Default: 25 μl/s
- Dispense Default: 50 μl/s
- Blow Out Default: 1000 μl/s
- Minimum Volume: 5 μl
- Maximum Volume: 50 μl
- Aspirate Default: 25 µl/s
- Dispense Default: 50 µl/s
- Blow Out Default: 1000 µl/s
- Minimum Volume: 5 µl
- Maximum Volume: 50 µl

P300_Single
-----------

- Aspirate Default: 150 μl/s
- Dispense Default: 300 μl/s
- Blow Out Default: 1000 μl/s
- Minimum Volume: 30 μl
- Maximum Volume: 300 μl
- Aspirate Default: 150 µl/s
- Dispense Default: 300 µl/s
- Blow Out Default: 1000 µl/s
- Minimum Volume: 30 µl
- Maximum Volume: 300 µl

P300_Multi
----------

- Aspirate Default: 150 μl/s
- Dispense Default: 300 μl/s
- Blow Out Default: 1000 μl/s
- Minimum Volume: 30 μl
- Maximum Volume: 300 μl
- Aspirate Default: 150 µl/s
- Dispense Default: 300 µl/s
- Blow Out Default: 1000 µl/s
- Minimum Volume: 30 µl
- Maximum Volume: 300 µl

P1000_Single
------------

- Aspirate Default: 500 μl/s
- Dispense Default: 1000 μl/s
- Blow Out Default: 1000 μl/s
- Minimum Volume: 100 μl
- Maximum Volume: 1000 μl
- Aspirate Default: 500 µl/s
- Dispense Default: 1000 µl/s
- Blow Out Default: 1000 µl/s
- Minimum Volume: 100 µl
- Maximum Volume: 1000 µl

P20_Single_GEN2
---------------

- Aspirate Default: 3.78 μl/s
- Dispense Default: 3.78 μl/s
- Blow Out Default: 3.78 μl/s
- Minimum Volume: 1 μl
- Maximum Volume: 20 μl
- Aspirate Default: 3.78 µl/s
- Dispense Default: 3.78 µl/s
- Blow Out Default: 3.78 µl/s
- Minimum Volume: 1 µl
- Maximum Volume: 20 µl

P300_Single_GEN2
----------------

- Aspirate Default: 46.43 μl/s
- Dispense Default: 46.43 μl/s
- Blow Out Default: 46.43 μl/s
- Minimum Volume: 20 μl
- Maximum Volume: 300 μl
- Aspirate Default: 46.43 µl/s
- Dispense Default: 46.43 µl/s
- Blow Out Default: 46.43 µl/s
- Minimum Volume: 20 µl
- Maximum Volume: 300 µl

P1000_Single_GEN2
-----------------

- Aspirate Default: 137.35 μl/s
- Dispense Default: 137.35 μl/s
- Blow Out Default: 137.35 μl/s
- Minimum Volume: 100 μl
- Maximum Volume: 1000 μl
- Aspirate Default: 137.35 µl/s
- Dispense Default: 137.35 µl/s
- Blow Out Default: 137.35 µl/s
- Minimum Volume: 100 µl
- Maximum Volume: 1000 µl

Old Pipette Constructor
=======================
2 changes: 1 addition & 1 deletion api/docs/v2/complex_commands/parameters.rst
Original file line number Diff line number Diff line change
@@ -62,7 +62,7 @@ One reason to set ``new_tip="always"`` is to avoid cross-contamination between w

:py:meth:`~.InstrumentContext.transfer` will pick up a new tip before *every* aspirate when ``new_tip="always"``. This includes when :ref:`tip refilling <complex-tip-refilling>` requires multiple aspirations from a single source well.

:py:meth:`~.InstrumentContext.distribute` and :py:meth:`~.InstrumentContext.consolidate` only pick up one tip, even when ``new_tip="always"``. For example, this distribute command returns to the source well a second time, because the amount to be distributed (400 µL total plus disposal volume) exceeds the pipette capacity (300 μL)::
:py:meth:`~.InstrumentContext.distribute` and :py:meth:`~.InstrumentContext.consolidate` only pick up one tip, even when ``new_tip="always"``. For example, this distribute command returns to the source well a second time, because the amount to be distributed (400 µL total plus disposal volume) exceeds the pipette capacity (300 µL)::

pipette.distribute(
volume=200,
6 changes: 3 additions & 3 deletions api/docs/v2/modules/temperature_module.rst
Original file line number Diff line number Diff line change
@@ -98,11 +98,11 @@ The Temperature Module supports these 96-well block and labware combinations for

* - 96-well block contents
- API Load Name
* - Bio-Rad well plate 200 μL
* - Bio-Rad well plate 200 µL
- ``opentrons_96_aluminumblock_biorad_wellplate_200uL``
* - Generic PCR strip 200 μL
* - Generic PCR strip 200 µL
- ``opentrons_96_aluminumblock_generic_pcr_strip_200uL``
* - NEST well plate 100 μL
* - NEST well plate 100 µL
- ``opentrons_96_aluminumblock_nest_wellplate_100uL``

This command loads the same physical adapter and labware as the example in the Standalone Adapters section above, but it is also compatible with earlier API versions::
2 changes: 1 addition & 1 deletion api/docs/v2/tutorial.rst
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@ Hardware and Labware

Before running a protocol, you’ll want to have the right kind of hardware and labware ready for your Flex or OT-2.

- **Flex users** should review Chapter 2: Installation and Relocation in the `instruction manual <https://insights.opentrons.com/hubfs/Products/Flex/Opentrons%20Flex%20Manual.pdf>`_. Specifically, see the pipette information in the "Instrument Installation and Calibration" section. You can use either a 1-channel or 8-channel pipette for this tutorial. Most Flex code examples will use a `Flex 1-Channel 1000 μL pipette <https://shop.opentrons.com/opentrons-flex-1-channel-pipette/>`_.
- **Flex users** should review Chapter 2: Installation and Relocation in the `instruction manual <https://insights.opentrons.com/hubfs/Products/Flex/Opentrons%20Flex%20Manual.pdf>`_. Specifically, see the pipette information in the "Instrument Installation and Calibration" section. You can use either a 1-channel or 8-channel pipette for this tutorial. Most Flex code examples will use a `Flex 1-Channel 1000 µL pipette <https://shop.opentrons.com/opentrons-flex-1-channel-pipette/>`_.

- **OT-2 users** should review the robot setup and pipette information on the `Get Started page <https://support.opentrons.com/s/ot2-get-started>`_. Specifically, see `attaching pipettes <https://support.opentrons.com/s/article/Get-started-Attach-pipettes>`_ and `initial calibration <https://support.opentrons.com/s/article/Get-started-Calibrate-the-deck>`_. You can use either a single-channel or 8-channel pipette for this tutorial. Most OT-2 code examples will use a `P300 Single-Channel GEN2 <https://shop.opentrons.com/single-channel-electronic-pipette-p20/>`_ pipette.

Original file line number Diff line number Diff line change
@@ -94,7 +94,7 @@ def test_configure_virtual_pipette_for_volume(
)
assert result1 == LoadedStaticPipetteData(
model="p50_single_v3.6",
display_name="Flex 1-Channel 50 μL",
display_name="Flex 1-Channel 50 µL",
min_volume=5,
max_volume=50.0,
channels=1,
@@ -128,7 +128,7 @@ def test_configure_virtual_pipette_for_volume(
)
assert result2 == LoadedStaticPipetteData(
model="p50_single_v3.6",
display_name="Flex 1-Channel 50 μL",
display_name="Flex 1-Channel 50 µL",
min_volume=1,
max_volume=30,
channels=1,
4 changes: 2 additions & 2 deletions app/src/local-resources/instruments/__tests__/hooks.test.ts
Original file line number Diff line number Diff line change
@@ -13,8 +13,8 @@ import type { PipetteV2Specs } from '@opentrons/shared-data'

vi.mock('/app/resources/robot-settings/hooks')

const BRANDED_P1000_FLEX_DISPLAY_NAME = 'Flex 1-Channel 1000 μL'
const ANONYMOUS_P1000_FLEX_DISPLAY_NAME = '1-Channel 1000 μL'
const BRANDED_P1000_FLEX_DISPLAY_NAME = 'Flex 1-Channel 1000 µL'
const ANONYMOUS_P1000_FLEX_DISPLAY_NAME = '1-Channel 1000 µL'

const mockP1000V2Specs = {
$otSharedSchema: '#/pipette/schemas/2/pipetteGeometrySchema.json',
Original file line number Diff line number Diff line change
@@ -78,7 +78,7 @@ describe('ProtocolInstrumentMountItem', () => {
render(props)
screen.getByText('Left Mount')
screen.getByText('No data')
screen.getByText('Flex 8-Channel 1000 μL')
screen.getByText('Flex 8-Channel 1000 µL')
screen.getByText('Attach')
fireEvent.click(screen.getByRole('button'))
screen.getByText('pipette wizard flow')
@@ -91,7 +91,7 @@ describe('ProtocolInstrumentMountItem', () => {
render(props)
screen.getByText('Left + Right Mount')
screen.getByText('No data')
screen.getByText('Flex 96-Channel 1000 μL')
screen.getByText('Flex 96-Channel 1000 µL')
screen.getByText('Attach')
})
it('renders the correct information when there is a pipette attached with cal data', () => {
@@ -103,7 +103,7 @@ describe('ProtocolInstrumentMountItem', () => {
render(props)
screen.getByText('Left Mount')
screen.getByText('Calibrated')
screen.getByText('Flex 8-Channel 1000 μL')
screen.getByText('Flex 8-Channel 1000 µL')
})
it('renders the pipette with no cal data and the calibration button and clicking on it launches the correct flow', () => {
props = {
@@ -119,7 +119,7 @@ describe('ProtocolInstrumentMountItem', () => {
render(props)
screen.getByText('Left Mount')
screen.getByText('No data')
screen.getByText('Flex 8-Channel 1000 μL')
screen.getByText('Flex 8-Channel 1000 µL')
const button = screen.getByText('Calibrate')
fireEvent.click(button)
screen.getByText('pipette wizard flow')
@@ -132,7 +132,7 @@ describe('ProtocolInstrumentMountItem', () => {
render(props)
screen.getByText('Left Mount')
screen.getByText('No data')
screen.getByText('Flex 8-Channel 1000 μL')
screen.getByText('Flex 8-Channel 1000 µL')
const button = screen.getByText('Attach')
fireEvent.click(button)
screen.getByText('pipette wizard flow')
Original file line number Diff line number Diff line change
@@ -133,7 +133,7 @@ describe('AttachProbe', () => {
isRobotMoving: true,
}
render(props)
screen.getByText('Stand back, Flex 1-Channel 1000 μL is calibrating')
screen.getByText('Stand back, Flex 1-Channel 1000 µL is calibrating')
screen.getByText(
'The calibration probe will touch the sides of the calibration square in slot C2 to determine its exact position.'
)
@@ -152,7 +152,7 @@ describe('AttachProbe', () => {
isRobotMoving: true,
}
render(props)
screen.getByText('Stand back, Flex 96-Channel 1000 μL is calibrating')
screen.getByText('Stand back, Flex 96-Channel 1000 µL is calibrating')
screen.getByText(
'The calibration probe will touch the sides of the calibration square in slot C2 to determine its exact position.'
)
Original file line number Diff line number Diff line change
@@ -191,7 +191,7 @@ describe('BeforeBeginning', () => {
screen.getByText(
'The calibration probe is included with the robot and should be stored on the front pillar of the robot.'
)
screen.getByAltText('Flex 1-Channel 1000 μL')
screen.getByAltText('Flex 1-Channel 1000 µL')
screen.getByText('You will need:')
screen.getByAltText('Calibration Probe')
screen.getByAltText('2.5 mm Hex Screwdriver')
@@ -449,7 +449,7 @@ describe('BeforeBeginning', () => {
)
screen.getByAltText('2.5 mm Hex Screwdriver')
screen.getByAltText('Calibration Probe')
screen.getByAltText('Flex 96-Channel 1000 μL')
screen.getByAltText('Flex 96-Channel 1000 µL')
screen.getByAltText('96-Channel Mounting Plate')
screen.getByText(
'Provided with the robot. Using another size can strip the instruments’s screws.'
Original file line number Diff line number Diff line change
@@ -151,7 +151,7 @@ describe('ChoosePipette', () => {
props = { ...props, selectedPipette: NINETY_SIX_CHANNEL }
render(props)
screen.getByText(
'Detach Flex 1-Channel 1000 μL and Attach 96-Channel pipette'
'Detach Flex 1-Channel 1000 µL and Attach 96-Channel pipette'
)
})

@@ -164,7 +164,7 @@ describe('ChoosePipette', () => {
props = { ...props, selectedPipette: NINETY_SIX_CHANNEL }
render(props)
screen.getByText(
'Detach Flex 1-Channel 1000 μL and Attach 96-Channel pipette'
'Detach Flex 1-Channel 1000 µL and Attach 96-Channel pipette'
)
})
})
Original file line number Diff line number Diff line change
@@ -52,7 +52,7 @@ describe('DetachPipette', () => {
})
it('returns the correct information, buttons work as expected for single mount pipettes', () => {
render(props)
screen.getByText('Loosen screws and detach Flex 1-Channel 1000 μL')
screen.getByText('Loosen screws and detach Flex 1-Channel 1000 µL')
screen.getByText(
'Hold the pipette in place and loosen the pipette screws. (The screws are captive and will not come apart from the pipette.) Then carefully remove the pipette.'
)
@@ -83,7 +83,7 @@ describe('DetachPipette', () => {
},
}
render(props)
screen.getByText('Loosen screws and detach Flex 96-Channel 1000 μL')
screen.getByText('Loosen screws and detach Flex 96-Channel 1000 µL')
screen.getByText(
'Hold the pipette in place and loosen the pipette screws. (The screws are captive and will not come apart from the pipette.) Then carefully remove the pipette.'
)
@@ -113,7 +113,7 @@ describe('DetachPipette', () => {
selectedPipette: NINETY_SIX_CHANNEL,
}
render(props)
screen.getByText('Loosen screws and detach Flex 1-Channel 1000 μL')
screen.getByText('Loosen screws and detach Flex 1-Channel 1000 µL')
screen.getByText(
'Hold the pipette in place and loosen the pipette screws. (The screws are captive and will not come apart from the pipette.) Then carefully remove the pipette.'
)
Loading

Unchanged files with check annotations Beta

units?: string
type?: string
}
interface PipetteQuirksField {

Check warning on line 62 in api-client/src/pipettes/types.ts

GitHub Actions / js checks

A record is preferred over an index signature
[quirkId: string]: boolean
}
interface QuirksField {
quirks?: PipetteQuirksField
}
export type PipetteSettingsFieldsMap = QuirksField & {

Check warning on line 69 in api-client/src/pipettes/types.ts

GitHub Actions / js checks

A record is preferred over an index signature
[fieldId: string]: PipetteSettingsField
}
export interface IndividualPipetteSettings {
fields: PipetteSettingsFieldsMap
}
type PipetteSettingsById = Partial<{ [id: string]: IndividualPipetteSettings }>

Check warning on line 77 in api-client/src/pipettes/types.ts

GitHub Actions / js checks

A record is preferred over an index signature
export type PipetteSettings = PipetteSettingsById
export interface PipetteSettingsUpdateFieldsMap {

Check warning on line 81 in api-client/src/pipettes/types.ts

GitHub Actions / js checks

A record is preferred over an index signature
[fieldId: string]: PipetteSettingsUpdateField
}
} | null
export interface UpdatePipetteSettingsData {
fields: { [fieldId: string]: PipetteSettingsUpdateField }

Check warning on line 90 in api-client/src/pipettes/types.ts

GitHub Actions / js checks

A record is preferred over an index signature
}
export interface ResourceLink {
href: string
meta?: Partial<{ [key: string]: string | null | undefined }>

Check warning on line 14 in api-client/src/types.ts

GitHub Actions / js checks

A record is preferred over an index signature
}
export type ResourceLinks = Record<
export const appRestart = (message: string): AppRestartAction => ({
type: APP_RESTART,
payload: {
message: message,

Check warning on line 360 in app-shell-odd/src/actions.ts

GitHub Actions / js checks

Expected property shorthand
},
meta: { shell: true },
})
export const reloadUi = (message: string): ReloadUiAction => ({
type: RELOAD_UI,
payload: {
message: message,

Check warning on line 368 in app-shell-odd/src/actions.ts

GitHub Actions / js checks

Expected property shorthand
},
meta: { shell: true },
})
export const sendLog = (message: string): SendLogAction => ({
type: SEND_LOG,
payload: {
message: message,

Check warning on line 376 in app-shell-odd/src/actions.ts

GitHub Actions / js checks

Expected property shorthand
},
meta: { shell: true },
})
export const updateBrightness = (message: string): UpdateBrightnessAction => ({
type: UPDATE_BRIGHTNESS,
payload: {
message: message,

Check warning on line 384 in app-shell-odd/src/actions.ts

GitHub Actions / js checks

Expected property shorthand
},
meta: { shell: true },
})