Patent ID: 7527078

Claim:
A method for dispensing a plurality of ingredients of a formula, the method comprising: a) selecting a formula calling for n ingredients, with each ingredient having a target amount, wherein n is an integer; b) calculating a motion of the pump required to dispense less than the target amount of said one of the n ingredients; c) executing a percentage of said motion of the pump required to dispense said less than the amount of said one of the n ingredients; d) reading a scale and determining a remaining amount of said one of the ingredients needed to meet the target; e) dividing said remaining amount by a factor to calculate a first remaining amount and calculating a motion of the pump required to dispense said first remaining amount; f) executing said motion of the pump required to dispense said first remaining amount and reading the scale to determine an actual first remaining amount dispensed; g) subtracting the actual first remaining amount dispensed from said first remaining amount to generate a difference, multiplying the difference by the factor and adding the result to said first remaining amount to calculate a second remaining amount and calculating a motion of the pump required to dispense said second remaining amount; and h) executing said motion of the pump required to dispense said second remaining amount, wherein the motions of the pump of parts (f) and (h) are executed by a stepper motor tinder the control of a controller and the calculating of the motions of the pump in parts (e) and (g) comprises using a calibration table comprising a set of data points to calculate the number of steps for the stepper motor, each data point corresponding to a number of steps of the stepper motor and an amount of said one of the ingredients, the using of the calibration table further comprising using a linear approximation of a number of steps S according to an equation S=A·V+B where A is a slope of the linear approximation and B is a y-intersect of the linear approximation, A and B are calculated from the calibration table using a least square method for the set of data points and V is first remaining amount for part (e) and the second remaining amount for part (g).