Real pinout in Schematic

Hi. I’m new to KiCAD.

Would like to know if it’s possible to load a “real” pin out instead of the schematic pin out for components. For example, When you load the ATMega328-P (28 pins model) it has all output/input pins on the right side, and power pins on the left side. Is there a way to load an schematic that has the “real” pin outs (14 on one side, 14 on the other in the correct datasheet order)?

That way, I think, it would be a lot easier to make an schematic with jumpers placed where they should.

Also, is there a way to make sure that the wire you just draw is REALLY connected? After loading the netlist in PCB mode, some components are NOT connected, and have to go back to schematic mode to delete and redraw the wire again, it is very frustrating… If not, where can I make a suggestion for a feature like this?

Thanks a lot.
Serp

Schematic symbols are usually drawn logically rather than “real” to make the diagram easier to draw and understand. MCUs like the Atmel are drawn with each Port pins grouped in bit order, to make drawing busses easy.and error free

3 Likes

A microcontroller (uC) is an exceptionally versatile component. Each pin typically has two, three, or even more possible functions depending on how the uC is configured and programmed. E.g., a pin that’s only an interrupt input in one application, might be a PWM output in another application, and a serial port data line in a third application. Although the uC manufacturers like to refer to a group of pins as a “port”, I seldom see them used as a group. Rather, one pin is dedicated to some system function, other pins are committed to some other system function, etc. Even in cases where the concept of a logical “port” seems to apply - say, driving a matrix of LED indicators, or sensing key presses from a matrixed keypad - the row or column signals may involve pins from several different “ports”.

I usually create a new symbol when I use a microcontroller in a design, reflecting the way I will use the uC in that particular application. That seems to be an effective way to communicate my design intent.

3 Likes

Ok, Thank you.

I noticed that square and circle, still I think it would be nice to have a more visual “signal”, like a not connected wire should be red, once connected turn into green. Any ways, I’m new to KiCAD, maybe I’ll get use to the squares.

Yes, I know a uC have pin outs that have PWMs, ADC, digital outputs/inputs, Tx, Rx, etc in the same pin, I program them. So at least for me it it wouldn’t be a problem to have the real pin out. But oh well, I’ll just have to draw it myself.

Thanks again. Have a good day.
Serp

Hi, Serp. You can use KiPart to easily generate your schematic symbol with the physical pin arrangement.

Hi devbisme, nice software there, seems quite easy to use. Thank you for the tip.

Let me know if you have any problems with it. It may not give you exactly what you want (aesthetically), but you can always edit the result with the symbol editor to get what you want.

Thank you devbisme =)

I just wanted to bump this. It seems routing is more important than arbitrary pin groupings. I don’t know who puts the default symbols together, but it is always a pain in every cad program I’ve used, and to get the actual pcb I want with minimum trace lengths and vias and etc (avoiding areas that shouldn’t have routes?) It would be great if the symbols were arranged in pin order from the start. I would love to get designing but I’m editing a stock part and dealing with obscure messages before I even get started.

fwiw the part in question is an atmel attiny441 soic14, but every one is like that. I mean being able to make your own symbols is great and all, but EVERY SINGLE TIME?!? Symbol designers need better guidelines as a little effort there would save a TON of effort in the real world. Or you are encouraging bad PCB designs if the user doesn’t care how long the routes are or whatever and isn’t laying them out somewhat physically from the start. And the more complicated the schematic, the worse it gets if you aren’t paying attention to the real world layout.

Sorry this is my first post, but WHY?!? Not arbitrary ideals, just, damn… I mean most of us aren’t siloed between schematic and layout, the end goal IS the pcb, that is the whole reason we are doing this. And many of us are also the programmer, who knows exactly what we can do with each pin and what can be made a software problem and what can’t (actually I think that should be a requirement for MC design IMHO).

It is literally impossible to create standard library symbols that satisfy every user. When I was reworking the 74xx libs, there were about 5 different variations suggested. That means 32 unique variants. for each symbol. If we add a 6th, then there are 64 variants… I have a script to generate the symbols, so I could actually generate all the variants… but then people would complain the libraries are too big and confusing.

Given the limited resources of the library maintainers (we are all volunteers) then it is only practical to create symbols that suit “most” users.

In every company I have worked for the “schematic capture” phase of the project involves creating symbols and footprints that meet “house rules” for every new part used in the project. Yes, that is tedious… but it is regarded part of the job of Design Engineer. It seems to be hobby or SME users who expect to bypass that and have data ready to go in their preferred style (and not to pay for it).

One of the attractions to me for KiCad is that it is quite easy to create new symbols and footprints, either by GUI or script. I think I could adapt my script to generate symbols with “real” pin order, I could then convert a library quite quickly.

2 Likes

First off, thank you for your contributions and response.

The problem is the abstraction, i.e. whom does it serve to have an arbitrary pinout that they have still to map to real components anyway, it still has variants in different packages, it is an organizational issue. I would challenge the 5 variants if they were anything but a relative to physical ordering. Physical ordering has a real use case, and is unambiguous. I mean I’m a programmer too, and I get abstractions, but they aren’t always useful, and often cause their own problems (as in the case of routing).

I mean sure, everyone you worked for does it that way (abstract symbol->abstract connections->possible spaghetti pcb), but that doesn’t make it the best way. (one size fits all?)

