update from original adafruit:master