
USB Implementers Forum Says No to Open Source - p4bl0
http://hackaday.com/2013/10/22/usb-implementers-forum-says-no-to-open-source/
======
jrockway
Why not just pick a VID and start using it? USB is so well understood at this
point that there is no need for anyone to play ball with an "official"
organization.

(Whoever gets "officially" issued that VID is going to whine when they notice
it's already being used for hobbyist purposes anyway, which means that the
technique of just picking one will guarantee uniqueness.)

~~~
samworm
The way these things normally work is that you're only allowed to use the name
and marks if you're an official licensee.

So if you put the USB logo on your marketing and claim to have a "USB Mini"
connector in your specifications then you could be in trouble on two fronts:
(1) the usb folks can sue you for using their IP and (2) purchasers can claim
the product is not "as described" which may given them certain rights
dependent upon the location.

Not using the official logo shouldn't be a problem in hobby market. Everyone
will recognise the connector. Not being allowed to identify it as USB2 or USB3
or whatever, that could be a problem. I'm sure there are creative ways around
it though.

~~~
Pxtl
Considering how many cheap Chinese knock-offs out there seem to go unpunished,
I don't think the USB folks are really successful at enforcement.

~~~
JonFish85
Anecdote: apparently going after Chinese knock-off companies is a gigantic
PITA. I've worked with those who have tried going after them. File a complaint
about company ACBD. A week later, company ABCD never existed, but company XYZ
is operating at the same factory. Amazing!

~~~
weland
I can wholeheartedly confirm this. The cheap Chinese knock-off companies are
basically beyond the reach of Western law.

------
wiml
According to TFA, Openmoko/FIC is already giving out PIDs from their VID space
to any FOSS projects who ask.

IIRC they're not the first, either. And there've also been organizations
freely allocating unique ethernet addresses out of their OUI space.

The amount of trouble they receive from the USBIF/IEEE/whoever seems to vary a
lot from case to case, though. I expect it depends on which individual person
the situation comes to the attention of. In some cases the USBIF or IEEE has
actually _revoked_ the VID/OUI assignment, leaving everyone who tried to play
by the rules effectively squatting on an unassigned ID anyway.

Some ancient history:
[https://forum.sparkfun.com/viewtopic.php?t=931](https://forum.sparkfun.com/viewtopic.php?t=931)

------
Aardwolf
I'm not sure I fully understand the article. What does the following mean?

"Since other USB device vendors such as Microchip and FTDI give away USB PIDs
for free"

Does that actually mean, they give them for free? If so, how can they do that?
Why does VTM allow them to do it? And what is the actual problem at all if you
can get them for free?

~~~
NonEUCitizen
A device has a Vendor ID (VID) and a Product ID (PID). For example, the
following is output from lsusb:

Bus 002 Device 013: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle
(HCI mode)

0a12 is the VID for CSR, and 0001 is CSR's PID for "Bluetooth Dongle (HCI
mode)." You can find a list at:

