The Art of Engineering

  • Home
Showing posts with label electronic design automation. Show all posts
Showing posts with label electronic design automation. Show all posts

Tuesday, November 04, 2008

Open Source EDA

5 comments : Posted by Duncan Drennan at 08:30 Tags: electronic design automation , electronics , engineering , processes
Electronic design automation tools like OrCAD, PADS and Altium Designer are part of an electronic engineer's day–to–day life. We need these tools to tell the story of our designs – to lay out the concepts in a symbolic form in the schematics and a physical representation in the PCB files (and much more).

Most companies use expensive commercial tools (like those mentioned above) which offer many features and benefits, but these do have some disadvantages. The biggest hurdle for smaller companies is cost, which makes it difficult to get going – you cannot earn money to pay for the tools without using the tools, which is a vicious circle. Another big disadvantage of commercial tools is their closed nature – file structures are closed and it is difficult to add custom features to the tools. Further to this, if you need improvements or bug fixes you may have to wait a long time before these become available, especially if you are a small customer. In some cases companies are bought out, forcing you to change software and go through a whole new learning curve. To phrase it differently: small users have little say in the direction of the development of the tools.

The big advantages of commercial tools are the multitude of features (if you need them), and commercial support.

gEDA logo
When I had to choose an EDA tool suite my (non–existent) budget was the biggest deciding factor and I decided to start using an open source set of EDA tools, gEDA. I have been using gEDA since the middle of 2007, and have completed a number of projects with it. At first I just did my schematic layout with gschem and outsourced the PCB layout which was done in PCAD. Recently I completed some PCBs for a project which where done with gEDA's PCB programme (this was my first entirely gEDA project).

I initially made my choice based on the free price of gEDA, but as I used it and learned more about how the suite works as a whole I discovered that there are far more compelling reasons to choose an open source EDA suite over a closed one.

The open nature of both the file structure and the source code is an incredibly powerful tool for productivity. Think about this simple example: the creation of PCB footprints (or land patterns). Creating footprints is often a long and arduous process which involves graphically drawing out exactly what it should look like and vetting the details. Each subtle variation on the footprint requires more time drawing and checking. The well documented open file format and excellent documentation on the creation of footprints for PCB allows scripts to be written to automate the creation of footprints resulting in a significant time saving. Similar scripts are also available for schematic symbol creation. These are really simple examples of what can be accomplished when the file structure and code is open and documented – far more exciting things can be done, just about anything you can think of!

gEDA is also blessed with a very active support and development community, which operates mainly through the gEDA mailing lists and the gEDA wiki (which provides excellent documentation). I have asked many questions and received quick and helpful responses. How long did your last support request with a commercial company take to be resolved?

Using an open source EDA suite provides more stability and control over the future of your tool chain. If a large commercial tool set is either bought out, or decides to change how it works significantly you have little choice but to embrace that change, whatever the cost or learning implications are. An open source EDA tool provides you with a never ending upgrade path for the future, as well as access to the direction the tool takes. This stability comes with a responsibility to be a part of a community, rather than just a consumer. By becoming a part of the community you create a mutualistic relationship where everyone benefits.

gEDA (or other open source EDA tools) may not be suitable for everyone, or for every project, but there are a large number of projects that can be supported by these flexible tools. Using gEDA does require a shift in the way you work, but so does any other change to your EDA tool chain. Putting in the effort to learn how to use gEDA is certainly worth it and offers the opportunity for large productivity leaps. These productivity leaps are important, as they ensure that engineers spend more time creating, designing and solving problems, rather than wasting hours on repetitive tasks. I am using it exclusively to provide solutions to my customers, and you should take a closer look at it too.

Here is a list of open projects created with gEDA. One of the most impressive open hardware projects that I have seen which uses gEDA is the Free Telephony Project, which not only shows the quality of these tools, but also the magnitude of what can be achieved with open hardware development.

Please note that files and projects created by you are entirely yours and can be used for commercial purposes without any ramifications. The projects noted above have chosen to share their work under open licenses.

