Hello Paul
I use USBlyzer on the Windows side which shows the data packets decoded.
But DataCenter shows you the same.
So I think you will not find a better way to see what is sent by the Teensy.
The link from epikao may be helpfull for testing:
http://www.repaa.net/draw.html
Did you try it ?
I saw the MSDN links in the comment of the Multitouch descriptor in usb_desc.c.
(By the way: An applause for your work in usb_desc.c in the last years! You have added a lot of USB stuff there)
It seems that you have constructed the multi touch descriptor based on the MSDN ?
But it seems also that you have never tested it on Linux ?
Did you test on MAC ?
My experience as a Windows programmer is that there is a lot of wrong and uncomplete information in the MSDN.
So don't trust 100% what you read there to be always correct.
Especially the examples in the MSDN are mostly COMPLTELY wrong.
It seems that Microsoft lets the student apprentices write their examples.
You implemented for example
Usage (Scan Time)
I doubt that it is really neccessary although the MSDN says that it is.
At least my descriptor works without that.
And you did not implement
Usage (In Range)
although the MSDN says that it is necessary.
But at the end the problem is that
Linux freezes.
My Multitouch descriptor on Codeproject works on Linux.
So I would start the investigation what is in your descriptor what Linux does not like ?
May be 10 fingers is too much for Linux ?
Who needs that ? I would set the default as
#define MULTITOUCH_FINGERS 2
Did you try if it also freezes with 2 fingers in the descriptor ?
I currently don't have time to test this.
But I would start with a working descriptor:
https://www.codeproject.com/Articles/1001891/A-USB-HID-Keyboard-Mouse-Touchscreen-emulator-with
See chapter
Touchscreen (version 'Multi Touch')
I tested this on Windows XP, 7, 8, 10
and on Linux (Suse, Ubuntu, Knoppix) where it works seamlessly.
It is a multi touch descriptor but defines only one finger.
So it must be modified to use multiple fingers.
After each modification in the descriptor you must check if Linux starts making problems.
And obviously if it still works on Windows and MAC.
So my recommendation is to use a proved and working descriptor (mine on Codeproject) and modify it to use multiple fingers.
And finally: Testing is all !
At least on Windows 7 and Windows 10 and on Linux and MAC.
(If I'm not wrong Windows XP does not support multitouch.)
And at the end epikao can test it on Raspberry.
___________________________________________
And another point:
You let the touch screen send coordinates in the range from zero to
Logical Maximum (32767)
I think that this is not clever.
The Teensy users will have to make complicated calculations to get these coordinates.
In my project I use coordinates from 0 to 10000.
This allows to easily use a coordinate system from 0.00% to 100.00%
independent from the screen size !!.
You simply calculate the finger position in
percent of the screen size as a double and multiply the value with 100.