I think it is definitely overkill for folks who aren’t getting paid to make PCBs though. I’m at the point where I would be happy with some gerber pad libraries that you can clone and annotate and put on a pcb. Any suggestions? Does kicad have a mode like that?

Thanks!

Yes, everyone thinks “their way” is best. It is really pointless to discuss the merits where it is down to individual preference. I was trying to politely say that your preference is the minority, and you are not going to persuade the majority to change their mind. Therefore, if you want something different, you will need to create it.

It’s really not hard to create symbols in KiCad.

6 Likes

That should be your first clue that your expectations are not aligned with the common usage of the software.

One has nothing to do with the other.[quote=“steveob42, post:10, topic:4450”]
Or you are encouraging bad PCB designs if the user doesn’t care how long the routes are or whatever and isn’t laying them out somewhat physically from the start.
[/quote]

How the schematic is drawn does not dictate in any way the PCB layout.[quote=“steveob42, post:10, topic:4450”]
the end goal IS the pcb, that is the whole reason we are doing this.
[/quote]

Some of us do this professionally, the PCB is usually just one component of the end product and part of the process is creating proper design documentation. The schematic is one of those documents.

There is no abstraction, the schematic represents the physical connections between components on the PCB. Schematics are intended to be readable, therefore pins are commonly grouped according to function with inputs on the left, outputs on the right, etc. There is nothing arbitrary about it. Schematics for a single PCB can span multiple sheets, it makes no sense to try to draw the schematic in the same way you would layout the PCB. You could make several versions of the PCB without ever changing the schematic. One might be a through hole version, another SMT, one might be 4 layers another 6 layers, one might have components on both sides of the board. The schematic would be the same in all cases. If you did change the package of a component then you would simply change the pin numbers on the pins but you would not need to relocate the pins.

7 Likes

It’s a community effort, so the symbols are put together by Users Like You. (To echo what PBS says, Viewers Like You.) However, we all follow the KLC when contributing symbols. (And the KLC says pins should be grouped by function.)

I think what he’s saying is that for a component like a microcontroller, where there’s a great deal of flexibility in what pin to use for what purpose, it can sometimes be helpful to be thinking about the layout when deciding which pin to use.

1 Like

At one point he does mention programming the pins of an MCU but that doesn’t explain his reasoning for wanting symbols with pins arranged in sequential order. They would still typically be grouped by function, the pin is still bit 3 of port B for example. You might want to rearrange the pins according to the actual function in your design but how could he possibly expect anyone else to have designed the symbol in such a way? Statements like the following seem to go beyond the function of individual pins.

3 Likes

My work flow is to do the capture and layout in parallel. That keeps me from getting the two processes disjointed. I also think if it had been a ‘thing’ when I was a kid I’d have been diagnosed with ADHD so I’m used to bouncing from things like a pinball anyhow. It also helps me layout the board most efficiently and not want to just say “Fsck it” and hit autoroute at the end. :wink:

That said, I did a board for a friend doing a startup and he insisted that the symbols look like the chips because that is the way HE understood them. The one exception I made was to pull the power pins into a separate unit because it just made for a wire crossing mess. (He also hated named nets :smirk:)

Yes and no. Most of the times I re-use the same symbol (with pins sorted by function, by the way).

But if a design has a 400+ pin FPGA is almost mandatory a new symbol each time, with pins arranged by function and divided in several units that will be placed in different hierarchical sheets though there is only one footprint.

Anyway, it is very easy to create a rectangle and add 14 pins sorted the way you like with the library editor. Or even easier to load the existing symbol and rearrange the pins.

2 Likes

FWIW, thanks for all the responses.

Also FWIW, my typical use case IS a microcontroller, one that I already know what package I want. (usually open source, so something that someone can build with minimal specialized equipment, so I’ll take a dip if available, SOIC otherwise, and on down the list). Also I tend to minimize the number of external components, and find software solutions as available. Plus I am looking for high density in a small package, just so you get the most PCB’s per panel, but can still hand assemble it.

So the circuits themselves aren’t terribly complicated, and I’m open to suggestions about alternatives (better than mspaint or kolourpaint pls). But layout is critical, and I already know what packages I want having researched that end of it already, including pricing. It isn’t a random thing, it is well reasoned.

But it isn’t just for microcontrollers, even a quad nand or whatever is likely to get its wires crossed if you don’t pay attention from the start. Really anything with more than two terminals is fair game if you do the wiring without regard to the packaging.

Hmm… symbols aren’t abstractions I hear? :slight_smile: and “we don’t do it that way”, and somehow grouping things by logic makes the act logical. Sorry, but I don’t really see where those arguments hold any water.

Doing it in a certain way is called “convention” and it’s a common practice in many fields. If you want to complain about conventions in electronics, a good place to start is current flow notation :stuck_out_tongue:

For those of us who have spent many years studying and working in the field of electronic design, we stick with convention because it allows a common understanding and speeds up reading and drawing of designs. Readability is a core function and when you make large complex designs and if you spend some time trying to fault find in bad drawings, you’ll soon see the logic behind it.

5 Likes

Well, currently many programmers are questioning the value of inheritance vs composition, this is actually very similar in some ways, and helps me understand better what some of the problems with inheritance are. I don’t think there is a one size fits all solution, but it is a kick in the teeth every time I have a fairly complete picture in my head and am ready to throw together a pcb, and find the pins are all in the wrong place.