Workflow for Designing PCBs

As a Software Developer, I have tools and workflows to break down complexity, into pieces I can build. Mostly though I have a workflow: a system of steps that I used to get the project completed. I have this for the software but what do we do for PCB’s? I find that I get bogged down searching for components and footprints, spending more time on that than schematic capture or pcb layout. I see lots about board layout and schematic capture, but what about the process of developing footprints and validating them.

So far my workflow goes like this:

  • Create Schematic Libs of components
  • Create Footprints of Components
  • Capture Schematic
  • [haze of confusion]
  • Layout PCB?
  • (I’m adding a new step called Send to Actual Eng to correct and validate)
  • Send to PCB Fabricator
  • Send to PCB Assembly
  • Start Over because 1 component footprint was supposed to be viewed from the bottom up not the top down
    so the pinout is reversed.

I’ll draw something once I have it all figured, but as of now it’s very up in the air.


for creating libraries footprints this free tool might help. Another free download that might help during PCB design is at Saturn PCB Toolkit - Saturn PCB Design | Saturn PCB Design

Make your own library parts or if you do use a 3rd party one, verify it 1000% before you use it. I’ve been stung before with this so I now do my own. Print out at 1:1 and check the new parts to make sure the pads are correct.

Altium has a footprint generator that makes quick work of SMD parts. Once you are used to how the library editor works, it is quiet quick to make new parts but verification needs to be done.

1 Like

So you basically trust no one? My plan was to print it out and glue the components to the paper to be sure. I was also considering using toner transfer to make the top layer as a sanity check.

Not so much don’t trust, just that you should triple check any 3rd party parts and with the work to do that, better to make it yourself.

Generally, footprints of schematic components can easily be available on the website of software you are using to create PCB layout. But if you can’t find proper footprint for your component, you can create footprint in your software easily. For that you need Package and mechanical dimensions of component which can be found in the datasheet of that component.

I disagree Nicole. I’m currently struggling with this component:

No reliable datasheet to be found, and certainly no footprint information to be found either. None of this is easy, however what I have found is that by starting with a drawing file (Autocad DFX) of the part, built in another CAD program, you can get pretty close to the footprint. Still need to validate them before you try and build 10 of them though. Nothing about this process is easy.

There is a 3D model of that on 3dcontentcentral that might help you with this.

And another Google search found this with the PCB footprint details

The drawings are for the wrong part but you can see this anyway.

Big fan of your workflow. Much like my own only I failed to explicitly name the largest step:

“Haze of Confusion” :sweat_smile:

I would say don’t try and glue down components to a piece of paper or anything like that. You can check one piece at a time by printing out just the footprints. Don’t design the whole board before you know if a package is the wrong size!

I usually spend the ~100 or so USD to have OSH Park send me a board and to gather components on mouser. I can verify myself.

A heat gun and high quality (I think it is called type 4) solder paste makes it a breeze. A cheap USB microscope, a razor blade, and some forceps can even make you the God of 1 x 1 mm components.

That’s all verification though.

To make libraries I follow these directions at the link ( EaglePCB ) and I study datasheets and drawings to get faster at deciphering the necessary measurements. Always pick the most logical “origin” ( 0 , 0 ) when making footprints. This is learned with experience as you encounter poorly placed origins.

Eagle library instructable

I recently learnt that you should arrange the components before trying to route them. <- seems obvious now doesn’t it.

1 Like