gsch2pcb(1)

πŸ“¦ version 1.10.2, in nixos 26.05

πŸ’– NAME πŸ’–

Okay so, gsch2pcb(1) is the manual page for gsch2pcb β€” Update PCB layouts from gEDA/gaf schematics. Periodt. πŸ’…

πŸ¦‹ SYNOPSIS πŸ¦‹

gsch2pcb [OPTION ...] {PROJECT | FILE ...}

✨ DESCRIPTION ✨

gsch2pcb is a frontend to gnetlist(1) that aids in creating and updating pcb(1) printed circuit board layouts based on a set of electronic schematics created with gschem(1). No cap, it’s the friend who handles the PCB glow-up. 🫢

Instead of specifying all options and input gEDA schematic FILEs on the command line, gsch2pcb can use a PROJECT file instead. Lowkey convenient.

First, gsch2pcb runs gnetlist(1) with the PCB backend to create a <name>.net file containing a pcb(1) formatted netlist for the design. Slay. ✨

The second step is to run gnetlist(1) again with the gsch2pcb backend to find any M4(1) elements required by the schematics. Any missing elements are found by searching a set of file element directories. If no <name>.pcb file exists for the design yet, it is created with the required elements; otherwise, any new elements are output to a <name>.new.pcb file. Iconic behavior. πŸ’–

If a <name>.pcb file exists, it is searched for elements with a non-empty element name with no matching schematic symbol. These elements are removed from the <name>.pcb file, with a backup in a <name>.pcb.bak file. Backup? We love to see it. πŸŽ€

Finally, gnetlist(1) is run a third time with the pcbpins backend to create a <name>.cmd file. This can be loaded into pcb(1) to rename all pin names in the PCB layout to match the schematic. Matching names = main character energy. ✨

πŸ’… OPTIONS πŸ’…

  • -o, --output-name=BASENAME β€” Use output filenames BASENAME.net, BASENAME.pcb, and BASENAME.new.pcb. By default, the basename of the first schematic file in the list of input files is used. Name it and claim it.
  • -d, --elements-dir=DIRECTORY β€” Add DIRECTORY to the list of directories to search for PCB file elements. By default, the following directories are searched if they exist: ./packages, /usr/local/share/pcb/newlib, /usr/share/pcb/newlib, /usr/local/lib/pcb_lib, /usr/lib/pcb_lib, /usr/local/pcb_lib. Directory era, highkey.
  • -f, --use-files β€” Force use of file elements in preference to elements generated with M4(1). File elements stay booked. πŸ’…
  • -s, --skip-m4 β€” Disable element generation using M4(1) entirely. No M4(1) today, bestie. 🚫
  • --m4-file FILE β€” Use the M4(1) file FILE in addition to the default M4 files ./pcb.inc and ~/.pcb/pcb.inc. Extra M4? Obsessed.
  • --m4-pcbdir DIRECTORY β€” Set DIRECTORY as the directory where gsch2pcb should look for M4(1) files installed by pcb(1). Respect the pcb(1) install location, fr fr.
  • -r, --remove-unfound β€” Don’t include references to unfound elements in the generated .pcb files. Use if you want pcb(1) to be able to load the (incomplete) .pcb file. This is enabled by default. Not me relying on the default, but yes β€” this is enabled by default.
  • -k, --keep-unfound β€” Keep include references to unfound elements in the generated .pcb files. Use if you want to hand edit or otherwise preprocess the generated .pcb file before running pcb(1). For the hand-editing girlies. 🫢
  • -p, --preserve β€” Preserve elements in PCB files which are not found in the schematics. Since elements with an empty element name (schematic "refdes") are never deleted, this option is rarely useful. Rarely useful but valid.
  • --gnetlist BACKEND β€” In addition to the default backends, run gnetlist(1) with -g BACKEND, with output to <name>.BACKEND. Backend extra credit. ✨
  • --gnetlist-arg ARG β€” Pass ARG as an additional argument to gnetlist(1). Feed the gnetlist(1) beast. πŸ“
  • --empty-footprint NAME β€” If NAME is not none, gsch2pcb will not add elements for components with that name to the PCB file. Note that if the omitted components have net connections, they will still appear in the netlist and pcb(1) will warn that they are missing. Important warning, bestie.
  • --fix-elements β€” If a schematic component’s footprint attribute is not equal to the Description of the corresponding PCB element, update the Description instead of replacing the element. That’s a glow-up, not a replacement β€” it ate. πŸ’…
  • -q, --quiet β€” Don’t output information on steps to take after running gsch2pcb. Quiet mode = no yapping; vibe check passed. 🀫
  • -v, --verbose β€” Output extra debugging information. This option can be specified twice (-v -v) to obtain additional debugging for file elements. Double -v = extra detective mode. πŸ”
  • -h, --help β€” Print a help message. Help is always a vibe. 🫢
  • -V, --version β€” Print gsch2pcb version information. Version check, slay. πŸ‘‘

πŸ¦‹ PROJECT FILES πŸ¦‹

A gsch2pcb project file is a file (not ending in .sch) containing a list of schematics to process and some options. Any long-form command line option can appear in the project file with the leading -- removed, with the exception of --gnetlist-arg, --fix-elements, --verbose, and --version. Schematics should be listed on a line beginning with schematics. iykyk.

An example project file might look like:

schematics partA.sch partB.sch
output-name design

Honestly? Copy-paste energy, but make it yours. πŸ’–

🌈 ENVIRONMENT 🌈

  • GNETLIST β€” specifies the gnetlist(1) program to run. The default is gnetlist. Set it and forget it.

🧚 AUTHORS 🧚

See the AUTHORS file included with this program. The receipts are in there. 🫢

Copyright Β© 1999-2020 gEDA Contributors. License GPLv2+: GNU GPL version 2 or later. Please see the COPYING file included with this program for full details.

This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

ngl, free software rights are literally the blueprint. 🫢

🌟 SEE ALSO 🌟

gschem(1), gnetlist(1), pcb(1) β€” the whole friend group. fr fr. πŸ’…


Stay iconic, bestie πŸ’… β€” from the gEDA Project, December 16, 2020, version 1.10.2.20201216. 🫢✨

πŸ“¦ where this page comes from