USB VID: Request for rant - Page 1
Forum section: electronics / projects

author: richw42
author_rank: Newbie
timestamp: September 13, 2013, 12:44:06 am
content: Suppose I'm a small operator, and I've designed a USB device, and now I'd liketo sell it. In order to do so, I need a unique vendor ID and product ID for thedevice (VID/PID). Well, a VID costs a whopping US$5000 (recently raised from $2000),and you're not allowed to sell any of your 65536 PIDs to anyone else.http://www.usb.org/developers/vendor/If you're lucky enough to have used a Microchip, TI, or (?) chip, you can get a freePID from them. That's apparently allowed since you bought the hardware from them.But how about Cypress? Nope.I think this situation deserves a rant!

author: fluxcapacitor
author_rank: Frequent Contributor
timestamp: September 13, 2013, 12:56:32 am
content: http://www.cypress.com/?app=forum&id=2232&rID=64474a workaround .

author: c4757p
author_rank: Super Contributor
timestamp: September 13, 2013, 12:56:46 am
content: I don't really understand (an implementation-based reason) why USB couldn't have used something like a 128-bit randomly generated UUID. No need for a registry, they're almost guaranteed not to clash. All it needs to do is provide a way for your device to identify itself to a driver... And it's not like USB devices would have nowhere to stuff a 128-bit ID...But then, "no registry" means the inventors couldn't lazily continue to profit off their old invention for over a decade without having to improve it... seriously, we're up to USB 3.0, why do I need to pay you to use 1.0? That's like if Hyundai got a cut when I bought my used car...

author: Harvs
author_rank: Super Contributor
timestamp: September 13, 2013, 01:09:58 am
content: Quote from: richw42 on September 13, 2013, 12:44:06 amDepends on how small. If you're not selling a consumer product, and you're not putting any form of official USB logos on the packaging, you can probably get away with just picking one and using it. If it is only going on machines in a certain context (e.g. industrial niche) and you never claimed for it to be compliant under the terms of the USB org, no-one is going to care less.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 13, 2013, 08:17:14 am
content: As the USB people have clearly shown over the years that they don't give a toss, the best approach is probably to pressure the silicon manufacturers, for whom the fee is negligible. There are enough manufacturers who will provide VID/PID pairs that it is quite reasonable to ask why other makers aren't supporting their users as well.There is one guystill selling allocationswhich were obtained before the USB people restricted resale- theoriginal guy who did thiswas threatened by the USB mob and decided to stopThe Openmoko projecthave donated their VID for use by open source projects

author: BiOzZ
author_rank: Regular Contributor
timestamp: September 13, 2013, 08:51:09 am
content: For personal projects i use a non-valid VID and even when selling some 100 or so i have not had anyone raise any issues .. i mean my drivers are unsigned so windows 8 does not like them but other than that no one seams to give a shitif your working for a large company get them to fork out the money but other than that i dont think anyone really cares any more

author: amyk
author_rank: Super Contributor
timestamp: September 13, 2013, 11:26:39 am
content: Quote from: mojo-chan on September 13, 2013, 08:32:21 amIf you look at the official allocation list (here, warning - decimal!) you'll see that there's a mostly contiguous range between 03eb (Atmel) and 296b (Xacti Corporation) with 3923 (National Instruments), 413c (Dell) and 8086 (Intel) as exceptions, but theLinux unofficial, collected listcontains a bunch of unofficially used ones allegedly from big companies like Acer (5986) and Broadcom (4317). Even Atten/Siglent is here, using one far up near the top:Code:f4ec Atten Electronics / Siglent Technologiesee38 Digital Storage OscilloscopeAlso funny that theobsolete VID listcontains FFFF as "Taiwan OEM"In other words, you'd probably be OK with just picking one no one else has used and going with it. I've seen 3039 (decimal 12345), 4567, and other obviously "let's just pick one that works" in various Chinese electronics...

author: free_electron
author_rank: Super Contributor
timestamp: September 13, 2013, 01:13:39 pm
content: Quote from: Pippy on September 13, 2013, 10:46:37 amBig industry doesnt care about hobbyists. There's no money in a market that lives off used and or free stuff.The easiest way is picking a device from a manufacturer that hands out vid pid pairs.StMicroschipSilabsFtdiTo name a few.One big problem they are facing is that only 65535 vids are possible. If they would give away vids for free tomorrow 100000 hobbyists claim one and the world comes to a halt.... As they would all be used.So they are actually starting to sell 'ranges of pids' now...A workaround i use in things i make. (I have two vid/pid pairs that are mine. One from ftdi and one through my employer): in my driver i query the usb vid pid and find the number of devices. I then read the 'user strings' ( this is the text displayed when you plug in a device ) for each of these devices. If a match on the string is found then i return the handle.So , i have a microdriver that detects any device with my vidpid pair but is a simple passthrough. No intelligence. This allows the os to load that driver and be done.The higher up application call low level , finds all devices, probes the strings, and when a match is found gets a handle. That handle is now uniquely identifying the correct device. Even though multiple device with the same vid pid are present i can find my targetAn exampleMyvid:mypid:0 Myvid mypid doohickey1Myvid:mypid:1 Myvid mypid mydevboardMyvid:mypid:2 Myvid mypid someotherboardI query the usb bus and detect 3 devices. I get the strings. Find out that device 2 matches what i want to contact and request a handle for myvid:mypid:2. I pass this handle to the above layer.Done.I use match by manufacturer string, product id string AND serial number !So if i have two of the same products i can differentiate by serial number !A little more trick i employ to bind my target:Lets say i have 3 devboards all the same vid pid and strings but different serial no.My software will show a popup box saying : i found 3 devboards attached. And show a listbox. If click in the listbox on one of em this sends a command to that target to make its usb led blink. Move to another item in the list and that guy starts blinking his led. If you got the one you want , you click ok.I then store an entry in the registry that contains the binding.If a new device is found (new serial) that has no entry in the registry the popup comes back.

author: marshallh
author_rank: Unknown
timestamp: September 13, 2013, 03:30:43 pm
content: Windows uses the device serial number as part of the "uniqueness" test.That's why I can plug in 500 ft2232h-based devices into my PC with the same VID/PID and every one gets treated as unique

author: Unixon
author_rank: Frequent Contributor
timestamp: September 13, 2013, 03:41:38 pm
content: Well, theoretically one can come up with an extension to industry accepted USB standard that has all necessary features in form of Verilog/VHDL IP cores and drivers for mainstream OSes and then do all his best to make it widely adopted and overcome current standards. However, there there still may be huge problems with patents...

author: mazurov
author_rank: Frequent Contributor
timestamp: September 13, 2013, 05:00:01 pm
content: Quote from: mojo-chan on September 13, 2013, 03:28:24 pmHID is typically detected by class/subclass/protocol and for many devices doesn't even require a specific driver. VID/PID is only used when a HID device needs a special handling, like, for example, Sony PS3 game controller, which looks like a normal HID, but needs a certain command sent to it before it starts answering IN report requests.