Beginner question about symbols and footprints

I have a tendency to do my layouts a bit “old school” through-hole style in order to enhance repairability. So occasionally I’ll mount a power MOSFET in a “TE Connectivity” style screw terminal block, this works OK even thermally so long as the devices are used solely in switch mode. This presents a bit of an issue though because my much older tool would allow me to reassign pins at the schematic level, so I could show the MOSFET symbol even though I could label the pins 1,2,3 instead of G,S,D so when it routed it would go to the pins as designated for the block itself. In KiCAD it appears I can only edit pad names in the PCB editor but that’s after the netlist is already created. This would force me to only show the terminal block itself on the schematic which is OK but sort of suboptimal. I don’t really want to go to the trouble either of creating custom schematic symbols and footprints because frankly that kind of got out of control with the old tool anyway and pretty much why I switched (well and lack of support and the ancient version of Windows I was forced to maintain just to use it but that’s another story). Is there a “prettier” way to do this that I’m just not seeing because I’m not familiar enough with the toolset yet?

Please re-read your post. You seem to cite two primary factors:

  • You want to use a power MOSFET to perform some electrical function in a circuit. (I’m guessing this part comes in a TO-220 package.)

  • Instead of soldering the MOSFET directly to your circuit card assembly (CCA), you want to solder a terminal block (“barrier block” or similar) and use the terminal block as an electrical and mechanical interface to the MOSFET. In practice, the terminal block functions as a kind of “socket” for the MOSFET.

  • You want to use the MOSFET symbol on your schematic, but use the terminal block’s footprint on the circuit board. You want to avoid any modification or customization of KiCAD’s standard symbols and footprints.

KiCAD is NOT pre-configured to satisfy all of your desires, but it CAN be adapted to do so with minimum effort. In all likelihood, either the schematic symbol, or the footprint, must be customized for your application. It is not difficult. Everything you need to know (and more!) is covered in the FAQ Articles
How does KiCad know which symbol pin represents which pad of the footprint?
Tutorial: How to make a footprint (From scratch)?
Tutorial: How to make a symbol

KiCAD does not have the kind of pin-to-pad mapping tables you referred to. These are powerful tools, but also a source of many errors and much confusion. I do not expect KiCAD to have this capability in the forseeable future. KiCAD’s pins and pads are implicitly associated through the pin number and pad number, without an intervening map.

It seems to have pleased the Good Lord to create the universe in such a way that PCB layout requires local libraries of custom footprints and symbols, to be done efficiently. You are free to apply your own intelligence, creativity, and insight when it comes to the organizational structure of those libraries.


1 Like

I am planning to use KiCad.
Because of this I am now defining my symbols and footprints (copy KiCad symbols, footprints and modify them). It is simpler then pcb designing.
I uderstood that you would like to have transistor at schematic and terminal block at PCB. Copy the 3 pin terminal block footprint and give to it the pin numbers like transistor has (I don’t know if transistor has pin numbered (not named) as G,S,D or 1,2,3). Then if you assign that footprint to that transistor you will have transistor at schematic and terminal block at PCB.

Your use case is so far away of what is done typically that you really can not expect that it is covered by any tool out of the box.

I also doubt it is even a good idea to simply use the normal footprint of the terminal block. You will forget that you need space for the fet. Modify the footprint to show what space is required. (on the courtyard layer such that DRC ensures space is left. And possibly even on the fab and silk layers.) If you go that route you might as well make a special symbol that shows that there is a mosfet connected via a terminal block. (You know such that you can give your project to somebody else and they know instantly what you intended to do.)

Another option would be to have two footprints that are carefully placed correctly. One reserving the space for the fet and one dealing with everything required for the terminal block.
This would also allow you to have the mosfet somehow symbolized in the schematic. (Via a symbol that has no real pins but only graphical lines.) And to have that symbol appear in the BOM.

