I found this today while searching on another USB-developer-related problem: "Why does Windows not recognize my USB device as the same device if I plug it into a different port?"
For those who can’t be bothered to click the link, this occurs if the device doesn’t specify a serial number in its USB descriptors. They decided in this case to treat each (device@port) pairing as a new device rather than the same device in case you had more than one of them; otherwise they would enumerate in a seemingly random order at each boot, and whatever software that interfaced with the devices would have them swapped half the time. Unfortunately, in solving this problem they created some new ones, namely the ol’ “hunt for the driver disk” everytime the device gets unplugged and you don’t remember which physical port it was plugged into before (or something else got plugged in there in the meantime), and the semi-common case where a vendor tries to avoid the driver hunt by every device the same/dummy serial number (e.g. 000000000) causing bizarre behavior (or bluescreens under Windows).
Which brings up the question of which path to choose for the V2 trance vibe… do I…
- leave off the serial number field, forcing five-knuckle driver shuffle for every port the device is plugged into?
fill in the field with the same dummy value for each device?Thinking not an option since certain crappy OSes can’t handle this if more than one is ever plugged in.- create a unique serial number for every unit made? Would require some exhaustive/ugly scripting to rewrite the serial number in the .hex file before programming each device myself… the more likely approach would be Serialized Quick Turn Programming (chips pre-programmed from the factory), but this involves extra work, set-up fees and volume purchase requirements. Either way would require keeping track of used/unused numbers. Not to mention the privacy implications of any given “adult” application being able to uniquely identify a user by their vibrator’s serial number…
- Create a ‘semi-unique’ serial number for each unit? Same hassles and expense as the previous, but not caring if a number is duplicated eliminates keeping track of the last used number in subsequent SQTP orders / etc., as well as most of the privacy concern. One approach would be to just increment the last byte of the SN on each programming, reducing the odds of n devices on the same machine causing a crash.
Leave a Reply