Can someone give me a double check?


#1

Hi all I am using Kicad 4.0.7 and the Digikey library for my current project.
I am pretty sure the pinout is wrong on a transistor I am using…

MMBT2907A in the digikey library it appears pin 2 and 3 are switched. Could someone who has the digikey library on their machine and 2 minutes spare please have a look and let me know if I am correct or going mad

Thanks in advance


#2

Just for clarity I am going to throw in a screenshot or two…

Okay this is the component on my schematic

1

This is the datasheet for the transistor


#3

The only thing you need is a matching footprint for your symbol.

Symbol: Base-pin1, Collector-pin2 and emitter-pin3.
You need a footprint with the same pin numbers.
If you don’t have that footprint, you can either change the pin numbesr of the symbol or the pin numbers of the footprint.


#4

Thanks for your reply, being a digikey library part the symbol and footprint are already linked. I believe that pin 2 and 3 are wrong on the symbol. Can you confirm this?


#5

well you would need to also show us the footprint :wink:


#6

Not when it’s the symbol that’s wrong surely?


#7

You ask of us to check the combination of footprint/symbol but only give us half of the information required.

As @pedro pointed out there is no “right” way of assigning pin numbers to a symbol or footprint. In theory you could give them the “numbers” B, C, E and have a valid pair that way. (You could even use 500, 1 and 42. As long as you do it the same way for both symbol and footprint kicad does not care :wink: )

However some numbering schemes make more sense than others.
In the official library we require that the footprints are generic and therefore use standardized numbering schemes.
This must not be true for the digikey lib. Especially not if they use an atomic footprint/symbol pairing. (Meaning this symbol has a specialize footprint that is only used for this one symbol)


#8

Emitter has arrow pointing in on both the symbol and the datasheet. How is that wrong?


#9

Digi-Key has their own Discourse, so you could also ask there.


#10

:roll_eyes:

I would argue that there IS a “right” way, but also many “wrong” ways that would still result in a functioning board. Pin numbers are not (usually) printed on the board so when seeing pin “2” on the schematic most people would have certain expectations as to where on the board that is for a given package type.

The footprint numbering according to IPC:

The pin assignment for this specific part is given above and again here:
mmbt2907A_pins

Yes KiCad would be happy if you used any of a million different ways but if you do not show the pin assignments on the board then the correct way would be the “standard” way.


#11

That part appears to be a bit messed up, they have linked it to “digikey-footprints:TO-3P-5”, which is wrong. The symbol might be right for a TO-3, but that part number is https://www.digikey.co.uk/product-detail/en/on-semiconductor/MMBT2907A/MMBT2907AFSCT-ND/458970 which is definitely SOT-23, and anyway does not come in TO-3.

tldr That part needs rework. Let Digikey know on their github issues tracker.


#12

Many thanks for the replies and help, I apologise for not understanding the issue well enough to provide full information last night. Compounded I was unwell and went to sleep early so was not able to come back and supply the foot print info. (Once I get home from work I can post this, just so others may know what I was talking about after the fact)

I will do as bobc advises and let digikey know on github about the issue. In the meantime for peace of mind I will just use a generic PNP transistor from the Kicad library and associate the relevant footprint for my needs then I know it’s correct. I wasn’t planning on testing this circuit before getting the boards made due to it being all SMD and a complete PITA as I cannot breadboard it, although now I am reconsidering this as it may be worth using some perf and a little deadbug soldering to make sure I have all my ducks in a row before making boards and finding the pinout is wrong. Anyway thanks allot for the replies


#13

@papa_lazerous It does not take much to fix a pin-out error. Note, I did not look at the rest of the data.

Using Ctrl+e over the symbol will bring it up in the editor. It took me less than 1 minute to change the pin number assignments.

This should be correct:


#14

ctrl+e thanks that is a useful shortcut for me. I am just getting infront of the computer now. I have pulled that transistor from my design and just used a pnp from the kicad components and set it to the right foot print job done.


#15

Why would the symbol be wrong?
In PCB design the right footprints to mach schematic symbols is always a big concern, and because of lack of industry strandards (sigh) this unfortunately requires manual labour.

Sometimes there is simple transistor in the good old TO92 case, and the same transistor can have 2 different footprints, because there also is an “A” version of that transistor, in which 2 of the pads are swapped.

When SMD became popular (somewhere in te '80-s) “industry” could not even get consensus on which side of a SOT-23 pin 1 should be, and one of the results of that is that some manufactorers completely dismissed with pin numbers altogether and started using labels “b”, “c”, “e” for transistors in SOT-23 packages.
Of some chips there also were variants of (ram IC’s?) there were variants in which the pins were bent “upwards” instead of downwards, which resulted in a mirror image of the footprint for that part.

I believe it has also happened that because of this confusion “generic” transistors came with different footprints depending on the manufacturer, but the part number was exactly the same.

Because of this legacy is very difficult to impossible to make a good library system for PCB design software.
The only solution that seems to work wel is a PCB design program which has the ability to very easily and fast change / correct details such as this, and then create custom personal libraries for at least all components for which such differences can occur.
For me personally, I would never design a PCB in which each and every footprint from an external library has been painstakingly manually checked for errors.
And after verification I put those components in my personal library.