     if (now - sketch.last_tick >= 1000) {
       sketch.last_tick = now;
       --sketch.countdown;
+      update_7segment(now);
     }
     if (!sketch.countdown) {
       change_state(LAUNCHSTATE_FIRING);

#define PIN_LAUNCH_VIN 4
#define PIN_FIRE_IND 0
#define PIN_ARM_IND 6
#define PIN_CONT_READ 7
#define PIN_SR_DS 1
#define PIN_SR_ST 3
#define PIN_SR_SH 2

      change_state(LAUNCHSTATE_DISARMED);
      break;
  }
}

void check_continuity(unsigned long now) {
  if (LAUNCHSTATE_FIRING != sketch.launch_state) {
    if (digitalRead(PIN_LAUNCH_VIN)) {
      if (sketch.vread_dropouts > 0) {
        --sketch.vread_dropouts;
      } else if (LAUNCHSTATE_DISARMED == sketch.launch_state) {
        change_state(LAUNCHSTATE_ARMED);
      }
    } else if (now - sketch.last_tick > FIRE_VOLTAGE_RISE_TIME ) {
      // always allow time for the voltage to come back up after firing.
      ++sketch.vread_dropouts;
      if (sketch.vread_dropouts < VIN_DROPOUTS_TH) {
        change_state(LAUNCHSTATE_DISARMED);
      }
    }
  }
}

void update_7segment(unsigned long now) {
  digitalWrite(PIN_SR_ST, LOW);
  switch (sketch.launch_state) {
    case LAUNCHSTATE_POST_FIRE: {
        shiftOut(PIN_SR_DS, PIN_SR_SH, MSBFIRST, sketch.ssmap[0]);
      }
      break;
