eagled-toggle-3d.ino View on Little Bird ↗
const byte BUTTON_PIN = 2;
const byte STAR_PIN = 6;
const unsigned long DEBOUNCE_MS = 25;
bool rawLast = HIGH;
bool stable = HIGH;
bool starOn = false;
unsigned long changedAt = 0;
unsigned long reportedAt = 0;
void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(STAR_PIN, OUTPUT);
  Serial.begin(9600);
}
void loop() {
  unsigned long now = millis();
  bool raw = digitalRead(BUTTON_PIN);
  if (raw != rawLast) { rawLast = raw; changedAt = now; }
  if (now - changedAt >= DEBOUNCE_MS && raw != stable) {
    stable = raw;
    if (stable == LOW) starOn = !starOn;
  }
  digitalWrite(STAR_PIN, starOn ? HIGH : LOW);
  if (now - reportedAt >= 50) {
    reportedAt = now;
    Serial.print("button:"); Serial.print(stable == LOW ? 1 : 0);
    Serial.print(",star:"); Serial.println(starOn ? 1 : 0);
  }
}