Difference between revisions of "Techniques"

From OpenCircuits
Jump to navigation Jump to search
(→‎Best Practices for PCB Layout: "Do not partition ground into analog and digital planes.")
(move "Software design tools" section to software tool)
Line 140: Line 140:
A directory of [[hardware tool]]s that you may find useful.
A directory of [[hardware tool]]s that you may find useful.
== [[software tool]]s ==
== Software design tools ==
== Software design tools ==
Some people still build circuits without ever using any software tools.
A directory of [[software tool]]s that you may find useful.
For complicated circuits, software design tools can save a lot of time.
'''This section is being reorgnized and expanded, it may be a bit messed up for a few days.'''
The design tools fall into several classes:
=== Schematic Capture ===
Listed in Class as SchCap
=== PCB Layout ===
Listed in Class as '''PCB''', generally includees a footprint editor to make new parts.
=== Circuit Simulation ===
Listed in Class as '''CirSim'''.
=== Other ===
Other tools that do not fall in the classes above
=== Suites ===
"Suites" that combine schematic capture, component editor for the components used in schematic capture, circuit simulation, PCB layout, autorouter, and footprint editor for the footprints used in PCB layout.  A suite can be nice as you need draw the circuit only once.
Quite often people mix-and-match tools -- using a schematic capture from one suite to generate pretty schematics and a netlist, then importing the netlist a third party Specctra autorouter, then importing the result into a PCB layout program from another suite for the final manual clean-up and design rule checking.  For this to work the tools must have compatible import and export tools.
(Is there another place for listing stand-alone tools such as a [[switching regulator|switching power supply]] "wizard" and a RF analysis tool? -- yes as this section is not limited to suites [anymore] )
=== Links ===
In no particular order:
<!-- Please use a valid license ie, BSD, GPL, Crippleware, Nagware, Shareware, Payware etc.. And specify platform. There's usually a lot of free win32 crippleware without sources makeing you victim of the design file hostage scenario. Also some packages are sub-packages to others, thus maybe no needing an entry of their own. -->
{| class="wikitable"
! Class !! Name !! Platform !! License !! AutoRouter !! Comments
|| [http://www.liquidpcb.org/ Liquid PCB]
|| Linux, Win32
|| GPL || no || [http://liquidpcb.wiki.sourceforge.net/ Liquid PCB wiki at SourceForge] Liquid PCB is a computer aided design application for designing printed circuit boards. You are not restricted to straight tracks and 45º angles, you can draw tracks any way you like. The tracks will move and bend as required to maintain your design rules. It is open source, and still in the Alpha stage.
|*PCB ||[http://geda.seul.org/ [[gEDA]]] || Linux, *BSD || Free, OSS || autorouter
||This may be the goto open source tool for schematic capture through PCB.  Generally does not run on Windows. There are no restrictions on the package to cripple it for a paid version.  Boards may be very big.  Would be nice to have a full review sometime.  [http://geda.seul.org/wiki/ gEDA wiki] includes schematic and [http://sourceforge.net/projects/pcb/ PCB] for makeing [[gerber|gerbers]] etc...
|*PCB ||[http://mccad.com/ McCAD EDS Lite] || MacOSX, Win32 || Free demo max 200 pin || autorouter || Free demo version available for download, 200 pin limit
|*PCB ||[http://applefritter.com/replica McCAD EDS SE] || MacOSX, Win32 || "free"? || autorouter || Free with book, "Apple I Replica Creation". Supports 750 pins, 11"x17" sheet size, 6-8 data layers. <tangent>(any useful tips in this book for those who want to build a CPU from scratch?) <reply>No, there are not.  The book is more entry-level. - Tom Owad</reply></tangent>
|*PCB ||[http://www.freepcb.com/ FreePCB] || Win32 || GPL || can use [http://www.freerouting.net/ FreeRoute] || PCB Design Software
|*SchCap ||[http://tinycad.sourceforge.net/ TinyCAD] || Win32 || LGPL || n/a  || Schematic Drawing Software
|[http://kicad.sourceforge.net/ KiCad] || BSD, Linux, MacOSX, Win32 || GPL || autorouter || http://www.lis.inpg.fr/realise_au_lis/kicad/ EDA suite ; [http://kicad.sourceforge.net/wiki/ KiCad wiki]
|*SchCap *PCB
|[http://expresspcb.com/ Express SCH/PCB] || Win32 || Free use crippleware || ?  || ExpressPCB's propietatary free schematic capture & PCB layout designer locking you to use ExpressPCB for manufacture explicitly. Manufacture in 3 business days of two boards for ~100 USD.
||[http://altium.com/ Protel DXP] || Win32 ||  || autorouter || [http://techref.massmind.org/techref/app/protel.htm independent Protel users FAQ]
|[http://cadsoftusa.com/ Eagle] [[Eagle Links]] || Win32, Linux || Free use crippleware ||  || ( Russ Hensel says>> ) I have been kicking around as a hobbyist for a while and Eagle seems to be the main hobbyist circuit/pcb cad program.  It supports schematics and board layout with an auto-router.  The free version can easily support 2 dual op amps with wide traces and a one sided board.  There is quite a lot of info on the Internet and many projects supply eagle files.  There is also a $125 non profit version supporting larger boards.  It then gets expensive.  Eagle is not really easy to learn: cut for it would be copy in almost any other program.  It probably deserves a page or more of its own. ( << end RH ) <br>http://cadsoft.de/ <br>[http://www.sparkfun.com/tutorial/PCB/eagle-output-tutorial.htm Eagle tutorial from Sparkfun] <br>[http://www.makezine.com/blog/archive/2006/03/how_to_make_a_custom_library_p.html Eagle tutorial (makezine)]
|[http://diptrace.com/ DipTrace] ||  || Crippleware || ||  250-pin Freeware or Purchase more advanced versions
|[http://winqcad.com/ WinQcad] ||  || Crippleware || || Demo with max 499 pins available for download
|[http://www.hutson.co.nz/ Rimu Schematic and Rimu PCB] || Win32 || Payware || || Schematic & PCB design for MS-Windows
|[http://mentala.com/ SuperCAD and SuperPCB] || Win32 ||  ||  || Mental Automation schematic & PCB for MS-Windows
|[http://www.autotraxeda.com/ autotraxeda.com] ||  || ||  || AUTOTraxEDA needs MS-NT, won't work on MS-W98/ME. User forums have shown a certain lack of satisfaction with the program.
|[http://www.holophase.com/dleval.htm holophase.com/dleval] || Win32 || Crippleware ||  || Circad's DOS version is free for non-commercial use.
|[http://www.geda.seul.org/ geda.seul.org] || BSD, Linux, MacOSX || GPL || autorouter || xNIX Electronic Design Automation project has Schematic capture with PCB CAD.
|[http://www.vutrax.co.uk/pricing.htm vutrax.co.uk/pricing] || Win32 ||  || autorouter || Vutrax for MS-Windows. Free for under 256 component pins.
|[http://www.interactiv.com interactiv.com] ||  ||  ||  || Electronic Workbench, 400 USD for 500 pins. Includes schematic capture and simulation, virtual instruments and PCB layout. Said to be stable.
|[http://pcb.sourceforge.net Harry Eaton's PCB] || BSD?, Linux?, MacOSX?, Win32  || GPL || autorouter || PCB design program which can work under any POSIX compliant operating system like Linux (or BSD under API compability layer). Have Gerber and PostScript output options.
|[http://www.labcenter.co.uk/ labcenter.co.uk] ||  || ||  ||  They have a lite version "PIC bundle" ~149 USD includes schematic + simulation + pcb layout. You can write pic code for your pic schematic design and simulate. Even multi-pic, keypad, lcd display. Right now it can only simulate PIC16x83, PIC16x84 (lite version limited to 1k program code). Working on more pic modules. Will not produce Gerber or Excellion drill files. Only dxf, bmp, hpgl, tiff output (not sufficient!).
|[http://www.ivex.com/ ivex.com] ||  || Payware ||  ||  Winboard PCB Layout, now [http://www.calcentron.com/Pages/NTEHomePage/ivex_cad_software.htm calcentron.com].
|[http://www.illuminated.com.au/ illuminated.com.au] || Linux, Win32, DOS<!-- Claimed --> ||  ||  || Draftcad, Schematic Capture and PCB Design
|[http://www.winqcad.com/ winqcad.com] || Win32, Linux+Wine || ||  || MicroCad
| [http://www.4pcb.com/index.php?load=content&page_id=46 "PCB ARTIST"]  || Win32 || ? ||  || schematic + layout. Seems to lock you into using Advanced Circuits for manufacture (?).
| [http://www.sunstone.com/PCB123.aspx PCB123]  || Win32 || ? ||  || schematic + layout. Seems to lock you into using Sunstone for manufacture (?).
| [http://www.best-microcontroller-projects.com/schematic-drawing-program.html ProSchematic] || Win32 || "free trial" || no || can make schematics that look almost like photographs of a solderless breadboard.
|The generic term for many simulation programs.
|[http://www.linear.com/designtools/software/ LSpice]
|A free version of Spice from Linear Technology.  Draw the schematic and see its simulations.  Many components.  Seems to be very popular.  Should ( will ) have a page here of its own.
| name and link || platform(s) || License? || AutoRouter? || Comments
(Some of this information in this table came from the [http://techref.massmind.org/techref/pcbcads.htm list of software design tools at the Massmind]).
A [http://sourceforge.net/search/?type_of_search=soft&words=schematic SourceForge search for "schematic"] lists dozens of tools.
Other than the ones already listed above, what tools in that list are useful for open circuits?
Is there any way to objectively compare these tools?
How well did they do at the
[http://www.pcbwest.com/topgun/ PCB Top Gun contest] ?
Timing diagrams:
* GTKWave Electronic Waveform Viewer http://intranet.cs.man.ac.uk/apt/projects/tools/gtkwave/
* TimingTool  http://www.timingtool.com/
When you want to post a picture of a schematic or timing diagram on a web site, should you use JPEG or PNG?
I hope these 2 pictures answer your question:
* http://www.ninechime.com/gallery/sketch/StopJPEGing.jpg
* http://www.ninechime.com/gallery/sketch/StopJPEGing.png
== [[PC-Microcontroller Communications]] ==
== [[PC-Microcontroller Communications]] ==

Revision as of 19:29, 21 August 2009

There are a wide variety of techniques used in electronics.

Printed circuit board design/fabrication


Software Design

See Software Design Tools below.

Step by Step by using Software Design Tool

  • make sure the dimension and shape of PCB
  • make sure the size and location of Via for PCB stand
  • Make sure each components footprint.
  • each components are placed on suitable place by put on a hardcopy of simulation PCB
  • All components get enough clearance between them.
  • Silkscreen layout is confirmed.
  • PCB is drawn.
  • silkscreen adding the following:
    • version no.
    • organization name
    • board name
  • Netlist is ran and got a no error result.
  • DRC is ran and got a no error result.
  • Overall is checked.
  • generate Gerber and send to PCB Manufacturers.

Manual Design

Somepeople do this with layout on clear film or by directly drawing on a circuit board, of even by scratching, grinding.... For now let them google this.

Homebrew fabrication

Before exploring these techniques, you should understand your options with regard to services such as ExpressPCB.com and PCB123.com. Being able to have several boards fabbed in 2 days for $59 (for example) makes it harder to justify the hassle of etching your own boards at home.

Commercial PCB fabrication

Best Practices for PCB Layout


  • Provide the easiest path (lowest impedance) for current to flow
    • Return current tends to flow directly under signal trace (for PCB having ground plane)
    • Inductance increases with length of traces
    • Inductance increases with the area enclosed by by signal trace and ground
  • Prevent digital currents from contaminating analog currents


  • Partition (not necessarily isolate) PCB into "analog stuff" and "digital stuff".
  • No digital signal traces should cross over analog ground, and vice versa
  • For components having both analog and digital signals (e.g. ADC), orientate components so that the analog signal traces goes only over the analog ground plane, and digital signal traces goes only over the digital ground plane
  • AGND and DGND of ADC must have a small impedance (i.e. separated by short distance)
  • Add decoupling capacitors close to Vcc and DGND of ICs
  • Add ferrite beads and capacitors (PI-filter) to power rail for low-pass filtering (reduce ripples).


  • Place fixed components first (components location that cannot be changed, e.g. connectors, buttons, etc)
  • Separate components into 3 groups
    • Digital signals only
    • Analog signals only
    • Digital and analog (Mixed) signals
  • Do not partition ground into analog and digital planes.
    • Use a single ground plane. See the "grounding #References" below.
    • Is there ever a good reason not to use a single ground plane? Please tell use about it.
  • Orientate components that have mixed signals according to the orientation of the ground planes, and straddle components over DGND and AGND
  • Place digital only components over DGND
  • Place analog only components over AGND
  • Decoupling capacitors should be as close to the ICs as possible
               | | | | |
 -------+-+--|-+---------|-------- Vcc
        |C|  |    IC     |
 -------+-+--|---------+-|-------- GND
               | | | | |
  • Lay critical (noise-sensitive) traces first (e.g. crystal, analog signals)
    • As short as possible
    • Use 45o turnings instead of 90o
  • Paired signal traces (e.g. TX+, TX- in ethernet chips) should run parallel along each other
    TX+ -----\
    TX- ----\ \
             \ \
              \ \
               \ \
                \ \------------ TX+
                 \------------- TX- 


Circuit construction (Prototyping - Other than custom PCB)

["Construction Ideas"] has nice photographs of the above circuit construction techniques.

Soldering techniques

(Have you seen this CNC solder paste/pick n place ?)

Hardware tools

A directory of hardware tools that you may find useful.

software tools

Software design tools

A directory of software tools that you may find useful.

PC-Microcontroller Communications

Discussion of the various methods to connect a microcontroller or embedded system to a PC...

Embedded System Programming and Testing

To add to the confusion programming in embedded system can mean a person writing a program or a device called a programmer "burning" a program into a chip. This section is for the "burning" meaning of programming.

  • Many systems use JTAG for programming and testing. (Such as Atmel AVR embedded systems]).
  • Other systems use some other kind of in-circuit programming.
  • Some people use bootloaders to make re-programming a little quicker.

-- not sure that this next one is not misplaced ? -- We're talking about "programming and testing" ? What else do you use to test op-amp circuits?

Humans writing a program almost always do it in a language. Here is a section that discusses some of these languages: Programming Languages


  • The Earth Signal should short to whole metal Case
  • Digital/Analog GND should separate to this Earth Signal, and should connect a Y-cap. to filter the noise between them.
  • Attention: do not place near between Earth Signal and Digital/Analog GND, otherwise some spark come out, and affect your whole system.

Misc Tips Tricks

Misc Tips Tricks

Further Reading

Environmental Issues

see better for the environment.