def read_pipette_model(self, mount) -> Optional[str]:
        '''
        Reads an attached pipette's MODEL
        The MODEL is a unique string for this model of pipette

        :param mount: string with value 'left' or 'right'
        :return model string, or None
        '''
        if self.simulating:
            res = None
        else:
            res = self._read_from_pipette(
                GCODES['READ_INSTRUMENT_MODEL'], mount)
            if res and '_v' not in res:
                # Backward compatibility for pipettes programmed with model
                # strings that did not include the _v# designation
                res = res + '_v1'
            elif res and '_v13' in res:
                # Backward compatibility for pipettes programmed with model
                # strings that did not include the "." to seperate version
                # major and minor values
                res = res.replace('_v13', '_v1.3')

        return res
Reads an attached pipette's MODEL
        The MODEL is a unique string for this model of pipette

        :param mount: string with value 'left' or 'right'
        :return model string, or None