After working on the Hamamatsu sensors for some time, I was able to figure out the USB protocol.
USB Sensor information
For the sensor connection, you first have to know where to connect to. Here is the basic information:
Vendor code: 0661 (hex); 1633 (dec)
Product code: 4400 (hex); 17408 (dec)
It appears, that every time you want to send data to the sensor, you need to send the endpoint to endpoint #2. To get data, you need to listen in to endpoint #6.
Send the following 12 bytes of code to the sensor (hexadecimal little endian) using endpoint 2:
Of course, make sure all 12 bytes were sent to the device.
Expect to get back 16 bytes of data. Assuming we get a byte array (zero indexed) called “dataBack”, here is what appears to be the results of the data:
dataBack = Firmware version
dataBack = Sensor Type
dataBack + (256 * dataBack) = Sensor name
To make it match the serial number that your sensor came back with, you simply convert both the sensor type and the name to a hexadecimal number and then combine it to a single string of “[sensorType][sensorName]”.