OK maybe I was a little misunderstood, this certainly wasn’t a “complaint” and I think so far KiCAD is a simply marvelous tool, I just wanted to see if there was some way I hadn’t thought of. It’s perfectly OK if I just include “reference” letters G,S,D on the schematic next to the TB. I’m also mounting “three terminal switching replacement for linear TO-220 devices” on these TBs and I think because those are simply other numbers I can “fix” the assignments for those at the PCB level if I need to (if they turn out to not be as assigned at the schematic level). Not really a problem I was just wondering if I just wasn’t clever enough to understand there might be another way. (I don’t worry about the footprint “reserve” for the device as I’m already in the habit of allocating about .9" from the far side of the block when I do manual placement which seems to be enough if you “bob” the leadforms on the devices a little, I guess if you autoplaced a lot it would matter.) Thanks all.

AFAIK, all the standard MOSFET symbols that I’ve looked through in the standard library have the pins numbered 1, 2, and 3. The generic symbols in the Device library for the 3-pin MOSFETs have the 6 possible pin orderings as separate symbols (e.g. Q_NMOS_DGS, Q_NMOS_GSD, etc. Same for the Q_PMOS symbols). The pins aren’t “numbered” with the pin function abbreviation (D, G, or S). The pin numbers are ordered the same as TO-92 and TO-220 packages (among others). I put numbered in quotes because KiCad does allow you to use letters in the pin number field, but in the standard library the librarians didn’t for these parts.

This allows you to simply assign the connector footprint to the symbol in the schematic. You will need to assign the footprint anyway if you use the generic symbol from the Device library anyway. But, as Rene cautions, only having the connector footprint might not be enough to remind you to leave room for the MOSFET. Unless, it is a vertical access connector… Then it might not matter much.

In EESchema there are two pin attributes that are relevant to this discussion, a pin name and a pin number. The pin name is informational only, used to inform the reader of the schematic of the pin function. The standard MOSFET symbols do have their pins named with the function, but the symbols aren’t configured to show the pin name normally because the MOSFET symbol is sufficient to inform the reader of the pin function. The pin number is what EESchema uses to connect a pin to a net, and then this number is what PCBNew uses to connect a net to a pad.

Also, look carefully at the nomenclature. In PCBNew the pad indicator is called “Pad number” not “name”… (Easy mistake to make to see what you think something should be instead of what it really is. I have fallen into that trap enough that I have to consciously try to avoid it. Sometimes I still fail and have to limp around with that trap biting down on my ankle…) :wink:

Oh yeah! I was looking at the “generic” listings and was starting to think that’s all there was, that’s the ticket! I find it interesting that I’m getting all this blowback for my “bizarre use case”, as I recall in the old days we had a term for what I’m looking for and it was called a “device socket” and I could be wrong but as I recall back then we didn’t consider it unusual at all…

1 Like

Sockets fell out of favor for a lot of reasons. The main one being that automation came along and SMD simply is the way to go for it. (Even for handsoldering SMD is a lot faster. Even without the help of reflow soldering.)

As with many things in electronics there is a strange benefit to the desire to make it cheaper. Normally making something cheaper in some ways reduces its quality. With electronics sometimes the reverse is true. SMD and especially higher integration not only made things smaller but also able to be faster. (When designed in accordance with EMC requirements. Which is also more effective when done in SMD as smaller components have a lower series inductance.)

For power electronics there is also a benefit to SMD. (In addition to shorter “signal paths”) It allows to use the PCB itself as the heat dissipating medium. (Large copper planes, copper inlays or even heat pipe inlays allow for this to be very effective.)

Oh I generally agree, sometimes faster, always cheaper and NEVER more repairable (especially when the philosophy is it’s cheaper to buy a new one). Have you tried to buy a replacement engine control module for the unrepairable one in your car lately, how much “cheaper” did you find it to be? The other resentment is how “development-hostile” these technologies are, if there’s a socket for some of these parts available at all it’s way over a hundred dollars apiece and probably several times the available footprint, and generally there’s no “socketable equivalent” part available from the manufacturer at any price. Your only option to make the part replaceable is to get a Chinese adapter to a “standard socket”, then of course you wind up having a need to reflow solder the part to the adapter anyway which usually renders the “solution” as impractical as the problem. (For a while we did have the PQFP-to-PGA socket solution but that was actually practical so the device manufacturers abandoned the format.) For the life of me I don’t understand why the device vendors don’t sell devices for development purposes presoldered on to the adapters? I don’t care either for those overpriced “development kits” where the preassignment of pins frequently precludes the use of some of of the desired features of the chip and also makes it as painful as possible to interconnect to other cables in an established system. Basically if your target market is under 100K+ units and you’re a developer you’re just left to the wolves.

This is not because of hardware :wink: It is after all just an MCU and a few other components. (*) It is because you will not get access to the software that runs on it. (SMD can be repaired. Even BGAs can be exchanged with the right tools. Source i have done it loads of times.) But if the MCU dies you are done for it unless you somehow get the software.

*) A very likely problem you might however face is the use of an ASIC that is not available to anyone but the original company who developed the system. (Quite likely in large quantity stuff like automotive electronics) But neither THT nor sockets would change that.

