Can a USB device without VID and PID be used?

Go To Last Post
10 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

hi all,

From what i have read and search from the net, i found that all the USB device have their own PID and VID. So i'm wondering can a USB device without a PID and VID work?Or if let say i come out with a USB device, but only for my own use, it is impossible for me to buy the VID.So what should i write for the VID and PID part in my firmware?

thank you.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ideally you use the VID and PID of an existing device which your OS understands. The common case for USB AVRs is to use the Atmel VID&PID, which is ok for development purposes. See LUFA for more information.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

Ideally you use the VID and PID of an existing device which your OS understands. The common case for USB AVRs is to use the Atmel VID&PID, which is ok for development purposes. See LUFA for more information.

Actually, the VID/PID values within LUFA are used with Atmel's permission - you can get into a bunch of trouble (both technical due to a clash with an existing device and legally when the legal owner of the value sues you) when you just use any VID/PID you feel like.

That said, if it's only for your own use, you can use any value you wish and just live with the consequences if an existing device you own clashes with it. Alternatively, you can use a value from the LUFA VID/PID table in your code *AS LONG AS* your device conforms to the exact interface used by the real LUFA demo using that combination.

Actually, interestingly, you can use the "Revision" field of the device descriptor as a third differentiator of a device. Perhaps I'll set up my own (free) registry for one of the allocated VID/PID LUFA combinations, so that hobbyists can make their own devices.

- Dean :twisted:

Make Atmel Studio better with my free extensions. Open source and feedback welcome!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

abcminiuser wrote:
Actually, interestingly, you can use the "Revision" field of the device descriptor as a third differentiator of a device. Perhaps I'll set up my own (free) registry for one of the allocated VID/PID LUFA combinations, so that hobbyists can make their own devices.

- Dean :twisted:

Just FYI I've heard that the USB.org folks are suing PID resellers and if I were you I'd check using the revision field as you suggest. One would think there wouldn't be a problem, but one would have thought that about reselling PIDs also.

Smiley

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I know next to nothing about this, but when I was messing around with LUFA I set my VID to 0000. I don't think anyone 'owns' 0000 (as far as I can tell), so it will only conflict with your own 'stuff' (you still have lots of PID's, so the conflict would be with someone else's device who thinks like you).

Although when they run out of vid's, maybe 0000 will go on the auction block.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Smokey: true, but I'd be giving them away for non-commercial use, so I don't think they can sue for a "gift". Just like Atmel allowing me to use values within their VID range; no money, no case.

Whether or not it's a good idea to have many different devices all with the same VID/PID but different revision numbers, I'm not sure yet. As long as the host treats them differently (under Windows you'd have to alter your INF files) it should, in theory, work fine.

curtvm: Me too - in fact, I think there's a specific VID (0000 or FFFF, something like that) which is reserved for testing use only -- but you're not allowed to release such a device beyond your own personal lab to prevent collisions. Since Atmel have generously donated some PIDs in their VID range to the LUFA project, I can make demos without fear of collisions in the general or testing address space.

- Dean :twisted:

Make Atmel Studio better with my free extensions. Open source and feedback welcome!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

IIRC and who knows? I accidentally set a VID to 0000 on an FTDI232R and was not able to recover that device with Windows. I don't remember the details but IIRC Windows got real pissy for some reason so I couldn't even open the device with the FTDI programming software.

I presume no one would sue your for a gift, but didn't the record companies go after folks giving away MP3 files an $4000 a pop and won awards against penniless college students? That was not for the money but for the publicity. Probably not a problem, but I would check the USB.org forum before doing this.

Smiley

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Interesting topic. I am aware of a situation that is related. Someone who does not use AVRFreaks purchased a block of VID/PIDs from USB.org. He tells me there was no restriction on resale in his contract document; that has been added by USB.org AFTER THE SALE. He believes that any attempt to sue him for a breach of a non-existing sale condition will fail on day one in ALL courts.

Seems reasonable to me ...

Cheers,

Ross

Ross McKenzie, Melbourne Australia

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

hi,

Thanks for the replies. As what i have checked from LUFA library.It mentioned that VID 0x03EB and PID 0x2040 are for test application.Is it means that, i can use this PID and VID for my own testing device without getting permission from any side?

thank you.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

hi,

Thanks for the replies. As what i have checked from LUFA library.It mentioned that VID 0x03EB and PID 0x2040 are for test application.Is it means that, i can use this PID and VID for my own testing device without getting permission from any side?

thank you.

Currently that VID/PID is reserved for the library "TestApp" demo, which was not particuarly useful except for excising all the drivers inside the library. However, from the next release that demo will be removed and the VID/PID freed. You may use that VID/PID combination in your LUFA powered, non commercial applications during development, however you must set your Device Descriptor's "Revision" field to a non-zero value.

- Dean :twisted:

Make Atmel Studio better with my free extensions. Open source and feedback welcome!