 		cycles++;
 		if (cycles == 120)
 			cycles = 0;
-	}
-}
+
+		// if we are in the nunchuk control mode 
+		if (nunchukControlMode) {
+			// dump the values to the serial port if when we update displays
+			nunchukControlModeUpdate(cycles == 0);
+		}
+	}
+}

					SEND_SERVO_POS(MSG_MAX, config.servoSafe[EEPROM_CONFIG_SERVO_L].max, config.servoSafe[EEPROM_CONFIG_SERVO_R].max, config.servoSafe[EEPROM_CONFIG_SERVO_ROT].max, config.servoSafe[EEPROM_CONFIG_SERVO_HROT].max, config.servoSafe[EEPROM_CONFIG_SERVO_H].max);
					sendMsgF(MSG_OK);
					break;
				default:
					SEND_ERROR_DEC(MSG_INVM, code);
					return false;

	moveServo(servoH, widgetH, degrees, servoSpeed, wait, updateDisplay);
}

// nunchuk
ArduinoNunchuk nunchuk = ArduinoNunchuk();
bool nunchukControlMode = false;

void nunchukControlModeToggle(void) {
	nunchukControlMode = !nunchukControlMode;
	if (nunchukControlMode) {
		sendMsgF(MSG_NCM_ON);
		messageScrollSet("nunchuk control on");
	} else {
		sendMsgF(MSG_NCM_OFF);
		messageScrollSet("nunchuk control off");
	}
	messageScrollUpdate(true);
	sendMsgF(MSG_OK);
}

void nunchukControlModeUpdate(bool sendValues) {
	nunchuk.update();
	// the Z-Button disables nunchukcontrolmode
	if (nunchuk.zButton)
		nunchukControlModeToggle();
	if (sendValues) {
		sendMsgF(MSG_ANALOG);
		sendMsgF(MSG_X); Serial.print(nunchuk.analogX, DEC);
		sendMsgF(MSG_Y); Serial.print(nunchuk.analogY, DEC);
		sendMsgF(MSG_LF);
		sendMsgF(MSG_ACCEL);
		sendMsgF(MSG_X); Serial.print(nunchuk.accelX, DEC);
		sendMsgF(MSG_Y); Serial.print(nunchuk.accelY, DEC);
		sendMsgF(MSG_Z); Serial.print(nunchuk.accelZ, DEC);
		sendMsgF(MSG_LF);
		sendMsgF(MSG_BUTTON);
		sendMsgF(MSG_C); Serial.print(nunchuk.cButton, DEC);
		sendMsgF(MSG_Z); Serial.print(nunchuk.zButton, DEC);
		sendMsgF(MSG_LF);
	}
}

// helper functions
void softwareReset(void) {
	wdt_enable(WDTO_15MS);
