Hamamatsu Dental CMOS Sensor documentation: Part 1: the Serial Number handshake

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.


Handshake request

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.


Data Back

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[15] = Firmware version
dataBack[14] = Sensor Type
dataBack[10] + (256 * dataBack[11]) = 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]”.