pcb-rnd knowledge pool
List of all nodes
-
Objects outside of the drawing area are not exported
- export_crop by
Tibor 'Igor2' Palinkas
on
2022-10-13
When exporting a designw ith assy or fab text outside of the drawing area, those objects are not showing up in the output. This pool node explains the reason behind this and how the outline concept evolved over the decades. It also describes how to place text or other objects (e.g. comments) around the board without violating the drawing area rule.
-
Ringdove file naming conventions
- file_naming by
Tibor 'Igor2' Palinkas
on
2022-07-14
The Ringdove file naming poll closed on 2022-07-14 on the pcb-rnd mailing list has set the new conventions we use for naming our files. These conventions are recommended for users to use in new projects and is mandatory for Ringdove developers when writing new code and documentation.
-
GTK4 rant: menu for a single use case
- gtk4r_menu by
Tibor 'Igor2' Palinkas
on
2021-12-23
-
GTK4 rant: generalism vs. specialism
- gtk4r_genspec by
Tibor 'Igor2' Palinkas
on
2021-12-23
-
GTK4 rant: CSS and vertical labels
- gtk4r_css_vtext by
Tibor 'Igor2' Palinkas
on
2021-12-23
-
GTK4 rant: CSS: design error with custom widgets
- gtk4r_css_labelc by
Tibor 'Igor2' Palinkas
on
2021-12-23
-
GTK4 rant: scrollbar gizmo is a css trick
- gtk4r_css_gizmo by
Tibor 'Igor2' Palinkas
on
2021-12-23
-
GTK4 rant: CSS: design error with custom widgets
- gtk4r_css_custom by
Tibor 'Igor2' Palinkas
on
2021-12-23
-
GTK4 rant: CSS
- gtk4r_css by
Tibor 'Igor2' Palinkas
on
2021-12-23
-
External 3d view
- ext_3d by
Tibor 'Igor2' Palinkas
on
2021-12-11
pcb-rnd does not have a 3d engine, but can export the board and optional part models in various 3d file formats. With a thin glue layer it is easily possible to "integrate" an external 3d viewer and run it from within pcb-rnd and update the view with a hotkey.
-
GTK4 rant: glib
- gtk4r_glib by
Tibor 'Igor2' Palinkas
on
2021-12-02
Why I think glib is a terrible thing.
-
GTK4 rant: API doc
- gtk4r_doc by
Tibor 'Igor2' Palinkas
on
2021-12-02
Gtk4 API documentation is a good example on why doxygen-like "doc generated from source" systems are not too useful.
-
GTK4 rant: demo/example code
- gtk4r_demos by
Tibor 'Igor2' Palinkas
on
2021-12-02
-
GTK4 rants: intro
- gtk4r by
Tibor 'Igor2' Palinkas
on
2021-12-02
In late 2021 a new HID is born for librnd, called gtk4_gl. In this series of "gtk4 rants" I am sharing my experiences with gtk4 as a software developer.
-
Potential video tutorial topics
- video_tut by
Tibor 'Igor2' Palinkas
on
2021-11-08
-
Scripted mass property edit from a table
- mass_prop by
Tibor 'Igor2' Palinkas
on
2021-10-29
Example shell+awk script that uses pcb-rnd to mass-edit properties of objects using a table as input.
-
MorphPolygon(): sharply segmneted ring
- segring by
Tibor 'Igor2' Palinkas
on
2021-10-28
This video-howto demonstrates drawing a sharply segmented ring of exact sizes with pcb-rnd using the MorphPolygon() action.
-
eagle footprint lib files
- io_eagle_fp by
Tibor 'Igor2' Palinkas
on
2021-10-28
Details on loading footprints from eagle footprint lib files (typically *.lbr).
-
pcb-rnd: getting started
- getting_started by
Cuvoodoo
on
2021-10-27
Video tutorial and related material for new users for the first steps in learing to use pcb-rnd. Guides through a simple board design with pcb-rnd from importing schematics to generating gerbers, preparing for fab.
-
ddraft: measuring out numeric coords
- ddraft_sot23 by
Tibor 'Igor2' Palinkas
on
2021-10-21
Demonstrate how to use ddraft to measure out fixed points in space given by numeric coords. The example is placing the pads for a sot23 accurately.
-
Thermal style bits
- thermal_styles by
Tibor 'Igor2' Palinkas
on
2021-09-14
Pcb-rnd supports hardwired thermal styles for automatically calculated thermals. The shape of the thermal depends on a few bits, while sizes depend on clearance and a global. This pool node shows how thermal style bits are presented.
-
Freerouting.net demo (with new io_dsn)
- freerouting2 by
Tibor 'Igor2' Palinkas
on
2021-07-19
In 2021 pcb-rnd got a major revamp on its specctra DSN support, thanks to nlnet (and the NGI0 PET fund). The new code (as of r35225, or release 3.0.0), io_dsn, offers full support for loading and saving DSN files. It supports all possible details, including non-uniform padstacks, slots, arcs in copper, etc. It replaces the old, hackish code that offered only partial export. It implemends brand new DSN read code that can load the export of a full board. It also features the previous session (.ses file) reader so the round trip through specctra compatible external autorouters are preserved. This node presents a screenshot example of all DSN data paths.
-
How pcb-rnd does not lock in users
- format_lockin by
Tibor 'Igor2' Palinkas
on
2021-07-14
During an annual gschem file format flamewar on the geda-user mailing list, Bert (geda/pcb developer) tried to steer things in a specific direction. For this he cited an example from pcb-rnd. He claimed that the fact that pcb-rnd invented a new native file format somehow blocks users from moving between pcb-rnd and geda/pcb or using them in parallel.
Of course this claim has no base at all. In response I wrote the following open letter to Bert, in which I tried to explain, backed up with facts and data, why he is wrong in his claim about pcb-rnd file format and why he is wrong in what geda should learn from this.
At the end I also tried to present a conclusion what I think geda should really learn from pcb-rnd.
-
DNP and board build options with asm
- asm_dnp by
Tibor 'Igor2' Palinkas
on
2021-07-09
Practical examples on configuring the asm plugin for DNP (Do Not Populate) and different board build options.
-
Tutorials for using pcb-rnd
- Itutorials by
Tibor 'Igor2' Palinkas
on
2021-06-19
This node is a collection of links to user tutorials for various levels of pcb-rnd users from beginners to advanced.
-
DRC: typical use cases
- drc_typical by
Tibor 'Igor2' Palinkas
on
2021-05-20
Every production board should be ran through the Design Rule Checker (DRC) before sent to the fab house. This pool node lists and explains typical and practical use cases for the new DRC system, serving both as guideline and checklist.
-
DRC: links to doc and DRC check scripts
- Idrc by
Tibor 'Igor2' Palinkas
on
2021-05-20
As part of the nlnet NGI0 funding, pcb-rnd got a full DRC (Design Rule Checker) rewrite in 2020. The new DRC system is extremely flexible as it is scriptable using the query language. This article is a collection of links to resources for those who are interested in advanced use of the new DRC system.
-
HTTPS vs. tarball signatures
- https by
Tibor 'Igor2' Palinkas
on
2021-01-15
HTTPS is not an ultimate solution to network security. It has its part in the overall picture, but it is very often overestimated because of two factors: users do not really understand how it works and there is a campaign going on to mandate HTTPS and classify any HTTP site "unsafe". These have built up a false sense of security. Security is especially important in case of source downloads. This article compares HTTPS to other means of digital signatures on the source tarballs.
-
Footprints: how to set pick-and-place origin of a subcircuit
- fp_pnp_orig by
Tibor 'Igor2' Palinkas
on
2020-xx-xx
Some footprints are asymmetric or have features on the top so the best point for grabbing them in a pick-and-place machine is not the geometrical center or the point that is practical for grabbing the subcircuit for GUI editing. This howto describes manually setting a differnt pick-and-place origin for those cases.
-
Autobuild: host types
- autobuild_types by
Tibor 'Igor2' Palinkas
on
2020-11-30
-
Autobuild: how to install your host system
- autobuild_hreq by
Tibor 'Igor2' Palinkas
on
2020-11-30
Setting up an autobuild host: what software to run on what hardware and what to install on it.
-
Autobuild
- autobuild by
Tibor 'Igor2' Palinkas
on
2020-11-30
-
Schematics editor poll (2020)
- sch_poll_2020 by
Tibor 'Igor2' Palinkas
on
2020-11-23
Poll results on "What's your preferred schematics editor when using pcb-rnd?". Multiple answers, ordered by frequency of use was possible.
-
M4 footprints: howto
- m4fp_howto by
Tibor 'Igor2' Palinkas
on
2020-11-22
How to use old geda/pcb M4 footprints as parametric footprint in pcb-rnd.
-
A brief history of m4 footprints
- m4fp_history by
Tibor 'Igor2' Palinkas
on
2020-11-22
-
Drawing the board outline
- outline by
Tibor 'Igor2' Palinkas
on
2020-11-20
How to draw the outline of shaped boards. How to draw internal cutouts.
-
Terminology: netlist, import schematics
- netlist by
Tibor 'Igor2' Palinkas
on
2020-11-16
This node explains the terms "netlist", "import netlist", "import schematics" and how the schematics-to-PCB workflow works.
-
The disjoint padstack vs. find.c
- pstk_disjoint by
Tibor 'Igor2' Palinkas
on
2020-09-17
A disjoint padstack has more than one copper shapes (on different physical layers) that are not connected within the padstack: there is no plated hole or slot. This used to be a problem for find.c when mapping galvanic connections. This article explains why it was broken and how it got fixed after pcb-rnd 2.2.4.
-
Micro-Cap to pcb-rnd (schematics/netlist import)
- import_microcap by
Tibor 'Igor2' Palinkas
on
2020-08-21
Micro-Cap is a freeware schematics capture and simulator program running on windows. It supports a variety of different netlist formats, from which multiple formats are suitable for a pcb-rnd layout flow. This article provides step-by-step instrictions on a forward annotation from schematics to pcb-rnd.
-
Fine tuning for non-english keyboard layout
- key_non_us by
Tibor 'Igor2' Palinkas
on
2020-08-15
By design, pcb-rnd speaks English and assumes an English keyboard layout. For most of the default key assignment using another layout doesn't make any difference but there are a few special cases. This article explains how those special cases arise and how to fix them on non-english keyboard layout.
-
Exporting the board in STL
- export_stl by
Tibor 'Igor2' Palinkas
on
2020-08-10
The main purpose of export_stl is to provide 3d output to mechanical CAD programs. The 3d model includes at least the board outline but can also include holes, cutouts and component models.
-
Menu patching: what was wrong with the original system?
- menu_patch_old by
Tibor 'Igor2' Palinkas
on
2020-07-18
pcb-rnd offers a more flexible menu description from version 2.2.4, based on run-time menu patching. This article describes the problems with the previous (dynamic, but not real-time patched) menu system to specify the reasons for the change.
-
Run-time menu patching system
- menu_patch_new by
Tibor 'Igor2' Palinkas
on
2020-07-18
pcb-rnd offers a more flexible menu description from version 2.2.4, based on run-time menu patching. This article describes the basic mechanism implemented.
-
Menu patching tutorial
- menu_patch by
Tibor 'Igor2' Palinkas
on
2020-07-18
The run-time menu patching system in pcb-rnd is a powerful infrastructure that lets users to make temporary or persistent, global or project-local modifications to the menu system. This article shows how to use the system and how to write menu patches.
-
Generating visual difference of boards
- visual_diff by
Tibor 'Igor2' Palinkas
on
2020-06-16
Determining the small difference between two versions of a board may be non-trivial. The data model is complex enough that a diff(1) on the board file (in whatever format) may not give a direct answer. A small shell script distributed with pcb-rnd provides a visual solution to this problem.
-
Installing and using imp_setup
- imp_setup by
Tibor 'Igor2' Palinkas
on
2020-06-07
The impedance setup script is a user script that provides a simple, graphical, interactive way to set up layer group properties and routing styles to ensure trace impedance on transmission lines (e.g. microstrip). This node is a mini-howto for setting up and using the script.
-
High frequency boards
- Ihighfreq by
Tibor 'Igor2' Palinkas
on
2020-06-07
This index node collects references to other pool nodes giving an overview on what tools and techniques pcb-rnd offers to help the design of high frequency boards.
-
Tracing boards from imported photos
- background_image by
Tibor 'Igor2' Palinkas
on
2020-05-26
How to use the pcb-rnd to reproduce a board by tracing copper tracks and vias importing a photo.
-
Loading drc_query scripts
- drc_load by
Tibor 'Igor2' Palinkas
on
2020-05-19
Two of the most important advantages of the new drc_query system is that users can write/manage their own DRC scripts and that those scripts can be shared and loaded by other users. This article describes how to load and use such DRC scripts.
-
Zone based short checking
- drc_zone_clr by
Tibor 'Igor2' Palinkas
on
2020-05-18
On some complext boards a single global value for copper-copper gap between different networks is not sufficient, but the board has "zones": different regions where different rules apply. A typical example is when the power supply section of the board has larger gaps for high voltage reasons while the rest of the board should be routed tightly with low voltage signals. This article describes how to implement the DRC checks differently per region: with custom doc layers, polygons and a simple drc_query script.
-
Alien format: text test cases
- alien_text by
Tibor 'Igor2' Palinkas
on
2020-05-17
This article describes a series of proper test cases that provides the easier way for completly reverse engineering and testing support for text loaded from an alien format.
-
Query() performance test 2020
- query_speed by
Tibor 'Igor2' Palinkas
on
2020-05-16
-
Tight clearance on text objects
- tight_clearance by
Tibor 'Igor2' Palinkas
on
2020-05-06
Traditionally the clearance around a text object was a round rectangle at the bounding box of the text object. Starting from lihata board v7, our data model supports tight_clearance: clearance that traces the true outline of the text.
-
Polygon-side clearance: enforce_clearance
- enforce_clearance by
Tibor 'Igor2' Palinkas
on
2020-05-06
There are three schools for maintaining clearance values: probably the most common is when the clearance is set at the polygon; some software have the clearance globally set for all objects; and pcb-rnd and gEDA, where clearance is traditionally set on a per-clearing-object basis. A recent data model upgrade in pcb-rnd however allows both per-poly and per-clearing-object clearances, even in the same time.
-
Courtyard: ko.* layer groups: under the hood
- ko_id2 by
Tibor 'Igor2' Palinkas
on
2020-04-27
The "courtyard" (ko.courtyard) feature is fully working mechanical keepout/courtyard with DRC checks provided by the default drc_query config. This node describes how the drc rule is implemented.
-
Courtyard: ko.* layer groups
- ko_id by
Tibor 'Igor2' Palinkas
on
2020-04-27
The "courtyard" (ko.courtyard) feature is fully working mechanical keepout/courtyard with DRC checks provided by the default drc_query config. This node describes how the feature works and provides a minimal example.
-
Digital signatures
- sign by
Tibor 'Igor2' Palinkas
on
2020-04-21
If pcb-rnd or any related material is coming with a digital signature, it was signed by the procedure described in this article. The method and/or script provided here can be used to verify the signature of any download.
-
Extended objects: bus
- extobj_bus by
Tibor 'Igor2' Palinkas
on
2020-03-08
Thje bus extended object is intended for simplify drawing bundles of evenly spaced parallel traces. The two main use cases are differential pairs and parallel buses.
-
Anyload
- anyload by
Tibor 'Igor2' Palinkas
on
2020-02-06
Anyload is a small but flexible infrastructure in librnd. Plugins can register in it to offer loading various (usually lihata based) files by type (root node). This allows users to prepare easy-to-use, easy-to-install addons that can be shared on edakrill. The gain is especially high when a single addon requires to use multiple different resources, e.g. drc rules and vendor drill mapping.
-
Planned/scheduled feature deprecation
- deprecation by
Tibor 'Igor2' Palinkas
on
2020-02-05
There are a lot of features in pcb-rnd. Some are in daily use, others are "looked like a good idea once but turned out to be unusable in practice". Yet others are "this is something pcb-rnd should have, but it will need to be done differently". This page announces the biggest features that are going to be removed, with expected schedule, rationale, plans/recommendations on alternatives.
-
Import schematics: how to switch over
- isch_switch by
Tibor 'Igor2' Palinkas
on
2020-02-01
The new import schematics feature does a few things sligthly differently, and there are also a few new options. This article attempts to ease the transition.
-
New import schematics: rationale
- isch_overview by
Tibor 'Igor2' Palinkas
on
2020-02-01
Rationale for the 'import schematics' rewrite. Overview of the new architecture, focusing on how it differs from the old and what problems these difference solve.
-
Render script
- render_script by
Tibor 'Igor2' Palinkas
on
2020-01-22
After version 2.3.1, pcb-rnd switched from hardwired to scripted render coordination. This provides more flexibility on determining the order of rendering different layer groups and annotations.
-
Fundrising for 2020
- fundraiser by
Tibor 'Igor2' Palinkas
on
2020-01-19
This page is generated by a script and shows the standing of the current fundraiser.
-
pcb-rnd pricing
- joke_pricing by
Tibor 'Igor2' Palinkas
on
2020-01-18
-
Copper polygon pull away from board edge
- board_edge_copper by
Tibor 'Igor2' Palinkas
on
2019-12-24
For some boards or fabbing processes, copper polygons shall not extend to the routed edge of the board. This is often called "pull back" and can be achieved combining existing features in pcb-rnd. It can also be automated using an user script, providing both GUI and CLI access.
-
Extended objects: line-of-vias
- extobj_lov by
Tibor 'Igor2' Palinkas
on
2019-12-14
-
Extended objects: dimension lines
- extobj_dim by
Tibor 'Igor2' Palinkas
on
2019-12-14
-
(Ab)using pcb-rnd for generic 2d vector drawing
- abuse_drawing by
Tibor 'Igor2' Palinkas
on
2019-11-12
While pcb-rnd is not the perfect 2d drawing program, for some applications it may be more convenient than some popular alternatives. This short node demonstrates how it can be done.
-
How to cross-compile recent versions of pcb-rnd to windows on *nix
- win32-cross by
Tibor 'Igor2' Palinkas
on
2019-10-25
This howto is about compiling the latest svn version of pcb-rnd, starting from version 3.0.0.
-
How to cross-compile recent versions of pcb-rnd to windows on *nix
- win32-cross-2.4.0 by
Tibor 'Igor2' Palinkas
on
2019-10-25
This howto is about compiling stable release 2.2.x, 2.3.x. and 2.4.0. These versions are from before the completion of librnd split, so this procedure does not require librnd compiled separately. New versions starting from 3.0.0 require a different procedure.
-
How to cross-compile pcb-rnd 2.1.4 to windows on *nix
- win32-cross-2.1.4 by
Tibor 'Igor2' Palinkas
on
2019-10-25
This howto is about compiling stable release 2.1.4. It was the first release with official windows support, before the infrastrcuture for cross compiling became mature enough in pcb-rnd, thus a lot of manual patching and tweaking is involved.
-
Static linking pcb-rnd
- staticlink by
Tibor 'Igor2' Palinkas
on
2019-09-21
In some special application a static linked version of pcb-rnd is required. The most typical static applications are rendering previews on a web server or converting data running pcb-rnd on a server as a service.
-
Exporting plugged and filled vias separately using CAM partials
- filledvia by
Tibor 'Igor2' Palinkas
on
2019-09-20
This example demonstrates how to use partial CAM export to sort different vias into different excellon files, by via process (filled, plugged, normal).
-
Interactive panelization with GUI
- panel1 by
Tibor 'Igor2' Palinkas
on
2019-09-17
-
How to write your own parametric footprint scripts
- howto_parametric by
Matt Jenkins (Majenko)
on
2019-09-07
An overview on how to write a script for generating footprints realtime using pcb-rnd's parametric footprints system
-
The noexport attribute
- noexport by
Tibor 'Igor2' Palinkas
on
2019-08-26
How to use the noexport attribute, which replaces the "zero width line" workaround. Other alternatives for use cases where noexport is not appropriate.
-
Long term plans: export option cleanup (details on changes)
- export_cleanup2 by
Tibor 'Igor2' Palinkas
on
2019-08-15
What changes are expected in the export plugins so that they comply with the hidlib requirements. This is also a list of exporters that should be part of the hidlib and should work in other ringdove applications.
-
Long term plans: export option cleanup (summary)
- export_cleanup by
Tibor 'Igor2' Palinkas
on
2019-08-15
There will be some gradual changes to many of our exporters. These will be slow changes but will definitely break some fine details of some existing Makefiles and export scripts. If you are exporting using scripts, with the old, non-cam syntax, you might be affected.
-
Using the asm assembly plugin for manual assembly
- asm_tutorial by
Ronald 'Miloh' Alexander
on
2019-08-12
Three short tutorials: Using the pcb-rnd assembly ('asm') plugin, using asm with the property editor, and editing the asm plugin in the config tree.
-
The user mark and the grab mark
- mark_cleanup2 by
Tibor 'Igor2' Palinkas
on
2019-08-10
Describe how the two marks work, what user actions affect them and what they are for.
-
Doc/mech layer group type/purpose conventions
- doc_grps by
Tibor 'Igor2' Palinkas
on
2019-08-09
pcb-rnd can handle arbitrary doc layer groups and layers set up by the user. This document contains recommendations on how to use these custom layers and layer groups.
-
Long term plans: pcb-rnd 3.0.0, hidlib and ringdove
- ver_3.0 by
Tibor 'Igor2' Palinkas
on
2019-07-21
-
User scripts from EDAkrill: via tenting
- script_krill by
Tibor 'Igor2' Palinkas
on
2019-06-21
This howto demonstrates how to download an user script from EDAkrill and how to use it for tenting or untenting vias.
-
The common -rnd SVN commit log message format
- commitmsg by
Tibor 'Igor2' Palinkas
on
2019-06-21
We use scripts for speeding up writing the changelog. The script uses svn commit log for input. Writing the changelog is still a lot of very boring manual work. To help that process and reduce the overhead, please stick to the commit message format specified in this document.
-
The 'order button' feature poll/survey results
- order_button_poll by
Tibor 'Igor2' Palinkas
on
2019-06-03
-
Setting up custom grid sizes
- grid_custom by
Tibor 'Igor2' Palinkas
on
2019-05-26
pcb-rnd offers a preconfigured set of grid sizes, including both mil and mm based. Keys [ and ] are provided for easily cycling through available grid sizes. A submenu lists all available sizes. These preconfigured grid sizes can easily be changed by the user.
-
What should be undoable?
- undoability by
Tibor 'Igor2' Palinkas
on
2019-05-23
-
'Save as' dialog format guessing
- save_as_guess by
Tibor 'Igor2' Palinkas
on
2019-05-23
I've finished implementing a long requested feature: automatic format detection (from file name) in the 'save as' dialog. It is available from r25653.
-
Extended objects (design plan)
- extobj by
Tibor 'Igor2' Palinkas
on
2019-05-19
-
Index: scripting pcb-rnd
- Iscript by
Tibor 'Igor2' Palinkas
on
2019-05-19
Enumerate various ways pcb-rnd can be scripted, allowing the user to extend the functionality of pcb-rnd or automate repetitive tasks or integrated pcb-rnd as a converter/generator in a toolchain or build system.
-
How to maintain a custom menu file
- menu_custom by
Tibor 'Igor2' Palinkas
on
2019-04-27
-
hidlib
- hidlib by
Tibor 'Igor2' Palinkas
on
2019-04-27
The hidlib effort will provide a reusable library that includes an essential but PCB-topic-independent subset of the pcb-rnd infrastructure.
-
direct path to openems for s-parameters
- s_param by
Evan Foss
on
2019-04-19
A quick introduction to solving for s-parameters - one of the most basic uses of pcb-rnd's direct interface to openems. This includes selecting ports, generating mesh, exporting, processing, and visualization.
-
io_kicad: KiCad file format support limitations
- io_kicad by
Tibor 'Igor2' Palinkas
on
2019-04-12
Detailed description of pcb-rnd's KiCad file format support, focusing on features which are not yet or not fully supported.
-
How not to contribute
- contrib2 by
Tibor 'Igor2' Palinkas
on
2019-04-09
What sort of contribution is not welcome in pcb-rnd community and why. What's the economy behind contributing, how you can very easily differentiate between valuable and invaluable attempts.
-
Why I dislike KiCad pcbnew's s-expr format
- kicad_fmt_fun by
Tibor 'Igor2' Palinkas
on
2019-04-06
-
KiCad s-epxression file format tree
- kicad_pcb_fmt by
Tibor 'Igor2' Palinkas
on
2019-04-05
Reverse engineered "complete" list of KiCad's s-expression file format tree.
-
Live scripting
- live_script by
Tibor 'Igor2' Palinkas
on
2019-04-02
Live scripting is an easy, graphical script editing setup for rapid script development. This article demonstrates how to use the new feature to develop awk scripts.
-
Producing gerber drill files
- gerber_drill by
Tibor 'Igor2' Palinkas
on
2019-03-31
Most often we send the "outline" layer in gerber but drills/slots in excellon to our fab. Long term the industry is likely to switch from excellon drill files to gerber. This article explains how to produce gerber drill files using the CAM syntax.
-
VFS example scripts
- vfs_examples by
Tibor 'Igor2' Palinkas
on
2019-03-29
-
CAM switchover: how to use CAM jobs instead of direct exporting?
- cam_switch by
Tibor 'Igor2' Palinkas
on
2019-03-22
We are switching from export-specific hacks, like the gerber export plugin's --name-style argument, to the generic CAM job syntax. This article describes how pcb-rnd users are affected.
-
HID: the future of GTK and other HIDs
- hid_gtk by
Tibor 'Igor2' Palinkas
on
2019-03-15
A major problem with the GTK lib is that it is huge and is changing a lot, in ways we don't really need. This article describes our strategy on GTK versions and alternatives. It also discusses the possibility and practical requirements for more HIDs to happen.
-
Netlist rewrite, hierarchic netlists
- netlist2 by
Tibor 'Igor2' Palinkas
on
2019-02-16
Why the netlist code needs a rewrite and how hierarchic netlists will be eventually supported. Related topics: rats nest and subcircuits.
-
Using and editing text objects on layouts in pcb-rnd
- text_edit by
Tibor 'Igor2' Palinkas
on
2019-02-08
Show how text can be drawn, modified, and how various settings affect their use.
-
The new DRC dialog
- drc_new1 by
Tibor 'Igor2' Palinkas
on
2018-11-30
As the first step of the DRC rewrite, a new low level view/drc infrastructure is introduced and the DRC GUI is rewritten. This pool node describes what was wrong with the old GUI and how the new one fixes those problems.
-
Packaging state for pcb-rnd scripting
- script_pkg by
Tibor 'Igor2' Palinkas
on
2018-11-16
Before pcb-rnd scripting can really take off, we need to get OS packaged versions of pcb-rnd have scripting available. For that we need a few dependencies also packaged by the same OS. This pool node keeps track on the progress.
-
Coordinated User Contribution Project
- cucp by
Tibor 'Igor2' Palinkas
on
2018-11-06
We have a growing mountain of user doable tasks, ranging from coordinated testing to documentation. The main problem seems to be time and coordination. As an attempt to fix these, the CUCP is introduced.
-
Symbolic milestone: 3/4 rnd, 1/4 legacy
- milestone75 by
Tibor 'Igor2' Palinkas
on
2018-11-05
Pcb-rnd has reached a symbolic milestone: we are beyond 75% in the code change statistics, which means more than 3/4 of the C source code lines are either new or got a relevant change since the fork.
-
pcb-rnd documentation policy
- doc_and_code by
Tibor 'Igor2' Palinkas
on
2018-11-04
Explanation of high and low level documentation; pcb-rnd policy on not mixing source code with high level documentation and not writing alibi docs.
-
How to hide the refdes text
- hide_refdes by
Tibor 'Igor2' Palinkas
on
2018-10-30
-
How to select subcircuits per footprint/value for manual assembly
- asm by
Tibor 'Igor2' Palinkas
on
2018-10-30
A short description of what options are available in pcb-rnd for assisting manual assembly of boards, with insight on how these work in the background and comparison of the related infrastructure to geda/pcb's.
-
DAD, top window in various HIDs and docking
- hid_topwin by
Tibor 'Igor2' Palinkas
on
2018-10-12
Long term all HIDs will have all dialogs as DADs coming from the HID-agnostic plugins. Some elements of the top window, like the layer selector should be done in a similar way to avoid code duplication and reduce HID development cost. This will result in a new, more generic DAD approach that also solves the docking problem.
-
DAD widget upgrade state
- dad_upgrade by
Tibor 'Igor2' Palinkas
on
2018-10-09
Current standing and plans for the widget implementation for the DAD dialog rewrite. Long term all gtk and lesstif dialogs are to be rewritten as DAD dialogs in their corresponding plugins or in the dialogs plugin. For this, the DAD API and the backends in HIDs need to be upgraded to support all widgets that will be in use in the new dialogs.
-
External autorouter: c-pcb
- c-pcb by
Tibor 'Igor2' Palinkas
on
2018-10-01
Autorouting using the external auto router c-pcb. This howto guides the user through all steps, from c-pcb installation to routing using pcb-rnd GUI.
-
Why there is no negative copper layer
- negcopper by
Tibor 'Igor2' Palinkas
on
2018-09-21
Explain with simple examples why negative-drawn copper is not supported.
-
Layer group subtyping: the purpose field
- layer_purp by
Tibor 'Igor2' Palinkas
on
2018-09-11
How the layer system got extended with a layer group purpose, that behaves like a free form subtype. Reasons to do this instead of introducing hardwired bits for the new types. How this system works with existing mechanisms such as layer binding.
-
New slot support in padstacks
- slot_ann by
Tibor 'Igor2' Palinkas
on
2018-09-10
Announcement of slot support. Example file with slotted padstacks and explanation of how using slots differ from the original pcb-rnd setup.
-
XSCHEM to pcb-rnd flow
- xschem by
Tibor 'Igor2' Palinkas
on
2018-09-05
XSCHEM is a small, independent schematics editor implemented in C, tcl, awk, running on X11. Because of VLSI, it has strong support for hierarchy. Recently it got support for slotting and exporting tEDAx netlists, making XSCHEM suitable for drawing the schematics for a layout done with pcb-rnd. This tutorial demonstrates a simple XSCHEM-to-pcb-rnd forward annotation.
-
Import_sch rewrite, switching over to tEDAx netlists
- import_sch by
Tibor 'Igor2' Palinkas
on
2018-08-17
Majority of pcb-rnd users use the gschem->pcb-rnd flow, either with import schematics, or less frequently with gsch2pcb-rnd. The current implementation is fragile. This article describes how it is going to be fixed using tEDAx.
-
Netlist based workflow vs. "just draw"
- netlist_based by
Tibor 'Igor2' Palinkas
on
2018-08-16
Decision: pcb-rnd should favor the netlist based workflow over the "just draw things" workflow, while still supporting both. Background of the decision, including history of netlist support in pcb. Detailed roadmap how the new policy is achieved.
-
Makefile for batch mode import
- make_import by
Tibor 'Igor2' Palinkas
on
2018-08-13
How to emulate gsch2pcb-rnd with a batch-mode action script using the pcb-rnd executable, and how to hook this all up in a Makefile. Many pcb-rnd users use Makefiles to automate annotation between tools. A common path is generating a netlist from various sources (e.g. schematics) and importing the changes to an existing board. This can be done using gsch2pcb-rnd, but that tool supports only one flow, importing from gschem, using gnetlist. This article presents an example on how to implement a generic setup that can import from any source.
-
Globalism vs. localism
- glob_loc by
Tibor 'Igor2' Palinkas
on
2018-08-11
Design decision: global vs. local parameters in the data model and on the UI. How to achieve global goals while keeping local object properties.
-
Why should you use pcb-rnd vs. KiCad?
- vs_kicad by
Tibor 'Igor2' Palinkas
on
2018-07-24
Datasheet-like comparison table of the most important features of pcb-rnd and KiCad, to help users choosing between the two packages.
-
Distalign parameter gallery
- distalign by
Edward Comer
on
2018-07-18
Gallery of photo mode renderns of the effects of each dist/align parameter.
-
How to configure cam jobs
- cam_conf by
Tibor 'Igor2' Palinkas
on
2018-07-14
Demonstrate how to configure new export jobs in the cam plugin. Covers both technical aspects and practical tips on creating vendor job configs that can be shared with other users.
-
cam exporting
- cam by
Tibor 'Igor2' Palinkas
on
2018-07-12
Announcing the cam export option and the cam plugin in an effort to clean up and unify output file name and layer group selection and provide configurable export jobs.
-
Padstack breakup
- pstk_breakup by
Tibor 'Igor2' Palinkas
on
2018-07-05
Announcing new feature: breaking up padstacks
-
True layer colors
- layer_color by
Tibor 'Igor2' Palinkas
on
2018-07-04
Announcement and short intro of the new layer color system that allows setting layer color per board, per layer.
-
How actions shall query cursor/crosshair coordinates
- action_coords by
Tibor 'Igor2' Palinkas
on
2018-06-15
As of pcb-rnd r17330 (or release 2.0.1), the API for actions getting screen coordinates changed. This document is a summary on how to use the new API.
-
Crash: plugin uninit errors
- plugin_unreg by
Tibor 'Igor2' Palinkas
on
2018-05-16
Strange looking bug: pcb-rnd crashes on exit when dynamic loaded plugins are used. Does not happen with the same version with buildins. The reason is usually the same common error: plugin leaving registered objects behind.
-
Lihata persistency, second approach
- persistent2 by
Tibor 'Igor2' Palinkas
on
2018-05-11
Current state of persistent save, difficulties, challanges, future trends
-
Feature complexity considerations vs. data model and hardwired code vs. user data
- feature_cmpl by
Tibor 'Igor2' Palinkas
on
2018-05-06
How to add new features; what sort of features are accepted and what features are refused. How to keep to code maintainable long term.
-
Planning curve support
- curves by
Tibor 'Igor2' Palinkas
on
2018-05-05
Planning curve support. Describe objectives and enumerate possibilities.
-
How to contribute
- contrib1 by
Tibor 'Igor2' Palinkas
on
2018-04-29
What sort of contribution works with pcb-rnd? How to best join your effort with the long term goals of the project?
-
Large boards, 64 bit coordinates
- large_board by
Tibor 'Igor2' Palinkas
on
2018-04-20
As of version 2.0.0 (starting from svn r16618), pcb-rnd supports large boards. Large means up to many 10 meters. This node deals with what had to be fixed and what sizes/precisions are to be expected.
-
Configuring export_xy to output a custom csv
- xy_template by
Tibor 'Igor2' Palinkas
on
2018-04-19
Plugin export_xy writes the output file using a named template. The template is one of multiple configured templates. The configuration is coming from the normal pcb-rnd configuration system. This howto describes creating a new, custom csv template as an user configuration.
-
Copy/move/remove selected and unselected objects
- select_move by
Tibor 'Igor2' Palinkas
on
2018-04-15
Drag&drop move unselected objects behave differently than drag&drop move selected objects. This is not a bug, but decades old design decision. The selected-move mechanism also interacts with subcircuits. This article describes the mechanisms and some consequences.
-
HID API policy
- hid_policy by
Tibor 'Igor2' Palinkas
on
2018-04-14
Specify the future directions of the HID API with detailed rationale.
-
IPC-D-356
- ipc-d-356 by
Tibor 'Igor2' Palinkas
on
2018-04-13
Summary of the IPC-D-356 support in pcb-rnd.
-
Changing the clearance of all padstacks of one or more subcircuits
- subc_clr by
Tibor 'Igor2' Palinkas
on
2018-04-09
This node presents a simple way to edit the padstack global clearance of all padstacks of one or more subcircuits. The same method can be used to change the clearance and other properties of other subcircuit parts as well.
-
Risks associated with the menu file switch
- menu3 by
Tibor 'Igor2' Palinkas
on
2018-04-01
Any big change in the software is a risk - user may like or may hate the change. There are some changes that are inevitable, because the old setup blocks progression. We have reached that point with the default menu file. The switch is big, this is risky. This node describes why I think our target audience will not get mad.
-
New, default menu file for 2.0.0
- menu2 by
Tibor 'Igor2' Palinkas
on
2018-03-29
Describe the transition from the old menufile to the new, multi-stroke key binding menu for release 2.0.0.
-
Practical Query examples
- query_examples by
Tibor 'Igor2' Palinkas
on
2018-03-28
Practical examples on using the query language (advanced search).
-
Teardrops plugin
- teardrops by
Tibor 'Igor2' Palinkas
on
2018-03-25
The teardrop action adds arcs to gradually thicken traces connecting to padstacks. This can make the connection more smooth, removing sharp corners. For home etched hobby boards, this also increases the surface near a pin that can contribute to the mechanical stability of the copper ring.
-
Programming tips: commenting the code
- prog_tip3 by
Tibor 'Igor2' Palinkas
on
2018-03-23
Code commenting can help a lot in understanding the code and the API, but when used the wrong way, it can become noise.
-
Home reflow of SMD components using a hot plate or skillet.
- smd_reflow by
Erich S. Heinzle (VK5HSE)
on
2018-03-20
A howto for simple and inexpensive hot plate or skillet reflow of SMD components on PCB layouts.
-
Home etching copper clad circuit boards using the toner transfer method.
- toner_transfer by
Erich S. Heinzle (VK5HSE)
on
2018-03-15
A summary of the toner transfer method for home etching of boards designed in pcb-rnd.
-
Traces to silkscreen
- trace2silk by
Hannu 'Vuokko' Vuolasaho
on
2018-03-10
On a printed circuit board, the silk print is many times a good documentation source. In this mini howto it is shown how to make really well documenting layout by duplicating the top copper traces on silk. Another usage of the silk print print is to make PCB art.
-
Advanced library path configuration
- lib_path_conf by
Tibor 'Igor2' Palinkas
on
2018-03-08
For the simplest setup it is enough to configure all library paths as a static list. However, advanced use need advanced configuration capabilities, which pcb-rnd fully supports: extending existing list of paths with local additions.
-
Debugging an 1 pixel error in export_png
- bug_pngpad by
Tibor 'Igor2' Palinkas
on
2018-03-04
Describe how to check the exprot_png 1 pixel rounding error on square smd pads.
-
Hobbyist vs. professional use
- pro_vs_hobby by
Tibor 'Igor2' Palinkas
on
2018-02-26
The professional and the hobbyist use cases differ. pcb-rnd is shifting from a hobbyist-centered UI and data model to a more balanced one that tries to suit both professionals and hobbyists. These changes make some hobbyist-centric actions somewhat harder to achieve while make many things professionals need easier to achieve.
-
Values of the fmt parameter in SaveTo()
- save_fmt by
Tibor 'Igor2' Palinkas
on
2018-02-25
-
Polygon lib bug #1 and workaround
- polybug1 by
Tibor 'Igor2' Palinkas
on
2018-02-25
Our polygon lib approximates arcs with lines in polygon contours and calculates the union of complex cutout shapes. This can go wrong, e.g. because of rounding errors. One of the bugs and the workaround is demonstrated.
-
Index: user guide
- Iuguide by
Tibor 'Igor2' Palinkas
on
2018-02-23
Editing a PCB board is a complex workflow with many aspects. This user guide targets new users and demonstrates some of the most common aspects referencing to mini-howtos.
-
Tutorial coding projects for students
- student by
Tibor 'Igor2' Palinkas
on
2018-02-19
These projects are suitable for starting on pcb-rnd without first having to learn the whole code base. They are still useful for the project so it's a win-win situation.
-
Index: tips for file format developers
- Ifmt_dev by
Tibor 'Igor2' Palinkas
on
2018-02-19
This node is a collection of pointers to other nodes that developers of file formats and file format related code (e.g. io_* plugins) will find useful. Some nodes contain example files that could be used in round-trip load/save tests.
-
intnoconn - pretend objects are not connected in a subc
- intnoconn by
Tibor 'Igor2' Palinkas
on
2018-02-10
There are various applications where a special subcircuit is needed: a subcircuit that has multiple pins/pads that are connected in copper within the subcircuit, but the rest of the system should see it as if the pins/pads were not connected. Typical examples are antennas, microwave parts etched in copper, PCB coils, star grounding. The intnoconn attribute solves all these problems.
-
Best practices for bug reporting
- bugrep by
Tibor 'Igor2' Palinkas
on
2018-02-10
Optional: tips on how to write the most useful, self-contained bugreports. Best practices on writing bugreports and rationale how these tricks help fixing the bugs.
-
Using and editing padstacks on layouts in pcb-rnd
- pstk_edit by
Tibor 'Igor2' Palinkas
on
2018-02-08
Show how padstacks can be placed, modified, and how various settings affect their use. Describes how padstack prototypes can be constructed.
-
Thermal tool howto, for adding thermals to padstacks in pcb-rnd
- thermal_howto by
Erich S. Heinzle (VK5HSE)
on
2018-02-05
Introduction to the use of the thermal tool and available thermal styles for pins, pads, vias and padstacks.
-
The FOSS EDA ecosystem: why to join
- ecosys_join by
Tibor 'Igor2' Palinkas
on
2018-02-04
What are the benefits and costs of joinint the EDA ecosystem.
-
How to export for macrofab
- macrofab by
Edward 'celem' Comer
on
2018-01-28
How to export files from pcb-rnd for macrofab pick and place service.
-
Programming tips: context struct
- prog_tip2 by
Tibor 'Igor2' Palinkas
on
2018-01-27
Code organization tips and tricks to get the code simpler and more readable: context struct.
-
Programming tips: bail-out
- prog_tip1 by
Tibor 'Igor2' Palinkas
on
2018-01-27
Code organization tips and tricks to get the code simpler and more readable: bail-out.
-
How subcircuit source/transformations are tracked
- subc_transf by
Tibor 'Igor2' Palinkas
on
2018-01-22
How source and transformation of subcircuits are tracked. How pick and place output is generated using this information. What happens to the old gEDA/PCB elements.
-
Ecosystem: name proposals
- ecosys_name by
pcb-rnd community
on
2018-01-21
-
Data model rewrite state
- data_switch by
Tibor 'Igor2' Palinkas
on
2018-01-20
Current state, progress.
-
How to change the grid size while editing a layout
- grid_settings by
Erich Heinzle
on
2018-01-18
Show how to adjust grid settings while editing a PCB layout.
-
Editing polygons in pcb-rnd
- poly_edit by
Erich Heinzle
on
2018-01-17
Show how the polygons can be drawn, modified, have holes added, and how various settings affect their edges.
-
Using and editing lines on layouts in pcb-rnd
- line_edit by
Erich Heinzle
on
2018-01-17
Show how lines can be drawn, modified, and how various settings affect their use.
-
How to add a ground pour to a layout
- ground_pour by
Erich Heinzle
on
2018-01-17
Show how a ground plane (a.k.a. copper pour) can be added to a layout.
-
Using and editing arcs on layouts in pcb-rnd
- arc_edit by
Erich Heinzle
on
2018-01-17
Show how arcs can be drawn, modified, and how various settings affect their use.
-
Making power traces with the polyhatch command in pcb-rnd
- power_traces by
Erich Heinzle
on
2018-01-16
Show how the polyhatch and subtraction soldermask layer can be used to make high current traces on copper pours.
-
Strategy
- strategy by
Tibor 'Igor2' Palinkas
on
2018-01-06
Specify the strategy we use for the project, for coding, documentation, community and communication.
-
Why should you use pcb-rnd vs. gEDA/PCB?
- vs_geda by
Tibor 'Igor2' Palinkas
on
2018-01-01
Datasheet-like comparison table of the most important features of pcb-rnd and gEDA/PCB, to help users choosing between the two packages.
-
Limitations of the 'svn rev' info in pcb-rnd executable
- svn_rev by
Tibor 'Igor2' Palinkas
on
2018-01-01
pcb-rnd --version and the about box prints the svn revision number of the executable (unless it was compiled from a release tarball). This mechanism has limitations, tho, as described in this node.
-
Our new EDA suite
- suite by
Tibor 'Igor2' Palinkas
on
2018-01-01
pcb-rnd is a PCB layout editor tool. When it started in 2013, I didn't foresee it would be the flagship of an EDA suite, which will be part of an EDA ecosystem. This node describes the relation between these terms.
-
Self intersecting polygons (polygon lib assertion)
- poly_bug1 by
Tibor 'Igor2' Palinkas
on
2018-01-01
Explanation for the famous 'self intesecting polygon' assert in --debug mode, and a method for debugging and fixing the offending board file.
-
Using the MUCS autorouter with pcb-rnd... a HOWTO
- mucs by
Erich S. Heinzle (VK5HSE)
on
2018-01-01
How to use the MUCS external autorouter with pcb-rnd.
-
Old pcb-rnd devlog entries
- devlog by
Tibor 'Igor2' Palinkas
on
2018-01-01
between 2015 and 2018, pcb-rnd used to have a developer blog, called devlog. It featured random articles about code development and pcb-rnd usage. Majority of the articles have been converted into knowledge pool nodes. The few that have only historical importance are imported under this node.
-
HID: layer group transluency config
- layer_alpha by
Tibor 'Igor2' Palinkas
on
2017-12-31
It is possible to change how translucent layers are on the screen, when hardware accelerated rendering is used.
-
Statistics: 2017
- stat_2017 by
Tibor 'Igor2' Palinkas
on
2017-12-30
Statistics about the year: what 2017 was like in the life of pcb-rnd.
-
Get a tEDAx netlist from a gschem schematic.
- gaf_tedax by
Alain V.
on
2017-12-29
How to get a tEDAx netlist using "xorn netlist" command
-
How to safely check out an old revision of pcb-rnd
- svn_to_old by
Tibor 'Igor2' Palinkas
on
2017-12-28
A simple svn up -r5000 will not result in a compilable rev 5000 in the local working copy, because of all the svn externals under trunk/src_3rd/. This mini-howto explains the reasons and the solution.
-
Building footprints with oblong shaped padstacks (pins) using shape()
- pstk_valve by
Erich S. Heinzle (VK5HSE)
on
2017-12-28
A tutorial for subcircuits using thru-hole pin padstacks, for drawing the footprint of a B7G thermionic valve.
-
Cross section view: layers and groups
- cross_sect by
Tibor 'Igor2' Palinkas
on
2017-12-28
Cross section view of the board allows the user to manipulate the layer stack in a visual way.
-
The FOSS EDA ecosystem: common interchange file format
- ecosys_fmt by
Tibor 'Igor2' Palinkas
on
2017-12-26
EDA ecosystem proposal: interchange file format.
-
Index: the FOSS EDA ecosystem
- Iecosys by
Tibor 'Igor2' Palinkas
on
2017-12-26
-
UI layers: overlay generated on the fly
- ui_layer by
Tibor 'Igor2' Palinkas
on
2017-12-25
UI layers are flexible overlay layers intended to represent user-interface data (instead of physical data). UI layers can be allocated and destroyed on the fly. Plugins and user scripts can draw on the UI layers they allocate.
-
Microwave filter subcircuit with mask cutout
- subc1 by
Tibor 'Igor2' Palinkas
Erich S. Heinzle (VK5HSE)
on
2017-12-25
Demonstrate how to group objects with pcb-rnd subcircuits, drawing a distributed element filter with a mask cutout.
-
hyp2mat path to OpenEMS simulation
- hyp2mat by
Evan Foss
on
2017-12-25
Video tutorial on simulating a micorwave filter using pcb-rnd, hyp2mat and openEMS.
-
genxproj: Generic X11 project manager
- genxproj_a1 by
Tibor 'Igor2' Palinkas
on
2017-12-25
Generic, X11 based project management tool that can run multiple differnet X11 applications and glue them together to form a suite. Genxproj can force-embed the application windows and present the suite GUI as a tabbed or split view.
-
Cycledrag: cycle through which object is selected
- cycdrag by
Tibor 'Igor2' Palinkas
on
2017-12-25
When the user clicks at a point for dragging an object, there may be multiple objects under the cursor. This feature allows the user to select which one to drag.
-
Index: using and creating footprints
- Ifootprint by
Tibor 'Igor2' Palinkas
on
2017-12-25
-
Specification of the pool node format
- pool by
Tibor 'Igor2' Palinkas
on
2017-12-24
-
Index: file format support
- Iformat by
Tibor 'Igor2' Palinkas
on
2017-12-24
-
About pcb-rnd knowledge pool
- Default by
Tibor 'Igor2' Palinkas
on
2017-12-24
-
Importing Cadsoft Eagle Binary layouts and libraries into pcb-rnd
- eagle3 by
Erich S. Heinzle (VK5HSE)
on
2017-12-15
How to load Eagle binary files in pcb-rnd.
-
Symbolic milestone: 2/3 rnd, 1/3 legacy
- milestone66 by
Tibor 'Igor2' Palinkas
on
2017-12-09
Pcb-rnd has reached a symbolic milestone: we are beyond 66.667% in the code change statistics, which means more then 2/3 of the C source code lines are either new or got a relevant change since the fork.
-
Code change statistics
- chgstat by
Tibor 'Igor2' Palinkas
on
2017-11-17
The code change statistics is an attempt to measure how much of the code base has been changed since the fork. It is calculated by a script, using svn metadata.
-
Why we don't have net labels on traces
- net_lab by
Tibor 'Igor2' Palinkas
on
2017-11-07
A common feature request is printing the net name on traces. It's not as easy as it sounds.
-
Development cycles and timing
- dev_cycle by
Tibor 'Igor2' Palinkas
on
2017-11-06
Development timing in pcb-rnd: development cycles and cleanup/feature/bugfix phases.
-
Data rewrite: car analogy and long term plans
- data4 by
Tibor 'Igor2' Palinkas
on
2017-11-06
Car analogy for the data model replacement in 2017; what's for 2018 and some words about the long term strategy.
-
Thermal on any pad
- thermals by
Tibor 'Igor2' Palinkas
on
2017-11-04
Thermals work on any pad created as a padstack.
-
Padstack implementation details
- padstack_imp by
Tibor 'Igor2' Palinkas
on
2017-11-04
Some basic implementation details about padstacks, for developers.
-
Padstack intro
- padstack by
Tibor 'Igor2' Palinkas
on
2017-11-04
An introduction to padstacks.
-
Blind/buried vias announcement
- bbvia by
Tibor 'Igor2' Palinkas
on
2017-11-04
The original announcement of blind/buried vias.
-
unfixable polygon rat bug
- polyratbug by
Tibor 'Igor2' Palinkas
on
2017-11-03
Unfixable bug: instead of the circular rat mark that indicates the pin is within the poly it tries to connect to, a rat line is drawn to a corner of the poly. Background.
-
How refdes works with subcircuits
- subc_refdes by
Tibor 'Igor2' Palinkas
on
2017-10-19
Details on how the refdes worked with the old element model and how it works with the new subcircuit model.
-
subc refdes text: dyntext and floater
- floater by
Tibor 'Igor2' Palinkas
on
2017-10-19
Specify how the subc-refdes essential 'floater' and 'dyntext' features work.
-
How to clean up the menu system
- menu_reorg by
Tibor 'Igor2' Palinkas
on
2017-10-04
Menu rewrite/reorganization poll results.
-
How to clean up the mark
- mark_cleanup by
Tibor 'Igor2' Palinkas
on
2017-10-04
After a discussion on the mailing list, our current plan about mark handling.
-
Openscad exporter
- openscad by
Tibor 'Igor2' Palinkas
on
2017-10-01
The original openscad exporter rewrite announcement.
-
Saving window geometry
- gui_win_geo by
Tibor 'Igor2' Palinkas
on
2017-10-01
pcb-rnd has sophisticated (but optional) support for saving and reproducing your window geometry, trying to override this part of the window manager's job.
-
The Big Data Model Cleanup - midpoint summary
- data3 by
Tibor 'Igor2' Palinkas
on
2017-10-01
All the work with the layer rewrite, subcircuits and padstacks are not just random features. These are all parts of a bigger plan, an idea that has been floating on the geda-user mailing list for many years: a data model cleanup.
-
Heavy vs. light subcircuit terminals
- term_heavy by
Tibor 'Igor2' Palinkas
on
2017-09-24
Specify the terminology and basic concepts of light and heavy terminals in subcircuits.
-
Announcement: change in default board (for layer stackup)
- default_pcb by
Tibor 'Igor2' Palinkas
on
2017-09-23
Original announcement on changing the default layer stack, mainly to include explicit paste and mask layers.
-
Pixel slop
- pixel_slop by
Tibor 'Igor2' Palinkas
on
2017-09-10
If you want to select an object by a click, you must have the (center of the) crosshair be on the object. In case of a line, this means the crosshair must be within the boundaries of the line width. But the line previse line width (in nanometer) is scaled down to pixels on screen. We have a value called "pixel slop" to compenzate for this roundnig.
-
Lesstif/motif link failure + solution
- motif by
Tibor 'Igor2' Palinkas
on
2017-09-10
Explain why lesstif/motif linking failed on some system and what the solution was to the tricky linking problem.
-
Importing HPGL plot data into pcb-rnd PCB layouts
- hpgl by
Erich S. Heinzle (VK5HSE)
on
2017-09-08
Howto on importing HPGL plots for mechanical drawings.
-
DXF exporter rewrite
- dxf1 by
Tibor 'Igor2' Palinkas
on
2017-08-29
Original announcement on the DXF exporter rewrite.
-
Wire frame drawing mode
- wireframe by
Tibor 'Igor2' Palinkas
on
2017-08-22
-
Clearance value 0
- clearance0 by
Wojciech Krutnik
on
2017-08-17
Before, a line or an arc could be connected to a polygon* only by resetting its CLEARLINE flag (which was commonly toggled by 'j' key). Now it's also possible to connect a line/arc by setting its clearance to 0.
-
The Type/ptr1/ptr2/ptr3 construction and void *
- void by
Tibor 'Igor2' Palinkas
on
2017-08-16
Explain the legacy code pattern of int type, void *ptr1, void *ptr2, void *ptr3
-
Terminology: footprint, element, subcircuit
- footprint by
Tibor 'Igor2' Palinkas
on
2017-08-15
Describe the existing PCB terminology for elements, footprints and the new term subcircuit in pcb-rnd. This article also reveals why new term "subcircuit" is introduced instead of calling it "footprint2", "footprint+", "new footprints" or "pcb-rnd footprints".
-
data model rewrite: drawing primitives
- data1 by
Tibor 'Igor2' Palinkas
on
2017-08-13
Rodmap of the data model rewrite; introduction to the terminology of the old and the new data model.
-
undo cleanup with libuundo
- undo by
Tibor 'Igor2' Palinkas
on
2017-08-09
Why the original undo system is not compatible with the plugin idea, how we are fixing that using libuundo.
-
Lihata board v3 news (historical)
- lht_v3 by
Tibor 'Igor2' Palinkas
on
2017-07-24
-
PolyHatch command for cross hatching polygons in pcb-rnd
- polyhatch by
Erich S. Heinzle (VK5HSE)
on
2017-07-19
Introduction to the polygon hatching action and tips on the use cases.
-
Data model: why not sql?
- sql by
Tibor 'Igor2' Palinkas
on
2017-07-12
Rationale behind the decision that the data model is not based on SQL and not stored in an sqlite database.
-
Terminology: native file format vs. alien file formats
- alien by
Tibor 'Igor2' Palinkas
on
2017-07-12
Explain the file format terminology (native vs. alien).
-
element-resrtictions: why is it not a file format issue?
- data2 by
Tibor 'Igor2' Palinkas
on
2017-07-11
Busting a myth: the file format was not the issue that caused all the element limitations.
-
Protel Autotrax/Easytrax layout file import and export
- autotrax by
Erich S. Heinzle (VK5HSE)
on
2017-07-07
How to load and save boards in Protel's Autotrax/Easytrax board format.
-
subcircuit: how does this clean things up today
- subc2 by
Tibor 'Igor2' Palinkas
on
2017-06-29
Explain how the internal data structure is being turned from a flat model into a tree model using subcircuits. Describe the new 'bound' layer model introduced for subcircuits.
-
template define pick and place (PnP) xyrs
- xyrs by
Erich S. Heinzle (VK5HSE)
on
2017-06-09
Template based xy export plugin for pick and place machines, BoMs and more.
-
How github promotes confusion
- github by
Tibor 'Igor2' Palinkas
on
2017-06-08
Rant about how github promotes confusion by letting users to reuse original project names on forks, while also spreading the false information that joining the project is done via registering at github.
-
Using existing pcb layouts as footprint element libraries in pcb-rnd
- fp_board by
Erich S. Heinzle (VK5HSE)
on
2017-06-06
Tutorial to using an existing design (in any board format pcb-rnd can load) as a footprint library.
-
How to use the automated integrity check system
- integrity by
Tibor 'Igor2' Palinkas
on
2017-06-03
Automatic data model integrity checks on the fly. How to enable it and how to use it to narrow down and report bugs.
-
Routing options in pcb-rnd: angle-preserving rubber band, curvy knees, teardrops
- routeradius by
Erich S. Heinzle (VK5HSE)
on
2017-05-31
Demonstrate using the route radius setting to get curved knee at 45 degree trace joints. Also demonstrates "rubber band keeps middle line angle" and teardrops.
-
History: how the old element model was broken
- old_elem by
Tibor 'Igor2' Palinkas
on
2017-05-30
What problems we had with the old element model inherited from PCB and how we got rid of these problems with the subcircuit upgrade.
-
Plans on hierarchic netlists
- net_hier by
Tibor 'Igor2' Palinkas
on
2017-05-30
Subcircutions will eventually support a generic tree when subcircuit-in-subcircuit is available. This may lead to support of hierarchic netlists.
-
Gschem's transistor problem
- transistor_prob by
Tibor 'Igor2' Palinkas
on
2017-05-09
Trouble with gschem: the transistor problem (a.k.a. heavy symbols, pin mapping, device mapping).
-
pcb-rnd's native support for Eagle XML (.brd) files
- eagle2 by
Erich S. Heinzle (VK5HSE)
on
2017-05-08
How to load Eagle xml files in pcb-rnd.
-
Bitmap import (parametric footprint)
- bitmap by
Erich S. Heinzle (VK5HSE)
on
2017-04-16
Demonstrate how to use bitmap(), the parametric footprint for generating bitmaps from files (e.g. png or jpeg).
-
Original announcement about switching to puplug
- puplug by
Tibor 'Igor2' Palinkas
on
2017-04-15
Explain the decision to switch from the old custom plugin system to puplug, including user and developer benefits.
-
Line, Polygon and Arc objects now supported in pcb-rnd font glyphs
- fontedit by
Erich S. Heinzle (VK5HSE)
on
2017-04-09
Howto for the built-in font editor, plus some tips about the lihata based font file format and about using arcs and polygons in fonts.
-
QR code and code128 barcode support for PCB layouts now in pcb-rnd
- qr by
Erich S. Heinzle (VK5HSE)
on
2017-04-06
Demonstrate how to use qr(), the parametric footprint for generating QR code.
-
Multifont: ISO 3098 CAD font, dwarven rune and Klingon support
- isofont by
Erich S. Heinzle (VK5HSE)
on
2017-03-29
Announce the multifont support: ISO font, dwarven rune, and Klingon font.
-
Edakrill announcement
- edakrill by
Tibor 'Igor2' Palinkas
on
2017-03-22
Announcement and short intro to edakrill, the http (and svn) based "cloud" library.
-
Converting inkscape paths to pcb-rnd and gEDA PCB layouts, lines and footprint elements
- inkscape by
Erich S. Heinzle (VK5HSE)
on
2017-03-20
Introduction to an Inkscape export plugin that can (partially) export svg to .pcb, creating a bridge between inkscape and pcb-rnd.
-
Removing the global PCB variable
- global_pcb by
Tibor 'Igor2' Palinkas
on
2017-03-16
Background of the global PCB variable removal, policy/recommendation how to proceed.
-
Importing Mentor Graphics Design Capture netlists into gEDA pcb-rnd
- mentor_net by
Erich S. Heinzle (VK5HSE)
on
2017-03-15
How to import netlist+footprint data from Mentor Graphics Design Capture. This feature allows the schematics author to use Mentor Graphics and the PCB layout engineer to use pcb-rnd in a team.
-
Exotic and complex footprint creation using FidoCadJ
- fidocadj by
Erich S. Heinzle (VK5HSE)
on
2017-03-09
Sometimes there are complex or exotic footprints that need to be made which are most easily achieved with bezier curve, cubic spline and ellipsoidal features in addition to the usual rectilinear elements. Fidocadj is a CAD program good in those. This howto demonstrates the bridge between pcb-rnd and fidocadj.
-
Converting Eagle (.brd) layouts to pcb-rnd (external tool)
- eagle by
Erich S. Heinzle (VK5HSE)
on
2017-03-07
How to convert Eagle xml files to pcb-rnd, gEDA, KiCad using the external tool translate2geda.
-
On the fly generated parametric footprints
- parametric by
Erich S. Heinzle (VK5HSE)
on
2017-03-01
Demonstrate the use of the parametric footprint parameter editor dialog box.
-
Multiple font support now available in pcb-rnd
- multifont by
Erich S. Heinzle (VK5HSE)
on
2017-02-21
Using multiple different fonts on a board
-
Importing Kicad eeschema netlists into pcb-rnd
- eeschema by
Erich S. Heinzle (VK5HSE)
on
2017-02-20
How to import netlist+footprint data from KiCad's eeschema. This feature allows the schematics author to use KiCad and the PCB layout engineer to use pcb-rnd in a team.
-
The FOSS EDA ecosystem: public footprint/symbol/resource library
- ecosys_edakrill by
Tibor 'Igor2' Palinkas
on
2017-02-13
EDA ecosystem proposal: interchange file format.
-
The FOSS EDA ecosystem: common interchange file format
- ecosys_edacore by
Tibor 'Igor2' Palinkas
on
2017-02-13
EDA ecosystem proposal: interchange file format.
-
The FOSS EDA ecosystem and pcb-rnd in it
- ecosys_prop by
Tibor 'Igor2' Palinkas
on
2017-02-12
A proposal on how an EDA ecosystem of independent, smallish tools could be built today.
-
Importing TinyCad schematics into pcb-rnd
- tinycad by
Erich S. Heinzle (VK5HSE)
on
2017-02-10
How to import netlist+footprint data from TinyCAD. This feature allows the schematics author to use TinyCAD and the PCB layout engineer to use pcb-rnd in a team.
-
Importing LTspice schematics into pcb-rnd for board layout
- ltspice by
Erich S. Heinzle (VK5HSE)
on
2017-02-09
How to import netlist+footprint data from LTspice. This feature allows the circuit that was worked out in LTspice to be realized quickly in pcb-rnd without having to redraw the schematics (e.g. in gschem) first.
-
what's needed for schematics -> pcb-rnd
- schimp by
Tibor 'Igor2' Palinkas
on
2017-02-05
Specify the requirements before we can implement a a schematics capture program to pcb-rnd importer.
-
Automatic routing (builtin router, freerouting_cli and external freerouting gui)
- freerouting by
Erich S. Heinzle (VK5HSE)
on
2017-02-04
Howto for pcb-rnd and the external autorouters freerouting_cli and freerouting
-
Altium to pcb-rnd conversion
- altium by
Erich S. Heinzle (VK5HSE)
on
2017-02-01
Howto convert altium boards using an external tool and pcb-rnd
-
I/O plugin implementation: model considerations
- io_model_cons by
Tibor 'Igor2' Palinkas
on
2017-01-13
Guidelines for developers on I/O model conversions for subcircuits and padstacks.
-
Mass-change of object properties
- mass_chg by
Tibor 'Igor2' Palinkas
on
2017-01-07
For mass-changing object properties, pcb-rnd offers different approaches, which are each described, pros and cons.
-
Layer terminology
- term_layers by
Tibor 'Igor2' Palinkas
on
2017-01-05
Specify the terminology of layers.
-
Negative drawing layers: subtracting drawn features from existing features
- negative_drawing by
Erich Heinzle VK5HSE
on
2017-01-05
Layers can be added to a design with the layers section of the preferences menu. If the layer is created with the "negative drawing" option selected, any drawn features will be subtracted from the layer. This is particularly useful for soldermask openings or copper features.
-
Background Image: displaying a background image while editing a layout
- background_image_old by
Erich Heinzle VK5HSE
on
2017-01-05
Duplication of an existing design from a photograph of a PCB, or from an image scanned from a book, or from a screenshot from an electronic publication, is made easier by being able to display the image in the background of the layout being edited. The image stretches to fit the height and width of the current layout.
-
Self-contained executable
- selfcont by
Tibor 'Igor2' Palinkas
on
2016-12-30
Describe the benefits of the self-contained pcb-rnd executable.
-
gsch2pcb-rnd vs. import schematics
- gsch2pcb_import by
Tibor 'Igor2' Palinkas
on
2016-12-17
gsch2pcb-rnd is a standalone, command line tool for importing. The alternative for the same flow is the pcb-rnd builtin 'import schematics' feautre. The two paths are equivalent in capabilities. There is a misunderstanding about one path is not as capable in some situations as the other; this article shows how equal they are.
-
plug_io: the test_parse call
- test_parse by
Tibor 'Igor2' Palinkas
on
2016-12-15
Rationale for the test_parse call in the I/O plugin API.
-
pcb-rnd release policy: trunk, tags, tarballs
- trunk_release by
Tibor 'Igor2' Palinkas
on
2016-12-05
Release policy of pcb-rnd and how to keep dual (or multiple) installations for testing.
-
History: how the old layer model was broken
- old_layer by
Tibor 'Igor2' Palinkas
on
2016-11-13
What problems we had with the old layer model inherited from PCB and how we got rid of these problems by the layer rewrite.
-
The original lihata announcement
- lht1 by
Tibor 'Igor2' Palinkas
on
2016-11-02
Historical moment: first announcement of pcb-rnd's native format (lihata board v1).
-
Old thermal bits used in the gEDA/pcb format
- old_thermal by
Tibor 'Igor2' Palinkas
on
2016-10-31
-
The 2016 import of PCB plugins
- oldplugins by
Tibor 'Igor2' Palinkas
on
2016-10-08
Historical overview of old PCB plugins that got imported in 2016.
-
How to merge two boards
- board_merge by
Tibor 'Igor2' Palinkas
on
2016-10-08
Sometimes two board files developed idependently need to be merged int a third, combined board. This mini-howto describes three different methods to merge boards.
-
The object property editor
- propedit by
Tibor 'Igor2' Palinkas
on
2016-09-25
Interactive GUI and command line function to change properties and attributes of one or more selected object(s).
-
Local grid on GTK
- local_grid by
Tibor 'Igor2' Palinkas
on
2016-09-25
The local grid reduces number of grid points drawn, showing the grid only around the cursor, like a flashlight. It helps a lot with software rendering on large screen.
-
Fullscreen: more pixels for editing on GTK
- fullscreen by
Tibor 'Igor2' Palinkas
on
2016-09-25
Action, button and hotkey for better utilization screen space sing the gtk HID. When "full screen mode" activated, almost the entire window is used for editing.
-
Polygon vs. polygon clearance
- poly_clr_poly by
Tibor 'Igor2' Palinkas
on
2016-09-24
Some boards need a lot of copper: so much that it looks like if the whole bottom layer was just copper with a few gaps drawn to form islands. A new way of drawing this with pcb-rnd is enabling polygon-vs-polygon clearance. This way thick polygon islands can be formed within a polygon pour without shorting the islands to the pour.
-
How to save coords in text files
- print_coord by
Tibor 'Igor2' Palinkas
on
2016-09-04
-
Fork 2.0: the original announcement about distanting ourselves from pcb
- fork2 by
Tibor 'Igor2' Palinkas
on
2016-09-04
The original announcement that marked the start of increasing the distance between pcb-rnd and gEDA - the process that in a year led to pcb-rnd leaving gEDA.
-
Why do we support 3 different gEDA/PCB .pcb formats?
- fmt_pcb_nano1 by
Tibor 'Igor2' Palinkas
on
2016-09-04
The reason for supporting 3 different gEDA/PCB .pcb formats. Rationale for human readable units and nanometer units; historical background on the centimil unit.
-
Polygon example files for developers
- poly_dev_ex by
Tibor 'Igor2' Palinkas
on
2016-09-03
-
Old pcb-rnd pin shapes
- old_pinshape by
Tibor 'Igor2' Palinkas
on
2016-09-03
There was a few years after the fork, before pcb-rnd started to use its own native file format. During this transition period the (now pretty much obsolete) .pcb file format got a few pcb-rnd extensions that mainline never cared to implement. One of these extensions is asymmetric "pin shapes".
-
Offer vs. pull (virtual users vs. active users)
- virtuser by
Tibor 'Igor2' Palinkas
on
2016-08-26
Pcb-rnd implements a pulled-by-users policy on deciding what features to implement. Below I try to explain how we ended up using this policy.
-
File format vs. VCS vs. script and manual editing
- persistent by
Tibor 'Igor2' Palinkas
on
2016-08-23
Persistent formatting on save: the key to get our native file format diff-friendly, thus VCS-friendly.
-
routing style fixes
- routing_styles by
Tibor 'Igor2' Palinkas
on
2016-08-16
-
The programming language war
- langs by
Tibor 'Igor2' Palinkas
on
2016-08-02
Policy on programming/scripting language and dependencies.
-
Testing guide for the test sprint
- testsprint by
Tibor 'Igor2' Palinkas
on
2016-07-16
Mini-howto on joining the project as an user on a test sprint.
-
Resource files converted to lihata
- res_file by
Tibor 'Igor2' Palinkas
on
2016-04-19
Notes on how the custom format "resource" files got converted to lihata documents (for menu layout config and vendor drill). May help for advanced users with transition from gEDA/PCB to pcb-rnd.
-
Removing the 2-level-tree limitation of the footprint lib
- library_t by
Tibor 'Igor2' Palinkas
on
2016-04-19
The original code and gEDA/PCB have a special setup for representing trees, C structures called LibraryMenu and LibraryEntry. This system can represent only a subset of trees: there is a root, a level consist of directories only and a next level, each directory consist of data nodes only. This limitation has been removed.
-
fp_wget: remote HTTP footprint libs
- fp_wget by
Tibor 'Igor2' Palinkas
on
2016-04-19
Footprint lib accessor over HTTP using wget; download footprints on demand from the "cloud" into local cache.
-
A method for debugging memory leaks from the lexxer
- valg_flex by
Tibor 'Igor2' Palinkas
on
2016-03-14
In a flex/bison parser it's quiet common that strings are allocated in flex, passed on to bison and then either free'd there or saved in the output data. Since both free and save happens a lot, it's not an easy mechanical review of the .y file to find the reason for leaks. Especially if the code has to store some strings in temporary storage until a later stage of the parsing. An example is shown about debugging such a problem.
-
Someone else's footprint
- sef by
Tibor 'Igor2' Palinkas
on
2016-!!-!!
-
Negative/positive selection directions
- negselect by
Tibor 'Igor2' Palinkas
on
2015-12-31
A positive direction selection box will select any object that is fully enclosed by the box; a negative direction box will select any object that touches the box.
-
why glib is a bad idea
- glib by
Tibor 'Igor2' Palinkas
on
2015-10-28
A short rant about why glib is bad: it causes more problems than it solves. Also explain why glib is not a lib, but a programming environment. A solution is proposed and demosntrated on pcb-rnd.
-
On-point: indicate when crosshair is on object points
- onpoint by
Robert Drehmel
on
2015-10-14
Objects are highlighted (recolored) when crosshair is 'on point', e.g. on end-point of a line. This makes it easier to draw precisely connected lines.
-
Fork FAQ - why did the gEDA/PCB vs. pcb-rnd fork happen?
- fork_faq by
Tibor 'Igor2' Palinkas
on
2015-08-30
This document contains my short answers to questions commonly popping up in endless flamewars on the geda-user mailing list. Since pcb-rnd has left gEDA, this article is mainly kept for historical insight and explaining some of our design and project-management choices.
-
Back annotation to gschem
- backann by
Tibor 'Igor2' Palinkas
on
2015-08-30
Back annotation of pin swaps and footprint changes using pcb-rnd and a recent GIT version of gEDA/gschem.
-
The change to-style actions
- tostyle by
Tibor 'Igor2' Palinkas
on
2015-08-29
-
requirements for parametric footprint generation
- param_when by
Tibor 'Igor2' Palinkas
on
2015-08-21
It's appealing to write parametric footprint generators for new footprint families: invest some time once, and have a tool that can spit out dozens of footprints. However, it is not always worth having a generator instead of static footprints. This node describes in which situation the parametric footprint model should be used.
-
qf()
- param_qf by
Tibor 'Igor2' Palinkas
on
2015-08-20
Design decisions behind the parametric footprint qf() that is able to generate are qfn(), tqfp(), lqfp().
-
pcblib: the minimalism of our footprint lib
- pcblib by
Tibor 'Igor2' Palinkas
on
2015-07-25
Rationale on how the footprint library shipped with pcb-rnd is designed and organized and why it should be a minimal library. Plus historical notes on where pcb-rnd came from.
-
Minimal cut on short circuits
- mincut by
Tibor 'Igor2' Palinkas
on
2013-09-06
Better highlighting of short circuits using the minimal cut algorithm.
-
nonetlist flag
- nonetlist by
Tibor 'Igor2' Palinkas
on
2013-09-01
-
Internal connections in footprints and subcircuits
- intconn by
Tibor 'Igor2' Palinkas
on
2013-09-01
Nodes found: 311