How do I do many-to-one footprint association?


#1

Total noob here, I want to associate many pots in my schema to a long pin header, I can’t seem to understand how to do that.


#2

You might want to have a look at the getting to blinky tutorial series to get a general idea on how to create your own symbols. (I don’t know how much you already know. This might not be necessary.)

A direct many to one symbol to footprint association is not supported. But you can make a custom symbol for that connector.

If you want to place your pots in different parts of the schematic then you might want a multi-unit symbol. (Each poti is its own unit)

Here a tutorial i wrote a while back on how to change the 74xx lib to have no hidden power pins. It explains a lot about multi unit symbols. Might help you in this case.


#3

Thanks, I’m going to watch that series. I am very new to this so might be good.

I thing I might have misunderstood the typical workflow of KiCad.

What I first thought I could do, in my perfect world, was to not even have connectors or headers in my schema but rather put the pots and switches directly there to make visual sense while designing and for printout. And then as the next step I would start thinking about PCB. I would then like to associate this more freely to offboard with connectors/pins. I feel that those are simply clutter in the design schema.

I get the feeling that I need to do two schemas. First start with a visual design that is meant to show the design using pots and switches, and then copy this over to a new more technical schema that I modify, exchanging switches, pots, leds and so forth to pins.

Am I correct that this is the typical workflow or am I misunderstanding? As a programmer I really don’t like “copy-workflows” as they are hard to maintain. Going back and making a design change would make me iterate all over again.

Maybe I have misunderstood the scope of KiCad, maybe it’s just for PCB design and not for electrical design in general? Should I use something else first (pen and paper?) to design my circuit conceptually and later on do the PCB design in KiCad?


#4

Pen&Paper is how my dad works… sprinkled with LTspice simulations of sub-circuits. :wink:
Depending on if it’s a one-of he then goes and does the layout for proto-boards or for me as a guide if he want’s a layout from KiCAD for more than one unit.

Anyhow, you do electrical design in EEschema (schematic editor capturing too) to design and fix your electronic/electrical design.
You then use that together with symbol <> footprint association and the netlist (which pin connects to which pin) and do the layout in PCBnew.
Some development versions of KiCAD even have some spice built in, but that’s more enthusiast and most will use a stand alone tool like LTspice for that… caveat being, one really has to recreate/duplicate parts for this.


#5

:slight_smile:

Ok, so just to ask for advice. What I want to do right now is to design my own PCB for an existing analog synth design. http://www.birthofasynth.com/Thomas_Henry/Pages/MPS_project.html

So I have a schematic on PDF and started entering this into KiCad. It has around 15 pots spread out all over and lots of jacks and switches too. On the PCB all this is going to be pin headers. So should I just swallow my pride and replace all pots with connection symbols in the schematic? Or should I first make one with the correct schematic symbols just and first when done replace with connections?

The way @Rene_Poschl suggests here: IC footprint VCC+GND seems it might be too advanced for me. In this case I would need to create something like a 20 pole pin header with multisymbols looking like pots? Sounds like quite some clicketiclick work :slight_smile:


#6

It is not as much work is you might think.

First we simply copy the already existing poti symbol into a project specific library:

  1. In the symbol editor open the poti symbol (set device lib as active and load the poti.)
  2. Open the symbol properties and give the part a unique name. (Example poti_connector)
  3. Either create a new lib from part (I would suggest in the project directory) or if you already have a project specific lib then set this lib as active.
  • If you created a new lib, you need to add this lib to the project via the dialog found under preferences->component library (The upper add button adds libs.)

Don’t forget the save lib to disk button.

Now to the fun part:

If you want to change anything about the look of the symbol, do it know.

  • I would suggest to show that there is a connector in between the poti and the board.
  • Maybe increase the length of the pins and show the pin numbers.
    • This can be done in the symbol properties dialog. There is a tick-box for: show pin numbers.

As soon as you are happy about the general look of the symbol, open the symbol properties and increase the unit count to the number of units you need. (The original symbol is copied automatically to all other units.)

The only thing you need to do now is to change the pin numbers of all pins such that they match your intended connector pin assignment.


#7

Another easy option would be to simply set the footprint of a single poti to be a pin header with 3 pins. In pcb_new you can place all these pin headers using the 2.54mm grid such that you can insert a longer (number of pins) pin header.


#8

You are correct that KiCAD is intended primarily for printed circuit board layout, with a secondary purpose of creating documentation that is consistent with typical manufacturing processes.

Your question is much more fundamental than that. Of all the things we know of in the universe, people have two unique abilities. We have an ability to comprehend, understand, and communicate how things in the universe work and interact with each other. We call this “science”. We also have a unique ability to assemble things and ideas in original ways, which we call “creativity”, or “art”. Engineers sit at the intersection of art and science, combining the objects and principles of the universe in new ways, so that they behave in exactly the way that we intend. At its core, your question asks, “How do people create?”.

As each person is unique, so our creative processes differ. I doubt that anybody could retrace my steps through my current project. There is, of course, the accumulated experience of over half a century “doing electronics” in paid positions - and another 6 or 7 years prior to that, dabbling out of curiosity. Artifacts of the current project include a digital “folder” containing some 15 - 20 documents - magazine articles, two scholarly papers, data sheets, copies of posts from Forums similar to this one, etc. There’s also a manila file folder holding a few dozen sheets. Many of them were duplicated from the electronic documents, but now contain hand-written circles, arrows, cryptic comments and a few calculations. About a dozen sheets were torn from engineering quadruled pads. They show sketches of bits of circuitry and my efforts to emulate that legendary constipated mathematician who worked out his problem with pencil and paper. There are also two manual sketches showing construction and pinout of interconnecting cables. And two pages covered with measurement data, from tests that were never properly documented and will probably never be repeated.