[http://www.linux-usb.org/usb.ids](http://www.linux-usb.org/usb.ids)

Microchip has paid USB Forum for its VID 04d8. If you build a USB peripheral
with one of their microcontrollers, you can ask Microchip to allocate you a
PID (since they have 64K of these), and let you use their VID:

[http://ww1.microchip.com/downloads/en/DeviceDoc/APPLICATION%...](http://ww1.microchip.com/downloads/en/DeviceDoc/APPLICATION%20FOR%20SUBLICENSE%20TO%20USB%20VID%20revised%2012110.pdf)

~~~
Aardwolf
Thanks a lot! What if more than 64K people have asked for a PID?

~~~
candydance
They'd just buy up another VID, the names associated with VIDs don't need to
be unique.

~~~
femto
Alternatively, a bunch of cooperating projects could share a VID:PID pair and
agree amongst themselves and agree on an alternative way to identify devices.
The VID:PID would cause the USB driver to load a "sub driver" that would
implement the alternative scheme. For that matter, by using such an extension
the whole open source community could exist under a single VID:PID.

------
ck2
Just do what all the $1 Chinese USB devices on ebay do - clone an existing VID

~~~
VLM
That's the humorous part of the whole discussion that the VTM group is trying
to preserve revenue by ignoring the hobbyists and sticking with the people who
think nothing of falsifying UL registry, falsifying FCC certifications, and
violating patents, but I'm sure those guys would never turn against the VTM
group and illegally use the USB trademark without permission, LOL.

Whereas the hobbyists, if you don't intentionally try to screw them over like
they're trying to do, would probably be ridiculously loyal and obedient in
comparison.

Fundamentally despite the "hate opensource" and "revenue generating middlemen"
story, some of which probably is true, the fundamental problem is likely the
lack of a point of contact. They probably like knowing there's a directory of
real world contact information such that identification number 0x123456 is
clearly a product of such and such for debugging purposes and interoperability
and lack of duplicate IDs and the like.

Something similar happens with ethernet MAC addresses. Legendarily it was HP
(or was it sun?) who shipped a whole batch of ethernet cards accidentally in
the 90s with the same MAC address, boy was that a nightmare to figure out the
hard way.

~~~
quesera
> Legendarily it was HP (or was it sun?) who shipped a whole batch of ethernet
> cards accidentally in the 90s with the same MAC address, boy was that a
> nightmare to figure out the hard way.

Sun used to use the same MAC address on each port of their QFE (quad fast
Ethernet) cards. It was easy to fix with ifconfig, but always made me wonder
two things: a) if I number these ports sequentially (:a, :b, ...) am I going
to collide with some other QFE card from the same batch, possibly from this
same order of a dozen cards? And b) who thought this was a good idea? Was Sun
just conserving MAC addresses on the theory that most QFE cards are 75%
underutilized??

~~~
tedunangst
That's because the MAC address is stored in system ROM on the motherboard, not
in the NIC, iirc. The theory was 1) the ports would be used on different
network segments, hence no problem and 2) storing the MAC in the motherboard
meant you could swap NICs without updating all your DHCP/whatever config
files.

~~~
quesera
We might be comparing Sun hw from different eras. The QFE cards I remember
were in a very different address range from the onboard Ethernet (which was
still 8:0:20:... I think). Seems like the QFE MAC must have been in PRAM on
the NIC then, at least. And I am pretty sure I remember the MAC address
following the card, too.

The problem I ran into was that when two same-MAC ports were connected to
different segments/VLANs on the same layer 2 or 3 network device, that device
wouldn't know what to do with the packets. Or it might send them down the
wrong wire, which was a problem for me -- these were firewall boxes. :)

Eventually Sun added a boot param (or a kernel config? Set from OBP or from a
shell) that would automatically number the QFE interfaces sequentially on
boot. That fixed the problem for me.

Much later, they added the front-panel accessible smart cards that contained
MAC, hostid, etc. I think that was the Netra series, intended for carrier
grade RAIC installations.

------
mncolinlee
Why not use this cease and desist letter to file a RICO Act claim against
them?

If they can't responsibly offer their product without revoking it for simply
using it as intended, they are racketeers. The Open Source community has not
broken any legal agreements in simply publicizing the idea of a shared VID.
The USB Forum are completely in the wrong for their behavior.

------
CamperBob2
It looks like not enough people know that you can license individual PIDs from
MCS Electronics:

