Type c adapter wiring

hello all,im new at this but to keep it short and simple,ive noticed that the type c receptacle has multiple vcc and ground connections on different pinouts (2x each) so my question essentially is;

since type c can work in either orientation is this because of the different pins and to get the same utility do i need to tie the vcc to the other vcc pin and the ground to the other ground pin within the receptacle pin out? to get the ability for either side of the cord to power the board?

kind of like this picture:

or can i remove the routes that bind and just have one ground line and one vcc?

It’s quite common and normal practice to have several GND pins (and Vcc pins) connected in parallel. They improve the current handling capability, reduce contact bounce and improve reliability. For example when a connector or plug is damaged, but one of the other power pins can take over so it still “works”.

I’m no expert in USB-C but I do know that the pinout is made explicitly in such a way that PWR and GND are still in the same relative locations when the plug is rotated. Signal data transfer pairs also just swap location with another pair. No rocket science, if there is anything astounding then it is that it took 40 years to figure this out.

I do not know how easy it is to obtain “official guidelines” for USB-C, but I’m sure there is plenty of well meant advice and guidelines floating around.

---------- Three minutes later -----------------
A simple search:


And without any nag screens or other bullshit I downloaded one of the documents.

A bit later…
Ouwtch, it’s… complicated.
Different specs for different uses of the cable, CC pins that detect configurations. Just saw something about active cables that require a temperature sensor, and hundreds of pages of other stuff…


thanks for the feed back,yeah type c can get a little obnoxious but im trying to k.i.s.s. hopefully someone can let me know if my wiring will fly or not,thanks =)

That is one of the nice things that I like about the USB working group. They don’t charge to download any of their standards. They only start charging (by joining the USB working group) to actually get an interface certified to be allowed to use the USB logo. Quite unlike the (several) standards groups for making PCBs…


One of the things I don’t like about them is that you’re supposed to pay through the nose just to get a 16 bit number. That is simply unaffordable for lots of Open Source projects.

there have been some companies with a VID, selling their sub PID’s and those USB commitee people claim that is illegal. I doubt such a claim will hold up in an European court.

Obdev used to do this with their V-USB (software) stack

I had a short peek at their website and now it claims:

V-USB comes with a free shared Vendor- / Product-ID pair.

The whole VID/PID system is extortion through artificial scarcity. Those identifiers could just as easily have been an UUID or a text string.
I am pro USB certification to get some reliability into the system, but the VID’s are just bonkers.

One way around this for some projects is to buy USB interface chips that already have that 16bit number assigned. Most of the USB-Serial interface chips do this. I’m not sure about the microcontrollers that have native USB (for example the ones used on Adafruit’s Feather boards). I don’t recall if the USB id number on those boards are from AdaFruit or the microcontroller’s manufacturer. But if I buy a feather to integrate into a USB device, I’m not paying the USB working group directly.

That said, the feather board is more expensive than me just buying a bare uC and the support passives and then rolling my own USB interface.

You probably don’t need to tie them together as you probably aren’t pulling enough power without USB-C PD, but you probably should.

The issue is that the USB-C cable can be flipped over. If one connector or pin gets wonky, then the redundancy means that you’ll still work.

One thing that is required though is to put the appropriate resistors on the CC1/CC2 lines. Don’t make the same mistake that the Raaspberry Pi folks did.

1 Like

The folks for open-source USB codes are https://pid.codes/.

They inherited an allocation from before the non-transfer clause got put into the USB licensing agreement.

Well, you don’t need an expensive logo on your Open Source product. The users recognize USB when they see it.

1 Like

I’m unaware of raspberry pi foundation 's mistake,but thank you for confirming the methods of my madness :slight_smile:

Was thinking the same

According to my understanding paulvdh was writing about paying for VID number and not for logo.

A bit of both I guess.
I’m not interested in “official USB”.

Just the VID number costs USD 6000:

The logo costs extra.

Apart from the free pid.codes (Thanks for the link) apparently quite a lot of vendors of microcontrollers and other chips (such as USB <–> serial converters) have a program in place to obtain a VID/PID combination.