In the digital Project Directory there are four sets of LTSpice simulations, dealing with various aspects of the circuit’s behavior. And a subfolder holding a handful of photographs, showing construction of proof-of-concept models, done on Vectorboard. (The one I shoe-horned into an Altoids tin gets the most comments.) This project involves two separate hardware units; one is on its third revision of schematic and PC board, the other on its sixth.

The schematic is one way - in many cases, the primary way - for the circuit designer to express his intentions to others. (And communicate to himself, at a future time.) In an environment that is rigidly oriented toward manufacturing, every component represented on the schematic will be installed on the PC board, and every electrical component on the board will appear on the schematic. That means the schematic ends at the pin header. KiCAD assumes an environment like this. If this system is followed rigorously you will have to look at the drawing of the next-higher assembly to discover that the pin header on your board connects to pots, switches, LED indicators, etc.

In a less rigorous, “hobbyist” environment, the designer may include the pots, switches, etc, on the main schematic to better present his concept for the overall design. You, as designer, have some freedom to decide how to best communicate your design ideas and considering the intended audience of your explanation is part of the communication process. Regardless of which method you favor, somebody from the other audience will criticize your choice.

(The composer, performer, and counter-culture icon Frank Zappa received a lot of criticism for using “bad” words and images. He countered with a statement to the effect that if the words and images effectively conveyed the idea he was trying to express, they were NOT “bad”. Perhaps somebody else is better at locating that quote than I have been.)

Here’s how I approached this problem in my current project:

I drafted symbols that incorporated a symbol for a mated pin-header, along with the off-board item that is connected to the header, and explained them with an unnumbered note in the field of the drawing. (The phrase, ". . . circles and arrows and a paragraph . . . " has special meaning to my generation.) The footprint associated with each of these symbols is just the footprint for a 2-pin header. Does this violate some drawing standards? Undoubtedly - I can name at least half a dozen of my previous employers where the folks in Configuration Control would tell my boss to write me up for this. Does it effectively communicate my design intent? We shall see . . .

Dale


#9

Not long ago, I designed a PCB for a friend. It was a clone of an oddball audio compressor and it had the usual handful of knobs and jacks. My first thought was to use board-mount pots and jacks, but we quickly realized that we didn’t have an idea about what sort of enclosure we’d use, so I decoupled the board from the box by using pots and jacks which were not board mounted. I used three terminal Phoenix connectors (Euroblock) for each.

Rather than try to make a symbol for the connector look like a pot, I used a standard sort of box with three pins, and just used the text labels to indicate use. That is, for the pots I labeled things C, W and CW and for the jacks T, R and S, all standard nomenclature. Those labels are added to the PCB silkscreen too.

Doing so ensures that the BOM has the Euroblock connectors but it won’t call out the panel-mounted pots and jacks. For that, I use a special ‘BOM-only’ symbol to call out the necessary parts. That symbol is a box, with a reference designator but with no pins, and it has my special PN field, recognized by my BOM processor.


#10

Don’t you just link the pot symbol to the header footprint? What am I missing here?


#11

If he would have one pot then this would work. He wants to link more then one pot to only one footprint.


#12

Why the need for more than one pot symbol? I don’t get it?


#13

He wants to use one connector with many pins to connect all his potis to the board.


#14

Just an update: I will probably just add connectors in parallel with the pots in the schematic as @dchisholm suggests. Since I’m just going to use pins it’s not so big a deal if it’s 120 or 201 beside each other
. If I had used something like Molex the issue would have been more pronounced.


#15

Have you looked at the possibility of scripting ?


#16

@bobc Nope. Didn’t know there was such a possibility? Do you have any reference?

Looked at the files though and if doing my own components I’d probably rather edit those files myself than clicketiclick. I’m not a fan of using mouse…


#17

Well, any programming language that can generate text files could be used. Depending on language, there are some libraries to make things easier. Python is quite a popular choice.

So far KiCad has some support for Python on the footprint/PCB side, schematics and components have to be manipulated outside of KiCad.

In this case, I might create a symbol with several units, which could be unobtrusively dropped into the schematic but still map to an N-way connector.


#18

@bobc Ah, ok. Yeah, I haven’t looked much at the file format yet but yeah sure, I might look into that. Please share any progress on that!


#19

This is exactly how KiCad works. But, is not quite what you literally asked for in your OP.

Once you have the pots and switches connected together, you need to assign a “footprint” to them. You used the term “pin header” and got answers for what you literally asked for; this was probably a mistake on your part.

Lets take one step back.

You put a Pot on the schematic. Do you know exactly the part number you are going to use? Some Pots will mount directly to a PCB. Some Pots will panel mount real nice and require leads soldered from the Pot to the PCB. And, one could use a pin header on the PCB, and solder a connector to the Pot.

KiCad original work-flow was to design the schematic, then figure out the part one was going to use, then assign a matching foot-print to the part.

Some figured out that KiCad also allowed for those with an actual part already determined they had no need for the middle step.

If you use a “pin header” for a “footprint” for the Pots you can likely solder leads to the PCB, maybe even solder a Pot to the PCB, and solder a “pin header” all into the same “footprint” on the PCB.

At the moment, the proper workflow is to use a symbol that you like for each Pot. Connect everything together in Eeschema to create the schematic. Ensure that this passes the ERC.

Then, figure out what actual parts you are going to use, and assign footprints to those parts.


#20

I’m not sure I understand this critique. I do understand the concept of footprint so no need for screaming it. What I asked for originally was a way to assign multiple schema components to a single footprint, in my simple example multiple pots sharing a single bigass connector footprint going to the panel. It seems that the question was well understood. Let me make it clear: I wanted multiple pots in schema that had a shared connector footprint.