And a tip in general: Use newline characters. Your walls of text are basically unreadable.

I remember when I was young my father built the HeathKit color television kit. Never bothered to put a case around it. I remember looking at the circuit boards and all the TO-92 packages were socketed. (Not that I knew what a TO-92 package was at the time, I can recognize it in hindsight) That was the last time I recall seeing TO-92 sockets…

What your comment actually says is if the faulty device were socketed the vendor wouldn’t be able to get away charging anything close to what he seems to get away with charging for an entire card. (The device could certainly be preprogrammed with firmware, it only takes a few seconds if done in-circuit on the line, the issue of firmware security in the field has been resolved for quite a while now.)

I suppose you could posit that there could be some ESD risk to the device but exactly what provision has been made to deal with that at the board level is unclear. I do recall running into someone some while ago who volunteered that at GM they were still programming ECUs in assembly rather than C because economics dictated that they conserve every last available byte of RAM and program memory, that’s probably long gone but it lasted for quite a while.

I get disgusted every time I go into an auto parts store and find them leveraging their “proprietary 3 pin connector designs” into giving them cover for selling a simple lighting jumper dedicated to a specific application (and less than a foot in length) for $12 or more. It’s getting to be just like the inkjet printer market, they could afford to give you the damn car if they could lock up the sale of all the spare parts at the usurious prices that they’re “obligated” to charge!

Yeah I usually only socket TO-220 power devices carrying power whose lines run “outside the box” and are therefore subject to shorting. (Even if you “protect” them with resettable fuses they occasionally fail anyway, maybe it’s overvoltage transients or whatever.) It’s just in some markets they like to see their units “repaired” even if you could probably afford to ship them a direct replacement, not my call!

The hardware is not even close to what it is sold for. You pay for the software. No matter if the thing is socketed or not.

Assembly is still used. But not to conserve resources. But for implementing things that can not be expressed in higher languages. (Modern compilers do a much better job at conserving resources than a human ever could. Especially as modern CPUs are way too complex for anyone to understand in detail.)

Oh and the automotive industry is kind of known for selling their original product at very little profit and leveraging the aftermarket to get to good numbers.

If you want an ugly hack solution to this, you can create a schematic like this.


Run the MOSFET connections through your terminal block to connect on the far side (yes, they are connected) and draw the rest of your circuit. Add a ‘#’ sign ahead of the MOSFET RefDes to keep it off of the board.

Yep, its ugly :).


But it does help to show the intent of the circuit. It is obvious that there is a connector, it shows how the MOSFET is connected to the circuit through the connector.

I dunno; I kinda like it.

Agree with @SembazuruCDE that it helps to show the intent of the circuit; which is what any good schematic will convey.

ON EDIT: KiCad does not normally make use of this as it is board specific. However, this example shows a concept that I have been exposed to for a very long time.

What makes that so ugly? Well, putting the “1”, “2”, “3” pin numbers on the schematic is sort of ugly, but otherwise I agree with the others who say it communicates the designer’s intent rather well.

My personal choice would be to treat it like a socketed part. The terminal block “J1” would get a reference designator of “XQ1”, but that’s something to argue about with Configuration Control. I would probably want Q1 on the same Parts List (P/L) as the other parts on the board - doesn’t the “#Q1” syntax also remove Q1 from the P/L?

Is this case much different from a battery-powered unit? If you have an assembly powered from, say, a 9-volt battery connected through a battery clip, or some AA-cells sitting in a battery holder, how do you represent it on a schematic? Do you use a battery symbol, or a symbol for the battery holder?


I thought it was somewhat ugly because I had run the MOSFET connections through the screw connector ‘backwards’. I’m pleased that the intent is clear which was the main point. I did have a little experiment to draw a two sided connector with duplicate pin numbers on either side (which could be hidden). This seems to work OK - whether or not it is worth the bother is a moot point.

You are right about the battery - I use a battery symbol but associate it with the battery holder and this is not very different. You could legitimately draw the schematic with just the MOSFET and substitute it with a screw terminal in CVPCB.

Whatever you do, you will have potential problems with the BOM - the # sign removes the component from the board but also from the BOM. Drawing the MOSFET and placing a screw terminal footprint will mean that the BOM is confusing - showing the footprint for the socket but the part reference for the MOSFET. Including the MOSFET by removing the ‘#’ will leave an unconnected ratsnest.

None of this is impossible to deal with - there are just the couple of ‘gotcha’s’ to be aware of and your BOM might need some hand tweaking.


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