public byte[] toByteArray() {
		byte[] bytes = new byte[SETTINGS_SIZE];
		byte[] liBytes = TypeConverter.unsignedShortToBytes(logIntervalMS);
		bytes[0] = liBytes[0];
		bytes[1] = liBytes[1];
		byte[] huBytes = TypeConverter.floatToBytes(heightUnits);
		bytes[2] = huBytes[0];
		bytes[3] = huBytes[1];
		bytes[4] = huBytes[2];
		bytes[5] = huBytes[3];
		switch (batteryType) {
		case NIMH:
			bytes[6] = 0;
			break;
		case LIPO:
			bytes[6] = 1;
			break;
		case NONE:
			bytes[6] = 2;
			break;
		}
		bytes[7] = 0;
		byte[] lvBytes = TypeConverter.floatToBytes(lowVoltageThreshold);
		bytes[8] = lvBytes[0];
		bytes[9] = lvBytes[1];
		bytes[10] = lvBytes[2];
		bytes[11] = lvBytes[3];
		byte[] bmBytes = TypeConverter.floatToBytes(batteryMonitorCalibration);
		bytes[12] = bmBytes[0];
		bytes[13] = bmBytes[1];
		bytes[14] = bmBytes[2];
		bytes[15] = bmBytes[3];
		bytes[16] = (byte) (logServo ? 1 : 0);
		bytes[17] = actionToByte(midPositionAction);
		bytes[18] = 0;
		bytes[19] = actionToByte(onPositionAction);
		bytes[20] = 0;
		return bytes;
	}