pcb-rnd workshop topics
major infrastructural elements [2h]
Introduction to pcb-rnd infrastructure for programmers:
- the plugin system
- pcb_board_t, pcb_data_t
- drawing primitive internals
- rtree
- events
- actions
- the plugin system
build system: scconfig [2h]
Introduction to scconfig:
- purpose and design decisions
- infrastructure: the db
- how to use scconfig in a project: hooks.c, using detections
- using templates to generate files
- how to write new detection
Introduction to pcb-rnd's build system
developer intro [0.5h]
Introductions to future pcb-rnd developers, tips & tricks, how to
start with the codebase:
- version control: svn; team work model
- using the build system
- project conventions
how to write a netlist import plugin [1.5h]
- how to set up a new plugin
- how to set up the action
- how to create imported networks
- how to create imported subcircuits
major design decisions [1..2h]
Explain the background and alternatives of some of the design decisions, explain
why the given choice was made.
- the EDA market
- the UNIX way
- hobby use vs. professional use
- what to leave out: 2.5d vs. 3d, autorouting, part manager
- free edit and user requested checks vs. enforced validity for each step of editing
- file formats: native, tEDAx, alien
- HID: unification
- C89
- scconfig
- svn and the centralized team work model
- plain html documentation
- web1.0 web page
- communication, technical aspect (mailing list, IRC)
- communication, policy (how to use different comm channels, how we talk about pcb-rnd in other contexts)
the coralEDA effort [1h]
coralEDA is an umbrella project of free EDA tools that are explicitly
maintained to be interoperable.
toner transfer (etching a board) [4h]
Working from an existing board design, we use the toner transfer method
to craft a smallish single sided board. Etching included.
preparing a board for fab [1.5h]
Tips & tricks on how to prepare a board for professional fabbing. Including
a lot of fine details about how fabs normally craft the boards and
how things can go wrong.
data model details [1h]
Details of the data model to a level advanced users should care. All
properties of all drawing primitives. Exotic use cases.
scripting & query [2h]
- external scripting: using the command line, makefiles
- the CAM syntax for exporting
- external scripting: parametric footprints
- actions, action "scripting"
- fungw scripting
how to design footprints [2h]
- intro: hobby vs. production considerations (how things go wrong)
- building padstacks (intro)
- building subcircuits (intro)
- copper - sizes, tolerances, other considerations
- holes and slots
- mask cutout
- paste, paste patterns
- special, complex footprints
ddraft [1h]
Introduction to the 2D drafting subsystem. How to accurately draw
geometrical constructs using the GUI and the command line.
complex boards: many layers blind/buried vias, slots, paste patterns [1h]
A random selection of advanced use cases. Explain why some techniques or tricks
are important for some type of products and demonstrate how to achieve the
desired result with pcb-rnd.