There are no up–to–date Windows binaries available for gschem and I found that the PCB binaries were really slow. I run the entire suite on Cygwin. Here are the install instructions for gEDA on Cygwin. I also recommend compiling PCB on Cygwin for significantly improved performance.

I posted my thoughts on creating my first PCB with PCB to the gEDA mailing list – this may give you some ideas of initial hurdles and ideas that you will need to get through.
Read More

Monday, October 20, 2008

Light and heavy symbols

4 comments : Posted by Duncan Drennan at 09:09 Tags: electronic design automation , electronics , engineering , processes
This post is aimed at electronic engineers working with electronic design automation (EDA) packages.

As an electronic engineer you have probably been through it. It all starts simply and clearly. You need to draw a schematic; so you make some symbols, attach some attributes to them and get going. Then you draw some footprints for the PCB layout and make sure the correct footprint names are attached to the components you have created. The boards go the PCB manufacturer and you use a simple spreadsheet to manage the bill of materials (BOM). Everything goes nice and smoothly – you are happy.

Then another project comes along – a bigger one with more engineers working on it. You carry on like you have before, explaining to people how to create new components and footprints and how to make sure the part numbers are correct. It all seems to be going well. The PCBs and components arrive, but something is not quite right. One of the components (an expensive one!) is the wrong part, and another component does not fit onto the PCB footprint correctly (even though there is another component with the same footprint that does fit correctly). What went wrong?

Eventually with more projects and more people managing the component library becomes a full time job for someone, and getting a new component approved is a lengthy process for engineers. Let's not even talk about managing the now massive stock and BOM spreadsheet which keeps you awake at night. The quick process you started with has become a slow moving, time consuming beast. We need to find a way to kill that beast so that engineers can spend more time creating solutions to problems, and less time on administration.

There are two ways to handles components. We can either have "heavy" symbols, or "light" symbols. First a few definitions so that we are all talking the same language.
component:an actual physical part.
symbol:a diagram depicting a component which is placed in a schematic drawing.
footprint:the physical layout of a component on a PCB.

A heavy symbol has all of its attributes, such as part name, value, voltage, tolerance, footprint, ordering number, etc. specified in the symbol library. A light symbol has no attributes specified in the library and all attributes are added at a schematic level.

There are some obvious flaws with each approach. A heavy symbol library will quickly grow in size – just think about having a symbol defined for each different opamp or resistor that is used. The graphical representation of an opamp is generic to a number of different parts, but now duplicates are created for each component. If a fault does creep into the library it can result in a number of different symbols needing to be fixed.

With a light symbol library all the attributes are added to the schematic. Maintaining the symbols is easy (because there are fewer), but ensuring that the correct attribute information is added can lead to errors (each time data is manually copied or entered there is the potential for an error).

There are also some obvious advantages. A heavy symbol immediately makes a lot of information available in the schematic which can be passed on to other tools, such as the footprint to the PCB layout package, or the part number to the BOM. A light symbol allows for information to be drawn from multiple sources, and the schematic can be updated without having to propagate the changes back into the library.

Here is a brief summary of the feature of each type of symbol.

Heavy symbols:
  • Data duplication,
  • Errors requires changes to numerous symbols,
  • Require a librarian to maintain symbol library sanity,
  • Single source of information.
Light symbols:
  • No data duplication,
  • Errors can be fixed at schematic level, or only affect a single symbol,
  • Allows multiple data sources for component information,
  • Requires addition of attributes at schematic level.
If you remember that I am against information duplication, then you should have guessed that I am in favour of light symbols.

The "light" and "heavy" nomenclature arose out of discussions on the gEDA mailing list. The gEDA wiki has a brief summary, and the two threads which I think are the most relevant are "Light vs. Heavy gschem symbols?" and "Heavy symbols and such."
Read More

Monday, October 06, 2008

Information duplication is the enemy of efficient systems

No comments : Posted by Duncan Drennan at 08:29 Tags: electronic design automation , engineer simplicity , engineering , problems , processes
Every time information is duplicated there is the possiblity of an error. Let me say that again, every time information is duplicated there is the possibility of an erorr.

