{"id":16956475,"url":"https://github.com/bgamari/skeleton-geda-project","last_synced_at":"2025-04-14T07:06:20.677Z","repository":{"id":6333747,"uuid":"7569308","full_name":"bgamari/skeleton-geda-project","owner":"bgamari","description":"A simple gEDA project to build off of","archived":false,"fork":false,"pushed_at":"2015-01-26T19:05:27.000Z","size":286,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-14T07:06:01.367Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bgamari.png","metadata":{"files":{"readme":"README.mkd","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-01-11T23:59:15.000Z","updated_at":"2015-03-06T16:55:21.000Z","dependencies_parsed_at":"2022-09-24T05:00:37.235Z","dependency_job_id":null,"html_url":"https://github.com/bgamari/skeleton-geda-project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgamari%2Fskeleton-geda-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgamari%2Fskeleton-geda-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgamari%2Fskeleton-geda-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgamari%2Fskeleton-geda-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bgamari","download_url":"https://codeload.github.com/bgamari/skeleton-geda-project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837281,"owners_count":21169374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T22:15:08.811Z","updated_at":"2025-04-14T07:06:20.656Z","avatar_url":"https://github.com/bgamari.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# skeleton-geda-project\n\n`skeleton-geda-project` is meant to serve as a batteries-included\nfoundation for a [gEDA](http://www.geda-project.org/) project.\n\n\n## Getting started\n\nTo begin, run the `init.sh` script. This will prompt you for your name\nof your new project and seed the required configuration.\n\nOpen `NAME.sch` with `gschem`. It is important that `gschem` is\nstarted from the root directory of the project. Draw your schematic.\n\nWhen the schematic is largely complete you can run `make pcb` to seed\nthe initial PCB layout and update it after the schematic is\nchanged. After running this, you'll need to update the netlist\n(`File-\u003eLoad netlist file` and select `NAME.net`) and add any new\ncomponents (`File-\u003eLoad layout data to paste-buffer`, select\n`NAME.new.pcb`, and click to place the new elements on a vacant part\nof the board).\n\nFeel free to overwrite this readme when you no longer need it.\n`skeleton-geda-project` is available at\n\u003chttp://www.github.com/bgamari/skeleton-geda-project\u003e.\n\n\n## Requirements\n\nThis requires a complete gEDA installation. On Ubuntu, the required\npackages can be installed with `apt-get`,\n\n    apt-get install geda geda-gnetlist geda-utils pcb-gtk\n\n\n## Makefile rules\n\nThe included Makefile has a variety of useful rules,\n\n * `tsymbols`: Generate tragesym symbols\n * `check-symbols`: Run `gsymcheck` on the generated symbols\n * `pcb`: Update the pcb file and netlist\n * `$NAME.pdf`: Generate a PDF of the PCB layout\n * `$NAME.ps`: Generate a Postscript of the PCB layout\n * `$NAME.bom`: Generate a textual bill of materials\n * `gerbers.zip`: Generate a Zip file containing Gerbers of the layout\n * `osh-park-gerbers.zip`: Generate a Zip file containing Gerbers appropriate to send to [OSH Park](http://www.oshpark.com/)\n\n## Where can I find symbols/footprints?\n\nIf you are in need of a symbol or footprint, Google and Github are\nalways reasonable places to start searching. Moreover, there are\nseveral repositories of high-quality symbols and footprints\ndistributed under a variety of terms,\n\n * `gschem` and `pcb` come with a limited set of symbols and\n   footprints of varying quality\n * [gedasymbols.org](http://www.gedasymbols.org/)\n * [luciani.org](http://www.luciani.org/geda/pcb/pcb-footprint-list.html)\n * [Bdale's component library](http://git.gag.com/?p=hw/bdale;a=summary)\n \n## How do I make symbols?\n\nThere are several ways to create `gschem` symbols. For most cases,\n`tragesym` is the easiest way to compose a symbol. However, in cases\nwhere more control over layout and presentation is needed, `gschem` is\npreferred.\n\n### With `tragesym`\nThe `tragesym` utility (packaged in the `geda-utils` package in\nDebian-derived distributions) is a useful tool for generating symbols\nfrom a simple text description. You will find an example `tragesym`\ndescription in the `sym/l79lxx.tsym`. Simply copy this file and update\nthe `name`, `device`, `footprint`, `description`, and `author` fields\nin addition to the pin definitions. The Makefiles `tsymbols` rule will\n`.sym` files from all `.tsym` files in the `sym/` directory. As a\nrule, it's best to only add the `.tsym` source to version control.\n\n\n### With `gschem`\n\nOne can also create symbols using `gschem` by creating a new\nschematic, drawing the symbol and pins, and saving in the `sym/`\ndirectory with a `.sym` file extension. See \n\u003chttp://ashwith.wordpress.com/2010/09/23/creating-your-own-symbols-in-gschem/\u003e\nfor more details on this process.\n\n## How do I make footprints?\n\nThere are several tools for generating footprints. These include\n\n * Darrell Harmon's [`footgen`](https://github.com/dlharmon/footgen) which converts\n   textual descriptions to `pcb`-compatible footprints\n * Edward Hennessey's graphical [`gfootgen`](http://www.gedasymbols.org/user/edward_hennessy/gfootgen.html)\n * DJ Delorie's web-based\n   [generator](http://www.gedasymbols.org/user/dj_delorie/tools/2pad.html)\n   for two-pad footprints\n * DJ Delorie's web-based\n   [generator](http://www.gedasymbols.org/user/dj_delorie/tools/dilpad.html)\n   for dual-inline packages\n * Stefan Salewski's text-based\n   [sfg](http://www.ssalewski.de/SFG.html.en) tool.\n\nSee the [gEDA wiki][wiki] for more details.\n\n[wiki]: http://wiki.geda-project.org/geda:pcb_footprints\n\n\n## How and why would I use hierarchical sheets?\n\nIt is good practice to preserve clean separation between the\nfunctional units of a design. This is especially true in large designs\nwhich are too large to fit on a single sheet or which consist of a\nblock replicated several times. Hierarchical sheets allow one split a\nschematic into logical units which can be easily replicated.\n\nTo create a unit, simply design the unit in a normal schematic, saving\nit in the `sym/` directory. Nets which are to be exposed outside of\nthe sheet should be assigned a `net` attribute\n(e.g. `net=CLK:1`). Finally, create a separate symbol file to\nrepresent the unit (also in the `sym/` directory). The symbol should\npossess a `source` attribute pointing to the unit's schematic\n(e.g. `source=my_unit.sch`) as well as pins for each of the nets the\nunit exposes. Each pin should possess a `net` attribute matching the\nname specified in the schematic.\n\nUnits can be inserted like any other symbol. In the netlist,\ncomponents in instances of a unit will be identified by a unique\n`refdes` consisting of the `refdes` of the instance followed by the\n`refdes` of the component (e.g. `refdes=C1` in instance `refdes=CH1`\nwill be called `refdes=CH1/C1`).\n\nThe [sedrename](https://github.com/bgamari/pcb-sedrename) `pcb` plugin\nis very useful for composing layouts with multiple repeated units.\n\n# Other resources\n\n * The [gEDA wiki](http://wiki.geda-project.org/) contains a wealth of\n   information, although isn't always well organized\n * [sedrename](https://github.com/bgamari/pcb-sedrename) is a useful\n   utility when working with designs composed of many repeated units.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgamari%2Fskeleton-geda-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbgamari%2Fskeleton-geda-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgamari%2Fskeleton-geda-project/lists"}