A blood pump system for implanting in a patient for ventricular support, comprising: a pumping chamber having an inlet for receiving blood from a ventricle of the patient; an impeller received in the pumping chamber; a motor coupled to the impeller for driving rotation of the impeller; and a motor controller for tracking systolic and diastolic phases of a cardiac cycle of the patient and supplying a variable voltage signal to the motor in a variable speed mode to produce a variable impeller speed linked to the cardiac cycle, wherein the variable speed mode is comprised of matching impeller speed to a target speed, and characterised in that the motor controller is configured to: determine a timing of the cardiac cycle and a heart rate from instantaneous blood flow based on a current signal of the motor by measuring a time between current peaks; increase the voltage signal to ramp up the target speed to an elevated speed during the diastolic phase at a calculated time after a current minimum value of the current signal is detected, wherein the ramp up to the elevated speed begins at a moment between about 50% to about 90% of the diastolic phase; and decrease the voltage signal to ramp down the target speed to a reduced speed during the systolic phase at a calculated time after a current peak of the current signal is detected. a pumping chamber having an inlet for receiving blood from a ventricle of the patient; an impeller received in the pumping chamber; a motor coupled to the impeller for driving rotation of the impeller; and a motor controller for tracking systolic and diastolic phases of a cardiac cycle of the patient and supplying a variable voltage signal to the motor in a variable speed mode to produce a variable impeller speed linked to the cardiac cycle, wherein the variable speed mode is comprised of matching impeller speed to a target speed, and characterised in that the motor controller is configured to: determine a timing of the cardiac cycle and a heart rate from instantaneous blood flow based on a current signal of the motor by measuring a time between current peaks; increase the voltage signal to ramp up the target speed to an elevated speed during the diastolic phase at a calculated time after a current minimum value of the current signal is detected, wherein the ramp up to the elevated speed begins at a moment between about 50% to about 90% of the diastolic phase; and decrease the voltage signal to ramp down the target speed to a reduced speed during the systolic phase at a calculated time after a current peak of the current signal is detected. determine a timing of the cardiac cycle and a heart rate from instantaneous blood flow based on a current signal of the motor by measuring a time between current peaks; increase the voltage signal to ramp up the target speed to an elevated speed during the diastolic phase at a calculated time after a current minimum value of the current signal is detected, wherein the ramp up to the elevated speed begins at a moment between about 50% to about 90% of the diastolic phase; and decrease the voltage signal to ramp down the target speed to a reduced speed during the systolic phase at a calculated time after a current peak of the current signal is detected.