[http://www.mcselec.com/index.php?page=shop.product_details&f...](http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&category_id=20&option=com_phpshop&Itemid=1)

MCS is in Holland, where both their jurisdiction and the fact that they
licensed their VID from USB-IF a long time ago make it impossible to enforce
the prohibition against reselling PIDs. For EU 10 each, it's worth it just to
kick sand in the face of the asshats at USB-IF.

~~~
joshvm
Same goes for obdev in Austria.

[http://www.obdev.at/products/vusb/license.html](http://www.obdev.at/products/vusb/license.html)

------
tlarkworthy
I don't understand.

I use lots of hobby stuff with USB ports. I have to lookup the vendor ID to
make it read write in linux by default.

Presumably getting a proper ID makes this pain point go away from consumers
somehow?

What's the gain I don't understand it?

~~~
Sanddancer
A proper ID makes it much easier for the consumers. By having a proper ID, the
OS can search its database of drivers, and if that fails, try to download from
a source such as Windows Update.

Also, a lot of this could very well be trying to avoid the pain of the Bad Old
Days of pre-plug and play DOS, where you had to manually set things like
interrupts and I/O ports, and hope and pray that your new device didn't
conflict with something important. For example, many an oldschool game had
dire warnings about not running the sound card autodetect if you had things
like scsi cards, because the conflicts were near inevitable and pretty
catastrophic.

~~~
nraynaud
I always found so stupid they just don't put a bit of flash and the drivers in
it. Or just an URL in the device descriptor.

~~~
marcosdumay
Wow. If you tought a memory stick pretending that it's a keyboard was a
serious enough problem, just wait untill somebody thinks loading random
drivers from the device (or the web!) is a good idea.

It will happen, that's a near certainty. Some day, somebody will think that's
a good idea, and since it's easy, the scheme will get widely used.

~~~
nraynaud
If you don't trust the web or the device, where will you get the driver? Why
did you plug the device in the first place?

~~~
comex
Perhaps the Linux kernel you already have installed, which presently has
drivers for just about everything included and developed in a centralized,
controlled fashion...

Whether this is actually better probably depends on your point of view. But
loading (somehow OS-neutral?) drivers from a fixed store on the device seems
like a great way to be stuck with out-of-date binary blobs forever.

~~~
Sanddancer
Then again, there are cases where developers have and will release driver
source out of tree so that new devices are supported on day one, or to avoid
the politics of the linux kernel. Having a flash with a driver, even if it is
an older one, could be a godsend for things like nics, where you can very
easily end up in a catch-22 type situation.

------
natch
Who are the members of the forum? Can they be replaced?

------
piqufoh
Hopefully such a bullish and short sighted stance as this is just the thing to
get some publicity and traction to boot these idiots out, or at least kick the
money grubbing Luddites out and replace them with someone with some common
sense. Grah

Where can I donate to Arachnid Labs?

~~~
nicksdjohnson
Thanks for the thought. We don't accept donations, but if you like any of the
stuff we sell on Tindie
([https://www.tindie.com/stores/arachnidlabs/](https://www.tindie.com/stores/arachnidlabs/)),
feel free to buy it!

------
happywolf
I presume there is a segment of VID that is marked as 'local' or 'for test
purpose only'? Just like IP has local addresses for intranet/testing.

Also, if an open source is popular enough to the point a unique VID is needed
for proper driver support, I will say this project will easily get fundings to
go commercial (just like RedHat).

~~~
JonFish85
Nothing is stopping anyone from using any given VID for their own purposes of
testing. If its in your own garage as the article mentions, you can use
whatever you want. However, once it's out in the wild (even if it's just the
few hundred devices), the USB-IF (and their lawyers) apparently can squash it.

The fee is $5k if I recall. As others have mentioned, if you are planning on
making a real product, it's something you can roll into the cost. Although I
completely understand the difficulty of someone just looking to sell ~100
devices.

I wonder if there's a way to allow a "Bring-your-own" VID? As in maybe
switches or something to set the VID by the purchaser?

~~~
nraynaud
Technically, you could, but you don't want to stomp on other vendor's feet.
It's a bit like mac addresses or IP addresses, you can do what you want but
you probably want to behave in society (in the case of IP addresses, you'll
need friends for routing).

And also, to find the device from the OS API, you sometimes have to submit the
VID/PID of the device you are looking for. Example:
[http://developer.chrome.com/apps/usb.html#method-
findDevices](http://developer.chrome.com/apps/usb.html#method-findDevices) So
changing it on the fly might be a problem (not sure, maybe once open they
won't seek it again).

~~~
voltagex_
Devices like USB modems switch based on what mode they're running in, anyway.

