The USB Implementers’ Forum doesn’t make things easy for anyone building a product with a USB port. To sell anything with USB and have it work like USB should, you need to buy a USB Vendor ID, a $5000 license that grants you exclusive use of 65,536 USB Product IDs. Very few companies will ever release 65,000 products, and there are a lot of unused PIDs sitting around out there.
Now, someone has finally done the sensible thing and put an unused USB VID to work. pid.codes obtained the rights to a single VID – 0x1209 – and now they’re parceling off all the PIDs that remain to open source hardware projects.
This is not a project supported by the USB Implementers’ Forum, and is more of a legal game of chicken on the part of pid.codes. The only thing the USB-IF could do to stop this is revoke the original VID; useless, because they can’t reassign it to anyone else. The original owners of the VID, InterBiometrics, licensed their VID before transferring or sublicensing VIDs and PIDs was prohibited by the USB-IF.
You can get a PID by forking the pid.codes repo, claiming a PID, and sending a pull request. Once that’s accepted, that PID is yours forever.
49 thoughts on “USB PIDs For All”
Could someone explain send a pull request?
It’s an artifact of git’s incredibly painful process flow.
To make a change you fork the entire target repo, make your changes,
and then submit a request to the original maintainers to merge your fork back into the trunk.
It’s hardly unique to Git; it’s a standard way to accept contributions from external contributors without giving them write access to your repository.
Fyi, you don’t need to pull the entire commit history if you’re not interested in doing that. Simply pulling the latest version would suffice.
It is hardly painful. How else will you test your changes if you do not have a copy of the repo?
In any case, can’t you just use patches if you are not fond of the alternative?
Since the last time I had to update a single working copy of an SVN repo took ten times longer than cloning the entire git version, I don’t really agree with your “incredibly painful” claim.
It makes sense when dealing with source code. For this purpose though… why the pids couldn’t be stored in a database with claims handled through a simple web interface is totally beyond me. Just about any amateur web developer should be able to do that in a single evening. A good one could have it up in a few hours (and that includes lots of testing time).
Ok.. actually not so beyond me. I’m pretty sure it’s because using git for everything is a big fad. Using git for something proves you are one of the cool kids in certain parts of the open source crowd. That and the old “when the only tool you know is a hammer everything looks like a nail” analogy.
Using git means that it can be forked and reforked as takedown notices are served? Maybe.
Setting up a website + database would take considerable effort – at least a few hours, by your estimate.
Putting a plain text file in a github repo takes seconds.
Why go through additional effort for something that doesn’t need to be particularly polished?
Because a database enabled web site costs money and Github is free?
It’s described on the howto page (http://pid.codes/howto/). The whole thing can be done with the Git UI, in fact.
Thanks guys, I figured it out shortly after I commented. Hopefully I get my PID which I wanted “1033” yaaay
You aren’t allowed any PID’s in the ox1000-0x1FFF range as those are reserved for the original company.
Oh well. At last I gave it a shot haha
There are at least two other companies who decided to do the same thing. One of them offers PIDs for free, and the other for like $5 (they say to recoup their money paid to USB-IF).
It’s absolutely ridiculous that a VID comes with 65k PIDs. There really needs to be something like an open-source USB software standard. By “OpenUSB” devices all sharing the same primary VID/PID and then adding another layer for “OpenVID/PID”, not only can it get by the 65k VID limit and USB-IF, but it stays compatible with the USB spec.
I think the reason they get so many PIDs is the result of rounding VIDs to nice even hex values. But agreed, there needs to be a more sensible approach to PIDs.
Perhaps there is a way they could be reappropriated without the need of people like pid.codes coughing up $5k of their own money.
There is – by open source fiat. There’s nothing the USB-IF can do to non-members who don’t follow their rules, provided that they don’t the USB logo (which is trademarked). If the entire community just picks a VID to use, there isn’t anything they can do. If they try to assign it to someone, that party will refuse it as substandard due to others using it like this. If the Linux kernel were to adopt this approach, the USB-IF would have to simply concede to them.
The chances of this are actually pretty good – Greg KH posted the following on G+:
“At this point in time, I really don’t care what the USB-IF says, as they have explicitly shown that they do not care about Linux, or tiny companies that just want to use the USB technology. They kicked Linux out of the USB-IF for no reason at all, after taking our money, with no recourse. Good thing is the USB-IF can’t really “do anything” about people using different vid/pid values, as they have no way to prevent people from doing stuff like this.”
Except, look at what happened to the last attempt to do this. 0xf055.org set up, let people ‘reserve’ PIDs on a squatted VID, set their robots.txt not to allow indexing, then vanished, taking any record of who’s been assigned what PID with them.
That’s really silly. The only reason to get an “official” VID/PID pair is to sell your device, and you can’t call it an USB compatible device unless it was, in fact, sanctioned by USB-IF, or they’ll come for you with pitchforks.
Anyway, there’s already a service that gives away *completely legitimate* PIDs from an official VID number for open hardware projects: http://wiki.openmoko.org/wiki/USB_Product_IDs
There are plenty of people – myself included – selling USB devices who don’t have $5000 to spare to send to the USB-IF for our own VIDs. And even after you pay them $5000, you _still_ can’t use the USB logo; logo licensing is separate. You can say “USB compatible” all you like.
I guess I was wrong then.
While usb.org said no to sub-licensing, there a quite a few chip vendors that would assign a PI under their VID as long as you are using their chip and do not sell more than 10,000 of your product. Once you reached that number, hopefully you could then afford to get your own VID/PID.
Clearly this could have all been made less complicated if USB consortium had just used subnet masks
they really should have allowed the use of TID instead of PID. aren’t threads usually more efficient, anyway?
It’s dead now, but http://f055.cc used to do the same thing.
The difference is, f055 simply grabbed one unilaterally and tried to rely on a sort of game of chicken to prevent USB-IF from assigning it to anyone else.
Anybody know what happened? f055 got a lot of exposure fairly recently with the FTDI debacle. Unfortunately, their robots.txt prevented the Wayback Machine from archiving the registry of assigned numbers. Continuing the game requires only cooperation within the community, not a central authority.
MCS electronics purchased a PID before the rule about reselling VIDs went into effect (June 2009). MCS started selling PIDs to people, then USB-ORG added the rule and told MCS that they could no longer sell PIDs, and MCS pointed out that they cannot change the terms of an agreement after purchase (per Netherlands law), and USB-ORG offered to refund their money, MCS refused, so USB-ORG revoked MCS’s VID.
However, that VID cannot be reused by USB-ORG, so go ahead and purchase one from MCS for €9.95, you can legitimately use it and legally say that you are USB compliant.
USB-ORG can make a stink about it, they might legally threaten you, and they *might* even attempt to sue, but they would not prevail in court (and they know this).
all you get is a vid/pid pair that you can be reasonably sure no one else uses, you can’t claim anything USB unless you pay the USB-IF and get the product through certification
Hmmm… this might also incidentally end up being a registry of OS projects with USB connection, of sorts.
Interesting. Could I just setup ja dummy Product in case I need a PID in the future, or is the description fixed after the pull request is accepted?
You wouldn’t want to stick with “Ja Dummy Product”??
You actually need an existing public repository containing a PID-requiring device schematic under an open license, so no.
They’re not likely to run out, though, so just wait until you actually need one.
This is a nice offering by these guys, but I don’t think that I will bother… I tend to use HID when at all possible (so no drivers required), and since I don’t sell anything I just grab whatever VID I choose. If someone else uses my code they are welcome to use the same one, or change it as they see fit. I suppose that if I were distributing drivers or selling products it would be different. Oh well.
Kudos to these guys, still.
Technically HID still requires a HID driver… Not all systems are guaranteed to have one.
What’s to stop the USB group from doing the same thing that they did with VOTI in 2008 (just threaten legal action, cease & desist, etc)?
http://www.voti.nl/docs/usb-pid.html (under the section titled “buy a PID block”)
As this repo grows it will just become a bigger and more attractive honey-pot for the greedy Trial-Lawyers of America.
The USB Logo and certification have zero value nowadays – everyone knows what a USB port looks like, so there is just no need to use the logo. Paying USB-IF to do it “properly” is a just waste of money – it adds no value to your product.
Yeah but if you sell commercially they can sue you if you don’t.
And they probably will too, assuming they find out.
No, they can’t and won’t. They can take legal action if you use the USB logo without being a licensee, but there’s no obligation to be a licensee in order to produce a USB-compatible device and sell it.
It’s been a while since I read about it, perhaps I remember it wrong.
With that kind of weird behavior of the USB people you can see why Apple is a big part of the group.
One quick tip for those who (for whatever reason) actually want to acquire a valid VID (I recently did). While you can pay the USB-IF $5000 for a one-off purchase of a VID, there is a (slightly) cheaper option.
Join the USB-IF for an annual fee of $4000 – this has sundry advantages (none of which were the slightest bit of use to me) – but also includes a free VID if you don’t already have one. If you allow your membership to lapse at any time (there is no auto-renewal) the VID remains valid and continues to belong to you officially, as well as de facto.
It’s certainly not as cheap as other options here, but it is a way of doing it all “by the book” and saving $1000.
Ok nice read here! I’m actually contemplating on buying a vendor id or not . so anyone got tips for people in Belgium?
For a Microchip PIC based project, i got a PID from Microchip for free:
Thx but I’ve got my design around an atmega already so most likely need to caugh up some cash to get proper vid/pid.
Well Microchip now owns Atmel, so maybe you can get one from them.
Please tell how that worked out.
Thing I really like to know is if Microchip did buy a competitor or a customer base.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)