update, and adding analogue reading