The electronic design process is made up of different parts such as schematic capture, PCB layout, component procurement and assembly. Each step requires information to be passed backwards and forwards. Certain information is only relevant to particular steps, for example you only need the exact part number for ordering, while a more basic part number or description could be used in the schematic (passives like resistors and capacitors are a good example of this).

Deciding what is important amongst all this information can be difficult, which often results in much of the information being duplicated in each step. The tools we use for electronic design automation (EDA) can inadvertently encourage us to create duplicate parts with detailed information contained within them. This seems fine until the parts library grows to an unmanageable size and discrepancies start to creep in, resulting in design and manufacturing errors.

Passing information between different systems, like the stock management and design systems can create an even larger mess. Typically these two systems are separated from each other and keeping them synchronised becomes a full time job. Any discrepancies between the two systems result in expensive time losses due to incorrect stock. The more information there is to keep track of, the greater the chance of errors and wasted time and money.

I am sure that most engineers have at some point in their career come across massive stock and bill of material spreadsheets which are overwhelming to manage, not just due to the amount of information, but also due to the incorrect tool (a spreadsheet) being used.

Yes, there are probably comprehensive ERP systems that can help with these problems, but those are not necessarily accessible to small engineering firms or individuals.

Information duplication is the enemy of efficient systems, we must eliminate it wherever possible.

That is the first rule of the process that I am developing for my own business. It will help me to develop faster and better, and once it is working it is going to allow every engineer access to the same opportunities.
Read More
Older Posts Home
Subscribe to: Posts ( Atom )

Search This Blog

Subscribe

Get the latest posts immediately

 Subscribe in a feed reader

or enter your email address:

Tags

About this blog

Duncan Drennan

I'm Duncan Drennan and this blog is about spreading ideas regarding engineering, our environment and creating a better world. You can also follow me on Google Reader.

About Engineer Simplicity

Engineer Simplicity specialises in the design and development of electronic products.

Copyright Notice

© Copyright 2006-2010, Duncan Drennan, All rights reserved

Popular Posts

  • Solving problems or creating solutions?
    As engineers we spend a lot of time solving problems. A customer has a problem and it needs to be fixed. The electronic boards you have just...
  • Some lights are more equal than others
    The short version (my "elevator pitch"): Compact fluorescent lamps (CFLs) use about a fifth of the energy of a normal (incandescen...
  • 7 best ways to stop load shedding
    We are in the middle of an energy crisis and each of us need to make some dramatic changes to ensure that we have electricity, and that the ...
  • eWaste recycling in South Africa
    eWaste is a particularly difficult issue to deal with as it contains many different materials and lots of extremely hazardous substances. I...
  • The first post
    So here we are, the first blog post...well, really, here I am. My name is Duncan Drennan and this is my blog on business, design, electronic...
  • What Engineer Simplicity does
    There are a lot of steps to turn an idea into a product. Each step requires care and attention to ensure that the best product is created. B...
  • What we can't imagine
    When James Bond used miniature cameras in the 60's and 70's the thought of a wireless phone that can take pictures and send them t...
  • A slightly different direction
    With 48 post over nearly three years, I am certainly not a prolific blog writer. My goal has never been to write a lot, but to rather explor...
  • The blessing of a child
    On 29 June 2009 my wife and I became parents to Grace Drennan. It is a great privilege, honour and responsibility to be a part of this amazi...
  • Urban agriculture
    Urban agriculture (UA) – the production of food within a city – is an important aspect of securing our food supply as well as restoring our...

Blog Archive

  • 2011 (1)
    • August (1)
      • The blessing of a child
  • 2009 (11)
    • June (1)
    • May (2)
    • April (1)
    • March (3)
    • February (2)
    • January (2)
  • 2008 (30)
    • November (3)
    • October (5)
    • September (1)
    • August (2)
    • July (3)
    • June (4)
    • May (3)
    • April (2)
    • March (2)
    • February (4)
    • January (1)
  • 2007 (6)
    • October (2)
    • June (1)
    • May (1)
    • March (1)
    • January (1)
  • 2006 (5)
    • October (1)
    • September (1)
    • August (1)
    • July (2)

© The Art of Engineering 2013 . Powered by Bootstrap , Blogger templates and RWD Testing Tool