Useless schematic symbols of MCUs in CAD software

This is what the symbol of ATmega8A in KiCad looks like:

As you can see this has no resemblence to the actual PCB footprint of the chip.
Now if I was gonna print this design and put it as a poster on my wall this would do great. Everything would look amazing.
But unfortunately I am not designing a circuit merely for aesthetic purposes. I in fact intend to create a PCB. And anyone who has ever designed a PCB in real life k ows that it's important where you place components. Something needs to be close together, some things need to be far away, some things hav a specific placement like displays, buttons, etc. And with this stupid symbol I have no idea where the actual pins are when designing my circuit.

Why on earth ido the symbols look like this?
I have to spend an hour every time I want to use a new IC and make a sensible symbol for it because apparently everyone else on the planet uses CAD software as a glorified MS paint for drawing circuits, not for actually making a PCB.

That is the schematic symbol, i.e. the symbol you use when drawing the interconnections to other components during schematic capture.

When you are ready to make your PCB outline, there is an associated footprint for this schematic symbol.

It is this footprint that you rout the traces to and from its pad/pins.


I know that.
But you import this schematic into your PCB design.

The schematic isn't meant to represent/show the physical size, shape, or numerical order of the device or it's pins.

It's meant to show in a clear uncluttered diagram how the various device pins connect to eachother.

If the schematic diagram used symbols that were exact "replicas" of the components then it would quickly become an unreadable mess.

Imagine a schematic that used a BGA part.

Full discloser, I use a different PCB design application.

However, I have used 4 different programs over the years and they are all basically the same.

Your schematic capture symbol does not need to look like, in any way shape of form, to the PCB footprint, if that's what you are referring to.

It is up to you to decide which footprint you associate with the schematic symbol.

When you turn on the rats nets you see where the pins connect to.


For example this does not look like an Arduino Mega.


You import the pin to pin connections, i.e. the Net List.

I know all that. But imagine you are designing a circuit. You draw the schematic using that symbol. All easy to read and dandy. Then you go to the PCB design tool, and now all the sudden you realize everything is a mess:
It turns out PB0, PB6 and PB7 are actually on the other side of the chip, not clustered together as shown in the symbol.
So you have to go back and rewire your 7 segment in order to avoid a routing mess. You realize that PC2 is closer to PD2 than it is to PB2. And so on.

At least for me, knowing where each pin actually is is a crucial part of designing. I can't go on and just connect my 7 segment or my ISP module to whatever pin that looks better in the diagram. Otherwise routing in PCB design will be impossible.

Am I missing something here?

I hear you, and yeah ... it would be nice sometimes if you could pick the layout of the logical schematic so it was closer to the actual pin layout you were going to use. Would save a lot of of time.

1 Like

That's called refining your design.

The best you can do, sometimes, is turn on the rats nets then rotate the component to see if the interconnections look better.

Some times you go back and re-work the schematic, however, this can be very unsatisfactory.

When you are designing your schematic, always have the data sheets handy to see where the actual pins are located.

As a hint, make a paper copy of the I.C. footprints (with signal names).
Cut these out, then tape all of them to a single 8 1/2 X 11 piece of paper.
Copy this page and add it to your design documents for the project.
Do this ahead of time so you have all the footprints before you start the design.

There are times that you have to weave in and out top to bottom to get things to work out.
Sh*t happens.

Why the hell was this layout acceptable ? :angry:

No it's called defeating the purpose.
Computer assisted design is supposed to make things easier. Not give you a nice and tidy drawing which has to be "refined" 100 times.

I genuinely want to know how everybody else does it. Actual PCBs most of the time go into cases and enclosures and have input and output ports. Placement is a must-know.

Perhaps it's a case of "the right tool for the right job".

Schematic capture is not the tool for mechanical placement of off board connections. That's done during PCB layout where you define the board outline, mounting holes, connector placement etc.

In my opinion, there's a balance to be struck between an easy to read schematic and an easy to trace/debug PCB layout.

Multi layer boards to the rescue.



Yes, the PCB design looks NOTHING like the schematic.
The schematic is designed for understanding signal flow and power supply connections.
The PCB is designed to get ALL the components connected using as economically as possible.

TWO different criteria.
AND both necessary.

Especially an easy to read schematic for trouble shooting.

Tom... :smiley: :+1: :coffee: :australia:
PS. (45 years experience)

Ah I guess I'll give the paper print method a try. As there doesn't seem to be any solution.

A schematic is not the same as a board layout.

A schematic normally attempts to follow a standard template. Ground bottom, Vcc top, inputs left, outputs right. It is for ease of reading.

A board layout has to respect ease of routing, minimising board space, decoupling, thermal effects, RF effects, etc. etc. MCU manufacturers may have multiple packages for the same chip.

Feel free to create a new schematic symbol that shows the pins "realistically"; if you're using a CAD system that doesn't let you create new symbols, you should switch.

For some designs, I set the "swaplevel" of pins in a symbol so that they can be changed arbitrarily on the PCB editor, to make the layout come out better. (then sometimes I go back and neaten up the schematic. Or use buses.) You can do whole designs based on making a neat PCB (cough, cough: not unlike the Arduino itself.) (I do not know to what extent this is an EAGLE-specific feature.)

On the third hand, people these days add layers and let the autorouter fuss with inconvenient pinouts, just so their schematic makes sense. Optimal design of single-sided boards is practically a lost art.

But there is a solution and its easy enough; just design your own symbols to match your view of how close they ought to be to the actual footprint.


Exactly. Of course Kicad allows you to do that. In fact you can use the symbol editor to do that. Start out with the symbol that you are using already is usually a good idea, simply because the pin numbers already correspond to the actual pin numbers, and you will not get anything unwanted when associating a footprint.
The issue you are having, has nothing to do with the program, but something with the symbol library.
Keep in mind that Kicad is 'open-source' and free, and that the symbols have been 'donated' by someone who spend time making work lighter for you, by providing you with 'ready-made' symbol for a part.
The same goes for footprints, which i tend to modify a little and add to my own custom library (a bit tricky to set up that..)
You will find that with Kicad, since the author for the schematic program and the PCB program are not the same, they have confusing 'shortcut keys' between tham.
Still Kicad is one of the best open-source programs i know, 2nd to 'Stockfish' but better than InkScape.

Takes about 30min to work out how to do it, and about 5 minutes per unit from then on.
Mine now looks like this

File is included in the zip (1.1 KB)