     int pin_status = digitalRead(pin_number);
     // serprintf("PollButton::poll: status is %d (%s)\r\n", pin_status, pin_status == HIGH ? "high" : "not high");
 
-    if (pin_status == HIGH) {
+    if (pin_status == LOW) {
       if (!pressed) {
         pressed_at = millis();
         pressed = true;

    pressed_at(0),
    pin_number(pin_number_) {
    pinMode(pin_number, INPUT);
  };

  // returns the number of ms for which the button has been held down


      //serprintf("pressed_at=%lu, millis=%lu\r\n", pressed_at, millis());
      return millis()-pressed_at;
    } else if (pin_status == HIGH) {
      if (pressed)
        serprintf("PollButton::poll: released\r\n");
      pressed = false;
