previous fix removing unnecessary code was incorrect, fixed so we always send start condition and device address, and merely don't send register address if it isn't present