···29293030 // TODO: figure out how to get the actual serial number of the device, since the official driver has multiple
3131 // methods, and the string descriptor doesn't work on the unit used for development.
3232- char serial[32] = {0};
3333- snprintf(serial, sizeof(serial), "%04x:%04x", dev->vendor_id, dev->product_id);
3232+ char serial[41] = {0};
3333+ result = xrt_prober_get_string_descriptor(xp, dev, XRT_PROBER_STRING_SERIAL_NUMBER, (unsigned char *)serial,
3434+ sizeof(serial));
3535+ if (result <= 0 || strlen(serial) == 0) {
3636+ snprintf(serial, sizeof(serial), "%04x:%04x", dev->vendor_id, dev->product_id);
3737+ }
34383539 struct blubur_s1_hmd *hmd = blubur_s1_hmd_create(hid, serial);
3640 if (hmd == NULL) {