Thanks Jack! Using your library, I am still not reliably detecting button presses. As the internal clock speed goes down, it drops from picking up every press of a rapidly-pressed button to only detecting one per second or so. It doesn't seem to matter if I rescale the debounce time or not. Does it matter that millis() returns a value scaled according to the internal clock speed?