If I call mouse = ginputGetMouse(0); ginputSetMouseCalibrationRoutines(0, mysave, myload, FALSE); I can save the string like this: "Z,\202=\\\221b¹\037FaÁÅdI:䨹½´>³Cè\017" within the mysave function: static void mysave(uint16_t instance, const uint8_t *calbuf, size_t sz) { (void)instance; (void)calbuf; (void)sz; memcpy(&t_calibration, calbuf, (uint8_t) sz); } and than I got that string. But when I change the order of the two functions and the myload returns that string the touchscreen isn't working.