GithubHelp home page GithubHelp logo

skeleton-geda-project's Introduction

skeleton-geda-project

skeleton-geda-project is meant to serve as a batteries-included foundation for a gEDA project.

Getting started

To begin, run the init.sh script. This will prompt you for your name of your new project and seed the required configuration.

Open NAME.sch with gschem. It is important that gschem is started from the root directory of the project. Draw your schematic.

When the schematic is largely complete you can run make pcb to seed the initial PCB layout and update it after the schematic is changed. After running this, you'll need to update the netlist (File->Load netlist file and select NAME.net) and add any new components (File->Load layout data to paste-buffer, select NAME.new.pcb, and click to place the new elements on a vacant part of the board).

Feel free to overwrite this readme when you no longer need it. skeleton-geda-project is available at http://www.github.com/bgamari/skeleton-geda-project.

Requirements

This requires a complete gEDA installation. On Ubuntu, the required packages can be installed with apt-get,

apt-get install geda geda-gnetlist geda-utils pcb-gtk

Makefile rules

The included Makefile has a variety of useful rules,

  • tsymbols: Generate tragesym symbols
  • check-symbols: Run gsymcheck on the generated symbols
  • pcb: Update the pcb file and netlist
  • $NAME.pdf: Generate a PDF of the PCB layout
  • $NAME.ps: Generate a Postscript of the PCB layout
  • $NAME.bom: Generate a textual bill of materials
  • gerbers.zip: Generate a Zip file containing Gerbers of the layout
  • osh-park-gerbers.zip: Generate a Zip file containing Gerbers appropriate to send to OSH Park

Where can I find symbols/footprints?

If you are in need of a symbol or footprint, Google and Github are always reasonable places to start searching. Moreover, there are several repositories of high-quality symbols and footprints distributed under a variety of terms,

How do I make symbols?

There are several ways to create gschem symbols. For most cases, tragesym is the easiest way to compose a symbol. However, in cases where more control over layout and presentation is needed, gschem is preferred.

With tragesym

The tragesym utility (packaged in the geda-utils package in Debian-derived distributions) is a useful tool for generating symbols from a simple text description. You will find an example tragesym description in the sym/l79lxx.tsym. Simply copy this file and update the name, device, footprint, description, and author fields in addition to the pin definitions. The Makefiles tsymbols rule will .sym files from all .tsym files in the sym/ directory. As a rule, it's best to only add the .tsym source to version control.

With gschem

One can also create symbols using gschem by creating a new schematic, drawing the symbol and pins, and saving in the sym/ directory with a .sym file extension. See http://ashwith.wordpress.com/2010/09/23/creating-your-own-symbols-in-gschem/ for more details on this process.

How do I make footprints?

There are several tools for generating footprints. These include

  • Darrell Harmon's footgen which converts textual descriptions to pcb-compatible footprints
  • Edward Hennessey's graphical gfootgen
  • DJ Delorie's web-based generator for two-pad footprints
  • DJ Delorie's web-based generator for dual-inline packages
  • Stefan Salewski's text-based sfg tool.

See the gEDA wiki for more details.

How and why would I use hierarchical sheets?

It is good practice to preserve clean separation between the functional units of a design. This is especially true in large designs which are too large to fit on a single sheet or which consist of a block replicated several times. Hierarchical sheets allow one split a schematic into logical units which can be easily replicated.

To create a unit, simply design the unit in a normal schematic, saving it in the sym/ directory. Nets which are to be exposed outside of the sheet should be assigned a net attribute (e.g. net=CLK:1). Finally, create a separate symbol file to represent the unit (also in the sym/ directory). The symbol should possess a source attribute pointing to the unit's schematic (e.g. source=my_unit.sch) as well as pins for each of the nets the unit exposes. Each pin should possess a net attribute matching the name specified in the schematic.

Units can be inserted like any other symbol. In the netlist, components in instances of a unit will be identified by a unique refdes consisting of the refdes of the instance followed by the refdes of the component (e.g. refdes=C1 in instance refdes=CH1 will be called refdes=CH1/C1).

The sedrename pcb plugin is very useful for composing layouts with multiple repeated units.

Other resources

  • The gEDA wiki contains a wealth of information, although isn't always well organized
  • sedrename is a useful utility when working with designs composed of many repeated units.

skeleton-geda-project's People

Contributors

bgamari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

skeleton-geda-project's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.