Brussels / 4 & 5 February 2017



PCB designs as code and EDA as code synthesis

Footwork is an experimental KiCAD footprint (text) editor written in Racket. Footwork takes advantage of Lisp's code-data equivalence to offer a unique approach to PCB design: KiCAD's footprint format becomes a domain specific language embedded in the Racket programming language.

Footwork's interface is text first allowing users to make arbitrary edits: their requirements need not be fully anticipated by the user interface. The users still immediately see the effects of their edits through a graphical preview but can use a fully featured general purpose programming languages to generate and modify footprints.

Traditional (mouse based) manipulation is being added as calls to scripting. Most interestingly, Racket's Rosette language, an interface to SMT solvers, offers the opportunity to make use of cutting edge techniques in programming synthesis for design automation.


Photo of Kaspar Emanuel Kaspar Emanuel