This is a suggestion. Instead of calculating an average you could use a simple control loop like ``` changeValue = currentDACValue-newDACValue if ( abs(changeValue) > maxAllowedDelta) {adjust newDACValue by +/-max delta} currentDACValue = newtDACValue ``` To make sure that the values don't change too radically. This is simpler and more linear than the average method.