 {
   // get the matrix state used in the pitch/roll/yaw masks below
   uint16_t helm = helmReadMatrix();
-/*
-#ifdef DEBUG
-  Serial.print(F(" => maxtrix:\n\t"));
-  Serial.println(helm, BIN);
-#endif
-*/
+
   // update control surface inputs
   // the MASKED_ contants have "helm & DIR_MASK_x" format for convenience
   pitchAdjust = helmGetAdjustment(MASKED_PITCH_U, MASKED_PITCH_D, pitchAdjust);

  delay(DELAY_LOOP);
#else
  delay(DELAY_DEBUG);
#endif

  Serial.flush();

  uint16_t matrix = 0;
  uint8_t row = 0, col = 0;

  for (row = PIN_HELM_MAT_ROW; row < PIN_HELM_MAT_ROWS; row++)
  {
    digitalWrite(row, LOW); // turn on the active-low row

    for (col = PIN_HELM_MAT_COL; col < PIN_HELM_MAT_COLS; col++)
    {
      // get inverted result and shift it onto the matrix
      matrix = (matrix << 1) | !digitalRead(col); // wish there was <<=
    }

    digitalWrite(row, HIGH); // turn off the active-low row
  }

  return (matrix);
}

int16_t helmGetAdjustment(boolean high, boolean low, int8_t adj) // get control input
{
  switch (high ? HIGH : (low ? LOW : NEUTRAL)) // high trumps low
  {