My biggest problem is a vehement allergy against artificial scarcity (such as those numbers) For the same reason I refuse to pay for software that uses registration numbers. I rather donate to open source software then pay a dime for commercial software.

A brother of mine recently told me about getting a new PC to work. Installing windows is apparently fairly quick these days, but it took him several days to install all his software, transfer licenses and other configuration.

I bought the parts for a new Linux PC last christmas. (It’s quite difficult to buy a pc without windoze or the fruit brand OS). Putting the parts together and verifying the hardware works took a few hours. installing Linux was 5 to 10 minutes, and I only had to use a web browser for a few programs (KiCad, FreeCAD, Sigrok/Pulseview) That got me most of the software I need. (Hmm, I have STM32 Cube, and standalone Eclipse versions too now).

Most of the programs I only use occasionally, (I still may have skipped a few), are usually one line and 20 seconds away from installation with

sudo apt install …

Using open source software exclusively has some problems,but overall I’m quite happy with this decision.

1 Like

The USB c connector is not for the feint of heart. You need to know what you are doing. You need the correct resistor wiring to implement the connection based upon what you need to do. If you intend to connect to a USB-C host, you need to add the programming resistors or the device will not enumerate. That particular connector also has some issues with respect to the Kicad library in eschema. The power pins are not labeled properly and the schematic capture program will throw some errors. With
respect to the comments about the cost of VID/PID pairs, any usb compatible chip will provide the base VID/PID. It should also be noted that Linux has very strict rules about registering VID/PID if you intend to utilize any of the class drivers. The whole reason for the expense is to ensure that a rouge USB device won’t bring the OS down.

1 Like

In 1992 (I think) at CeBit we (me and my brother) were asking many connector manufacturers for the USB sockets and plugs and no one knew what we are asking about. Those time our products (EPROM, GAL programmers) were driven by RS232 (57600) and powered (5V) from tee at keyboard socket. We thought that USB will be something like that + supply (TXD, RXD, GND, 5V) and will be accessed from PC in a similar way (under DOS reaching more than 9600 needed to write directly to UART registers).
In my opinion USB is too complicated because of idea of HUBs. As socket is so small (compared to COM socket) everything would be much, much simpler when the assumption would be made that PC will have 8 or more sockets and no HUBs allowed. I had that opinion those times and didn’t changed it till now.
I suppose if it would be defined that simply way no one would even thought about possibility of bringing the OS down (even 5V shortage should not bring it down).
But then there would be no reason to charge for VIDs and logo. And probably it is the reason things are as they are. No one offered the VIDs for COM devices.

I think 16 bit VID + 16 bit PID should be changed to 24 bit VID + 8 bit PID, or at least a significant batch of VIDs not yet sold should be changed to this structure. Then VID price could be automatically 256 times lower. If some VID holder would need more then 256 PIDs the next VID could be assigned to him so one owner could be identified by different VIDs. Computers today should be able to handle this.
We had to buy a VID but till now we used probably about 10 PIDs and I not expect we use more than 50 ever.

I think only pen-drive manufacturers generate many new products per year, but there is rather limited list of them.

There is no correlation between the size of the number and the price. The’ve just created an artificial shortage and have no competition and can ask whatever they feel like.
USD5000 for a number is peanuts for big companies which mass-produce USB devices, but an enourmous chunck of money for the small guy. They obviously just don’'t care about small companies.

VID’s and PID’s are no secret, if you’re curious you can download a text file with all known numbers from The USB ID Repository

The text file is about 25000 lines long and 21438 lines start with a tab (and are PID’s), so there are approx 3600 known PID’s, so that’s USD18e6 for them.

For fun I browsed through the list:
600 for Brother
600 for Canon
500 for HP.
450 for Logitech.
300 for microsoft. (They don’t get a capital M from me).

Some 15 to 30 companies who have more then 100 Pid’s.
Some companies have more then one VID, Intel both has 8086 and 8087.

Yes, I know.
I was just curious to how many PID’s were used by some companies, and the top is around 600. None have more.


USD 5000 * 3600 [Companies] = USD 18e6

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.