diff --git a/api/docs/v1/pipettes.rst b/api/docs/v1/pipettes.rst index 72dc73d349f..713615d184f 100644 --- a/api/docs/v1/pipettes.rst +++ b/api/docs/v1/pipettes.rst @@ -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 ======================= diff --git a/api/docs/v2/complex_commands/parameters.rst b/api/docs/v2/complex_commands/parameters.rst index 14658509c97..2c044a73e6e 100644 --- a/api/docs/v2/complex_commands/parameters.rst +++ b/api/docs/v2/complex_commands/parameters.rst @@ -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 ` 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, diff --git a/api/docs/v2/modules/temperature_module.rst b/api/docs/v2/modules/temperature_module.rst index 845f6c69931..0d13652658e 100644 --- a/api/docs/v2/modules/temperature_module.rst +++ b/api/docs/v2/modules/temperature_module.rst @@ -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:: diff --git a/api/docs/v2/tutorial.rst b/api/docs/v2/tutorial.rst index b36becf8131..a2a0e945c9b 100644 --- a/api/docs/v2/tutorial.rst +++ b/api/docs/v2/tutorial.rst @@ -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 `_. 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 `_. +- **Flex users** should review Chapter 2: Installation and Relocation in the `instruction manual `_. 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 `_. - **OT-2 users** should review the robot setup and pipette information on the `Get Started page `_. Specifically, see `attaching pipettes `_ and `initial calibration `_. 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 `_ pipette. diff --git a/api/tests/opentrons/protocol_engine/resources/test_pipette_data_provider.py b/api/tests/opentrons/protocol_engine/resources/test_pipette_data_provider.py index ae3d78d2230..b65d3eb0d8f 100644 --- a/api/tests/opentrons/protocol_engine/resources/test_pipette_data_provider.py +++ b/api/tests/opentrons/protocol_engine/resources/test_pipette_data_provider.py @@ -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, diff --git a/app/src/local-resources/instruments/__tests__/hooks.test.ts b/app/src/local-resources/instruments/__tests__/hooks.test.ts index 468c2da5e0d..45c800044dc 100644 --- a/app/src/local-resources/instruments/__tests__/hooks.test.ts +++ b/app/src/local-resources/instruments/__tests__/hooks.test.ts @@ -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', diff --git a/app/src/organisms/ODD/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx b/app/src/organisms/ODD/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx index 52c62382241..687bb1d9832 100644 --- a/app/src/organisms/ODD/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx +++ b/app/src/organisms/ODD/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx @@ -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') diff --git a/app/src/organisms/PipetteWizardFlows/__tests__/AttachProbe.test.tsx b/app/src/organisms/PipetteWizardFlows/__tests__/AttachProbe.test.tsx index 0bbab02ebc5..43f2357ec6d 100644 --- a/app/src/organisms/PipetteWizardFlows/__tests__/AttachProbe.test.tsx +++ b/app/src/organisms/PipetteWizardFlows/__tests__/AttachProbe.test.tsx @@ -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.' ) diff --git a/app/src/organisms/PipetteWizardFlows/__tests__/BeforeBeginning.test.tsx b/app/src/organisms/PipetteWizardFlows/__tests__/BeforeBeginning.test.tsx index db8b03816c2..3a801f7a597 100644 --- a/app/src/organisms/PipetteWizardFlows/__tests__/BeforeBeginning.test.tsx +++ b/app/src/organisms/PipetteWizardFlows/__tests__/BeforeBeginning.test.tsx @@ -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.' diff --git a/app/src/organisms/PipetteWizardFlows/__tests__/ChoosePipette.test.tsx b/app/src/organisms/PipetteWizardFlows/__tests__/ChoosePipette.test.tsx index ab14c846013..6c2430d6dd3 100644 --- a/app/src/organisms/PipetteWizardFlows/__tests__/ChoosePipette.test.tsx +++ b/app/src/organisms/PipetteWizardFlows/__tests__/ChoosePipette.test.tsx @@ -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' ) }) }) diff --git a/app/src/organisms/PipetteWizardFlows/__tests__/DetachPipette.test.tsx b/app/src/organisms/PipetteWizardFlows/__tests__/DetachPipette.test.tsx index a8f85ef3d73..630b8772b1a 100644 --- a/app/src/organisms/PipetteWizardFlows/__tests__/DetachPipette.test.tsx +++ b/app/src/organisms/PipetteWizardFlows/__tests__/DetachPipette.test.tsx @@ -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.' ) diff --git a/app/src/organisms/PipetteWizardFlows/__tests__/Results.test.tsx b/app/src/organisms/PipetteWizardFlows/__tests__/Results.test.tsx index df53d95cdb7..21f53c295aa 100644 --- a/app/src/organisms/PipetteWizardFlows/__tests__/Results.test.tsx +++ b/app/src/organisms/PipetteWizardFlows/__tests__/Results.test.tsx @@ -69,7 +69,7 @@ describe('Results', () => { hasCalData: true, } render(props) - screen.getByText('Flex 1-Channel 1000 μL successfully recalibrated') + screen.getByText('Flex 1-Channel 1000 µL successfully recalibrated') const image = screen.getByRole('img', { name: 'Success Icon' }) expect(image.getAttribute('src')).toEqual( '/app/src/assets/images/icon_success.png' @@ -87,7 +87,7 @@ describe('Results', () => { flowType: FLOWS.ATTACH, } render(props) - screen.getByText('Flex 1-Channel 1000 μL successfully attached') + screen.getByText('Flex 1-Channel 1000 µL successfully attached') const image = screen.getByRole('img', { name: 'Success Icon' }) expect(image.getAttribute('src')).toEqual( '/app/src/assets/images/icon_success.png' @@ -187,7 +187,7 @@ describe('Results', () => { flowType: FLOWS.DETACH, } render(props) - screen.getByText('Flex 1-Channel 1000 μL still attached') + screen.getByText('Flex 1-Channel 1000 µL still attached') expect(screen.getByLabelText('ot-alert')).toHaveStyle( `color: ${String(COLORS.red50)}` ) @@ -222,7 +222,7 @@ describe('Results', () => { selectedPipette: NINETY_SIX_CHANNEL, } render(props) - screen.getByText('Flex 1-Channel 1000 μL still attached') + screen.getByText('Flex 1-Channel 1000 µL still attached') expect(screen.getByLabelText('ot-alert')).toHaveStyle( `color: ${String(COLORS.red50)}` ) @@ -254,7 +254,7 @@ describe('Results', () => { flowType: FLOWS.CALIBRATE, } render(props) - screen.getByText('Flex 1-Channel 1000 μL successfully calibrated') + screen.getByText('Flex 1-Channel 1000 µL successfully calibrated') const image = screen.getByRole('img', { name: 'Success Icon' }) expect(image.getAttribute('src')).toEqual( '/app/src/assets/images/icon_success.png' @@ -271,7 +271,7 @@ describe('Results', () => { totalStepCount: 9, } render(props) - screen.getByText('Flex 1-Channel 1000 μL successfully calibrated') + screen.getByText('Flex 1-Channel 1000 µL successfully calibrated') const image = screen.getByRole('img', { name: 'Success Icon' }) expect(image.getAttribute('src')).toEqual( '/app/src/assets/images/icon_success.png' @@ -288,7 +288,7 @@ describe('Results', () => { totalStepCount: 5, } render(props) - screen.getByText('Flex 1-Channel 1000 μL successfully calibrated') + screen.getByText('Flex 1-Channel 1000 µL successfully calibrated') const image = screen.getByRole('img', { name: 'Success Icon' }) expect(image.getAttribute('src')).toEqual( '/app/src/assets/images/icon_success.png' @@ -304,7 +304,7 @@ describe('Results', () => { hasCalData: true, } render(props) - screen.getByText('Flex 1-Channel 1000 μL successfully recalibrated') + screen.getByText('Flex 1-Channel 1000 µL successfully recalibrated') const image = screen.getByRole('img', { name: 'Success Icon' }) expect(image.getAttribute('src')).toEqual( '/app/src/assets/images/icon_success.png' @@ -340,7 +340,7 @@ describe('Results', () => { }, } render(props) - screen.getByText('Flex 1-Channel 1000 μL successfully attached') + screen.getByText('Flex 1-Channel 1000 µL successfully attached') const image = screen.getByRole('img', { name: 'Success Icon' }) expect(image.getAttribute('src')).toEqual( '/app/src/assets/images/icon_success.png' @@ -359,7 +359,7 @@ describe('Results', () => { } render(props) screen.getByText('Wrong instrument installed') - screen.getByText('Install Flex 8-Channel 50 μL instead') + screen.getByText('Install Flex 8-Channel 50 µL instead') fireEvent.click(screen.getByRole('button', { name: 'Detach and retry' })) await act(() => pipettePromise) expect(mockRefetchInstruments).toHaveBeenCalled() diff --git a/app/src/organisms/PipetteWizardFlows/__tests__/hooks.test.tsx b/app/src/organisms/PipetteWizardFlows/__tests__/hooks.test.tsx index 996ec520af2..4a3f1d8e7ba 100644 --- a/app/src/organisms/PipetteWizardFlows/__tests__/hooks.test.tsx +++ b/app/src/organisms/PipetteWizardFlows/__tests__/hooks.test.tsx @@ -200,7 +200,7 @@ describe('usePipetteFlowWizardHeaderText', () => { } ) expect(result.current).toEqual( - 'Detach Flex 1-Channel 1000 μL and Attach 96-Channel Pipette' + 'Detach Flex 1-Channel 1000 µL and Attach 96-Channel Pipette' ) }) it('should return correct title for detaching single mount', () => { diff --git a/app/src/pages/ODD/InstrumentsDashboard/__tests__/InstrumentsDashboard.test.tsx b/app/src/pages/ODD/InstrumentsDashboard/__tests__/InstrumentsDashboard.test.tsx index 5e78f28b4c9..c1d81beb97b 100644 --- a/app/src/pages/ODD/InstrumentsDashboard/__tests__/InstrumentsDashboard.test.tsx +++ b/app/src/pages/ODD/InstrumentsDashboard/__tests__/InstrumentsDashboard.test.tsx @@ -118,9 +118,9 @@ describe('InstrumentsDashboard', () => { it('should render mount info for all attached mounts', () => { render('/instruments') screen.getByText('left Mount') - screen.getByText('Flex 1-Channel 1000 μL') + screen.getByText('Flex 1-Channel 1000 µL') screen.getByText('right Mount') - screen.getByText('Flex 1-Channel 50 μL') + screen.getByText('Flex 1-Channel 50 µL') screen.getByText('extension Mount') screen.getByText('Flex Gripper') }) diff --git a/app/src/redux/pipettes/__fixtures__/index.ts b/app/src/redux/pipettes/__fixtures__/index.ts index 8018bdcc5de..7582e12e24e 100644 --- a/app/src/redux/pipettes/__fixtures__/index.ts +++ b/app/src/redux/pipettes/__fixtures__/index.ts @@ -51,14 +51,14 @@ export const mockAttachedFlexPipette: Omit = { } export const mockFlexP1000PipetteSpecs: any = { - displayName: 'Flex 1-Channel 1000 μL', + displayName: 'Flex 1-Channel 1000 µL', name: 'p1000_single_flex', backCompatNames: ['p1000_single'], channels: 1, } export const mockFlexP1000Pipette8ChannelSpecs: any = { - displayName: 'Flex 8-Channel 1000 μL', + displayName: 'Flex 8-Channel 1000 µL', name: 'p1000_multi_flex', channels: 8, backCompatNames: ['p1000_multi'], @@ -355,7 +355,7 @@ export const mockPipetteData1Channel: PipetteData = { } export const mockAttachedPipetteInformation: PipetteInformation = { ...mockPipetteData1Channel, - displayName: 'Flex 1-Channel 1000 μL', + displayName: 'Flex 1-Channel 1000 µL', } export const mockPipetteData8Channel: PipetteData = { @@ -383,7 +383,7 @@ export const mockPipetteData8Channel: PipetteData = { } export const mock8ChannelAttachedPipetteInformation: PipetteInformation = { ...mockPipetteData8Channel, - displayName: 'Flex 8-Channel 1000 μL', + displayName: 'Flex 8-Channel 1000 µL', } export const mockPipetteData96Channel: PipetteData = { @@ -410,5 +410,5 @@ export const mockPipetteData96Channel: PipetteData = { } export const mock96ChannelAttachedPipetteInformation: PipetteInformation = { ...mockPipetteData96Channel, - displayName: 'Flex 96-Channel 1000 μL', + displayName: 'Flex 96-Channel 1000 µL', } diff --git a/app/src/resources/instruments/__tests__/useAttachedPipettesFromInstrumentsQuery.test.ts b/app/src/resources/instruments/__tests__/useAttachedPipettesFromInstrumentsQuery.test.ts index cc2bdbdc081..52485cf4d5a 100644 --- a/app/src/resources/instruments/__tests__/useAttachedPipettesFromInstrumentsQuery.test.ts +++ b/app/src/resources/instruments/__tests__/useAttachedPipettesFromInstrumentsQuery.test.ts @@ -38,11 +38,11 @@ describe('useAttachedPipettesFromInstrumentsQuery hook', () => { expect(result.current).toEqual({ left: { ...instrumentsResponseLeftPipetteFixture, - displayName: 'Flex 1-Channel 1000 μL', + displayName: 'Flex 1-Channel 1000 µL', }, right: { ...instrumentsResponseRightPipetteFixture, - displayName: 'Flex 1-Channel 1000 μL', + displayName: 'Flex 1-Channel 1000 µL', }, }) }) diff --git a/components/src/forms/InputField.stories.tsx b/components/src/forms/InputField.stories.tsx index 2ca998acd2f..21ee50dfb97 100644 --- a/components/src/forms/InputField.stories.tsx +++ b/components/src/forms/InputField.stories.tsx @@ -35,7 +35,7 @@ export const InputField = Template.bind({}) InputField.args = { label: 'Input field', placeholder: 'Placeholder Text', - units: 'μL', + units: 'µL', caption: 'caption here', isIndeterminate: false, } diff --git a/labware-library/src/labware-creator/components/sections/Volume.tsx b/labware-library/src/labware-creator/components/sections/Volume.tsx index 536c86b23e4..50035914ee7 100644 --- a/labware-library/src/labware-creator/components/sections/Volume.tsx +++ b/labware-library/src/labware-creator/components/sections/Volume.tsx @@ -23,7 +23,7 @@ const Content = (props: ContentProps): JSX.Element => {
- +
) diff --git a/opentrons-ai-client/src/organisms/InstrumentsSection/__tests__/InstrumentsSection.test.tsx b/opentrons-ai-client/src/organisms/InstrumentsSection/__tests__/InstrumentsSection.test.tsx index 0712ede4757..93a0ed161e4 100644 --- a/opentrons-ai-client/src/organisms/InstrumentsSection/__tests__/InstrumentsSection.test.tsx +++ b/opentrons-ai-client/src/organisms/InstrumentsSection/__tests__/InstrumentsSection.test.tsx @@ -86,14 +86,14 @@ describe('ApplicationSection', () => { const leftMount = screen.getAllByText('Choose pipette')[0] fireEvent.click(leftMount) - fireEvent.click(screen.getByText('Flex 1-Channel 50 μL')) + fireEvent.click(screen.getByText('Flex 1-Channel 50 µL')) const rightMount = screen.getByText('Choose pipette') fireEvent.click(rightMount) fireEvent.click(screen.getByText('None')) await waitFor(() => { - expect(screen.getByText('Flex 1-Channel 50 μL')).toBeInTheDocument() + expect(screen.getByText('Flex 1-Channel 50 µL')).toBeInTheDocument() }) expect(screen.getByText('None')).toBeInTheDocument() @@ -129,11 +129,11 @@ describe('ApplicationSection', () => { const leftMount = screen.getAllByText('Choose pipette')[0] fireEvent.click(leftMount) - fireEvent.click(screen.getByText('Flex 1-Channel 50 μL')) + fireEvent.click(screen.getByText('Flex 1-Channel 50 µL')) const rightMount = screen.getByText('Choose pipette') fireEvent.click(rightMount) - fireEvent.click(screen.getByText('Flex 8-Channel 50 μL')) + fireEvent.click(screen.getByText('Flex 8-Channel 50 µL')) await waitFor(() => { expect(screen.getByText('form is valid')).toBeInTheDocument() diff --git a/opentrons-ai-client/src/pages/CreateProtocol/__tests__/CreateProtocol.test.tsx b/opentrons-ai-client/src/pages/CreateProtocol/__tests__/CreateProtocol.test.tsx index 919e5f735e8..1b4cc0df92e 100644 --- a/opentrons-ai-client/src/pages/CreateProtocol/__tests__/CreateProtocol.test.tsx +++ b/opentrons-ai-client/src/pages/CreateProtocol/__tests__/CreateProtocol.test.tsx @@ -119,8 +119,8 @@ describe('CreateProtocol', () => { expect(previewItems[0]).toHaveTextContent('Basic aliquoting') expect(previewItems[1]).toHaveTextContent('Test description') expect(previewItems[2]).toHaveTextContent('Opentrons Flex') - expect(previewItems[3]).toHaveTextContent('Flex 1-Channel 50 μL') - expect(previewItems[4]).toHaveTextContent('Flex 8-Channel 50 μL') + expect(previewItems[3]).toHaveTextContent('Flex 1-Channel 50 µL') + expect(previewItems[4]).toHaveTextContent('Flex 8-Channel 50 µL') }) it('should open the Modules section when the Instruments section is completed', async () => { diff --git a/opentrons-ai-client/src/resources/utils/createProtocolTestUtils.tsx b/opentrons-ai-client/src/resources/utils/createProtocolTestUtils.tsx index 55f13465f0c..bd19e1dfa3d 100644 --- a/opentrons-ai-client/src/resources/utils/createProtocolTestUtils.tsx +++ b/opentrons-ai-client/src/resources/utils/createProtocolTestUtils.tsx @@ -21,11 +21,11 @@ export async function fillApplicationSectionAndClickConfirm(): Promise { export async function fillInstrumentsSectionAndClickConfirm(): Promise { const leftMount = screen.getAllByText('Choose pipette')[0] fireEvent.click(leftMount) - fireEvent.click(screen.getByText('Flex 1-Channel 50 μL')) + fireEvent.click(screen.getByText('Flex 1-Channel 50 µL')) const rightMount = screen.getAllByText('Choose pipette')[0] fireEvent.click(rightMount) - fireEvent.click(screen.getByText('Flex 8-Channel 50 μL')) + fireEvent.click(screen.getByText('Flex 8-Channel 50 µL')) const confirmButton = screen.getByText('Confirm') await waitFor(() => { diff --git a/opentrons-ai-server/api/data/python_api_219_docs.md b/opentrons-ai-server/api/data/python_api_219_docs.md index 31d3ce47404..5652ffadbce 100644 --- a/opentrons-ai-server/api/data/python_api_219_docs.md +++ b/opentrons-ai-server/api/data/python_api_219_docs.md @@ -53,7 +53,7 @@ To simulate your code, you’ll need [Python 3\.10](https://www.python.org/downl 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. The Flex and OT\-2 use similar labware for serial dilution. The tutorial code will use the labware listed in the table below, but as long as you have labware of each type you can modify the code to run with your labware. @@ -1643,9 +1643,9 @@ The Temperature Module supports these 96\-well block and labware combinations fo | 96\-well block contents | API Load Name | | -------------------------- | ---------------------------------------------------- | -| Bio\-Rad well plate 200 μL | `opentrons_96_aluminumblock_biorad_wellplate_200uL` | -| Generic PCR strip 200 μL | `opentrons_96_aluminumblock_generic_pcr_strip_200uL` | -| NEST well plate 100 μL | `opentrons_96_aluminumblock_nest_wellplate_100uL` | +| Bio\-Rad well plate 200 µL | `opentrons_96_aluminumblock_biorad_wellplate_200uL` | +| Generic PCR strip 200 µL | `opentrons_96_aluminumblock_generic_pcr_strip_200uL` | +| 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: @@ -3756,7 +3756,7 @@ One reason to set `new_tip="always"` is to avoid cross\-contamination between we [`transfer()`](index.html#opentrons.protocol_api.InstrumentContext.transfer 'opentrons.protocol_api.InstrumentContext.transfer') will pick up a new tip before _every_ aspirate when `new_tip="always"`. This includes when [tip refilling](index.html#complex-tip-refilling) requires multiple aspirations from a single source well. -[`distribute()`](index.html#opentrons.protocol_api.InstrumentContext.distribute 'opentrons.protocol_api.InstrumentContext.distribute') and [`consolidate()`](index.html#opentrons.protocol_api.InstrumentContext.consolidate 'opentrons.protocol_api.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): +[`distribute()`](index.html#opentrons.protocol_api.InstrumentContext.distribute 'opentrons.protocol_api.InstrumentContext.distribute') and [`consolidate()`](index.html#opentrons.protocol_api.InstrumentContext.consolidate 'opentrons.protocol_api.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( diff --git a/opentrons-ai-server/api/domain/fake_responses.py b/opentrons-ai-server/api/domain/fake_responses.py index 21eedb9bf0e..b60dddcf022 100644 --- a/opentrons-ai-server/api/domain/fake_responses.py +++ b/opentrons-ai-server/api/domain/fake_responses.py @@ -32,7 +32,7 @@ class FakeResponse(BaseModel): fake=True, ) -no_markdown: ChatResponse = ChatResponse(reply="👀 at me I am a response without markdown! 😊 99.99μl", fake=True) +no_markdown: ChatResponse = ChatResponse(reply="👀 at me I am a response without markdown! 😊 99.99µl", fake=True) empty_reply: ChatResponse = ChatResponse(reply="", fake=True) diff --git a/opentrons-ai-server/api/domain/utils.py b/opentrons-ai-server/api/domain/utils.py index 6b54bb0c477..abaa50972f4 100644 --- a/opentrons-ai-server/api/domain/utils.py +++ b/opentrons-ai-server/api/domain/utils.py @@ -13,7 +13,7 @@ def refine_characters(prompt: str) -> str: and certain special characters like backticks replaced with single quotes. Example: - >>> refine_characters("Transfer `10μ`") + >>> refine_characters("Transfer `10µ`") 'Transfer '10m'' """ @@ -29,7 +29,7 @@ def refine_characters(prompt: str) -> str: "ι": "i", "κ": "k", "λ": "l", - "μ": "m", + "µ": "m", "ν": "n", "ξ": "x", "ο": "o", diff --git a/opentrons-ai-server/api/storage/docs/serial_dilution_examples.md b/opentrons-ai-server/api/storage/docs/serial_dilution_examples.md index 0fa0ed870e2..cce4ceb9056 100644 --- a/opentrons-ai-server/api/storage/docs/serial_dilution_examples.md +++ b/opentrons-ai-server/api/storage/docs/serial_dilution_examples.md @@ -12,7 +12,7 @@ The lab task that you'll automate in this tutorial is serial dilution: taking a 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** Most Flex code examples will use a Flex 1-Channel 1000 μL pipette. +- **Flex users** Most Flex code examples will use a Flex 1-Channel 1000 µL pipette. - **OT-2 users** 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 pipette. The Flex and OT-2 use similar labware for serial dilution. The tutorial code will use the labware listed in the table below, but as long as you have labware of each type you can modify the code to run with your labware. diff --git a/protocol-designer/cypress/support/createNew.ts b/protocol-designer/cypress/support/createNew.ts index 02430507405..129edc636c8 100644 --- a/protocol-designer/cypress/support/createNew.ts +++ b/protocol-designer/cypress/support/createNew.ts @@ -91,7 +91,7 @@ export enum Content { TipRack = 'Filter Tip Rack 50 µL', PipetteType = 'Pipette type', PipetteVolume = 'Pipette volume', - FullP50SingleName = 'Flex 1-Channel 50 μL', + FullP50SingleName = 'Flex 1-Channel 50 µL', FullP50TiprackName = 'Opentrons Flex 96 Filter Tip Rack 50 µL', GoBack = 'Go back', Confirm = 'Confirm', diff --git a/protocol-designer/src/assets/localization/en/alert.json b/protocol-designer/src/assets/localization/en/alert.json index eae53855b33..a30b8b0cbb9 100644 --- a/protocol-designer/src/assets/localization/en/alert.json +++ b/protocol-designer/src/assets/localization/en/alert.json @@ -267,7 +267,7 @@ "unused_pipette_content": { "heading": "Protocol has unused pipette", "body1": "The {{pipette}} on {{mount}} mount is currently not used in any step. You won't be able to run this protocol unless this pipette is attached to your robot.", - "body1_96ch": "The Flex 8-Channel 1000 μL is currently not used in any step. You won't be able to run this protocol unless this pipette is attached to your robot.", + "body1_96ch": "The Flex 8-Channel 1000 µL is currently not used in any step. You won't be able to run this protocol unless this pipette is attached to your robot.", "body2": "If you don’t intend to use the pipette, remove it from your protocol." }, "unused_staging_area_content": { diff --git a/protocol-designer/src/assets/localization/en/application.json b/protocol-designer/src/assets/localization/en/application.json index 9db3ff0ede5..4da969ee122 100644 --- a/protocol-designer/src/assets/localization/en/application.json +++ b/protocol-designer/src/assets/localization/en/application.json @@ -54,8 +54,8 @@ "cycles": "cycles", "degrees": "°C", "hours": "h", - "microliter": "μL", - "microliterPerSec": "μL/s", + "microliter": "µL", + "microliterPerSec": "µL/s", "millimeter": "mm", "nanometer": "nm", "minutes": "m", diff --git a/protocol-designer/src/pages/ProtocolOverview/__tests__/InstrumentsInfo.test.tsx b/protocol-designer/src/pages/ProtocolOverview/__tests__/InstrumentsInfo.test.tsx index 89d12f63f59..4165fa2b51e 100644 --- a/protocol-designer/src/pages/ProtocolOverview/__tests__/InstrumentsInfo.test.tsx +++ b/protocol-designer/src/pages/ProtocolOverview/__tests__/InstrumentsInfo.test.tsx @@ -110,9 +110,9 @@ describe('InstrumentsInfo', () => { } render(props) - screen.getByText('Flex 1-Channel 50 μL') + screen.getByText('Flex 1-Channel 50 µL') screen.getByText('Opentrons Flex 96 Tip Rack 50 µL') - screen.getByText('Flex 8-Channel 50 μL') + screen.getByText('Flex 8-Channel 50 µL') screen.getByText('Opentrons Flex 96 Filter Tip Rack 50 µL') screen.getByText('Opentrons Flex Gripper') }) diff --git a/shared-data/js/__tests__/pipettes.test.ts b/shared-data/js/__tests__/pipettes.test.ts index 99895132440..9613539262b 100644 --- a/shared-data/js/__tests__/pipettes.test.ts +++ b/shared-data/js/__tests__/pipettes.test.ts @@ -76,7 +76,7 @@ describe('pipette data accessors', () => { backlashDistance: 0.1, channels: 1, displayCategory: 'FLEX', - displayName: 'Flex 1-Channel 1000 μL', + displayName: 'Flex 1-Channel 1000 µL', dropTipConfigurations: { plungerEject: { current: 1, speed: 15 } }, liquids: { default: { diff --git a/shared-data/js/titleCase.ts b/shared-data/js/titleCase.ts index a03effcbc2b..6277151824b 100644 --- a/shared-data/js/titleCase.ts +++ b/shared-data/js/titleCase.ts @@ -1,4 +1,4 @@ -const SMALL_WORDS = /\b(?:an?d?|a[st]|because|but|by|en|for|i[fn]|neither|nor|o[fnr]|only|over|per|μL|so|some|tha[tn]|the|to|up|upon|vs?\.?|versus|via|when|with|without|yet)\b/i +const SMALL_WORDS = /\b(?:an?d?|a[st]|because|but|by|en|for|i[fn]|neither|nor|o[fnr]|only|over|per|µL|so|some|tha[tn]|the|to|up|upon|vs?\.?|versus|via|when|with|without|yet)\b/i const TOKENS = /[^\s:–—-]+|./g const WHITESPACE = /\s/ const IS_MANUAL_CASE = /.(?=[A-Z]|\..)/ diff --git a/shared-data/pipette/definitions/1/pipetteNameSpecs.json b/shared-data/pipette/definitions/1/pipetteNameSpecs.json index 37d44414ea1..103b4a44123 100644 --- a/shared-data/pipette/definitions/1/pipetteNameSpecs.json +++ b/shared-data/pipette/definitions/1/pipetteNameSpecs.json @@ -457,7 +457,7 @@ ] }, "p50_single_flex": { - "displayName": "Flex 1-Channel 50 μL", + "displayName": "Flex 1-Channel 50 µL", "displayCategory": "FLEX", "defaultAspirateFlowRate": { "value": 35, @@ -502,7 +502,7 @@ ] }, "p1000_single_flex": { - "displayName": "Flex 1-Channel 1000 μL", + "displayName": "Flex 1-Channel 1000 µL", "displayCategory": "FLEX", "defaultAspirateFlowRate": { "value": 478, @@ -552,7 +552,7 @@ ] }, "p1000_multi_flex": { - "displayName": "Flex 8-Channel 1000 μL", + "displayName": "Flex 8-Channel 1000 µL", "displayCategory": "FLEX", "defaultAspirateFlowRate": { "value": 478, @@ -600,7 +600,7 @@ ] }, "p1000_multi_em_flex": { - "displayName": "Flex 8-Channel EM 1000 μL", + "displayName": "Flex 8-Channel EM 1000 µL", "displayCategory": "FLEX", "defaultAspirateFlowRate": { "value": 478, @@ -648,7 +648,7 @@ ] }, "p50_multi_flex": { - "displayName": "Flex 8-Channel 50 μL", + "displayName": "Flex 8-Channel 50 µL", "displayCategory": "FLEX", "defaultAspirateFlowRate": { "value": 35, @@ -693,7 +693,7 @@ ] }, "p1000_96": { - "displayName": "Flex 96-Channel 1000 μL", + "displayName": "Flex 96-Channel 1000 µL", "displayCategory": "GEN1", "defaultAspirateFlowRate": { "value": 6, @@ -740,7 +740,7 @@ ] }, "p200_96": { - "displayName": "Flex 96-Channel 200 μL", + "displayName": "Flex 96-Channel 200 µL", "displayCategory": "FLEX", "defaultAspirateFlowRate": { "value": 7.85, diff --git a/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_0.json b/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_0.json index 62033d0444c..f44f1561199 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_0.json +++ b/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 8-Channel 1000 μL", + "displayName": "Flex 8-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_3.json b/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_3.json index f7a517120de..8c6b13d059a 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_3.json +++ b/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_3.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 8-Channel 1000 μL", + "displayName": "Flex 8-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_4.json b/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_4.json index 33eca65b2fc..f6b7f855cfd 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_4.json +++ b/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_4.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 8-Channel 1000 μL", + "displayName": "Flex 8-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_5.json b/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_5.json index 33eca65b2fc..f6b7f855cfd 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_5.json +++ b/shared-data/pipette/definitions/2/general/eight_channel/p1000/3_5.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 8-Channel 1000 μL", + "displayName": "Flex 8-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/eight_channel/p50/3_0.json b/shared-data/pipette/definitions/2/general/eight_channel/p50/3_0.json index 514677f27f1..828f021e54b 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel/p50/3_0.json +++ b/shared-data/pipette/definitions/2/general/eight_channel/p50/3_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 8-Channel 50 μL", + "displayName": "Flex 8-Channel 50 µL", "model": "p50", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/eight_channel/p50/3_3.json b/shared-data/pipette/definitions/2/general/eight_channel/p50/3_3.json index d5ef4b281ce..a5d9916d1c9 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel/p50/3_3.json +++ b/shared-data/pipette/definitions/2/general/eight_channel/p50/3_3.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 8-Channel 50 μL", + "displayName": "Flex 8-Channel 50 µL", "model": "p50", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/eight_channel/p50/3_4.json b/shared-data/pipette/definitions/2/general/eight_channel/p50/3_4.json index d62d02e1b06..2442190e41b 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel/p50/3_4.json +++ b/shared-data/pipette/definitions/2/general/eight_channel/p50/3_4.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 8-Channel 50 μL", + "displayName": "Flex 8-Channel 50 µL", "model": "p50", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/eight_channel/p50/3_5.json b/shared-data/pipette/definitions/2/general/eight_channel/p50/3_5.json index d62d02e1b06..2442190e41b 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel/p50/3_5.json +++ b/shared-data/pipette/definitions/2/general/eight_channel/p50/3_5.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 8-Channel 50 μL", + "displayName": "Flex 8-Channel 50 µL", "model": "p50", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/eight_channel_em/p1000/1_0.json b/shared-data/pipette/definitions/2/general/eight_channel_em/p1000/1_0.json index c267504b404..df1d00565dd 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel_em/p1000/1_0.json +++ b/shared-data/pipette/definitions/2/general/eight_channel_em/p1000/1_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "FLEX 8-Channel EM 1000 μL", + "displayName": "FLEX 8-Channel EM 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/eight_channel_em/p1000/3_0.json b/shared-data/pipette/definitions/2/general/eight_channel_em/p1000/3_0.json index c267504b404..df1d00565dd 100644 --- a/shared-data/pipette/definitions/2/general/eight_channel_em/p1000/3_0.json +++ b/shared-data/pipette/definitions/2/general/eight_channel_em/p1000/3_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "FLEX 8-Channel EM 1000 μL", + "displayName": "FLEX 8-Channel EM 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/1_0.json b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/1_0.json index 4e4ad89ca3f..715c6daf712 100644 --- a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/1_0.json +++ b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/1_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 96-Channel 1000 μL", + "displayName": "Flex 96-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_0.json b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_0.json index 2b0faca936d..a25361875a6 100644 --- a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_0.json +++ b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 96-Channel 1000 μL", + "displayName": "Flex 96-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_3.json b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_3.json index 853da180a1b..ba27935f317 100644 --- a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_3.json +++ b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_3.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 96-Channel 1000 μL", + "displayName": "Flex 96-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_4.json b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_4.json index a47bbfc76da..eed4c0529d9 100644 --- a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_4.json +++ b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_4.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 96-Channel 1000 μL", + "displayName": "Flex 96-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_5.json b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_5.json index 9c6df88b575..16031e8136a 100644 --- a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_5.json +++ b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_5.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 96-Channel 1000 μL", + "displayName": "Flex 96-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_6.json b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_6.json index 7bcfb04e4f0..902eca9abe8 100644 --- a/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_6.json +++ b/shared-data/pipette/definitions/2/general/ninety_six_channel/p1000/3_6.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 96-Channel 1000 μL", + "displayName": "Flex 96-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/ninety_six_channel/p200/1_0.json b/shared-data/pipette/definitions/2/general/ninety_six_channel/p200/1_0.json index 5719bb3437c..4ce934023ce 100644 --- a/shared-data/pipette/definitions/2/general/ninety_six_channel/p200/1_0.json +++ b/shared-data/pipette/definitions/2/general/ninety_six_channel/p200/1_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 96-Channel 200 μL", + "displayName": "Flex 96-Channel 200 µL", "model": "p200", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/ninety_six_channel/p200/3_0.json b/shared-data/pipette/definitions/2/general/ninety_six_channel/p200/3_0.json index 5719bb3437c..4ce934023ce 100644 --- a/shared-data/pipette/definitions/2/general/ninety_six_channel/p200/3_0.json +++ b/shared-data/pipette/definitions/2/general/ninety_six_channel/p200/3_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 96-Channel 200 μL", + "displayName": "Flex 96-Channel 200 µL", "model": "p200", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_0.json b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_0.json index 6877ce9e12e..51309658e0d 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_0.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 1000 μL", + "displayName": "Flex 1-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_3.json b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_3.json index 6877ce9e12e..51309658e0d 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_3.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_3.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 1000 μL", + "displayName": "Flex 1-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_4.json b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_4.json index f0ebd0e00a3..d2e6eab6467 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_4.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_4.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 1000 μL", + "displayName": "Flex 1-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_5.json b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_5.json index f0ebd0e00a3..d2e6eab6467 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_5.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_5.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 1000 μL", + "displayName": "Flex 1-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_6.json b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_6.json index f0ebd0e00a3..d2e6eab6467 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_6.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_6.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 1000 μL", + "displayName": "Flex 1-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_7.json b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_7.json index b1d202e897f..3eb596feec9 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p1000/3_7.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p1000/3_7.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 1000 μL", + "displayName": "Flex 1-Channel 1000 µL", "model": "p1000", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p50/3_0.json b/shared-data/pipette/definitions/2/general/single_channel/p50/3_0.json index a2912a2a628..76b0aa4f439 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p50/3_0.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p50/3_0.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 50 μL", + "displayName": "Flex 1-Channel 50 µL", "model": "p50", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p50/3_3.json b/shared-data/pipette/definitions/2/general/single_channel/p50/3_3.json index a2912a2a628..76b0aa4f439 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p50/3_3.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p50/3_3.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 50 μL", + "displayName": "Flex 1-Channel 50 µL", "model": "p50", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p50/3_4.json b/shared-data/pipette/definitions/2/general/single_channel/p50/3_4.json index 3f8ba3c4a75..e928b494320 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p50/3_4.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p50/3_4.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 50 μL", + "displayName": "Flex 1-Channel 50 µL", "model": "p50", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p50/3_5.json b/shared-data/pipette/definitions/2/general/single_channel/p50/3_5.json index 3f8ba3c4a75..e928b494320 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p50/3_5.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p50/3_5.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 50 μL", + "displayName": "Flex 1-Channel 50 µL", "model": "p50", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/definitions/2/general/single_channel/p50/3_6.json b/shared-data/pipette/definitions/2/general/single_channel/p50/3_6.json index 3f8ba3c4a75..e928b494320 100644 --- a/shared-data/pipette/definitions/2/general/single_channel/p50/3_6.json +++ b/shared-data/pipette/definitions/2/general/single_channel/p50/3_6.json @@ -1,6 +1,6 @@ { "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", - "displayName": "Flex 1-Channel 50 μL", + "displayName": "Flex 1-Channel 50 µL", "model": "p50", "displayCategory": "FLEX", "validNozzleMaps": { diff --git a/shared-data/pipette/fixtures/name/pipetteNameSpecFixtures.json b/shared-data/pipette/fixtures/name/pipetteNameSpecFixtures.json index 92d9b6da4b4..0a5f1cd4a97 100644 --- a/shared-data/pipette/fixtures/name/pipetteNameSpecFixtures.json +++ b/shared-data/pipette/fixtures/name/pipetteNameSpecFixtures.json @@ -147,7 +147,7 @@ "maxVolume": 1000 }, "p1000_96": { - "displayName": "Flex 96-Channel 1000 μL", + "displayName": "Flex 96-Channel 1000 µL", "defaultAspirateFlowRate": { "value": 7.85, "min": 3, diff --git a/step-generation/src/__tests__/__snapshots__/fixtureGeneration.test.ts.snap b/step-generation/src/__tests__/__snapshots__/fixtureGeneration.test.ts.snap index 991fdb2edff..82e4b097eef 100644 --- a/step-generation/src/__tests__/__snapshots__/fixtureGeneration.test.ts.snap +++ b/step-generation/src/__tests__/__snapshots__/fixtureGeneration.test.ts.snap @@ -9114,7 +9114,7 @@ exports[`snapshot tests > makeContext 1`] = ` "backlashDistance": 0.3, "channels": 96, "displayCategory": "FLEX", - "displayName": "Flex 96-Channel 1000 μL", + "displayName": "Flex 96-Channel 1000 µL", "dropTipConfigurations": { "camAction": { "current": 1.5, diff --git a/step-generation/src/errorCreators.ts b/step-generation/src/errorCreators.ts index 12a9f2e59e2..a871112a180 100644 --- a/step-generation/src/errorCreators.ts +++ b/step-generation/src/errorCreators.ts @@ -103,7 +103,7 @@ export function tipVolumeExceeded(args: { }): CommandCreatorError { const { volume, maxVolume, actionName } = args return { - message: `This step tries to ${actionName} ${volume}μL, but the tip can only hold ${maxVolume}μL.`, + message: `This step tries to ${actionName} ${volume}µL, but the tip can only hold ${maxVolume}µL.`, type: 'TIP_VOLUME_EXCEEDED', } } @@ -118,7 +118,7 @@ export function pipetteVolumeExceeded(args: { const message = disposalVolume != null ? `Attemped to ${actionName} volume + disposal volume greater than pipette max volume (${volume} + ${disposalVolume} > ${maxVolume})` - : `This step tries to ${actionName} ${volume}μL, but the tip can only hold ${maxVolume}μL.` + : `This step tries to ${actionName} ${volume}µL, but the tip can only hold ${maxVolume}µL.` return { message, type: 'PIPETTE_VOLUME_EXCEEDED',