
	hwVersion = getValue(CONSOLE, CONSOLE_REF_HW);


				" assistance level ........: %d" 
					getValue(CONSOLE, CONSOLE_ASSIST_INITLEVEL)
	
		printf( " part number .............: %05d" ((getValue(CONSOLE, CONSOLE_SN_PN_HI) << 8) + getValue(CONSOLE, CONSOLE_SN_PN_LO)),
				" item number .............: %05d" ((getValue(CONSOLE, CONSOLE_SN_ITEM_HI) << 8) + getValue(CONSOLE, CONSOLE_SN_ITEM_LO))


		/* ASSIST speed limit */
		max limit enabled sl = getValue(CONSOLE, CONSOLE_ASSIST_MAXSPEEDFLAG) == 0 ? "no" : "yes";
		speed limit speedLimit = ((getValue(CONSOLE, CONSOLE_ASSIST_MAXSPEED_HI) << 8) + getValue(CONSOLE, CONSOLE_ASSIST_MAXSPEED_LO)) / (double)10;
		
		/* MIN speed limit */
		sl = getValue(CONSOLE, CONSOLE_ASSIST_MINSPEEDFLAG) == 0 ? "no" : "yes";
		speedLimit = (getValue(CONSOLE, CONSOLE_ASSIST_MINSPEED)) / (double)10;
		
		
		/* THROTTLE speed limit */
		" throttle limit enabled ..: %sl = getValue(CONSOLE, CONSOLE_THROTTLE_MAXSPEEDFLAG) == 0 ? "no" : "yes";
		 " throttle limit enabled ..: %s"  = ((getValue(CONSOLE, CONSOLE_THROTTLE_MAXSPEED_HI) << 8) + getValue(CONSOLE, CONSOLE_THROTTLE_MAXSPEED_LO)) / (double)10;
		printf( " throttle limit enabled ..: %s" _NL
				" throttle speed limit ....: %0.2f Km/h" _NL _NL, sl, speedLimit);

		/* WHEEL CIRCUMFERENCE */
		wheel circumference .....: %d mm" = (getValue(CONSOLE, CONSOLE_GEOMETRY_CIRC_HI) << 8) + getValue(CONSOLE, CONSOLE_GEOMETRY_CIRC_LO);
		
				" mountain cap ............: %0.2f%%" _NL,
					(getValue(CONSOLE, CONSOLE_ASSIST_MOUNTAINCAP) * 1.5625));

		printf( " odo .....................: %0.2f Km" _NL _NL,
					((getValue(CONSOLE, CONSOLE_STATS_ODO_1) << 24) +
					(getValue(CONSOLE, CONSOLE_STATS_ODO_2) << 16) +
					(getValue(CONSOLE, CONSOLE_STATS_ODO_3) << 8) +
					(getValue(CONSOLE, CONSOLE_STATS_ODO_4))) / (double)10
					);
	}


	hwVersion = getValue(BATTERY, BATTERY_REF_HW);
	if (hwVersion == 0)
		printf("Battery not responding" _NL _NL);
	else {
		printf( "Battery information:" _NL
				" hardware version ........: %02d" _NL
				" software version ........: %02d" _NL,
					hwVersion, getValue(BATTERY, BATTERY_REF_SW)
				);

		if (!gNoSerialNumbers)
		printf( " part number .............: %05d" _NL
				" item number .............: %05d" _NL,
					((getValue(BATTERY, BATTERY_SN_PN_HI) << 8) + getValue(BATTERY, BATTERY_SN_PN_LO)),
					((getValue(BATTERY, BATTERY_SN_ITEM_HI) << 8) + getValue(BATTERY, BATTERY_SN_ITEM_LO))
				);

		printf( " voltage .................: %0.2fV" _NL
				" battery level ...........: %0.2f%%" _NL
				" maximum voltage .........: %0.2f%%" _NL
				" minimum voltage .........: %0.2f%%" _NL
				" mean voltage ............: %0.2f%%" _NL
				" resets ..................: %0d" _NL
				" ggjrCalib ...............: %0d" _NL
				" vctrlShorts .............: %0d" _NL
				" lmd .....................: %0.2fAh" _NL
				" cell capacity ...........: %0.2fAh" _NL _NL,
					((getValue(BATTERY, BATTERY_STATUS_VBATT_HI) << 8) + getValue(BATTERY, BATTERY_STATUS_VBATT_LO)) * 0.001,
					(getValue(BATTERY, BATTERY_STATUS_LEVEL) * 6.6667),
					getVoltageValue(BATTERY, BATTERY_STATS_VBATTMAX),
					getVoltageValue(BATTERY, BATTERY_STATS_VBATTMIN),
					getVoltageValue(BATTERY, BATTERY_STATS_VBATTMEAN),
					(getValue(BATTERY, BATTERY_STATS_RESET_HI) << 8) + getValue(BATTERY, BATTERY_STATS_RESET_LO),
					getValue(BATTERY, BATTERY_STSTS_GGJSRCALIB),
					getValue(BATTERY, BATTERY_STSTS_VCTRLSHORTS),
					((getValue(BATTERY, BATTERY_STATS_LMD_HI) << 8) + getValue(BATTERY, BATTERY_STATS_LMD_LO)) * 0.002142,
					((getValue(BATTERY, BATTERY_CONFIG_CELLCAPACITY_HI) << 8) + getValue(BATTERY, BATTERY_CONFIG_CELLCAPACITY_LO)) * 0.001
				);

		printf( " charge time worst .......: %0d" _NL
				" charge time mean ........: %0d" _NL
				" charge cycles ...........: %0d" _NL
				" full charge cycles ......: %0d" _NL
				" power cycles ............: %0d" _NL
				" battery temp max ........: %0d" _NL
				" battery temp min ........: %0d" _NL _NL,
					(getValue(BATTERY, BATTERY_STATS_CHARGETIMEWORST_HI) << 8) + getValue(BATTERY, BATTERY_STATS_CHARGETIMEWORST_LO),
					(getValue(BATTERY, BATTERY_STATS_CHARGETIMEMEAN_HI) << 8) + getValue(BATTERY, BATTERY_STATS_CHARGETIMEMEAN_LO),
					(getValue(BATTERY, BATTERY_STATS_BATTCYCLES_HI) << 8) + getValue(BATTERY, BATTERY_STATS_BATTCYCLES_LO),
					(getValue(BATTERY, BATTERY_STATS_BATTFULLCYCLES_HI) << 8) + getValue(BATTERY, BATTERY_STATS_BATTFULLCYCLES_LO),
					(getValue(BATTERY, BATTERY_STATS_POWERCYCLES_HI) << 8) + getValue(BATTERY, BATTERY_STATS_POWERCYCLES_HI),
					getValue(BATTERY, BATTERY_STATS_TBATTMAX),
					getValue(BATTERY, BATTERY_STATS_TBATTMIN)
				);

		printChargeStats();

		if (hwVersion >= 60)
			printBatteryStats();
		else
			printf(" no battery details supported by battery hardware #%d" _NL _NL, hwVersion);
	}

	hwVersion = getValue(MOTOR, MOTOR_REF_HW);
	if (hwVersion == 0)
		printf("Motor not responding" _NL _NL);
	else {
		printf( "Motor information:" _NL
				" hardware version ........: %02d" _NL
				" software version ........: %02d" _NL
				" temperature .............: %02d" _DEGREE_SIGN "C"_NL
				" speed limit .............: %02d Km/h" _NL,
					hwVersion, getValue(MOTOR, MOTOR_REF_SW),
					getValue(MOTOR, MOTOR_REALTIME_TEMP),
					getValue(MOTOR, MOTOR_ASSIST_MAXSPEED)
				);

		wheelCirc = (getValue(MOTOR, MOTOR_GEOMETRY_CIRC_HI) << 8) + getValue(MOTOR, MOTOR_GEOMETRY_CIRC_LO);
		printf( " wheel circumference .....: %d mm" _NL _NL, wheelCirc);

		if (!gNoSerialNumbers)
		printf( " part number .............: %05d" _NL
				" item number .............: %05d" _NL _NL,
					((getValue(MOTOR, MOTOR_SN_PN_HI) << 8) + getValue(MOTOR, MOTOR_SN_PN_LO)),
					((getValue(MOTOR, MOTOR_SN_ITEM_HI) << 8) + getValue(MOTOR, MOTOR_SN_ITEM_LO))
				);
	}
}